π Summary
v8.4.143 introduces INT8 quantization-aware training for YOLO26, improves deployment and evaluation workflows, and delivers a broad documentation and integration refresh. π
π Key Changes
-
π§ INT8 quantization-aware training (QAT) β PR #26083
- Adds support for
quantize=8duringtrainmode. - Fine-tunes pretrained weights while simulating INT8 quantization, allowing the model to adapt before deployment rather than being quantized only after training.
- Stores calibrated quantization ranges in the checkpoint and supports direct export to ONNX and TensorRT with Q/DQ nodesβwithout requiring calibration data during export.
- Reuses the existing
quantizeargument and adds no new public API or dependency. - Particularly useful for deploying YOLO26 models to resource-constrained edge hardware.
- Adds support for
-
π More complete validation metrics β PR #24489
- Adds per-class AP75 values to validation summaries, DataFrame outputs, CSV files, and JSON exports.
- Applies consistently to detection, segmentation, pose, and OBB tasks.
-
π Improved YOLO26 deployment workflows
- DeepStream documentation now uses the native Ultralytics exporter instead of a separate third-party script.
- Clarifies when to use the NMS-free head with
nms=Falseand updates Triton, DALI, SAM, and C++ examples accordingly. - Adds documentation for Appleβs Core AI export target and backend.
- Corrects quantization guidance for formats that support only specific precisions.
-
π οΈ Training and model lifecycle fixes
- Corrects pretrained-model handling after
reset_weights(), during resume operations, and in multi-dataset or distributed training. - Preserves Platform model URIs when training through Python.
- Keeps prediction output directories when copying or converting
Resultsobjects. - Removes stale SAM3 decoder coordinate caches, improving reliability across device and precision changes.
- Corrects pretrained-model handling after
-
π Platform and authentication updates
- Uses the Ultralytics Platform SDK for login, model downloads, dataset exports, and training resource access.
- Aligns Python 3.11+ installations with the shared-login SDK requirements while preserving local workflows on older Python versions.
-
π Extensive documentation improvements
- Reviews and corrects examples, CLI syntax, export details, tracker behavior, dataset layouts, image decoding, hardware integrations, and model descriptions.
- Expands YOLO26 depth-estimation dataset documentation with new FAQs and dataset guidance.
- Updates Ultralytics Platform links across dataset and training pages.
- Documents improved Albumentations support for boxes, polygons, keypoints, depth maps, and semantic masks.
- Refreshes DeepStream, OpenVINO, Core AI, Edge TPU, Ray Tune, Jetson, and other integration guides.
π― Purpose & Impact
- β‘ Better edge performance: QAT can help INT8-deployed models retain more accuracy while benefiting from lower memory usage, faster inference, and reduced power consumption.
- π¦ Simpler deployment: A QAT-trained checkpoint can be exported to ONNX or TensorRT without a separate calibration dataset, reducing deployment steps.
- π Better model analysis: Per-class AP75 makes it easier to identify which categories perform well or need additional training.
- π Broader hardware support: Updated exporters and documentation make YOLO26 easier to deploy with DeepStream, TensorRT, Core AI, OpenVINO, Platform, and other environments.
- π§° More reliable training: Pretrained-state and resume fixes reduce the risk of unintentionally training from random initialization or using the wrong checkpoint.
- β Clearer user experience: Corrected documentation and examples should reduce setup errors, especially for new users and deployment engineers.
What's Changed
- Include per-class AP75 in validation summaries and exports by @woreom in #24489
- Review docs pages for correctness, consistency, and Platform links by @glenn-jocher in #26070
- Drop the FP32 promise from the export quantize hint on formats that cannot export FP32 by @raimbekovm in #26080
- Export YOLO26 for DeepStream with the Ultralytics exporter by @raimbekovm in #26077
- Honor the pretrained argument after reset_weights() and in MultiTrainer by @raimbekovm in #26084
- Preserve prediction save directory in Results copies by @aswanth-07 in #26074
- Select the NMS-free head explicitly where docs and examples still assume it by @raimbekovm in #26072
- Remove stale SAM3 decoder coordinate caches by @tritsystem in #26075
- Update docs for the max_det dataset raise, Core AI export and spatial Albumentations by @raimbekovm in #26078
- Use Platform SDK for login and training resource downloads by @glenn-jocher in #26087
- Require Platform SDK >=0.1.32 for shared login by @glenn-jocher in #26088
- Add INT8 quantization-aware training via quantize=8 in train mode by @Bovey0809 in #26083
New Contributors
- @tritsystem made their first contribution in #26075
- @woreom made their first contribution in #24489
Full Changelog: v8.4.142...v8.4.143