Training and Hyperparameter Tuning on Amazon SageMaker
Master SageMaker training jobs end to end: input modes and channels, GPU and distributed training, Automatic Model Tuning strategies, Managed Spot Training with checkpoints, and the ml.* instance families that the AIF-C01 exam asks you to choose between.
A training job is the most expensive object you create before a model ever serves a request, and it is the object the AIF-C01 exam asks you to reason about most precisely. Domain 1 carries 20% of the scored content, and Task 1.3 names "performing hyperparameter tuning or model optimization" outright. The failure mode is never "you did not know SageMaker can train". It is that you chose File mode for a 600 GB dataset of small files, or you picked Bayesian when the requirement was "reproduce the identical set of combinations on every re-run", or you enabled Spot without a checkpoint and then hit the undocumented-in-your-notes 3,600 second wait cap.
=====================================================================
A SAGEMAKER TRAINING JOB, PIECE BY PIECE (AIF-C01 Task 1.3)
=====================================================================
AlgorithmSpecification ... training image + TrainingInputMode
ResourceConfig ........... instance type, instance count,
VolumeSizeInGB (ML storage)
StoppingCondition ........ MaxRuntimeInSeconds
InputDataConfig .......... channels (S3 / EFS / FSx for Lustre)
OutputDataConfig ......... model artifacts -> S3
HyperParameters .......... your algorithm's knobs
RoleArn .................. IAM role the job assumes
CheckpointConfig ......... S3 URI for Spot resume (optional)
EnableNetworkIsolation / EnableInterContainerTraffic ...
---------------------------------------------------------------------
INPUT MODES (API enum): File (default) | FastFile | Pipe
TUNING STRATEGIES: Bayesian (SDK default) | Random |
Grid | Hyperband
SPOT SAVINGS FORMULA: (1 - billable / training) x 100
MONITORING: CloudWatch /aws/sagemaker/TrainingJobs
=====================================================================How to read this lesson. Every number below is an AWS-published limit taken from the SageMaker developer guide, the SageMaker API reference or an AWS pricing page. Where AWS publishes two different numbers for the same thing, it does for Spot savings and for the maximum tuning run time, both appear, and the preferred exam answer is flagged in section 12 and section 13.
By the end of this lesson you will be able to:
- name the required fields of
CreateTrainingJoband explain what each one controls; - choose between File, FastFile and Pipe input modes using AWS's own size thresholds, and configure channels (
s3_data_type,distribution,compression,record_wrapping); - select an
ml.*instance family for training versus inference, and compute cluster size as instances Γ GPUs; - decide between data parallelism and model parallelism, and name the AWS libraries (SMDDP, SMP v2) that implement them;
- run Automatic Model Tuning and pick the right strategy: Grid vs. Random vs. Bayesian vs. Hyperband;
- configure Managed Spot Training correctly (
MaxWaitTimeInSeconds β₯ MaxRuntimeInSeconds) and compute the actual savings with the official formula; - size a checkpoint workflow so an interrupted job resumes instead of restarting;
- read CloudWatch training metrics, and explain what Debugger and Experiments do, and that Debugger is closed to new customers;
- defend a comparative verdict on Grid vs. Random vs. Bayesian and on managed training vs. do-it-yourself;
- answer ten exam-style questions written in the official voice, including two cost calculations.
1. Anatomy of a SageMaker training job
1.1 The eight required pieces
CreateTrainingJob is a single API call, but it is a bundle of eight independent decisions. The exam tends to test them as "which of these is missing / misconfigured", so learn them as a checklist.
Field | What it holds | What goes wrong when you get it wrong |
|---|---|---|
AlgorithmSpecification | Training image URI, TrainingInputMode, entry point | Wrong container β the job never starts; wrong input mode β see section 2 |
ResourceConfig | Instance type, instance count, VolumeSizeInGB | Volume too small β File mode fails on download; too few instances β OOM |
StoppingCondition | MaxRuntimeInSeconds (default 1 day, max 28 days) | Default stops a runaway job in a day; total job life caps at 30 days |
InputDataConfig | One or more channels pointing at S3, EFS or FSx | Channel in another Region β the job cannot read it |
OutputDataConfig | S3OutputPath for model.tar.gz | Artifacts land somewhere nobody looks |
HyperParameters | String map of algorithm knobs | Keys the algorithm does not accept β immediate failure |
RoleArn | IAM role assumed by the job | Missing s3:GetObject β silent access denied |
CheckpointConfig | S3Uri for checkpoints | Absent β Spot interruptions force a full restart (section 7) |
Two limits are worth memorizing because they are cheap to recall and appear often: a single training job's MaxRuntimeInSeconds defaults to 1 day and hard-stops at 28 days, and across running plus waiting the job cannot exceed 30 days. On stop, SageMaker sends SIGTERM and waits 120 seconds for your code to flush; which is exactly the window your checkpoint handler has to work in.
1.2 The lifecycle a job actually goes through
1.3 What training costs, and how it is billed
SageMaker bills per instance-second for partial instance-hours, with no minimum and no upfront commitment. That matters more than any single hourly rate: a 90-second training job costs 90 seconds of an instance, not a full hour.
Free-tier item (first 2 months) | Quantity | Rough equivalent |
|---|---|---|
Notebook instances ml.t3.medium | 250 hours | ~8.3 instance-days of interactive work |
Training on ml.m4.xlarge / ml.m5.xlarge | 50 hours | ~six 8-hour runs |
Real-time inference | 125 hours | ~4.2 days of hosting |
- π Did you know? The SageMaker free tier for training is 50 hours of
ml.m4.xlargeorml.m5.xlargein the first two months: enough for roughly six full working days of continuous CPU training, but only a handful of GPU runs. AWS labels the two-month window as a promotion on the pricing page, so confirm the terms before you budget a course around it.
2. Getting data into the job: input modes and channels
This is the highest-yield topic in the lesson. AWS documents exactly three input modes in the API enum, File, FastFile and Pipe, and the developer guide still calls File the default.
2.1 The three modes side by side
Dimension | File (default) | FastFile | Pipe |
|---|---|---|---|
Movement | Full dataset downloaded to ML storage before training starts | Objects are identified only; S3 is exposed as a POSIX filesystem and streamed on demand | S3 streamed into a FIFO pipe with high pre-fetch |
Start latency | Highest, training waits for the whole copy | Low, no full copy | Low |
Local space needed | Whole dataset + artifacts ( VolumeSizeInGB must fit it) | Artifacts only | Artifacts only |
Read pattern | Random or sequential (local disk) | Sequential best, random OK | Sequential; one reader per pipe |
Manifests | Prefix, manifest, augmented manifest | Prefix only | Prefix / manifest, plus RecordIO and Gzip |
Sharding / shuffle | ShardedByS3Key | Inherits the S3 layout | Managed sharding + per-epoch shuffle |
Incremental training | Supported: choose File | Not stated | Not stated |
Caveats | Overhead grows with file count; you must size the volume | Possible extra CloudTrail / KMS charges | AWS calls it "largely replaced by β¦ fast file mode" |
Best for | Small data (< 50 to 100 GB), local mode | Big files (> 50 MB, ideal > 150 MB) | Huge data where local disk is the constraint |
2.2 File mode: the default that silently costs you time
In File mode the training instance must have enough storage space to fit the entire dataset; that is a direct quote from the developer guide, and it is the mechanism behind the classic exam item: "training starts only after a long data-transfer phase and the instance storage must hold the whole dataset." Answer: File.
File mode is also the only mode the docs explicitly tie to incremental training, and it accepts all three s3_data_type values, including AugmentedManifestFile. Sharding across instances is done with distribution = ShardedByS3Key.
AWS's own sizing guidance: File mode suits datasets below 50 to 100 GB, and at the documented rate of 50 GB in about 5 minutes with 100 MB shards, AWS advises serializing files smaller than 50 MB into chunks of roughly 150 MB (TFRecord or RecordIO).
Worked example 1, File-mode sizing (section 12, Example 1). An 80 GB dataset in File mode needs a volume β₯ 80 GB plus room for output. At AWS's rate the download takes about 8 minutes before step one runs, roughly 21% of a 30-minute job spent copying. Switch to FastFile, or shard with ShardedByS3Key.
2.3 FastFile: stream without copying
FastFile identifies the objects but downloads nothing. S3 is exposed as a POSIX filesystem and read on demand, so startup is fast and local space is only needed for artifacts. Two constraints to memorize: it accepts prefix only (no augmented manifest), and random reads work but sequential reads are best. Extra CloudTrail and KMS charges can apply because FastFile records object-level access.
2.4 Pipe: the original streaming mode
Pipe streams S3 objects into a FIFO pipe with high pre-fetch, keeps disk only for artifacts, and gives you managed per-epoch shuffling, Gzip compression and RecordIO wrapping. AWS now describes it as "largely replaced by β¦ fast file mode", so on the exam Pipe is usually the streaming distractor when FastFile is the better answer, or the correct answer when the question mentions RecordIO/Gzip/per-epoch shuffle.
2.5 Channels: how objects are enumerated and split
A channel is one input to the job. Its configuration fields are where the exam hides detail.
Field | Values | Meaning |
|---|---|---|
s3_data_type | S3Prefix (default), ManifestFile, AugmentedManifestFile | How objects are enumerated |
distribution | FullyReplicated (default), ShardedByS3Key | Full copy on every instance vs. shard across nodes |
input_mode | File / Pipe / FastFile / unset | Per-channel override of the job-level TrainingInputMode |
compression | None, Gzip | Gzip applies to Pipe mode |
record_wrapping | None, RecordIO | RecordIO pipelines (MXNet-style) |
shuffle_config.seed | Integer | Deterministic shuffling; in Pipe mode it re-shuffles each epoch |
Supported stores are Amazon S3, Amazon EFS and Amazon FSx for Lustre (plus S3 Express One Zone), and the dataset must live in the same Region as the training job: an S3 bucket in us-west-2 feeding a job in us-east-1 is not a supported pattern.
2.6 Choosing a mode, using AWS's thresholds
Data shape | AWS's recommended path |
|---|---|
< 50 to 100 GB, or incremental training | File mode |
Files > 50 MB, ideally > 150 MB, start latency matters | FastFile |
Large dataset, many small files, or random reads | Amazon FSx for Lustre |
Huge data, local disk is the bottleneck, RecordIO/Gzip needed | Pipe |
Data already in EFS or FSx for Lustre | Mount it; no S3 copy at all |
The three input-mode traps that show up every exam cycle.
- File mode is the default: a question that describes a long pre-training transfer phase and a volume sized to the dataset is describing File, not Pipe.
- FastFile takes prefix only. If the question mentions an augmented manifest (typical for RLHF-style or sentiment datasets built with SageMaker Ground Truth / contextual reinforcement), FastFile cannot be the answer.
- Region locality is unconditional. Both the dataset and the checkpoint bucket must be in the training job's Region. Cross-Region reads are a distractor, never a solution.
3. Choosing compute: the ml.* instance families
3.1 The naming rule
Every SageMaker compute SKU is prefixed with ml.. That prefix is the exam's cheapest tell: if an option says p4d.24xlarge without the ml. when the context is a SageMaker training job or endpoint, it is describing EC2, not SageMaker. The families split cleanly by role.
Family | Role | Verified examples | Notes |
|---|---|---|---|
ml.p5 | Training, top GPU scale | ml.p5.48xlarge: 8 Γ H100 | GA 4 Aug 2023; 640 GB HBM, 192 vCPU, 2 TiB, 3,200 Gbps EFAv2 |
ml.p6 | Training, newest GPU | P6-B200 to 8 Γ Blackwell, 1,440 GB HBM | GA 6 Jun 2025 ( us-west-2) |
ml.p4d / ml.p4de | Training, distributed sweet spot | ml.p4d.24xlarge: 8 Γ A100 40 GB (p4de: 80 GB) | AWS's pick for multi-node + model parallelism (EFA) |
ml.p3 / ml.p3dn | Training, prior-generation GPU | 2xlarge / 8xlarge / 16xlarge / p3dn.24xlarge | 1 / 4 / 8 / 8 GPUs: same counts as EC2 p3 |
ml.g4dn / ml.g5 / ml.g6 | Training and inference GPU | ml.g4dn.xlarge (default GPU notebook) | Training Compiler tested on G4dn and G5 |
ml.trn1 | Training on Trainium | ml.trn1.* (up to 16 devices) | PyTorch estimator; torchrun supported |
ml.m4 / ml.m5 / ml.c4 / ml.c5 / ml.t3 | CPU training and general | ml.m4.xlarge, ml.c4.xlarge, ml.t3.medium | Free tier: 50 h of m4/m5.xlarge training |
ml.inf1 / ml.inf2 | Inference only (Inferentia) | ml.inf2 (deployment) | Not a training family: a classic distractor |
3.2 The GPU hardware AWS publishes
Instance | vCPU | Memory | GPU | Total GPU memory | Network |
|---|---|---|---|---|---|
ml.p5.48xlarge | 192 | 2 TiB | 8 Γ H100 | 640 GB (80/GPU) | 3,200 Gbps EFAv2 |
ml.p4d.24xlarge | 96 | 1,152 GB | 8 Γ A100 | 320 GB (40/GPU) | 400 Gbps ENA + EFA |
ml.p4de.24xlarge | 96 | 1,152 GB | 8 Γ A100 | 640 GB (80/GPU) | 400 Gbps ENA + EFA |
ml.p3.16xlarge | 64 | 488 GiB | 8 Γ V100 | 128 GB (16/GPU) | 25 Gbps NVLink |
ml.p3.8xlarge | 32 | 244 GiB | 4 Γ V100 | 64 GB | 10 Gbps NVLink |
ml.p3.2xlarge | 8 | 61 GiB | 1 Γ V100 | 16 GB | up to 10 Gbps |
ml.p3dn.24xlarge | 96 | 768 GiB | 8 Γ V100 | 256 GB (32/GPU) | 100 Gbps |
3.3 Two sizing rules that decide your bill
Rule 1: scale the instance size before you add instances. AWS's distributed-training guidance is explicit: a single ml.p3.16xlarge beats two ml.p3.8xlarge for the same 8 GPUs, because you pay for one interconnect instead of a network hop. Adding instances is what you do when one machine cannot hold the model or the data.
Rule 2: cluster size = instances Γ GPUs. Two ml.p3.16xlarge nodes give you a 16-GPU cluster, not 8. Every parallelism degree, batch-size calculation and communication cost in section 4 is derived from that product.
Worked example 2: distributed sizing (section 12, Example 2). ml.p3.16xlarge Γ 2 = 8 GPUs per node β cluster size 16. AWS's published reference for a 70B-parameter LLM is 32 Γ ml.p4d.24xlarge = 256 GPUs, with sharded-data-parallel degree 256 and batch size 2; a 175B model needs 64 Γ ml.p4d.24xlarge, while a 7B model fits on 1 Γ ml.p4d.24xlarge.
- π Did you know?
ml.p5.48xlargeships 8 Γ H100 with 640 GB of total GPU memory and 3,200 Gbps of EFAv2 networking: more network bandwidth than most racks had a decade ago, and the reason multi-node training on that family is bandwidth-bound rather than compute-bound. It reached general availability on 4 August 2023, initially inus-east-1andus-west-2.
4. Distributed training: data parallelism vs. model parallelism
4.1 The one distinction the exam wants
Strategy | What is split | When to use it | Mechanism |
|---|---|---|---|
Data parallelism | The data: every GPU holds a full model replica, sees a different batch | Model fits on one GPU; you want throughput | Gradients are synchronized after each step (AllReduce) |
Model parallelism | The model; it is partitioned across GPUs | The model does not fit in one GPU's memory | Tensor / pipeline / expert partitioning plus activation checkpointing |
The exam phrasing is usually a symptom: "the model does not fit in a single GPU's memory, but the dataset is modest" β model parallelism. The mirror image: "the model trains fine on one GPU but the dataset is enormous" β data parallelism.
4.2 The libraries AWS names
Library | What it does | Notes |
|---|---|---|
SMDDP (SageMaker Distributed Data Parallel) | AllReduce / AllGather collectives tuned for AWS networks | Backend for PyTorch DDP/FSDP and DeepSpeed |
SMP v2 (SageMaker Distributed Model Parallel) | Sharded data plus tensor, pipeline and expert parallelism; activation checkpointing and offloading | The path for models that do not fit on one device |
Horovod, torchrun, MPI, parameter server | Framework-level alternatives | Still documented; not AWS-specific |
For large multi-node jobs, AWS's guidance converges on the same stack every time: EFA-enabled GPUs, ideally ml.p4d/ml.p4de (A100) or newer, plus Amazon FSx for Lustre for the dataset. EFA matters because it bypasses the OS network stack; FSx matters because a thousand small files read over S3 will starve 256 GPUs.
Worked example 3: how much model fits where (section 12, Example 3). AWS's published references: Llama 2 7B β 1 Γ ml.p4d.24xlarge; Llama 2 70B β 32 Γ ml.p4d.24xlarge; 175B β 64 Γ; GPT-2 10B β 16 Γ. Read them as a rule of thumb: parameter count, not dataset size, drives the instance count once you cross single-GPU capacity.
5. Automatic Model Tuning: what a tuning job does
5.1 The idea in one sentence
Automatic Model Tuning (AMT) runs many training jobs over the hyperparameter ranges you supply and keeps the one that performs best on your objective metric. You define ranges; SageMaker runs the search; you get the best trial back.
The exam calls this "hyperparameter tuning or model optimization" and it is squarely inside Task 1.3.
5.2 The tuning-job flow
5.3 Ranges, scaling and the objective metric
Hyperparameter ranges are typed and scaled. Auto, Linear, Logarithmic and ReverseLogarithmic are the four scaling options, and each has a domain rule worth knowing because it is a free correctness check on the exam:
Scale | Use it for | Domain rule |
|---|---|---|
Auto | Default when you have no reason to choose | Any valid range |
Linear | Parameters whose effect is proportional (batch size, drop-out in a narrow band) | Any valid range |
Logarithmic | Learning rate, momentum: values spanning orders of magnitude | Value must be > 0 |
ReverseLogarithmic | Parameters that cluster near the top of the range | 0 β€ x < 1 |
TrainingJobEarlyStoppingType is OFF by default and can be set to AUTO to stop trials that are clearly not going to win. Warm start reuses the parent trials of a previous tuning job, which cuts both cost and wall-clock time when you extend a search rather than restart it.
5.4 The limits you should be able to recite
Resource | Default | Increase to |
|---|---|---|
Concurrent tuning jobs (account) | 100 | : |
Hyperparameters per tuning job | 30 | : (fewer is faster) |
Metrics per tuning job | 20 | : |
Parallel training jobs per tuning job | 10 | 100 |
Training jobs per tuning job (Bayesian / Hyperband / Grid) | 750 | : |
Training jobs per tuning job (Random) | 750 | 10,000 |
Maximum tuning-job run time | 30 days | : |
Values per categorical parameter | 30 | : |
Two consequences follow immediately. First, AWS advises keeping the hyperparameter count well under the 30 cap: each extra dimension dilutes the search. Second, RandomSeed makes a Random or Hyperband search up to 100% reproducible, which is the mechanism behind the "reproduce identical combinations" exam item.
Worked example 4: tuning budget and quota arithmetic (section 12, Example 4). MaxNumberOfTrainingJobs = 20, one hour each on ml.g4dn.12xlarge at AWS's published $4.89/h β 20 Γ $4.89 = $97.80. With MaxParallelTrainingJobs = 10 you run 2 waves β 2 hours instead of 20. Pushing to 100 jobs costs $489 with no guarantee of better accuracy. Separately, AWS's own quota example: 10 tuning jobs Γ 100 training jobs Γ 20 concurrent on ml.m4.xlarge passes the 100-concurrent-tuning and 750-job limits, but needs a raise for 20 concurrent training jobs (default 10) and 200 ml.m4.xlarge instances (default 20).
- π Did you know? A SageMaker tuning job is not a separate compute product; it is an orchestrator that creates ordinary training jobs and watches their CloudWatch metrics. That is why tuning-job quotas are expressed both in tuning jobs (100 concurrent) and in training jobs (10 parallel, 750 total): you are metered on the same instance-seconds either way.
6. Tuning strategies: Grid vs. Random vs. Bayesian vs. Hyperband
This is the comparison the exam asks you to make under time pressure. Learn the row that differs, not the whole table.
6.1 The full comparison
Dimension | Bayesian (SDK default) | Random | Grid | Hyperband |
|---|---|---|---|---|
How it picks | Regression over prior trials | Random draws, ignores prior results | Every distinct categorical combination | Multi-fidelity: reallocates epochs, stops weak jobs |
Parallelism | Low: sequential, "cannot massively scale" | Maximum (independent jobs) | Moderate (exhaustive sweep) | Many parallel jobs |
Parameter types | int / continuous / categorical | int / continuous / categorical | categorical only | As the algorithm allows |
Jobs allowed | 750 (fixed) | 750 β 10,000 | Auto-computed = number of combinations | 750 (fixed) |
Reproducibility | Seed improves it | Same seed β up to 100% | Identical by design | Same seed β up to 100% |
Algorithm constraint | Any | Any | Any (with categorical ranges) | Iterative only: XGBoost and RCF yes; trees and k-NN no |
Best when | Limited budget, learning between runs | Large parallel search, time-boxed | Audits, even coverage, re-runs | Long iterative deep-learning jobs |
AWS-cited edge | Best use of a small budget | "Largest number of parallel jobs" | Determinism | Up to 3Γ faster than Bayesian (AWS claim) |
6.2 Grid: deterministic, categorical, combinatorial
Grid enumerates every distinct combination of the categorical values you give it, and SageMaker computes the job count automatically; you should set MaxNumberOfTrainingJobs to that number. It is the strategy for reproducing results and for even coverage of a search space.
Worked example 5: Grid job count (section 12, Example 5). Two categorical parameters with 5 and 4 values β 5 Γ 4 = 20 combinations β SageMaker creates 20 training jobs. Add a third parameter with 3 values β 60 jobs. Grid explodes combinatorially, which is exactly why AWS steers large search spaces to Bayesian or Random.
6.3 Random: maximum parallelism, zero learning
Because Random ignores prior results, every trial is independent and the strategy supports the largest number of parallel training jobs of any strategy. It is also the only strategy whose job cap can be raised from 750 to 10,000, and with a fixed RandomSeed it reproduces the identical sequence of configurations.
6.4 Bayesian: the SDK default, and a sequential optimizer
Bayesian builds a regression model over the trials completed so far and proposes the next configuration where improvement looks most likely. That makes it the best use of a small budget and the default in the SageMaker SDK's HyperparameterTuner, but it also makes it sequential: trial n+1 depends on trial n, so AWS states it cannot massively scale in parallel.
6.5 Hyperband: multi-fidelity, iterative algorithms only
Hyperband reallocates epochs between successive rounds, stops weak jobs early and runs many jobs in parallel. The hard constraint is the algorithm: it needs iterative algorithms that can be meaningfully judged part-way through. XGBoost and Random Cut Forest qualify; decision trees and k-NN do not. AWS markets it as up to 3Γ faster than Bayesian; that figure comes from an AWS what-is page, so cite it as an AWS claim rather than a reproduced benchmark.
Strategy selection, reduced to four sentences.
- Must reproduce the identical set of combinations on every re-run, categorical only β Grid.
- Need the largest number of independent parallel jobs β Random.
- Small budget, mixed int/continuous/categorical ranges, default path β Bayesian.
- Long deep-learning jobs on an iterative algorithm and you need speed β Hyperband, but never Hyperband for k-NN or a tree model.
7. Managed Spot Training and checkpoints
7.1 What it is
Managed Spot Training runs your training job on EC2 Spot capacity with SageMaker managing the interruptions for you. AWS launched it on 26 August 2019 and has published two different savings figures for it ever since: both are AWS-published, and both appear in exam material:
Source | Claim |
|---|---|
SageMaker developer guide ( model-managed-spot-training) | Savings up to 90% |
CreateTrainingJob API reference | Savings up to 80% |
AWS News Blog launch demo (2019) | 837 billable of 2,423 seconds β 65% actual |
AWS ML Blog customer story (2020) | 70% EC2 cost cut, +40% daily jobs completed |
7.2 The official formula, and the only calculation you need
Worked example 6: Spot savings math (section 12, Example 6). A job runs for 500 seconds and is billed for 100 seconds:
The AWS launch blog's demonstration job ran 2,423 seconds and was billed for 837 β . Compute it per job; never assume one number.
Worked example 7, On-Demand vs. Spot for one GPU run (section 12, Example 7). AWS-published ml.g4dn.12xlarge = $4.89/h. Two hours On-Demand = $9.78. If only 36 of 120 wall-clock minutes are billable on Spot: $2.93, about 70% saved, matching the Cinnamon AI customer story.
7.3 The two configuration rules
Rule | Value | Why |
|---|---|---|
MaxWaitTimeInSeconds vs. MaxRuntimeInSeconds | Wait β₯ runtime | AWS's hard requirement; otherwise Spot cannot be used |
Non-checkpointing built-in / Marketplace algorithms | MaxWaitTimeInSeconds capped at 3,600 s | Without checkpoints an interrupted job must restart, so AWS caps the wait |
Checkpointing algorithms | No 3,600 s cap: AWS's own demo used 48 hours | Resume makes long waits worthwhile |
Graceful shutdown | SIGTERM, then 120 s | Your checkpoint code must finish inside that window |
Worked example 8, Spot configuration (section 12, Example 8). A 6-hour checkpointing job: MaxRuntimeInSeconds = 21,600 and MaxWaitTimeInSeconds larger than that (AWS's demo used 48 h = 172,800 s), plus CheckpointConfig.S3Uri. Run the same 6-hour job without checkpointing and the wait cap is 3,600 s, so you either add checkpointing or run On-Demand.
7.4 Checkpoints: resume, not restart
Property | Verified behavior |
|---|---|
Local path | /opt/ml/checkpoints |
Persisted to | CheckpointConfig.S3Uri |
Restored | At job start: the job resumes, it does not restart |
Files copied to S3 after the job started | Not pulled back in on resume |
Deletes locally | Propagate to S3 |
Bucket location | Must be in the same Region as the job |
Resume in the SDK | A new estimator pointed at the same checkpoint_s3_uri |
7.5 What an interrupted job actually looks like
The documented state machine is Starting β Downloading β Training β Uploading, with Interrupted β Starting β β¦ loops in the middle and a terminal Stopped: MaxWaitTimeExceeded when the wait budget runs out before the job finishes.
How to answer
Fill-in-the-blank exercise with 3 blanks. Type the missing words, then check your answer.
Complete the official Managed Spot Training savings formula:
Savings (%) = (1 - blank / blank) x 100. A job with 100 billable seconds out of 500 training seconds saved blank%.
Word Bank, drag words into the blanks above:
8. Observing the run: metrics, Debugger and Experiments
8.1 Where the numbers go
Training metrics are published to Amazon CloudWatch under the namespace /aws/sagemaker/TrainingJobs, and the SageMaker console's Training jobs β Monitor view graphs them. This is the answer whenever a question asks how you know whether a job is converging, diverging or thrashing the GPU.
8.2 Debugger: tensors, rules and actions
Capability | What it watches | What it can do |
|---|---|---|
Tensor collection | Gradients, activations, parameters | Detect vanishing/exploding gradients, loss spikes |
System metrics | GPU utilization, memory, I/O | Spot a starved input pipeline |
Built-in rules | Pre-trained heuristics | Trigger actions: StopTraining(), Email(), SMS() |
Custom rules | Your own Python | Billed for instance time |
Pricing | Built-in rules free; custom rules bill instance time | : |
Status (2026) | No longer open to new customers | Existing customers keep access |
So the exam item "automatically stop the training job when a vanishing-gradient rule fires and email the team" resolves to Debugger built-in actions: with the caveat that Debugger is closed to new customers.
8.3 SageMaker Experiments
Experiments tracks every trial and run, the hyperparameters used, the metrics produced, the artifacts written, so you can compare runs side by side. Debugger output can be routed to TensorBoard for visualization. Experiments is the "which of my 20 runs was best, and with what settings" answer; Debugger is the "what is happening inside this run right now" answer.
Availability traps in the monitoring stack.
- Debugger is closed to new customers. Existing accounts keep it; a brand-new account cannot start using it. Built-in rules are free, custom rules bill instance time.
- Experiments (Classic) is tied to Studio Classic and AWS points new work at managed MLflow. Do not build a new architecture on Experiments Classic without re-checking the current documentation.
- Metrics in
/aws/sagemaker/TrainingJobsare available regardless: CloudWatch is the always-correct answer for "where do training metrics go".
9. Paths that skip the training loop entirely
9.1 JumpStart: pre-trained models you can fine-tune
JumpStart is SageMaker's hub of pre-trained open-source models drawn from TensorFlow Hub, PyTorch Hub, Hugging Face and GluonCV. Two numbers matter for the exam: it covers 15 problem types, of which 8 are trainable, meaning you can do incremental training / fine-tuning on them, and it integrates with Automatic Model Tuning.
9.2 Autopilot: AutoML for tabular (and, via v2, more)
Stage | What Autopilot does |
|---|---|
1 | Analysis of the dataset |
2 | Problem-type classification |
3 | Algorithm shortlist: gradient-boosted decision trees, feedforward deep neural networks, logistic regression |
4 | Preprocessing and feature selection |
5 | Hyperparameter optimization (HPO) |
6 | Train, rank, optionally auto-deploy plus a Clarify report |
Scope: tabular data up to hundreds of gigabytes; text, image and forecasting tasks plus LLM fine-tuning are handled through the AutoML v2 API. The UI moved into SageMaker Canvas on 30 November 2023, so no-code users go to Canvas and Autopilot remains the API path.
9.3 Choosing a starting point
You have | Best first move |
|---|---|
No model, a public problem type, want a baseline fast | JumpStart |
A labelled tabular dataset, no ML engineer | SageMaker Canvas (Autopilot under the hood) |
A labelled dataset and you want the API | Autopilot / AutoML v2 API |
A custom algorithm and your own container | Training job |
A search space around a working training job | Automatic Model Tuning |
Budget for many attempts at low cost | Managed Spot Training + checkpoints |
- π Did you know? Autopilot's algorithm shortlist is deliberately small, gradient-boosted trees, a feedforward DNN and logistic regression, because AutoML is a selection and tuning engine, not a research lab. The HPO stage it runs internally is the same Automatic Model Tuning machinery described in section 5, which is why the two share quota language.
10. Comparative verdict: strategies and managed vs. DIY
10.1 Managed training vs. building it yourself
Dimension | Managed (SageMaker training jobs, AMT, Spot) | DIY (EC2 / ECS / EKS self-managed) |
|---|---|---|
Infrastructure | Instance type, count, volume: no OS work | OS, drivers, CUDA, framework images, patching |
Interruptions | Managed Spot with checkpoint resume | You build the preemption handler |
Tuning | AMT with four strategies, warm start, early stopping | Your own sweep script and scheduler |
Metrics | CloudWatch /aws/sagemaker/TrainingJobs out of the box | You instrument and aggregate |
Debugger / Experiments | Built-in (Debugger closed to new customers) | Your own profilers and tracking store |
Data staging | File / FastFile / Pipe, EFS, FSx for Lustre | You wire the storage layer |
Billing | Per second, no minimum, Savings Plans up to 64% | Per second on the underlying instance + your labor |
Best when | Speed, governance, and AWS-native integration matter | Hardware/driver control SageMaker cannot expose |
10.2 Tuning strategy at a glance
Requirement | Strategy |
|---|---|
Reproduce the identical combinations every re-run, categorical only | Grid |
Largest number of independent parallel jobs | Random |
Best use of a small budget; SDK default | Bayesian |
Long iterative deep-learning jobs, speed matters | Hyperband |
Comparative Verdict
- Grid vs. Random vs. Bayesian: Grid is the only strategy that guarantees an identical, evenly covered set of combinations on every re-run, and the only one restricted to categorical parameters, with its job count computed automatically as the number of distinct combinations (5 Γ 4 = 20 jobs; add a third parameter with 3 values and you are at 60). Random ignores prior results, which is precisely why AWS calls it the strategy that runs the largest number of parallel jobs, and why it is the only one whose cap can be raised from 750 to 10,000, with a fixed
RandomSeedit is up to 100% reproducible. Bayesian is the SDK default and the best use of a small budget, but it is sequential, a regression over prior trials, so AWS states it "cannot massively scale". Pick Grid for audits and determinism, Random for breadth and wall-clock speed, Bayesian when every training hour is expensive and the search space mixes int, continuous and categorical ranges. Hyperband sits outside this triangle: it is multi-fidelity and needs an iterative algorithm, so it is the speed play for XGBoost/RCF and is off the table for trees and k-NN. - Managed training vs. DIY: managed training wins on time to first result, interruption handling, quota and metrics plumbing, and AWS-native integration, and it costs the same per instance-second as the EC2 underneath it, you are not paying a premium for the orchestration, you are not paying for idle, and per-second billing with no minimum means a 90-second job costs 90 seconds. Choose DIY (EC2/ECS/EKS) only when you need control SageMaker does not expose: kernel-level tuning, specialty drivers, a non-supported framework build, or an existing Kubernetes estate you must not fork. A notebook with a shell script is not an alternative in either column, it cannot prove which hyperparameters produced a given model, cannot resume after an interruption, and cannot be re-run by anyone else. The exam's default answer is the managed path unless a question names a concrete control requirement.
11. Limits, quotas and cost evidence in one place
11.1 Published limits and benchmarks
Item | Number | Source |
|---|---|---|
Input modes (API enum) | Pipe, File (default), FastFile | Developer guide |
File-mode guidance | < 50 to 100 GB; 50 GB β 5 min at 100 MB shards | Best-practices guide |
FastFile guidance | Files > 50 MB (ideal > 150 MB); no augmented manifest | Developer guide |
AMT hyperparameters / metrics / categorical values | 30 / 20 / 30 | AMT limits |
AMT parallel tuning jobs / parallel training jobs | 100 / 10 β 100 | AMT limits |
AMT training jobs per tuning job | 750 (Random β 10,000) | AMT limits |
AMT maximum run time | 30 days | AMT limits |
Hyperband vs. Bayesian | Up to 3Γ faster (AWS claim) | AWS what-is page |
Spot savings claim | 90% (guide) / 80% (API) | Developer guide / API reference |
Non-checkpointing Spot wait cap | 3,600 s | Developer guide |
Model-parallel reference | Llama 2 70B β 32 Γ ml.p4d.24xlarge; 175B β 64 Γ | Best-practices guide |
Training free tier | 50 h of m4.xlarge/m5.xlarge, first 2 months | Pricing page |
Published price datapoint | ml.g4dn.12xlarge $4.89/h | AWS Canvas pricing page |
Training job runtime | default 1 day, max 28 days, 30 days total | API reference |
Graceful stop | SIGTERM + 120 s | Developer guide |
11.2 Cost evidence
Evidence | Number |
|---|---|
Savings formula | |
Launch claim (2019) | "up to 90%" |
Launch demo job (2019) | 837 / 2,423 s β 65% |
Customer outcome (2020) | 70% EC2 cost cut, +40% daily jobs |
re:Invent cost deck (2024) | Spot up to 90%; Savings Plans up to 64%; instance-family choice 25 to 35% |
Billing granularity | Per second for partial instance-hours, no minimum, no upfront |
11.3 2025 to 2026 Updates
Every number in sections 1 to 10 comes from AWS pages checked on 6 October 2026. What actually moved in 2025 to 2026 is mostly availability, not arithmetic: the product was renamed, a whole band of SageMaker features around the training loop was placed into maintenance, and the exam guide was revised. Availability changes matter on the exam because a feature that is closed to new customers can be the wrong answer even when the developer guide still documents it in full.
Update | Date | What AWS published | Why it matters for training / tuning |
|---|---|---|---|
"Amazon SageMaker" β Amazon SageMaker AI | 3 Dec 2024 | "the current Amazon SageMaker has been renamed to Amazon SageMaker AI", announced together with next-gen SageMaker (Unified Studio, Catalog, Lakehouse, zero-ETL) | Exam prose still says "SageMaker"; the product name is now SageMaker AI |
Model Monitor, Clarify, Ground Truth, A2I, Debugger, Role Manager, Geospatial, Studio Lab, Mechanical Turk, Profiler closed to new customers | 30 Jul 2026 | SageMaker AI End of Support Notice: "no longer open to new customers starting July 30, 2026" | State is maintenance, not shutdown: existing accounts keep the feature, no new features are planned |
SageMaker Ground Truth Plus end of support | 30 Jun 2026 | End-of-support announcement | Ground Truth itself remains for labelling |
SageMaker Mechanical Turk end of support | 30 Sep 2026 (What's New post: 29 Sep) | Two AWS pages disagree by one day | Ground Truth or a third-party labeller |
SageMaker Profiler end of support | 30 Jun 2027 | Planned sunset | Do not start new profiling work on it |
Model Monitor replacement guidance | 30 Jul 2026 | CloudWatch metrics and anomaly detection, Amazon Evidently, EventBridge + Lambda, SHAP | CloudWatch stays the metrics answer (section 8) |
Clarify replacement guidance | 30 Jul 2026 | Amazon Bedrock Model Evaluations, SHAP, Bedrock Guardrails | Bias and evaluation questions increasingly point at Bedrock |
Amazon Forecast closed to new customers | 29 Jul 2024 | Migrate existing usage to SageMaker Canvas | Reinforces section 9: Canvas is the no-code destination |
AIF-C01 exam guide v1.1 | 30 Apr 2026 (v1.0: 26 Mar 2026) | Seven new objectives: 1.2.6 traditional ML vs. FM, 2.1.4 token-based pricing, 2.1.5 context engineering, 2.1.6 agentic AI / MCP, 3.2.5 Prompt Management, 3.4.5 business metrics, 5.1.5 hallucination detection; SageMaker JumpStart added in scope, Amazon MemoryDB removed | Task 1.3 ("performing hyperparameter tuning or model optimization") and Domain 1's 20% weight are unchanged; format stays 65 questions, 90 minutes, pass 700/1000 |
AWS's own lifecycle vocabulary (AWS General Reference, Service lifecycle) is worth learning because it tells you what "closed" actually means: Maintenance = no new customers, no new features, still supported; Sunset = a planned end of operations, typically about 12 months out; Full Shutdown = removed from the portfolio. Every SageMaker item on the 30 July 2026 notice sits in the first state, not the third; which is exactly why this lesson keeps Debugger in section 8 with a date attached instead of deleting it.
- π Did you know? AWS states that exam-guide changes appear on the live exam about one month after publication, so the v1.1 objectives published 30 April 2026 became examinable from roughly late May 2026. That same revision put SageMaker JumpStart on the in-scope service list (section 9.1 of this lesson), dropped Amazon MemoryDB, and left the exam's arithmetic untouched: 65 questions (50 scored + 15 unscored), 90 minutes, USD 100, pass 700/1000, three-year validity, with domains weighted 20 / 24 / 28 / 14 / 14.
12. Worked AWS examples with numbers
Example 1: File-mode sizing. 80 GB dataset, File mode β volume β₯ 80 GB plus output headroom. At AWS's documented rate (50 GB β 5 min at 100 MB shards) the copy takes β 8 minutes, about 21% of a 30-minute job, before the first training step. Fix: FastFile, or distribution = ShardedByS3Key.
Example 2: Distributed sizing. ml.p3.16xlarge Γ 2 β 8 GPUs/node β cluster size 16. AWS guidance: try the larger single node first (1 Γ 16xlarge beats 2 Γ 8xlarge for the same 8 GPUs). Reference scale: 7B β 1 Γ ml.p4d.24xlarge, 70B β 32 Γ (256 GPUs, sharded-data-parallel degree 256, batch 2), 175B β 64 Γ.
Example 3, Model fit drives instance count. Parameter count, not dataset size, decides the node count once you cross single-GPU memory: 8 Γ A100 40 GB = 320 GB on one ml.p4d.24xlarge, 8 Γ H100 = 640 GB on one ml.p5.48xlarge. If the model plus optimizer state exceeds the device, no amount of data parallelism helps, you need model parallelism (SMP v2).
Example 4: Tuning budget and quota arithmetic. MaxNumberOfTrainingJobs = 20 Γ 1 h Γ ml.g4dn.12xlarge @ $4.89/h = $97.80; with MaxParallelTrainingJobs = 10 β 2 waves β 2 h instead of 20 h. At 100 jobs the bill is $489 with no accuracy guarantee. AWS's quota example: 10 tuning jobs Γ 100 training jobs Γ 20 concurrent β passes the 100 tuning-job and 750 training-job limits, but needs raises for 20 concurrent training jobs (default 10) and 200 ml.m4.xlarge instances (default 20).
Example 5: Grid job count. 5 values Γ 4 values = 20 jobs. Add a third parameter with 3 values β 60 jobs. Grid grows multiplicatively; that is the argument for Bayesian or Random on any non-trivial space.
Example 6, Spot savings. 500 s training, 100 s billed β . Launch blog job: 837 / 2,423 β β 65%. The same job at a 90% billable fraction would save only 10%, savings is a per-job measurement, never a fixed discount.
Example 7: On-Demand vs. Spot. ml.g4dn.12xlarge at AWS's published $4.89/h: 2 h On-Demand = $9.78. Spot with 36 billable minutes of 120 β $2.93, i.e. β 70% saved.
Example 8: Spot + checkpoint configuration. 6-hour job: MaxRuntimeInSeconds = 21,600, MaxWaitTimeInSeconds greater (AWS's demo used 48 h), plus CheckpointConfig.S3Uri and code writing to /opt/ml/checkpoints. Same job with a built-in algorithm and no checkpointing β wait capped at 3,600 s β run On-Demand instead.
- π Did you know? SageMaker bills training by the second with no minimum, so the cheapest failed experiment is a fast one. That is the real argument behind
TrainingJobEarlyStoppingType = AUTO: stopping a hopeless trial at minute 12 instead of minute 60 is a 5/6 reduction in that trial's bill, and with up to 100 parallel training jobs per tuning job those savings multiply across the whole search.
13. Conflicting, unverified and non-examinable facts
Separate what AWS documents from what AWS markets. Keep this table out of your memorization set except where it is marked "use for the exam".
Claim | What the sources say | How to handle it |
|---|---|---|
Spot savings | Developer guide "up to 90%" vs. CreateTrainingJob API "up to 80%" | Both AWS-published; expect "up to 80 to 90%", and always compute the real number with the formula |
Spot discount per instance / Region | Varies by AZ and time; AWS publishes only the ranges + formula | Never memorize a per-instance discount |
Maximum tuning run time | Limits page says 30 days; API_ResourceLimits shows MaxRuntimeInSeconds up to 15,768,000 s (β 182.5 days) | Use 30 days for the exam |
Grid in the console | One console walkthrough lists only "random, Bayesian, or Hyperband"; CLI/API accept Grid | Grid is valid: API/CLI are normative |
Hyperband "3Γ faster" | From an AWS what-is marketing page, not the developer-guide chapter | Cite as an AWS claim, not a benchmark |
ml.p3.2xlarge hourly price | Third-party trackers quote $3.825/h: unconfirmed | Do not memorize; pricing pages render client-side |
ml.g4dn.12xlarge = $4.89/h | AWS-published on the Canvas pricing page | Usable in calculations, but may change |
JumpStart model count | Models delisted 13 Mar 2026; no fixed count verified | Use 15 problem types / 8 trainable (docs table) and expect it to drift |
"Automatic Model Training" as a product | AWS's formal name is Automatic Model Tuning (AMT); "automatic model training" is prose in Autopilot docs | There is no such service |
Experiments (Classic) status | Studio Classic-only; AWS points new work to managed MLflow | Re-check before designing around it |
ml.g6 / ml.p6e Region matrix | Names appear in pricing and What's New pages; full Region list not retrieved | Do not assert Regions |
Free-tier terms (50 h training) | "First 2 months" promotion on the pricing page | Confirm before quoting |
Primary sources for this lesson: the SageMaker developer guide pages model-access-training-data, model-access-training-data-best-practices, automatic-model-tuning{,-how-it-works,-considerations,-limits}, multiple-algorithm-hpo-create-tuning-jobs, model-managed-spot-training{,-status}, model-checkpoints{,-resume}, distributed-training{,-get-started,-scenarios}, model-parallel-intro-v2, model-parallel-best-practices-v2, train-debugger, debugger-debug-training-jobs, debugger-built-in-actions, experiments-mlops, view-train-metrics, cmn-info-instance-types, jumpstart-models, studio-jumpstart, use-auto-ml, autopilot-automate-model-development; the API reference API_CreateTrainingJob, API_AlgorithmSpecification, API_Channel, API_HyperParameterTuningJobConfig, API_ResourceLimits, API_StoppingCondition; boto3 create_training_job / describe_training_job; the SageMaker SDK HyperparameterTuner; the AIF-C01 Exam Guide; and the SageMaker pricing pages.
14. Real-World Case Studies
AWS publishes few customer stories about training as such, the billable moment is rarely photogenic, so these four are the training-and-tuning half of the AWS case-study record: each one names its services, its numbers and its source, and each maps back onto a section above. Read every percentage as a customer- or AWS-claimed, unaudited figure, and read "up to" as a ceiling.
14.1 The four stories
HAYAT HOLDING: Automatic Model Tuning on a live production line (manufacturing, 2023). The MDF-panel maker had built its own ML environments and described them as "time-consuming and cumbersome". The published architecture runs 194 sensors over OPC-UA into an AWS IoT Greengrass SiteWise Edge Gateway, then SageMaker Model Training + Automatic Model Tuning + Model Deployment, with SageMaker Edge Manager serving the resulting model on the device. Reported outcome: $300,000 per year saved, alongside higher quality and optimised output. This is section 5 in production: manual hyperparameter sweeps replaced by AMT across 194 inputs: with the deployment target an edge device rather than an endpoint. Source: AWS Machine Learning Blog, blogs/machine-learning/hayat-holding-uses-amazon-sagemaker-to-increase-product-quality-and-optimize-manufacturing-output-saving-300000-annually (2023).
RareJob: managed Spot training instead of a queue (EdTech, 2020). Speaking-test scoring (PROGOS) started on a local PC, which allowed one model per developer, then moved to EC2/ECS and still cost too much. The AWS architecture feeds AWS Glue and Amazon Athena into parallel SageMaker managed Spot training jobs. Reported outcome: 25% less training time, more than 10Γ development efficiency, 100 hours per month saved, and scores returned in 2 to 3 minutes. It is section 7 in production: the bottleneck was queueing, not model quality, and Spot plus orchestration turned a serial queue into a fan-out. Source: AWS case study, solutions/case-studies/rare-job-case-study (2020).
Chronomics, the documented DIY-training failure (health-tech, 2022). Four months of in-house custom computer-vision modelling for reading COVID-19 test results never reached target. The team shipped with Amazon Rekognition Custom Labels (AWS AutoML) in 3 to 4 weeks at 96.5% accuracy / 97.9% F1, scored with DetectCustomLabels. The published threshold analysis is the part worth memorising: a confidence threshold of 0.99 β 99.6% of predictions correct with 5% discarded, and 0.999 β 99.87% with 27% discarded. The lesson is tier selection (section 9): for a narrow vision task, managed AutoML beat a hand-built training loop, and somebody still has to decide what happens to the discarded 5%, the human path AWS documents for that tail is Amazon A2I. Source: AWS Machine Learning Blog, blogs/machine-learning/chronomics-detects-covid-19-test-results-with-amazon-rekognition-custom-labels (2022).
Forethought, what DIY infrastructure costs a three-person team (SaaS customer support). SupportGPT handles 30 million interactions per year with several models per customer, and the 3-person team could not run both models and Kubernetes, memory exceptions and outages drove them off their own Amazon EKS. They migrated to SageMaker multi-model endpoints and SageMaker Serverless Inference: 66% lower cost on multi-model endpoints with better latency, approximately 80% lower on Serverless (headline: up to 80%), and more than 80% of GPU inference now running on SageMaker. The tie-in to this lesson is the section 10 verdict: every dollar saved on serving is a dollar back into the training and tuning budget, and self-managed infrastructure is the hidden tax both columns of that table warn about. Source: AWS case study, solutions/case-studies/forethought-technologies-case-study.
14.2 Services, numbers and sources at a glance
Case (year) | AWS services named in the source | Headline numbers | Source |
|---|---|---|---|
HAYAT HOLDING (2023) | SageMaker Training, Automatic Model Tuning, Model Deployment, Edge Manager; AWS IoT Greengrass (SiteWise Edge Gateway) | 194 sensors; $300,000/yr saved | ML Blog hayat-holding-uses-amazon-sagemaker-β¦-saving-300000-annually |
RareJob (2020) | SageMaker managed Spot training, AWS Glue, Amazon Athena | β25% training time; >10Γ dev efficiency; 100 h/month; scores in 2 to 3 min | Case study rare-job-case-study |
Chronomics (2022) | Rekognition Custom Labels (AutoML), DetectCustomLabels | 4 months β 3 to 4 weeks; 96.5% / 97.9% F1; 0.99 β 99.6% (5% discarded) | ML Blog chronomics-detects-covid-19-test-results-β¦ |
Forethought (year not published) | SageMaker multi-model endpoints, Serverless Inference | β66% MME; β β80% Serverless; >80% of GPU inference | Case study forethought-technologies-case-study |
- π Did you know? The sharpest "before" in the whole case-study record belongs to Sun Finance (fintech, ML Blog 2026): its first prototype sent ID photos straight to Claude Sonnet 4 and scored 61.8% overall, 43% on the ID number, and was rejected. Separating the jobs (Amazon Textract for OCR, Rekognition as fallback and face masking, the model only for structuring, plus validation rules on 585 images) took the same pipeline to 85% and then 90.80% accuracy, β91% cost per document and 20 hours β under 5 seconds. The training loop was never the problem; the evaluation was.
14.3 What each case proves against this lesson
Case | Before | After | Lesson section it proves |
|---|---|---|---|
HAYAT HOLDING | Self-built ML environments, manual sweeps | AMT tuning jobs feeding an edge deployment | Β§5: AMT replaces manual hyperparameter sweeps |
RareJob | One model per developer on a local PC | Parallel managed Spot jobs with Glue/Athena | Β§7: Spot savings and checkpointed fan-out |
Chronomics | 4 months of in-house CV, below target | 3 to 4 weeks of managed AutoML | Β§9: pick the starting point before you build |
Forethought | Own EKS cluster, 3-person team | Multi-model endpoints + Serverless Inference | Β§10: managed vs. DIY, including on the serving side |
How to read a customer case study.
- All of these figures are customer- or AWS-claimed and unaudited. Only Sun Finance (n = 585 images) and Adobe (its own test set) disclose a sample basis, and a year chip on the page is rendered client-side: treat any year as indicative.
- "Up to" is a ceiling. Forethought's up to β80% is the best case; the two printed figures are β66% and β β80%. Never quote a ceiling as an expected saving, in either direction.
- The only published outcome rate is 65%: AWS reports that 65% of Generative AI Innovation Center projects reached production in 2025, out of more than 1,000 implementations, so plan for the other 35%, and note that AWS never claims 100%.
Practice Questions
How to answer
Multiple-choice question with 4 options. Select one option, then choose Check Answer.
A training job begins only after a long data-transfer phase, and the instance's storage volume must be large enough to hold the entire dataset. Which input mode is in use?
How to answer
Multiple-choice question with 4 options. Select one option, then choose Check Answer.
A 600 GB dataset consists of many small files (under 20 MB each) and is read randomly during training. What do the SageMaker docs recommend?
How to answer
Multiple-choice question with 4 options. Select one option, then choose Check Answer.
A team must reproduce an identical set of hyperparameter combinations on every re-run, using only categorical hyperparameters. Which tuning strategy should be used?
How to answer
Multiple-choice question with 4 options. Select one option, then choose Check Answer.
Which tuning strategy allows the largest number of independent, concurrent training jobs whose results do not influence one another?
How to answer
Multiple-choice question with 4 options. Select one option, then choose Check Answer.
An engineer applies Hyperband to a k-Nearest Neighbors classifier and the tuning job is rejected. Why, and what should be used instead?
How to answer
Multiple-choice question with 4 options. Select one option, then choose Check Answer.
A Managed Spot Training job ran for 500 seconds and was billed for 100 seconds. Using the official AWS formula, what savings did it achieve?
How to answer
Multiple-choice question with 4 options. Select one option, then choose Check Answer.
A 6-hour training job with checkpointing must run on Managed Spot Training. Which configuration is correct?
How to answer
Multiple-choice question with 4 options. Select one option, then choose Check Answer.
A model does not fit in a single GPU's memory, but the training dataset is modest. Which strategy should be used?
How to answer
Multiple-choice question with 4 options. Select one option, then choose Check Answer.
A tuning job runs MaxNumberOfTrainingJobs = 12, each taking 1.5 hours on ml.g4dn.12xlarge at AWS's published rate of $4.89 per hour, with MaxParallelTrainingJobs = 6. What is the maximum compute cost and the minimum wall-clock time?
How to answer
Multiple-choice question with 4 options. Select one option, then choose Check Answer.
A team wants a training job to stop automatically when a Debugger rule detects vanishing gradients, and wants the team emailed at the same moment. Which capability provides both actions?
How to answer
Multiple-choice question with 4 options. Select one option, then choose Check Answer.
A checkpointing training job runs for 4 wall-clock hours on ml.g4dn.12xlarge at AWS's published rate of $4.89 per hour under Managed Spot Training, and only 45 of the 240 minutes are billable. Using the official AWS formula, what savings did the job achieve and what was it charged?
How to answer
Multiple-choice question with 4 options. Select one option, then choose Check Answer.
On 30 July 2026 a brand-new AWS account tries to enable SageMaker Clarify and SageMaker Debugger and cannot. What is the documented status of these two services?
How to answer
Matching exercise with 6 pairs. Match each item on the left with its answer on the right.
Match each tuning requirement to the strategy that satisfies it:
Drag answers from here:
Exam-day traps for this lesson:
- File mode is the default: a long pre-training transfer plus a volume sized to the dataset means File, not Pipe;
- FastFile accepts prefix only: augmented manifest means File mode (or a store such as EFS/FSx), never FastFile;
- Data and checkpoints must be in the job's Region, always;
- Grid is categorical-only; Random gives the most parallel jobs; Bayesian is the sequential SDK default; Hyperband needs an iterative algorithm: k-NN and trees are out;
- Spot:
MaxWaitTimeInSeconds β₯ MaxRuntimeInSeconds, and the 3,600-second wait cap applies only to algorithms without checkpointing; - Spot savings is a measurement, not a discount: compute per job; 90% and 80% are both AWS-published headline ranges;
- Checkpoints live at
/opt/ml/checkpointsand are restored at job start: files copied to S3 after start are not pulled back in; ml.inf1/ml.inf2are inference families, not training families;- Debugger is closed to new customers, and built-in rules are free while custom rules bill instance time;
- AMT limits: 30 hyperparameters, 20 metrics, 30 categorical values, 100 concurrent tuning jobs, 10 β 100 parallel training jobs, 750 jobs (Random β 10,000), 30-day run cap.
Key Takeaways:
- A training job is eight fields, algorithm and
TrainingInputMode,ResourceConfig(type, count,VolumeSizeInGB),StoppingCondition,InputDataConfigchannels,OutputDataConfig,HyperParameters, role and optionalCheckpointConfig, and two runtime numbers (MaxRuntimeInSecondsdefault 1 day, max 28 days; 30 days total) plus theSIGTERM+ 120 s graceful window. - Three input modes, three jobs: File (default: full copy first, volume must fit it, required for incremental training, < 50 to 100 GB), FastFile (stream, prefix only, files > 50 MB), Pipe (FIFO streaming, Gzip, RecordIO, per-epoch shuffle); channels add
s3_data_type,distribution = ShardedByS3Keyand Region locality. - Data parallelism splits the data; model parallelism splits the model. Cluster size = instances Γ GPUs, scale instance size before adding instances, and reach for EFA GPUs (
ml.p4d/ml.p4de) plus FSx for Lustre on large multi-node jobs: Llama 2 70B is AWS's own 32 Γml.p4d.24xlargereference. - AMT strategies differ on one axis each: Grid = deterministic, categorical-only, auto-computed job count; Random = maximum independent parallelism, 750 β 10,000 jobs; Bayesian = sequential SDK default, best small-budget use; Hyperband = multi-fidelity, iterative algorithms only, AWS claims up to 3Γ faster. Limits: 30 / 20 / 30 (hyperparameters / metrics / categorical values), 100 concurrent tuning jobs, 10 β 100 parallel training jobs, 30 days.
- Managed Spot is configuration plus math:
MaxWaitTimeInSeconds β₯ MaxRuntimeInSeconds, a 3,600 s wait cap when there is no checkpointing, checkpoints in/opt/ml/checkpointsβ S3 for resume-not-restart, and savings computed as : 100/500 s = 80%, the 2019 demo = 65%, and the 90% / 80% figures are headline ranges from two different AWS pages. - Observability: training metrics go to CloudWatch
/aws/sagemaker/TrainingJobs; Debugger watches tensors and firesStopTraining()/Email()/SMS()but is closed to new customers (built-in rules free, custom rules billed); Experiments compares trials across runs. - Comparative verdict: pick Grid for reproducibility and even coverage, Random for parallel breadth, Bayesian for a small budget and mixed ranges, Hyperband for long iterative deep-learning jobs; and prefer managed training over DIY unless you need hardware or driver control SageMaker does not expose: the per-second bill is the same, and the orchestration, interruption handling and metrics plumbing are not.