SageMaker V3 Release
❗🔥 SageMaker V3 Release
Version 3.0.0 represents a significant milestone in our product's evolution. This major release introduces a modernized architecture, enhanced performance, and powerful new features while maintaining our commitment to user experience and reliability.
Important: Please review these breaking changes before upgrading.
Older interfaces such as Estimator, Model, Predictor and all their subclasses will not be supported in V3.
Please see our V3 examples folder for example notebooks and usage patterns.
Migrating to V3
Upgrading to 3.x
To upgrade to the latest version of SageMaker Python SDK 3.x:
pip install --upgrade sagemakerIf you prefer to downgrade to the 2.x version:
pip install sagemaker==2.*See SageMaker V2 Examples for V2 documentation and examples.
Key Benefits of 3.x
Modular Architecture: Separate PyPI packages for core, training, and serving capabilities
Unified Training & Inference: Single classes (ModelTrainer, ModelBuilder) replace multiple framework-specific classes
Object-Oriented API: Structured interface with auto-generated configs aligned with AWS APIs
Simplified Workflows: Reduced boilerplate and more intuitive interfaces
Training Experience
V3 introduces the unified ModelTrainer class to reduce complexity of initial setup and deployment for model training. This replaces the V2 Estimator class and framework-specific classes (PyTorchEstimator, SKLearnEstimator, etc.).
This example shows how to train a model using a custom training container with training data from S3.
SageMaker Python SDK 2.x:
from sagemaker.estimator import Estimator
estimator = Estimator(
image_uri="my-training-image",
role="arn:aws:iam::123456789012:role/SageMakerRole",
instance_count=1,
instance_type="ml.m5.xlarge",
output_path="s3://my-bucket/output"
)
estimator.fit({"training": "s3://my-bucket/train"})SageMaker Python SDK 3.x:
from sagemaker.train import ModelTrainer
from sagemaker.train.configs import InputData
trainer = ModelTrainer(
training_image="my-training-image",
role="arn:aws:iam::123456789012:role/SageMakerRole"
)
train_data = InputData(
channel_name="training",
data_source="s3://my-bucket/train"
)
trainer.train(input_data_config=[train_data])See more examples: SageMaker V3 Examples
Inference Experience
V3 introduces the unified ModelBuilder class for model deployment and inference. This replaces the V2 Model class and framework-specific classes (PyTorchModel, TensorFlowModel, SKLearnModel, XGBoostModel, etc.).
This example shows how to deploy a trained model for real-time inference.
SageMaker Python SDK 2.x:
from sagemaker.model import Model
from sagemaker.predictor import Predictor
model = Model(
image_uri="my-inference-image",
model_data="s3://my-bucket/model.tar.gz",
role="arn:aws:iam::123456789012:role/SageMakerRole"
)
predictor = model.deploy(
initial_instance_count=1,
instance_type="ml.m5.xlarge"
)
result = predictor.predict(data)SageMaker Python SDK 3.x:
from sagemaker.serve import ModelBuilder
model_builder = ModelBuilder(
model="my-model",
model_path="s3://my-bucket/model.tar.gz"
)
endpoint = model_builder.build()
result = endpoint.invoke(...)See more examples: SageMaker V3 Examples
SageMaker V3 Examples
Training Examples
- Custom Distributed Training Example
- Distributed Local Training Example
- Hyperparameter Training Example
- JumpStart Training Example
- Local Training Example
Inference Examples
- HuggingFace Example
- In-Process Mode Example
- Inference Spec Example
- JumpStart E2E Training Example
- JumpStart Example
- Local Mode Example
- Optimize Example
- Train Inference E2E Example
ML Ops Examples
- V3 Hyperparameter Tuning Example
- V3 Hyperparameter Tuning Pipeline
- V3 Model Registry Example
- V3 PyTorch Processing Example
- V3 Pipeline Train Create Registry
- V3 Processing Job Sklearn
- V3 SageMaker Clarify
- V3 Transform Job Example
Looking for V2 Examples? See SageMaker V2 Examples below.
Note
This release is created retroactively for code deployed on Thu Nov 20 2025
All changes listed below are already live in production.