Ultralytics v8.4.23 is out 
Quick summary: Ultralytics v8.4.23 is a foundational release focused on a major inference-stack upgrade. The headline change is a full redesign of AutoBackend into a modular backend system, improving reliability, maintainability, and multi-format deployment across supported runtimes. Alongside that, this release adds a helpful pose dataset conversion improvement and several docs, CI, and usability fixes.
You can explore the full release in the v8.4.23 release page and review everything included in the full changelog.
Highlights
Major AutoBackend architecture refactor
The biggest update in v8.4.23 is PR #23790 by @Laughing-q, with author profile @Laughing-q.
This change moves AutoBackend from a single large implementation into a new modular backend system under ultralytics/nn/backends/, including dedicated backend classes for:
- PyTorch
- TorchScript
- ONNX / IMX
- OpenVINO
- TensorRT
- TensorFlow / TFLite
- Paddle
- NCNN
- MNN
- RKNN
- Triton
- ExecuTorch
- Axelera
- CoreML
It also introduces a shared BaseBackend interface, standardizing loading, metadata handling, and inference behavior. In practice, this should make Ultralytics YOLO deployment cleaner and more consistent across formats, while making the codebase much easier to extend and maintain over time.
Smarter NDJSON pose conversion
With PR #23921 by @glenn-jocher, from author @glenn-jocher, NDJSON pose conversion can now automatically infer missing kpt_shape when possible.
That means pose dataset conversion is now more forgiving when metadata is incomplete, while still preserving strict validation for inconsistent or ambiguous keypoint annotations.
Improvements and Fixes
Documentation fixes
A number of docs improvements landed in this release to make documentation more accurate and easier to use:
- Broken anchor links were fixed in PR #23868 by @raimbekovm, author @raimbekovm
- Incorrect
cfg.mddefaults forplotsandsavewere corrected toTruein PR #23917 by @raimbekovm, author @raimbekovm - Outdated TensorRT INT8 “batch doubling” references were removed in PR #23911 by @raimbekovm, author @raimbekovm
Maintenance and CI updates
This release also includes several maintenance improvements behind the scenes:
- Docs JS dependency updates in PR #23908 by @glenn-jocher, author @glenn-jocher
print()migrated to centralizedLOGGERin the docs reference builder in PR #23895 by @raimbekovm, author @raimbekovm- Slack GitHub Action bumped from
v2.1.1tov3.0.1in PR #23910 by @dependabot[bot], author @dependabot - Google Tag Manager added to docs templates in PR #23776 by @matt-ultralytics, author @matt-ultralytics
- Shape and type comment fixes in
AutoBackendandTunerin PR #23918 by @raimbekovm, author @raimbekovm
Why this release matters
For deployment users 
If you run models across different export formats, this release should improve consistency and reduce backend-specific surprises.
For contributors and developers 
The modular backend design is a big win for long-term maintainability. It should be much easier to debug, extend, and reason about than the previous monolithic AutoBackend.
For pose workflows 
The NDJSON pose update helps smooth out dataset conversion workflows when metadata is partially missing.
For docs readers 
Several fixes improve trustworthiness and navigation, especially around config defaults and TensorRT guidance.
New contributor
A warm welcome to @matt-ultralytics, who made a first contribution in PR #23776 ![]()
Try it out
Upgrade with:
pip install -U ultralytics
If you’re building new projects, we recommend starting with Ultralytics YOLO26, our latest stable and recommended model family, and you can manage datasets, training, and deployment in the Ultralytics Platform.
Feedback welcome
Please give v8.4.23 a try and let us know how it goes, especially if you’re working with exported models, backend integrations, or pose datasets. Feedback, testing, and bug reports from the community help make YOLO better for everyone.