ultralytics v8.4.131

v8.4.131

v8.4.131 - Add Apple Core AI export (#25926)

Added 7
  • Export models to Apple Core AI format with model.export(format="coreai") creating .aimodel assets that can be loaded with YOLO("yolo26n.aimodel")
  • Support FP32 and optional FP16 export for Apple Core AI through new export-coreai dependency group
  • Add dedicated Core AI backend, metadata handling, API references, and export-table support
  • Include model metadata such as class names, stride, and task information inside .aimodel assets
  • Support exporting YOLO26 with end2end=False to produce raw predictions and reduce inference latency
  • Add OBB task header image to documentation
  • Add continuous macOS CI coverage for Core AI export
Changed 9
  • YOLO26's end-to-end head is exported by default, returning finished detections directly
  • Validation now consistently uses unaugmented validation pipeline instead of accidentally applying training augmentations like Mosaic, MixUp, and Random Perspective
  • Dataset fractions are now selected according to the requested split during validation
  • Model-scale overrides in parse_model now match exact scale letters, preventing unscaled or dictionary-based configurations from taking wrong architecture branch
  • Documentation and logging now distinguish YOLO26's l1_loss from dfl_loss used by models with distribution-based box regression
  • TQDM output no longer disappears in zero-width pseudo-terminals and notebook output is allowed to scroll naturally
Fixed 4
  • C3k2 configurations without explicitly provided optional argument no longer fail for medium, large, or extra-large variants
  • YOLOE.set_classes() now recognizes class-order changes and regenerates prompt embeddings when necessary
  • Class weights are now preserved on underlying model during DDP training and continue to target student model correctly during knowledge distillation
  • Fix crashes and unreliable metrics for detection, segmentation, OBB, RT-DETR, and YOLOE validation workflows caused by training augmentations

From ultralytics

🌟 Summary

Ultralytics v8.4.131 adds Apple Core AI export and inference support for YOLO26, alongside important validation, training, model-configuration, and documentation improvements. 🚀

📊 Key Changes
  • 🍎 Apple Core AI export and inference

    • Export models with model.export(format="coreai") or the equivalent CLI command.
    • Creates Apple’s .aimodel asset format, which can be loaded again with YOLO("yolo26n.aimodel").
    • Supports FP32 and optional FP16 export through the new export-coreai dependency group.
    • Adds a dedicated Core AI backend, metadata handling, API references, export-table support, and continuous macOS CI coverage.
    • Supports YOLO26 models on Apple silicon with macOS 26 or later; exported assets target iOS 27 and macOS 27.
    • Core AI export currently has important limitations: fixed input size, no dynamic shapes or NMS export, and no support in the Ultralytics iOS or Flutter SDKs yet.
  • ⚡ Core AI deployment options

    • YOLO26’s end-to-end head is exported by default, returning finished detections directly.
    • Exporting with end2end=False produces raw predictions and can significantly reduce inference latency when post-processing is handled on the host.
    • Core AI export includes model metadata such as class names, stride, and task information inside the .aimodel asset.
  • ✅ More reliable validation with split=train

    • Validation now consistently uses the unaugmented validation pipeline instead of accidentally applying training augmentations such as Mosaic, MixUp, and Random Perspective.
    • Dataset fractions are now selected according to the requested split.
    • This fixes crashes and unreliable metrics for detection, segmentation, OBB, RT-DETR, and YOLOE validation workflows.
  • 🧮 Correct YOLO26 loss terminology

    • Documentation and logging now distinguish YOLO26’s l1_loss from dfl_loss used by models with distribution-based box regression.
    • Training guides, default configuration comments, tuning tables, experiment trackers, and tutorial output have been updated accordingly.
  • 🎯 Improved model configuration handling

    • Model-scale overrides in parse_model now match exact scale letters, preventing unscaled or dictionary-based configurations from taking the wrong architecture branch.
    • C3k2 configurations without an explicitly provided optional argument no longer fail for medium, large, or extra-large variants.
    • The architecture guide now explains these scale-dependent behaviors more accurately.
  • 🔤 YOLOE class reordering fixes

    • YOLOE.set_classes() now recognizes class-order changes and regenerates prompt embeddings when necessary.
    • Reordering classes therefore updates class IDs and names correctly instead of being treated as a no-op.
  • ⚖️ Training robustness improvements

    • Class weights are now preserved on the underlying model during DDP training and continue to target the student model correctly during knowledge distillation.
    • Fine-tuning guidance now recommends non-zero warmup while clarifying that the full three-epoch default is not always necessary.
    • Documentation now accurately describes automatic optimizer selection and module-name-based layer freezing.
  • 📟 Better progress bars in notebooks and narrow terminals

    • TQDM output no longer disappears in zero-width pseudo-terminals such as those used by Colab.
    • Notebook output is allowed to scroll naturally, while truncated terminal lines now show an ellipsis instead of being silently cut off.
  • 📚 Documentation and presentation updates

    • Corrects documented YOLOE and YOLOv5 run paths to match actual increment_path behavior.
    • Adds the missing OBB task header image.
    • Expands and updates Apple Core AI integration guidance, including deployment limitations and Core ML recommendations.
🎯 Purpose & Impact
  • Apple developers gain a new native deployment path for YOLO26 models on the latest Apple silicon platforms, potentially improving on-device inference integration and performance. 🍏
  • Core ML remains the better choice for broader compatibility, including older Apple operating systems and the Ultralytics iOS or Flutter SDKs. Core AI is currently best suited to experimental or platform-specific deployments.
  • Validation results become more trustworthy, especially when evaluating training data with split=train, because training-time augmentation is no longer applied accidentally.
  • YOLO26 users receive clearer training feedback, avoiding confusion between L1 box-distance loss and DFL metrics.
  • Custom and scaled model definitions are more dependable, reducing silent architecture mismatches and configuration-related errors.
  • YOLOE class prompts are safer to update, particularly in applications that dynamically change class ordering.
  • Distributed training and notebook workflows become more reliable, with class weights preserved correctly and progress output rendered consistently.
What's Changed

Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.130...v8.4.131

View original

Upgraded? How did it go?

Discussion