Ultralytics v8.4.14 is out — faster cancels, safer training, cleaner edges
Ultralytics 8.4.14 adds Ultralytics Platform “Cancel training” support so you can stop runs quickly and still keep/upload partial results ![]()
(plus stability and quality fixes across Pose + Segmentation).
If you train with Ultralytics Platform, this release is especially impactful thanks to the new cancellation behavior
.
Highlights (what you’ll notice first)
Platform-driven training cancellation (priority)
Cancelling a run from Ultralytics Platform is now more reliable and responsive:
- Detects cancellation even before training starts (during session registration) to avoid wasted startup time
- Checks cancellation at epoch end (send-and-check flow) and sets
trainer.stop=Truewhencancelled=true - Tracks cancellation state via
trainer._platform_cancelledwith clear logs - Continues to upload partial artifacts/metadata when cancelled, so you can still review progress

This landed in PR Platform training cancel feature by @glenn-jocher.
New Features
Training cancel support via Ultralytics Platform (stop promptly + keep partial outputs)
Shipped in PR #23614 by @glenn-jocher.
Improvements
-
Faster responsiveness to stop requests between batches
Training loop now breaks whenself.stopis set, so external stop signals (including Platform cancellation) take effect sooner.
Included in PR #23614 by @glenn-jocher. -
Docs clarity for Params/FLOPs after model.fuse()
Adds a footnote explaining why reported Params/FLOPs can differ locally after fusion.
In PR #23601 by @raimbekovm.
Bug Fixes
-

YOLO26 Pose training stability fix
Clamps negativerle_lossto zero to prevent destabilizing negative loss values.
In PR #23604 by @Mr-Neutr0n. -

Segmentation → box conversion edge-case fix (segment2box())
Excludes points exactly on the image border after clipping to prevent boxes snapping to edges.
In PR #23602 by @Mr-Neutr0n. -

Hyperparameter tuning crash fix
PreventsTypeErrorwhenfitnessexists but isNone.
In PR #23603 by @Mr-Neutr0n.
Why it matters
Less wasted compute: cancelled jobs exit earlier and more predictably
No “all-or-nothing” cancels: partial uploads help you inspect progress even after stopping
More stable YOLO26 Pose runs: reduced risk of training going backwards due to negative loss behavior
Cleaner segmentation-derived boxes: fewer edge-snapped boxes improves training quality and results
More robust pipelines: fewer flaky tuning/reporting interruptions
How to update
pip install -U ultralytics
Release links
You can review the release notes in the v8.4.14 GitHub release, and browse all commits in the full changelog comparison.
Feedback wanted
Please try v8.4.14 (especially if you train on Ultralytics Platform) and share:
- how quickly cancels respond for your runs,
- whether partial artifacts are showing up as expected,
- and any edge cases you hit in long trainings.
Thanks to everyone in the YOLO community and the Ultralytics team for the continued contributions and testing ![]()