cursus.steps.configs.config_dummy_training_step¶
Configuration for DummyTraining step with flexible input modes.
This module defines the configuration class for the DummyTraining step, which is an INTERNAL node that can accept optional inputs from previous steps or fall back to reading from the source directory.
- class DummyTrainingConfig(*, author, bucket, role, region, service_name, pipeline_version, model_class='xgboost', current_date=<factory>, framework_version='2.1.0', py_version='py310', source_dir=None, enable_caching=False, use_secure_pypi=False, max_runtime_seconds=172800, 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='dummy_training.py', processing_script_arguments=None, processing_framework_version='1.2-1', pretrained_model_path, **extra_data)[source]¶
Bases:
ProcessingStepConfigBaseConfiguration for DummyTraining step with flexible input modes.
This configuration follows the Three-Tier Config Design pattern:
Tier 1 (Essential Fields): Required user inputs - pretrained_model_path: Path to model artifacts (S3 URI, local path, or None) - Inherited required fields from BasePipelineConfig and ProcessingStepConfigBase
Tier 2 (System Fields): Fields with defaults that can be overridden - processing_entry_point: Entry point script (default: “dummy_training.py”) - Instance types, volume sizes, etc. (inherited from base)
Tier 3 (Derived Fields): Calculated from Tier 1 and Tier 2 - Inherited derived fields like effective_source_dir, script_path
## Model Artifacts Input (Tier 1 Essential Field)
The pretrained_model_path field accepts three types of values:
None (default) - SOURCE Fallback Assumption: - Assumes model.tar.gz is located at source_dir/models/model.tar.gz - Default behavior for backward compatibility - Example: pretrained_model_path=None or omit the field
S3 URI - Explicit S3 Path: - Full S3 path to model directory or file - Examples:
s3://my-bucket/models/ (directory)
s3://my-bucket/models/model.tar.gz (file)
Local Path - Explicit Local Directory: - Relative or absolute path to model directory - Examples:
./models/ (relative)
/absolute/path/to/models/ (absolute)
source_dir/models/ (relative to source)
Priority Resolution: Config field → Dependency injection → SOURCE fallback
## Hyperparameters Resolution
Hyperparameters follow dependency injection pattern: - From hyperparameters_s3_uri channel (if provided via dependency injection) - Falls back to multiple SOURCE locations:
/opt/ml/code/hyperparams/hyperparameters.json
source_dir/hyperparams/hyperparameters.json
source_dir/hyperparameters.json
## Use Cases
SOURCE Fallback: pretrained_model_path=None (default, uses source_dir/models/)
Explicit S3: pretrained_model_path=”s3://bucket/path/to/models/”
Explicit Local: pretrained_model_path=”path/to/models/” or “./models/”
Absolute Path: pretrained_model_path=”/absolute/path/to/models/”
## Expected Source Directory Structure (when pretrained_model_path=None)
``` source_dir/ ├── dummy_training.py # Main processing script ├── models/ # Model directory │ └── model.tar.gz # Pre-trained model artifacts └── hyperparams/ # Hyperparameters directory (optional)
└── hyperparameters.json # Hyperparameters file
## Example Configs
```python # SOURCE fallback (None assumption) config = DummyTrainingConfig(
pretrained_model_path=None, # or omit entirely # … other required fields
)
# Explicit S3 path config = DummyTrainingConfig(
pretrained_model_path=”s3://my-bucket/models/”, # … other required fields
)
# Explicit local path config = DummyTrainingConfig(
pretrained_model_path=”./models/”, # … other required fields
)¶
- 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].
- classmethod validate_pretrained_model_path(v)[source]¶
Validate pretrained_model_path is None, S3 URI, or local directory path.
Converts Path objects to strings for consistent handling.
- Parameters:
v (str | Path | None) – Path value to validate (str, Path, or None)
- Returns:
Validated path as string or None
- Raises:
ValueError – If path format is invalid
- Return type:
str | None
- validate_config()[source]¶
Validate configuration for INTERNAL node with optional inputs.
For INTERNAL nodes with optional dependencies, we validate: - Entry point is specified - Script contract is valid - Output paths are correctly defined
File existence is checked at runtime, not configuration time.
- Returns:
Self with validated configuration
- Return type:
- 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.