pypi ultralytics 8.4.143
v8.4.143 - Add INT8 quantization-aware training via quantize=8 in train mode (#26083)

3 hours ago

🌟 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=8 during train mode.
    • 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 quantize argument and adds no new public API or dependency.
    • Particularly useful for deploying YOLO26 models to resource-constrained edge hardware.
  • πŸ“ˆ 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=False and 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 Results objects.
    • Removes stale SAM3 decoder coordinate caches, improving reliability across device and precision changes.
  • 🌍 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

Full Changelog: v8.4.142...v8.4.143

Don't miss a new ultralytics release

NewReleases is sending notifications on new releases.