Ultralytics v8.4.83 is here
Quick summary: Ultralytics v8.4.83 introduces a major deployment upgrade with the new LiteRT export format, which now unifies the previous TFLite and TF.js workflows into a single path for mobile, edge, embedded, and browser deployments. This release also improves segmentation memory usage and speed, strengthens training checkpoint reliability, and adds several stability fixes across training and export.
If you’re building with Ultralytics YOLO, especially YOLO26 for mobile, embedded, edge, or web deployment, this is a great release to try. You can explore the full release on GitHub here.
Highlights
New LiteRT export replaces legacy TFLite and TF.js workflows
The biggest change in v8.4.83 is the new format="litert" export path, added in PR #22870 by @ambitious-octopus and contributed by @ambitious-octopus.
With this update:
litertbecomes the new unified export format for.tflitedeployment- Legacy
tfliteandtfjsnames still work, but now emit deprecation warnings and redirect to LiteRT - Exported
.tflitemodels can now be loaded directly inside Ultralytics forpredictandval - Browser deployment is simplified through LiteRT.js using the same
.tflitemodel
This creates a much cleaner deployment story for teams shipping models across devices and platforms. ![]()
![]()
Broader on-device deployment support
The new LiteRT export path supports multiple quantization modes, making deployment more flexible on constrained hardware:
- standard INT8
- mixed INT8 with 16-bit activations
- dynamic INT8 without calibration data
This is especially useful for production deployments of YOLO26 on mobile and edge devices.
Faster, lower-memory segmentation post-processing
Segmentation mask post-processing was optimized in PR #24988 by @glenn-jocher, from @glenn-jocher, reducing peak memory usage and improving speed.
Benefits include:
- fewer out-of-memory issues on large images
- better performance in scenes with many objects
- smoother segmentation inference overall
More reliable training checkpoints
A long-standing issue where bad EMA state could block checkpoint saving was fixed in PR #24986 by @glenn-jocher, from @glenn-jocher.
This means training runs are less likely to fail right at the end because of temporary numerical issues.
Improvements
Safer mixed-precision attention
Attention computation was reordered in PR #24990 by @fcakyon, contributed by @fcakyon, to reduce FP16 overflow risk during AMP and half-precision training.
This helps prevent inf and nan issues in mixed-precision runs.
Better memory and worker cleanup
Two useful training stability fixes landed in this release:
- PR #24977 by @glenn-jocher from @glenn-jocher fixes
MultiTrainermemory retention - PR #24989 by @fcakyon from @fcakyon properly shuts down stale
DataLoaderworkers on reset
Together, these changes help reduce memory buildup and avoid "too many open files" errors in long-running jobs.
Improved INT8 calibration for classification exports
Classification export calibration now uses a classification-specific dataset pipeline in PR #24972 by @onuralpszr, contributed by @onuralpszr.
This should produce more correct and robust quantized classification exports.
YOLO-World DDP consistency fix
Distributed training consistency for YOLO-World was improved in PR #24980 by @Y-T-G, from @Y-T-G, by applying evaluation classes on all DDP ranks.
Bug Fixes and Validation Improvements
Better segment dataset validation
Segment tasks now fail early when box-only labels are provided by mistake, thanks to PR #24992 by @glenn-jocher from @glenn-jocher.
This should save time by catching invalid dataset formatting earlier.
Safer deconv + batch norm fusion
PR #24991 by @fcakyon, contributed by @fcakyon, adds a guard for fuse_deconv_and_bn when bn is not a BatchNorm module.
Documentation and Project Updates
This release also includes a few helpful docs and project improvements:
- PR #24982 by @oaslananka from @oaslananka adds C++ inference guidance to export docs
- PR #24984 by @oaslananka from @oaslananka adds tracker state guidance to tracking docs
- PR #24979 by @onuralpszr from @onuralpszr adds a Trendshift badge to README files
- PR #24966 by @glenn-jocher from @glenn-jocher linkifies PR numbers in publish Slack notifications
New Contributor
A big welcome to @oaslananka for their first contribution in PR #24982! ![]()
Try it out
If you’d like to test the new release locally, you can upgrade with:
pip install -U ultralytics
And for the new LiteRT export flow:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
model.export(format="litert")
You can also explore training and deployment workflows in the Ultralytics Platform documentation or use the Ultralytics Platform to annotate datasets, train, and deploy models more easily.
Feedback
We’d love for you to try v8.4.83 and share your results, especially if you’re working on:
- mobile or embedded deployment
- browser inference
- segmentation workloads
- long-running or multi-dataset training jobs
For the complete set of changes, see the full changelog from v8.4.82 to v8.4.83.
Thanks to everyone in the community who contributed, tested, and shared feedback! ![]()