🌟 Summary
Ultralytics 8.3.236 adds first-class Axelera Metis AIPU export and inference support for YOLO models, plus several documentation, integration, and tooling improvements that make deployment, tracking, and docs navigation smoother. 🚀
📊 Key Changes
-
🔥 New Axelera export format for Metis AIPU
- Adds a new
axeleraexport target in the exporter:- CLI:
yolo export model=yolo11n.pt format=axelera - Python:
model.export(format="axelera")
- CLI:
- Generates an Axelera-ready model directory:
yolo11n_axelera_model/containing:- Compiled
.axmmodel metadata.yamlwith classes, image size, etc.
- Compiled
- Limited initially to Object Detection models (YOLOv8 / YOLO11).
- Adds a new
-
🧠 Axelera compilation & quantization pipeline
- Integrates Axelera Voyager SDK compiler:
- Exports ONNX internally, then quantizes and compiles to
.axm. - Uses a dedicated INT8 calibration dataloader, with custom preprocessing.
- Exports ONNX internally, then quantizes and compiles to
- Uses different
CompilerConfigpresets for YOLO11 vs YOLOv8 for stability and performance. - Automatically sets:
int8=Truefor mixed-precision AIPU export.opset=17for ONNX export to satisfy compiler requirements.- Default calibration dataset
data=coco128.yamlfor Axelera if not provided.
- Integrates Axelera Voyager SDK compiler:
-
⚙️ Axelera runtime backend in AutoBackend
- New backend type detected via
*_axelera_model/path. - Automatically:
- Locates the
.axmfile inside the directory. - Loads it with
axelera.runtime.op.load(...). - Reads
metadata.yamlto keep YOLO’s normal postprocessing pipeline.
- Locates the
- Inference looks like any other model:
- CLI:
yolo predict model=yolo11n_axelera_model source=... - Python:
YOLO("yolo11n_axelera_model")(source)
- CLI:
- New backend type detected via
-
🧪 CI & tests for Axelera support
- CI matrix updated with PyTorch 2.8 / torchvision 0.23 on Ubuntu.
- New
test_export_axelera:- Requires Linux, Python 3.10, Torch ≥2.8.
- Verifies export succeeds and output directory is created, then cleans up.
-
🧩 New system-level & Python helpers
check_apt_requirements():- Detects missing
aptpackages (viadpkg -l) and attemptssudo apt install -y .... - Used to auto-install Axelera build/runtime dependencies if they’re missing.
- Detects missing
- New constant
IS_PYTHON_3_10to gate Axelera export. - New Torch flag
TORCH_2_8for version checks.
-
📚 Axelera integration docs upgraded from “coming soon” to usable
docs/en/integrations/axelera.mdcompletely rewritten:- Marked as an experimental integration.
- Updated scope: Metis AIPU only (Europa mention removed).
- Clear requirements:
- Linux (Ubuntu 22.04 / 24.04)
- Axelera hardware + drivers
- Python 3.10
- Step‑by‑step driver & SDK install with
aptrepo setup. - Concrete examples for:
- Export:
model.export(format="axelera")/yolo export ... - Inference: Python + CLI examples using
yolo11n_axelera_model.
- Export:
- Detailed export arguments table (imgsz, int8, data, fraction, device).
- Calibration guidance:
- 100–400 images recommended for Axelera; warns if <100.
- Known issues & limitations called out (PyTorch 2.9, first-run ImportError, M.2 power limits).
- Real‑world applications & recommended workflows.
-
🧠 New Neptune integration documentation
- New
docs/en/integrations/neptune.mdand link wired into Integrations index. - Covers:
- How YOLO11 integrates with Neptune for metrics, images, artifacts, and hyperparameters.
- API token setup via env vars and correct
project=slug usage (e.g.workspace/name). - CLI & Python training examples with automatic logging.
- What gets logged (losses, mAP, mosaics, validation images, weights).
- FAQ and note about Neptune’s acquisition and SaaS wind‑down timeline.
- New
-
📺 Updated prediction tutorial video
predictmode docs now embed a new YouTube tutorial focused on:- “How to Extract Results from Ultralytics YOLO11 Tasks for Custom Projects 🚀”
- Ensures video matches current YOLO11 result-handling APIs.
-
🧭 Docs navigation, search, and localization improvements
- Docs search disabled:
- MkDocs
searchplugin set toenabled: false. build_docs.pynow deletessearch.jsonfrom the built site.
- MkDocs
- Language switcher & sitemap fixes:
- JS wrapper intercepts
/sitemap.xmlrequests (from Weglot hreflang handling) and returns an empty sitemap to avoid 404s. - Language switcher rewritten to:
- Use
hreflangattributes to detect languages. - Preserve current path, query, and hash when changing languages.
- Use
- JS wrapper intercepts
- Chat widget upgraded:
chat.min.jsbumped tov0.1.6via CDN for a smoother embedded Ultralytics LLM experience.
- Docs lists alphabetized & normalized:
- Datasets, Guides, Solutions, and Integrations reordered consistently.
- Removes scattered “NEW 🚀” clutter; keeps content but improves readability.
- Docs search disabled:
-
🧪 Example scripts hardening
- ONNXRuntime examples now auto-detect available providers:
- Use
ort.get_available_providers()and chooseCUDAExecutionProviderand/orCPUExecutionProvideras available. - Avoids crashes when CUDA is not installed.
- Use
- NMS outputs in ONNX/OpenCV examples normalized via
np.array(...).flatten()and explicitintcasting to avoid index shape issues. - TFLite example now respects
--imgargument instead of a hardcoded image path. urllib3in RTDETR ONNX example bumped to2.6.0for up-to-date HTTP stack.
- ONNXRuntime examples now auto-detect available providers:
🎯 Purpose & Impact
-
Unlock high-performance edge deployment on Axelera Metis ⚡
- You can now export and run YOLO detection models directly on Axelera Metis AIPUs using a standard Ultralytics workflow:
- Train with YOLO11 / YOLOv8.
export(format="axelera").- Deploy on Metis using the new backend.
- This drastically simplifies going from research to deployment on Axelera hardware, without bespoke toolchains or custom glue code.
- You can now export and run YOLO detection models directly on Axelera Metis AIPUs using a standard Ultralytics workflow:
-
Reduce friction in environment setup 🛠️
check_apt_requirements()and structured version checks help users automatically install system dependencies and validate Python/Torch versions needed for Axelera.- CI support for Torch 2.8 ensures this path is tested and stable.
-
Keep documentation aligned with real-world usage 📘
- Axelera docs now describe an actually working pipeline (rather than “coming soon”) with clear constraints and known issues, so users know what to expect.
- Neptune and YOLO11 video updates help users track experiments and interpret predictions more effectively, with current examples and correct instructions.
-
Improve docs browsing and internationalization UX 🌍
- Disabling the legacy search prevents confusing/broken search experiences while alternative search solutions are being developed.
- Language switcher fixes mean users can change languages without losing their place in the docs, even with query strings and anchors.
-
Make examples more robust across environments 💻
- ONNXRuntime examples now gracefully adapt to CPU-only or CUDA-enabled machines, lowering “it crashes on my machine” friction.
- Small fixes (NMS indices, argument usage) make the examples more reliable as copy‑paste starting points.
Overall, 8.3.236 is a deployment‑focused release: it brings YOLO into the Axelera Metis ecosystem, strengthens experiment tracking and documentation UX, and polishes supporting tooling so users can deploy and iterate more confidently. ✨
What's Changed
- New Neptune integrations page by @glenn-jocher in #22875
- Update chat.js version to v0.1.4 by @glenn-jocher in #22893
- Bump urllib3 from 2.5.0 to 2.6.0 in /examples/RTDETR-ONNXRuntime-Python in the pip group across 1 directory by @dependabot[bot] in #22886
- Add https://youtu.be/YKbBXWBJloY to docs by @RizwanMunawar in #22882
- Update chat.min.js to version 0.1.6 by @glenn-jocher in #22905
- Sort docs sections alphabetically by @glenn-jocher in #22909
- Delete search JSON by @glenn-jocher in #22915
- Fix Zensical 404s on language switches by @glenn-jocher in #22918
- Refactor language switcher link handling by @glenn-jocher in #22919
ultralytics 8.3.236add Axelera export for YOLO on Metis AIPU by @ambitious-octopus in #22802
Full Changelog: v8.3.235...v8.3.236