cursus.steps.configs.config_graphstorm_gnn_inference_eval_step

GraphStorm GNN Inference/Eval Configuration with Self-Contained Derivation Logic.

Configuration for the GraphStormGNNInferenceEval Processing step — GraphStorm/DGL GNN out-of-time inference + evaluation on a custom GraphStorm GPU container (online-inference simulator → ROC-AUC / PR-AUC / Recall@Precision report + plots). Runs the custom GraphStorm image (BYO container).

Three-tier field design. The load-bearing new field is Tier-1 image_uri (inherited from BasePipelineConfig, required-in-practice here); subgraph_s3_uri is a RAW S3 folder streamed by the simulator (a job-arg, not a mounted channel).

class GraphStormGNNInferenceEvalConfig(*, author, bucket, role, region, service_name, pipeline_version, model_class='xgboost', current_date=<factory>, framework_version='2.1.0', py_version='py310', image_uri=None, subnets=None, security_group_ids=None, enable_network_isolation=None, source_dir=None, enable_caching=False, use_secure_pypi=False, max_runtime_seconds=86400, project_root_folder, processing_instance_count=1, processing_volume_size=500, processing_instance_type_large='ml.m5.4xlarge', processing_instance_type_small='ml.m5.2xlarge', use_large_processing_instance=False, skip_volume_kms=None, processing_source_dir=None, processing_entry_point='graphstorm_gnn_inference_eval.py', processing_script_arguments=None, processing_framework_version='1.2-1', subgraph_s3_uri, id_name, label_names, query_type='baseline', checkpoint='auto', model_type='auto', auto_tune=True, num_gpus=None, num_processors=None, max_workers_per_gpu=8, instance_type='ml.g5.12xlarge', gpu_instance_fallback=<factory>, **extra_data)[source]

Bases: ProcessingStepConfigBase

Config for the GraphStorm GNN inference/eval step. image_uri is inherited from BasePipelineConfig (the BYO GraphStorm ECR image), required-in-practice (byo_container).

subgraph_s3_uri: str
id_name: str
label_names: List[str]
processing_entry_point: str
query_type: str
checkpoint: str
model_type: str
auto_tune: bool
num_gpus: int | None
num_processors: int | None
max_workers_per_gpu: int
instance_type: str
gpu_instance_fallback: List[str]
max_runtime_seconds: int
model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'allow', 'protected_namespaces': (), 'validate_assignment': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

property volume_size: int

125 GB for g4dn, else 500 GB (from the Nexus launcher).

Type:

EBS volume

property default_num_gpus: int

GPU count per instance (g5.12xl / g4dn.12xl = 4, else 1) — the auto-detect fallback.

get_environment_variables()[source]

Env vars the eval container reads. ID_FIELD + LABEL_FIELDS are REQUIRED (declared in the interface) — the report join column + the comma-list of label columns for metrics; the rest are optional knobs.

model_post_init(context, /)

This function is meant to behave like a BaseModel method to initialize private attributes.

It takes context as an argument since that’s what pydantic-core passes when calling it.

Parameters:
  • self (BaseModel) – The BaseModel instance.

  • context (Any) – The context.