Ultralytics v8.4.70 is out 
Summary
Ultralytics v8.4.70 is a stability and usability release focused on reliability ![]()
The headline fix improves multi-GPU training consistency by correctly synchronizing AMP state across DDP ranks, alongside safer checkpoint loading, a segmentation plotting fix, and several helpful documentation improvements for Ultralytics YOLO and Ultralytics Platform.
If you’re training on multiple GPUs, working with segmentation outputs, or deploying newer YOLO26 workflows, this release is especially worth updating to ![]()
Highlights
Critical fix for DDP AMP synchronization in multi-GPU training
Clearer, safer checkpoint loading errors
Fixed Results.plot()for masks-only segmentation outputs
Improved YOLO26 heatmaps docs with real tracking use cases
Better training docs for save_diroutput control
New Features and Improvements
Multi-GPU training fix
The most important change in v8.4.70 is PR #24810 by @LZ-QWQ, which fixes DDP AMP broadcast state synchronization.
Previously, during distributed multi-GPU training, AMP mixed precision could be disabled on one GPU rank while remaining enabled on others. That mismatch could lead to unstable or confusing behavior. With this fix, all ranks now correctly share the same AMP setting.
This is a big reliability improvement for users training Ultralytics YOLO models across multiple GPUs.
Safer checkpoint loading
PR #24857 by @glenn-jocher improves checkpoint loading by raising clear, user-friendly errors for unsupported formats, including plain state_dict files and some older YOLOv5-style module references.
Instead of cryptic failures like AttributeError or KeyError, users now get much clearer feedback about what went wrong.
Segmentation plotting fix
PR #24635 by @ahmet-f-gumustas fixes an AttributeError in Results.plot() when handling masks-only results.
This makes segmentation workflows more robust, especially for custom result objects or pipelines that don’t include bounding boxes.
Documentation Updates
YOLO26 heatmaps guide refresh
PR #24815 by @raimbekovm rewrites the heatmaps guide with a stronger focus on tracking and video analytics.
The updated docs now better explain practical YOLO26 heatmap use cases like:
- traffic flow analysis
- crowd movement monitoring
- region-based counting
- retail and transportation analytics
save_dir training argument documented
PR #24831 by @raimbekovm adds documentation for the save_dir training argument, making it easier to send training outputs to an exact folder without auto-increment behavior.
Quality-of-life doc and config fixes
A set of smaller improvements also landed in this release:
- PR #24833 by @raimbekovm removes the unused
regionargument from the instance segmentation guide - PR #24832 by @raimbekovm fixes
figsizetyping inSolutionConfig - PR #24822 by @raimbekovm fixes docs rendering issues
- PR #24826 by @pderrenger updates formatting, headers, and redirects
- PR #24856 by @glenn-jocher fixes the TensorRT quantization docs link
- PR #24858 by @glenn-jocher fixes docs workflow PR branch sync
Why this release matters
v8.4.70 is not a flashy feature release, but it delivers meaningful day-to-day improvements:
more reliable distributed training
fewer confusing checkpoint-loading failures
better segmentation result handling
clearer guidance for real-world YOLO26 workflows
smoother docs and configuration experience
In short, this release makes Ultralytics YOLO more dependable for training, debugging, and deployment.
New Contributor 
A big welcome to @LZ-QWQ, who made their first contribution with PR #24810 — and it was an important one!
Try it out
You can upgrade with:
pip install -U ultralytics
Then explore the release notes in the v8.4.70 release page or review everything included in the full changelog.
If you test the release, we’d love to hear how it works for your workflows, especially for multi-GPU training, segmentation, and YOLO26 tracking or heatmap use cases ![]()