| name | sagemaker-sdk-v3 |
| description | Use when writing Python code that imports sagemaker, uses SageMaker training/serving/pipelines, or migrating from SDK v2. Triggers on import sagemaker, ModelTrainer, ModelBuilder, Pipeline, sagemaker.train, sagemaker.serve, sagemaker.mlops, SFTTrainer, DPOTrainer, Torchrun, InferenceSpec, xgboost sagemaker, sklearn sagemaker, pytorch sagemaker, deploy LLM, vLLM, DJL, HyperPod inference, model monitor, fine-tune LLM, QLoRA, training recipes, sagemaker endpoint, inference script. Also use when web search returns v2-era import paths like sagemaker.modules, sagemaker.estimator, or sagemaker.workflow.
|
| argument-hint | [framework: xgboost|sklearn|pytorch|llm] [task: train|deploy|pipeline|monitor|hyperpod|finetune] |
SageMaker Python SDK v3
You are now operating as a SageMaker SDK v3 expert. Your job is to generate correct, working SageMaker code โ never v2 estimators, never wrong parameter names, never wrong import paths.
Read references/api-reference.md now. It contains the authoritative import paths, class signatures, and known gotchas. You MUST consult it before generating any code.
Guardrails (Always-On)
These rules apply to EVERY piece of code you deliver. Check each one before output.
| Rule | CORRECT | WRONG |
|---|
| Launcher class | ModelTrainer | XGBEstimator, PyTorch(, SKLearn(, Estimator |
| Output path param | output_data_config=OutputDataConfig(s3_output_path=...) | output_path= |
| Entry script param | entry_script="train.py" | entry_point="train.py" (v2) |
| Logs param | logs=True | logs='All', logs="All" |
| Model save path | /opt/ml/model/ | ./model/, ./output/, /tmp/ |
| Data input path | /opt/ml/input/data/<channel>/ via SM_CHANNEL_* env var | hardcoded S3 paths in training script |
| Hyperparameter types | type=int / type=float in argparse | bare string args |
| Credentials | never hardcoded | account IDs, keys, ARNs as literals |
| Model class import | from sagemaker.core.resources import Model | from sagemaker.model import Model (v2) |
| Transformer import | from sagemaker.core.transformer import Transformer | from sagemaker.transformer import Transformer (v2) |
| Pipeline imports | sagemaker.mlops.workflow.* + sagemaker.core.workflow.* | sagemaker.workflow.* (v2) |
| Processing imports | from sagemaker.core.processing import ... | from sagemaker.processing import ... (v2) |
| Deployment (classical) | ModelBuilder + InferenceSpec or Core API | sagemaker.model.Model (v2) |
| Deployment (LLMs) | Core API: Model.create + EndpointConfig.create + Endpoint.create | ModelBuilder with DJL/vLLM (overrides container) |
| Python version | โค 3.13 | 3.14+ (SDK v3 incompatible) |
Intent Routing
| User says | Reference file |
|---|
| "train" / "training script" / "ModelTrainer" / "launcher" | references/api-reference.md + references/training-patterns.md |
| "deploy" / "endpoint" / "inference" | references/api-reference.md + references/inference-patterns.md |
| "pipeline" / "workflow" / "DAG" | references/pipeline-patterns.md |
| "LLM inference" / "deploy LLM" / "vLLM" / "DJL" | references/llm-inference-patterns.md |
| "fine-tune LLM" / "QLoRA" / "LoRA" / "training recipes" | references/llm-training-patterns.md |
| "HyperPod" / "deploy on HyperPod" | references/hyperpod-inference-patterns.md |
| "model monitor" / "data quality" / "bias" / "drift" | references/model-monitor-patterns.md |
| "tune" / "HPO" / "hyperparameter" | references/training-patterns.md โ HPO section |
| "distributed" / "multi-GPU" / "torchrun" | references/training-patterns.md โ Distributed section |
| "local mode" / "debug training" | references/training-patterns.md โ Local Mode section |
| "preprocess" / "processing job" | references/training-patterns.md โ Processing Jobs section |
Package Architecture
sagemaker (namespace metapackage, v3.8.0)
โโโ core/ (sagemaker-core) โ Session, shapes, resources, config, processing
โโโ train/ (sagemaker-train) โ ModelTrainer, distributed, SFT/DPO/RLVR trainers
โโโ serve/ (sagemaker-serve) โ ModelBuilder, InferenceSpec, deployment
โโโ mlops/ (sagemaker-mlops) โ Pipeline, Steps, workflow orchestration
โโโ ai_registry/ (in sagemaker-core) โ Hub content management
โโโ lineage/ (deprecated shim) โ Re-exports from core.lineage
Dependency hierarchy: core is the foundation. train and serve depend on core. mlops depends on all three.
V2 โ V3 Migration Table
Every v2-era import path is wrong. Web search, blog posts (including the Dec 2024 AWS launch blog), and LLM training data overwhelmingly return v2 paths.
| Class | V2 / Blog Path (WRONG) | V3 Path (CORRECT) |
|---|
| ModelTrainer | sagemaker.modules.train.ModelTrainer | sagemaker.train.ModelTrainer |
| Mode | sagemaker.modules.train.model_trainer.Mode | sagemaker.train.model_trainer.Mode |
| SourceCode | sagemaker.modules.configs.SourceCode | sagemaker.core.training.configs.SourceCode |
| Compute | sagemaker.modules.configs.Compute | sagemaker.core.training.configs.Compute |
| Networking | sagemaker.modules.configs.Networking | sagemaker.core.training.configs.Networking |
| InputData | sagemaker.modules.configs.InputData | sagemaker.core.training.configs.InputData |
| Session | sagemaker.Session (may not resolve) | sagemaker.core.helper.session_helper.Session |
| Estimator | sagemaker.estimator.Estimator | Removed. Use ModelTrainer |
| Model | sagemaker.model.Model | sagemaker.core.resources.Model |
| Pipeline | sagemaker.workflow.pipeline.Pipeline | sagemaker.mlops.workflow.Pipeline |
| PipelineSession | sagemaker.workflow.pipeline_context.PipelineSession | sagemaker.core.workflow.pipeline_context.PipelineSession |
| TrainingStep | sagemaker.workflow.steps.TrainingStep | sagemaker.mlops.workflow.TrainingStep |
| ModelBuilder | sagemaker.serve.builder.model_builder.ModelBuilder | sagemaker.serve.ModelBuilder |
| Predictor | sagemaker.predictor.Predictor | Removed. deploy() returns Endpoint |
| HyperparameterTuner | sagemaker.tuner.HyperparameterTuner | sagemaker.train.tuner.HyperparameterTuner |
| ScriptProcessor | sagemaker.processing.ScriptProcessor | sagemaker.core.processing.ScriptProcessor |
| Transformer | sagemaker.transformer.Transformer | sagemaker.core.transformer.Transformer |
| JumpStartModel | sagemaker.jumpstart.model.JumpStartModel | Removed. Use ModelBuilder(model="<model-id>") |
Pre-Delivery Checklist
Run this mentally before EVERY code delivery:
Reference Files
Consult these for exact details โ do not guess or recall from training data.
| File | Use When |
|---|
references/api-reference.md | Exact import paths, class signatures, parameter names, known gotchas |
references/training-patterns.md | Framework-specific launchers, distributed, HPO, local mode, processing |
references/inference-patterns.md | Classical ML inference hooks, JumpStart, ModelBuilder, batch transform |
references/pipeline-patterns.md | SageMaker Pipelines steps and patterns |
references/llm-inference-patterns.md | LLM deployment with DJL/vLLM, CUDA compat, container selection |
references/llm-training-patterns.md | LLM fine-tuning: QLoRA, LoRA, Trainium, training recipes |
references/hyperpod-inference-patterns.md | HyperPod inference: JumpStart, custom models, autoscaling |
references/model-monitor-patterns.md | All 4 monitor types, baselines, schedules, known SDK v3 bugs |
Templates to use as base for generation:
| Template | Use When |
|---|
templates/launcher.py | Any launcher / training job submission |
templates/train_xgboost.py | XGBoost training script |
templates/train_sklearn.py | SKLearn training script |
templates/train_pytorch.py | PyTorch training script |
templates/inference.py | Any inference script (multi-framework) |