🌟 Summary
v8.4.129 improves multi-dataset hyperparameter tuning, training precision, model export acceleration, data loading, and platform reliability—without introducing a new model architecture. 🚀
📊 Key Changes
-
Multi-dataset tuning is now managed by
MultiTrainer(PR #25937, @glenn-jocher):- Removes duplicated dataset orchestration from the tuner.
- Runs each dataset training job in an isolated YOLO CLI subprocess.
- Preserves YOLOWorld and YOLOE checkpoint filename handling.
- Records individual dataset metrics, macro-mean metrics, and cleanup paths.
- Improves distributed MongoDB tuning by safely assigning defaults and identifying winning runs by their result paths instead of worker-local indexes.
- Validated with single-dataset and five-dataset MongoDB tuning runs. ✅
-
Added BF16 mixed-precision training (PR #25931, @artest08):
ampnow acceptsTrue,False,"fp16","bf16", and"fp32".- BF16 uses less memory than FP32 while offering greater numerical range than FP16.
- Gradient scaling is correctly disabled for BF16.
- Supported CUDA hardware is required for native BF16 training.
-
Improved YOLO26 LiteRT exports for GPU delegates (PR #25914, @Y-T-G):
- Reworked detection-head indexing and gathering to use operations better supported by GPU accelerators.
- Helps keep more of the end-to-end, NMS-free detection head on the GPU instead of falling back to the CPU.
- Also centralizes export-specific behavior outside the main detection head implementation.
-
Faster image and FastSAM preprocessing (PRs #25935 and #25938, @JESUSROYETH):
- Large batches of regular images can now be decoded in parallel while preserving input order.
- FastSAM CLIP crop preprocessing is parallelized for sufficiently large CUDA workloads.
- Small batches, unsupported image formats, CPU, and MPS paths retain the safer serial behavior.
-
More consistent ONNX CPU benchmarking (PR #23924, @Laughing-q):
- ONNX profiling now uses the shared
ONNXBackend. - Adds configurable ONNX Runtime session options and multi-input model support.
- Benchmarks now follow the same backend execution path used during inference.
- ONNX profiling now uses the shared
-
Stronger export and validation coverage:
- TensorRT tests now validate exported engines on task-specific datasets, not only through inference.
- CoreML and LiteRT export helpers are documented in the API reference.
- Detection postprocessing is shared across Detect, Segment, Pose, OBB, and related heads.
-
Improved Windows image compatibility (PR #21070, @Laughing-q):
- Added
imread_unicodefor image paths containing non-ASCII characters. - Preserves native OpenCV grayscale behavior and simplifies semantic-mask handling.
- Added
-
More reliable progress reporting for Ultralytics Platform (PR #25905, @Y-T-G):
- Progress-bar redraws are now transmitted as live state rather than ordinary log lines.
- Reduces duplicated or cluttered logs and gives consumers a cleaner progress contract.
-
Documentation and training guidance corrections:
- Clarifies YOLO26’s DFL-free
l1_loss, pretrained-weight behavior, AutoBatch rules, AMP behavior, freezing, fine-tuning, K-Fold workflows, model YAML construction, and tuning output paths. - Adds guidance for class-name-based head weight remapping during fine-tuning.
- Documents BF16 settings and supported distillation task limitations.
- Clarifies YOLO26’s DFL-free
-
Build reliability improvements for Jetson (PR #25930, @glenn-jocher):
- Disk cleanup is skipped for JetPack Docker builds so native Jetson builds retain sufficient runner swap space.
🎯 Purpose & Impact
-
More dependable distributed tuning: Multi-dataset experiments are now simpler to maintain, better isolated, and easier to analyze because results and output paths are tracked per dataset. MongoDB workers are also less likely to race when initializing defaults. 📈
-
More training options: Users with compatible CUDA hardware can choose BF16 for a practical balance of speed, memory use, and numerical stability. Existing FP16 and FP32 behavior remains available.
-
Faster edge deployment: LiteRT exports of YOLO26 end-to-end models should make better use of WebGPU and other GPU delegates, reducing unnecessary CPU fallback and potentially improving inference latency. ⚡
-
Better throughput for large workloads: Parallel image decoding and FastSAM preprocessing can reduce time spent waiting for CPU preprocessing, especially with large batches or many candidate crops.
-
Improved compatibility and confidence: Non-ASCII Windows paths, multi-input ONNX models, TensorRT validation, and distillation checkpoint handling receive targeted fixes that reduce failures in real-world workflows.
-
Cleaner integrations: Platform and other log consumers can process progress updates directly instead of guessing which log lines represent progress bars.
-
Release status: The package version is updated to 8.4.129.
What's Changed
- Add
imread_unicodefor non-ASCII paths to prevent downstreamimreadoverriding forWindowsby @Laughing-q in #21070 - Add validation in TensorRT test matrix by @Laughing-q in #22730
- Use
ONNXBackendinProfileModelsfor CPU speed benchmark by @Laughing-q in #23924 - Fully delegate end2end LiteRT exports to GPU accelerators by @Y-T-G in #25914
- Skip disk cleanup for Jetson builds by @glenn-jocher in #25930
- Parallelize batched image decoding in LoadImagesAndVideos by @JESUSROYETH in #25935
- Read exported head metadata only when the model is a path by @raimbekovm in #25929
- Keep export-format branches out of the head by @Y-T-G in #25924
- Add BF16 mixed-precision training support by @artest08 in #25931
- Report progress bar frames as state, not log lines by @Y-T-G in #25905
- Correct training guide claims and cross-link the Train & fine-tune group by @raimbekovm in #25927
- Parallelize FastSAM CLIP preprocessing by @JESUSROYETH in #25938
- Correct code-guide claims and verify every example against the package by @raimbekovm in #25934
- Delegate multi-dataset tuning to MultiTrainer by @glenn-jocher in #25937
Full Changelog: v8.4.128...v8.4.129