pypi ultralytics 8.3.236
v8.3.236 - `ultralytics 8.3.236` add Axelera export for YOLO on Metis AIPU (#22802)

12 hours ago

🌟 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 axelera export target in the exporter:
      • CLI: yolo export model=yolo11n.pt format=axelera
      • Python: model.export(format="axelera")
    • Generates an Axelera-ready model directory: yolo11n_axelera_model/ containing:
      • Compiled .axm model
      • metadata.yaml with classes, image size, etc.
    • Limited initially to Object Detection models (YOLOv8 / YOLO11).
  • 🧠 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.
    • Uses different CompilerConfig presets for YOLO11 vs YOLOv8 for stability and performance.
    • Automatically sets:
      • int8=True for mixed-precision AIPU export.
      • opset=17 for ONNX export to satisfy compiler requirements.
      • Default calibration dataset data=coco128.yaml for Axelera if not provided.
  • ⚙️ Axelera runtime backend in AutoBackend

    • New backend type detected via *_axelera_model/ path.
    • Automatically:
      • Locates the .axm file inside the directory.
      • Loads it with axelera.runtime.op.load(...).
      • Reads metadata.yaml to keep YOLO’s normal postprocessing pipeline.
    • Inference looks like any other model:
      • CLI: yolo predict model=yolo11n_axelera_model source=...
      • Python: YOLO("yolo11n_axelera_model")(source)
  • 🧪 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 apt packages (via dpkg -l) and attempts sudo apt install -y ....
      • Used to auto-install Axelera build/runtime dependencies if they’re missing.
    • New constant IS_PYTHON_3_10 to gate Axelera export.
    • New Torch flag TORCH_2_8 for version checks.
  • 📚 Axelera integration docs upgraded from “coming soon” to usable

    • docs/en/integrations/axelera.md completely 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 apt repo setup.
      • Concrete examples for:
        • Export: model.export(format="axelera") / yolo export ...
        • Inference: Python + CLI examples using yolo11n_axelera_model.
      • 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.md and 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.
  • 📺 Updated prediction tutorial video

    • predict mode 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 search plugin set to enabled: false.
      • build_docs.py now deletes search.json from the built site.
    • Language switcher & sitemap fixes:
      • JS wrapper intercepts /sitemap.xml requests (from Weglot hreflang handling) and returns an empty sitemap to avoid 404s.
      • Language switcher rewritten to:
        • Use hreflang attributes to detect languages.
        • Preserve current path, query, and hash when changing languages.
    • Chat widget upgraded:
      • chat.min.js bumped to v0.1.6 via 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.
  • 🧪 Example scripts hardening

    • ONNXRuntime examples now auto-detect available providers:
      • Use ort.get_available_providers() and choose CUDAExecutionProvider and/or CPUExecutionProvider as available.
      • Avoids crashes when CUDA is not installed.
    • NMS outputs in ONNX/OpenCV examples normalized via np.array(...).flatten() and explicit int casting to avoid index shape issues.
    • TFLite example now respects --img argument instead of a hardcoded image path.
    • urllib3 in RTDETR ONNX example bumped to 2.6.0 for up-to-date HTTP stack.

🎯 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.
  • 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

Full Changelog: v8.3.235...v8.3.236

Don't miss a new ultralytics release

NewReleases is sending notifications on new releases.