SageMaker v3 drops the framework estimators, and your training code is the migration
One ModelTrainer and one ModelBuilder replace the SKLearn, PyTorch and XGBoost classes, with source directories synced at job launch. The container is now yours to supply.
The Engineer · Build desk
What happened
- SageMaker Python SDK v3 retires the SKLearn, PyTorch and XGBoost estimator classes in favour of one ModelTrainer for training jobs.
- The container comes from Amazon ECR and can be self-built, an AWS Deep Learning Container, or a third-party image.
- AWS walks through a scikit-learn Random Forest served via DJL Serving and a Stable Diffusion 3.5 LoRA fine-tune using Hugging Face Accelerate.
Why it matters
- What it costs cost The bill is engineer hours spent on code that already runs, and it lands on whoever owns the training and inference scripts rather than on the team that decided to adopt the new SDK.
- What it limits constraint Following the documented build path from a Studio JupyterLab space requires Docker access enabled at the domain level, which makes this a platform configuration request and not only a pip install.
- Who has to decide decision Somebody has to pick between an AWS Deep Learning Container and a minimal in-house image per framework, and that pick decides who patches CUDA and system packages from now on.
- What's now possible capability Anyone who was previously rebuilding an image to change a loss function gets a shorter edit-and-rerun loop, on AWS's account of the runtime sync.
The mechanical change worth reading twice is where your code lives when the job starts. The 2021 script mode pitch was that managed framework containers from AWS let you run custom training and inference code without building or maintaining Docker images [4]. In v3, the SDK syncs a local `source_dir` into the container at launch through a `SourceCode` object, and the code is never baked into the image [7]. That relocates the versioning problem rather than removing it. AWS describes its own example training container as intentionally minimal, carrying only the runtime and framework libraries and no training code, so the same image can be reused across scikit-learn models [13].
The rewrite is not a find and replace. Three import paths collapse into one training class [5][14], but the argument surface is different: training entry is a `command` string inside `SourceCode`, while inference entry is an `entry_script` in the same object [8]. Deployment moves at the same time, because `ModelBuilder` takes over from the v2 Model and Predictor pattern [c2b], and the tabular example in the post serves the model through DJL Serving [11]. A team with a working estimator and a hand-written inference handler is touching both halves and then re-testing a live endpoint.
Then there is the prerequisite list, which reads oddly against the original selling point. It asks for `sagemaker>=3.0`, an S3 bucket, an IAM execution role, and a training container image pushed to Amazon ECR [12]. The post supplies Docker build and push shell scripts and notes that Docker must be installed on the environment doing the build [1]. An AWS Deep Learning Container or a third-party image is permitted [9], so the strict requirement is to choose an image, not to author one. The walkthrough still opens with a Dockerfile [1].
So the accurate description for a bring-your-own-model shop is a faster loop on script changes [3], bought with an image you now own, tag and keep. The SDK makes no assumption about what is inside it [c5b], which is freedom in the first week and a patching queue in the second year.
What to watch
- Whether AWS publishes an end-of-support date for the v2 SDK, or a converter that rewrites estimator code as ModelTrainer calls.
- Whether AWS Deep Learning Containers ship pre-wired for SourceCode, which would take the ECR build step out of most migrations.
- Whether ModelBuilder examples appear for serving stacks other than DJL Serving, since that choice drives how inference handlers get repackaged.
Clarity's read
What the record supports and how the coverage leans. The claims behind it follow.
Reality
- Evidence58
- Adoption20
- Hype gap+24
- Incentives86
- Confidence62
Claim ledger
Ranked by verification strength, evidence, and original report placement.
- [1]
The example notebook includes Docker build and push commands via two shell scripts, and the post notes Docker must be installed on the environment; the walkthrough gives the complete Dockerfile for the scikit-learn container.
- [2]
If the example containers are built and run from a JupyterLab space in Amazon SageMaker Studio rather than a local machine, Docker access must be enabled at the domain level.
- [3]
AWS lists faster iterations as a benefit: change the training script and rerun, with no container rebuild necessary, and one identical interface for scikit-learn, PyTorch, Stable Diffusion or a custom C++ inference binary.
- [4]
A 2021 AWS post, Bring your own model with Amazon SageMaker script mode, showed how to use script mode on managed framework containers from AWS to write custom training and inference code, so users did not need to build or maintain Docker images to run their own algorithm on SageMaker AI.
- [5]
The SageMaker Python SDK v3 replaces the framework-specific estimator classes SKLearn, PyTorch and XGBoost with a single unified ModelTrainer for training, which replaces the v2 Estimator family and configures and launches a SageMaker training job.
- [6]
ModelBuilder replaces the v2 Model/Predictor pattern, packaging the inference handler and deploying it to an endpoint.
- [7]
In v3 the SDK syncs a local source code directory into the training job at runtime using the new SourceCode configuration object, and the code runs inside the container without being baked into the image.
- [8]
The SourceCode object accepts a source_dir path to a local code directory plus either a command string for training or an entry_script for inference.
- [9]
The user brings a container image from Amazon ECR: one they build, an AWS Deep Learning Container, or a third-party image, and the SDK handles injecting the code at runtime.
- [10]
AWS says users get full container control, including installing system packages or CUDA libraries in the image, because the SDK does not assume what is inside it.
- [11]
The post's first example trains a scikit-learn Random Forest on the diabetes dataset and deploys it to a real-time endpoint using Deep Java Library (DJL) Serving; the second fine-tunes Stable Diffusion 3.5 with LoRA using Hugging Face Accelerate for multi-GPU distributed training.
- [12]
Prerequisites listed are an AWS account with SageMaker AI access, an IAM execution role with SageMaker AI and S3 permissions, SageMaker Python SDK v3 (pip install sagemaker>=3.0), a training container image pushed to Amazon ECR, an S3 bucket for training data and model artifacts, and optionally an MLflow app or tracking server.
- [13]
AWS describes the example training container as intentionally minimal, containing only the runtime and framework libraries and no training code so it can be reused for other scikit-learn models, with algorithm-specific code living in source_dir and injected at runtime.
- [14]
Three named framework estimator classes in v2 map onto one training class in v3, so per-framework call sites in existing code all converge on the same API.
Get this ledger inside ChatGPT. Ask about any of our stories and the answer brings its figure, each claim’s verdict and the sources. Free, no account.
Sources
1 independent publisher whose own reporting we read for this story.
- aws.amazon.comBring your own model with Amazon SageMaker AI: Script mode in SDK v3
1 article · August 26, 2026
Topics and entities
Follow any of these and your For You feed starts watching them — no settings page required.
Topics
Entities
- Amazon Simple Storage ServiceFollow
- ModelBuilderFollow
- Deep Java Library ServingFollow
- MLflowFollow
- AWS Deep Learning ContainersFollow
- DockerFollow
- Amazon Web ServicesFollow
- Hugging Face AccelerateFollow
- SageMaker Python SDK v3Follow
- Amazon SageMaker AIFollow
- ModelTrainerFollow
- PyTorchFollow
- Amazon SageMaker StudioFollow
- Stable Diffusion 3.5Follow
- XGBoostFollow
- Amazon Elastic Container RegistryFollow
- scikit-learnFollow
- SourceCode configuration objectFollow