π Summary
v8.4.154 improves CoreML export and inference reliability, restores accurate RT-DETR INT8 deployment, reduces training overhead, and strengthens dataset and Platform workflows. π
π Key Changes
-
π οΈ CoreML dynamic export fixed β PR #26199
- YOLO detection, segmentation, pose, and OBB models can now export with
dynamic=Truewithout triggering acoremltoolsarangeconversion error. - Static CoreML models now correctly process batches of multiple images instead of running inference only on the first image.
- Supports proper output stacking for raw predictions, embedded NMS, segmentation, and classification models.
- CoreML export documentation now clarifies restrictions for dynamic inputs, NMS, classification, RT-DETR, and batch sizes.
- YOLO detection, segmentation, pose, and OBB models can now export with
-
β‘ RT-DETR OpenVINO INT8 export repaired
- Keeps the RT-DETR decoder in floating point while applying NNCF transformer-aware quantization.
- Reported RT-DETR-L accuracy improved from approximately 0.0002 to 0.6513 mAP50-95, with nearly unchanged CPU inference speed.
-
ποΈ Faster training, especially on GPUs
- Avoids unnecessary memory initialization, activation copies, host-device synchronization, and repeated EMA state reconstruction.
- Enables fused Adam and AdamW optimizers where supported.
- A measured YOLO26x COCO training step on a B200 GPU improved from 228.9 ms to 183.5 msβabout a 1.25Γ speedup in that test environment.
-
π§ More memory-efficient SAM3 mask processing
- Large semantic masks are upscaled in bounded chunks rather than all at once.
- This prevents multi-gigabyte temporary allocations while preserving mask results.
-
π― Classification validation now prevents class-index mistakes
- Validation and training splits are aligned to the modelβs class names instead of relying on each folderβs local alphabetical ordering.
- Classes missing from the model are skipped with a warning, preventing silently incorrect accuracy and model-selection metrics.
-
π‘ Platform training callbacks now use the Platform SDK
- Replaces duplicated raw HTTP and retry logic with the generated SDK.
- Adds controlled POST retries while preserving authentication handling, cancellation, checkpoint signing, payload sanitization, and quiet console-error behavior.
- Requires
ultralytics-platform>=0.1.45.
-
β Clearer dataset and validation checks
- Segment datasets now reject box-only labels or mismatched polygon and box counts.
- Pose validation reports an actionable error when
kpt_shapeis missing, including when stale label caches are present. save_json=Truenow reports small-, medium-, and large-object mAP on detection datasets usingfaster-coco-eval.- Training resume behavior is documented: the checkpoint dataset is restored unless an explicit
data=override is provided.
-
π Platform workflow and documentation updates
- Documents semantic PNG mask imports, similar-image search, generated image variations, model moves between projects, remembered training settings, and verified dataset uploads.
- Clarifies API rate limits, exact dataset slugs, upload integrity checks, and CoreML limitations.
π― Purpose & Impact
- Apple users can export and run models more reliably with dynamic CoreML inputs and multi-image inference now functioning as expected. π
- Deployment accuracy improves for RT-DETR on Intel hardware, making OpenVINO INT8 a more practical option.
- GPU training can be faster and more efficient, particularly for larger workloads, although the reported speedup was measured on a specific B200 setup and may vary by hardware.
- Large-image SAM3 workloads use less peak memory, reducing the risk of out-of-memory errors.
- Classification metrics become trustworthy when train, validation, and test folders contain different class sets.
- Dataset and pose errors are easier to diagnose, reducing time spent tracking down malformed labels or configuration issues.
- Platform training integrations are more maintainable and resilient through centralized SDK behavior and configurable retries. π
What's Changed
- Use Platform SDK for training callbacks by @JaviChulvi in #26190
- Document segment label rejection, resume data override, size mAP with save_json and CoreML dynamic limits by @raimbekovm in #26198
- Upscale SAM3 semantic masks in memory-bounded chunks by @BSchilperoort in #26200
- Fix RT-DETR OpenVINO INT8 export by keeping its decoder float and quantizing with NNCF by @onuralpszr in #26191
- Mirror the trainer's missing-kpt_shape error in standalone pose val by @cainiao33 in #26193
- Document Platform similar image search, mask import, model moves and verified uploads by @raimbekovm in #26195
- [perf] yolo26x COCO training on B200: 228.9 to 183.5 ms per step at 1 GPU, mostly from deterministic mode filling every new tensor by @TarzanZhao in #26180
- Fix silent wrong-class scoring when classification split classes differ from the model by @cainiao33 in #26192
- Fix CoreML dynamic anchor export and static multi-image inference, release 8.4.154 by @raimbekovm in #26199
New Contributors
- @TarzanZhao made their first contribution in #26180
- @BSchilperoort made their first contribution in #26200
Full Changelog: v8.4.153...v8.4.154