Exportation et déploiement avec Axelera AI#
Ultralytics s'associe à Axelera AI pour permettre une inférence haute performance et économe en énergie sur les appareils Edge AI. Exporte et déploie directement les modèles Ultralytics YOLO sur le Metis® AIPU à l'aide du Voyager SDK.
Axelera AI fournit une accélération matérielle dédiée à la [vision par ordinateur](https://ultralytics-translation-0.invalid en périphérie, grâce à une architecture propriétaire de flux de données et à l'informatique en mémoire, pour atteindre jusqu'à 856 TOPS avec une faible consommation électrique.
Choisir le matériel adapté#
Axelera AI propose différents formats adaptés à diverses contraintes de déploiement. Le tableau ci-dessous t'aide à identifier le matériel optimal pour ton déploiement Ultralytics YOLO.
graph TD
A[Start: Select Deployment Target]:::start --> B{Device Type?}:::decide
B -->|Edge Server / Workstation| C{Throughput Needs?}:::decide
B -->|Embedded / Robotics| D{Space Constraints?}:::decide
B -->|Standalone / R&D| E[Dev Kits & Systems]:::proc
C -->|Max Density <br> 30+ Streams| F[**Metis PCIe x4**<br>856 TOPS]:::out
C -->|Standard PC <br> Low Profile| G[**Metis PCIe x1**<br>214 TOPS]:::out
D -->|Drones & Handhelds| H[**Metis M.2**<br>2280 M-Key]:::out
D -->|High Performance Embedded| I[**Metis M.2 MAX**<br>Extended Thermal]:::out
E -->|ARM-based All-in-One| J[**Metis Compute Board**<br>RK3588 + AIPU]:::out
E -->|Prototyping| K[**Arduino Portenta x8**<br>Integration Kit]:::out
click F "https://store.axelera.ai/"
click G "https://store.axelera.ai/"
click H "https://store.axelera.ai/"
click J "https://store.axelera.ai/"
classDef start fill:#4CAF50,color:#fff
classDef proc fill:#2196F3,color:#fff
classDef decide fill:#FF9800,color:#fff
classDef out fill:#9C27B0,color:#fffGamme de matériel#
La gamme de matériel Axelera est optimisée pour exécuter Ultralytics YOLO26 et les versions précédentes avec une efficacité élevée en FPS par watt.
Cartes accélératrices#
Ces cartes permettent l'accélération de l'IA sur des appareils hôtes existants, facilitant les déploiements brownfield.
| Produit | Format | Calcul | Performances (INT8) | Application cible |
|---|---|---|---|---|
| Metis PCIe x4 | PCIe Gen3 x16 | 4x Metis AIPUs | 856 TOPS | Analyse vidéo haute densité, villes intelligentes |
| Metis PCIe x1 | PCIe Gen3 x1 | 1x Metis AIPU | 214 TOPS | PC industriels, gestion des files d'attente dans le commerce de détail |
| Metis M.2 | M.2 2280 M-Key | 1x Metis AIPU | 214 TOPS | Drones, robotique, appareils médicaux portables |
| Metis M.2 MAX | M.2 2280 | 1x Metis AIPU | 214 TOPS | Environnements nécessitant une gestion thermique avancée |
Systèmes intégrés#
Pour des solutions clés en main, Axelera s'associe à des fabricants afin de fournir des systèmes prévalidés pour le Metis AIPU.
- Metis Compute Board : appareil edge autonome associant le Metis AIPU à un CPU ARM Rockchip RK3588.
- Stations de travail : tours professionnelles de Dell (Precision 3460XE) et Lenovo (ThinkStation P360 Ultra).
- PC industriels : systèmes durcis d'Advantech et d'Aetina, conçus pour l'automatisation industrielle.
Tâches prises en charge#
L'estimation de profondeur n'est pas prise en charge : la tête de profondeur émet des opérateurs que le compilateur Metis AIPU ne peut pas abaisser. La segmentation d'instance YOLO26 n'est pas non plus prise en charge par Ultralytics export, mais peut tout de même être déployée via le Voyager SDK comme décrit ci-dessous. La segmentation sémantique YOLO26 est prise en charge.
| Tâche | YOLOv8 | YOLO11 | YOLO26 |
|---|---|---|---|
| Détection | ✅ | ✅ | ✅ |
| Segmentation | ✅ | ✅ | ❌ |
| Sémantique | ❌ | ❌ | ✅ |
| Profondeur | ❌ | ❌ | ❌ |
| Classification | ✅ | ✅ | ✅ |
| Pose | ✅ | ✅ | ✅ |
| OBB | ✅ | ✅ | ✅ |
La segmentation d'instance YOLO26 n'est pas encore prise en charge par la commande Ultralytics export. Les utilisateurs qui ont besoin de yolo26-seg peuvent effectuer le déploiement via le Voyager SDK en utilisant deploy.py, ce qui fournit une solution de contournement au niveau de l'espace utilisateur. La prise en charge native du compilateur sera ajoutée dans une future version.
Installation#
L'exportation au format Axelera nécessite :
- Système d'exploitation : Linux uniquement (Ubuntu 22.04/24.04 recommandé)
- Matériel : accélérateur Axelera AI (appareils Metis)
- Python : versions 3.10, 3.11, 3.12 et 3.13
- PyTorch :
torch>=2.8,<2.13 - Voyager SDK : 1.8.0 ; l'exportation installe cette version du kit de développement et l'inférence installe cette version du runtime
- Pilote de noyau Metis :
metis-dkms1.6.2 ou plus récent, installé séparément depip - Dépendance système :
sudo apt install libgl1(requise par OpenCV, non incluse viapip)
Installation d'Ultralytics#
pip install ultralyticsPour obtenir des instructions détaillées, consulte notre guide d'installation Ultralytics. Si tu rencontres des difficultés, consulte notre guide des problèmes courants.
Installation du pilote Axelera#
-
Ajoute la clé du dépôt Axelera :
sudo sh -c "curl -fsSL https://software.axelera.ai/artifactory/api/security/keypair/axelera/public | gpg --dearmor -o /etc/apt/keyrings/axelera.gpg" -
Ajoute le dépôt à apt :
Choisis ci-dessous l'extrait correspondant au système d'exploitation utilisé.
# Ubuntu 22.04 sudo sh -c "echo 'deb [signed-by=/etc/apt/keyrings/axelera.gpg] https://software.axelera.ai/artifactory/axelera-apt-source ubuntu22 main' > /etc/apt/sources.list.d/axelera.list"# Ubuntu 24.04 sudo sh -c "echo 'deb [signed-by=/etc/apt/keyrings/axelera.gpg] https://software.axelera.ai/artifactory/axelera-apt-source ubuntu24 main' > /etc/apt/sources.list.d/axelera.list" -
Installe le pilote et charge-le. Le SDK 1.8 nécessite
metis-dkms1.6.2 ou plus récent, c'est donc la version la plus récente qui est installée ici :sudo apt update sudo apt install -y metis-dkms sudo modprobe metis
Le pilote de noyau est installé séparément des paquets du Python SDK, donc après avoir mis à niveau le SDK, tu dois également mettre à niveau le pilote vers le minimum requis par ce SDK — 1.6.2 pour le SDK 1.8. Rien ne vérifie cela au moment de l'installation, et un pilote inférieur au minimum laisse l'appareil indisponible : axdevice signale la version requise et ne parvient pas à ouvrir l'appareil.
[libaxldev.c:285] Found kernel driver version 1.5.5, but at least version 1.6.2 is required. Please update the kernel driver
ERROR: AXR_ERROR_CONNECTION_ERROR: Failed to open device metis-0:4:0Voir aussi Step 3: Install the Metis kernel driver. Si tu exécutes déjà un SDK antérieur sur Ubuntu, mets à jour le pilote et recharge le module du noyau (aucun redémarrage requis) :
sudo apt update
sudo apt install -y metis-dkms
sudo rmmod metis
sudo modprobe metisRéexécute ensuite axdevice pour confirmer que l'appareil est détecté.
Le premier yolo export format=axelera ou yolo predict utilisant un modèle Axelera télécharge et installe automatiquement les paquets du SDK Axelera. Cela peut prendre plusieurs minutes selon la vitesse de ta connexion, et aucune progression ne s'affiche pendant le téléchargement. Pour l'installer manuellement au préalable :
pip install axelera-devkit==1.8.0 --extra-index-url https://software.axelera.ai/artifactory/api/pypi/axelera-pypi/simple
pip install axelera-rt==1.8.0 --extra-index-url https://software.axelera.ai/artifactory/api/pypi/axelera-pypi/simpleLe SDK 1.8 augmente la version du format de modèle compilé .axm, de sorte que les répertoires _axelera_model produits par un SDK antérieur sont rejetés au moment du chargement. Réexporte chaque modèle après la mise à niveau :
Error: Unsupported model version: 4.0, expected at least 5.0
Please re-deploy or re-download the model.Exporter des modèles YOLO vers Axelera#
Le format Axelera prend en charge les modes Exportation, Prédiction et Validation. L'inférence et la validation s'exécutent sur le matériel Axelera Metis AIPU. Exporte ton modèle, puis charge le modèle exporté pour exécuter l'inférence ou valider sa précision.
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to Axelera format
model.export(format="axelera") # creates 'yolo26n_axelera_model'from ultralytics import YOLO
# Load the exported Axelera model
model = YOLO("yolo26n_axelera_model")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# Load the exported Axelera model
model = YOLO("yolo26n_axelera_model")
# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")Arguments d'exportation#
| Argument | Type | Valeur par défaut | Description |
|---|---|---|---|
format | str | 'axelera' | Format cible pour le matériel Axelera Metis AIPU. |
imgsz | int ou tuple | 640 | Taille des images en entrée du modèle. |
batch* | int | 1 | Indique la taille du lot d'inférence du modèle exporté ou le nombre maximal d'images que le modèle exporté traitera simultanément en mode predict. |
quantize | int ou str | 8/auto | Précision de la quantification. 8 (INT8) est requis et activé automatiquement pour l'AIPU Axelera. Remplace les indicateurs obsolètes half/int8. Consulte la quantification INT8. |
data | str | None | Fichier YAML du jeu de données d'étalonnage ; pour la classification, il faut plutôt fournir un répertoire de données ou le nom d'un jeu de données intégré. Si tu ne le précises pas, Ultralytics sélectionne un jeu de données d'étalonnage adapté à la tâche. |
fraction | float, int ou list | 1.0 | Sous-ensemble d'étalonnage sous forme de ratio, de nombre d'images ou de ratios/nombres [train, val, test]. Les listes de deux éléments laissent test complet, tandis que 0 l'ignore (100 à 400 images recommandées). |
device | str | None | Appareil d'exportation : GPU (device=0) ou CPU (device=cpu). |
* L'inférence avec batch>1 nécessite le Voyager SDK 1.8.0 ou plus récent ; les modèles sont compilés pour une seule image.
Pour connaître toutes les options d'exportation, consulte la documentation du mode Exportation.
Structure de sortie#
yolo26n_axelera_model/
├── yolo26n.axm # Axelera model file
├── compiler_config_final.toml # Compiler configuration used for the build
└── metadata.yaml # Model metadata (classes, image size, etc.)Benchmarks Axelera AI#
L'AIPU Metis maximise le débit tout en réduisant la consommation énergétique.
| Modèle | FPS du Metis PCIe (images par seconde) | FPS du Metis M.2 (images par seconde) |
|---|---|---|
| YOLOv8n | 847 | 771 |
| YOLO11n | 746 | 574 |
| YOLO26n | 648.6 | 484.9 |
Benchmarks fondés sur les données d'Axelera AI. Le nombre réel de FPS dépend de la taille du modèle, du traitement par lots et de la résolution d'entrée.
Ce sont des chiffres de débit de l'hôte, mesurés par le model zoo avec le pipeline de streaming du Voyager SDK sur un fichier vidéo 720p. Un seul appel predict rapporte plutôt la latence par image, ce qui est une quantité différente.
Applications concrètes#
Ultralytics YOLO sur le matériel Axelera permet de mettre en œuvre des solutions informatiques edge avancées :
- Commerce intelligent : comptage d'objets et analyse par carte thermique en temps réel pour optimiser les magasins.
- Sécurité industrielle : détection des EPI à faible latence dans les environnements de fabrication.
- Analyse par drone : détection d'objets à haute vitesse sur des UAV pour l'agriculture et la recherche et le sauvetage.
- Systèmes de circulation : reconnaissance des plaques d'immatriculation et estimation de la vitesse en périphérie.
Flux de travail recommandé#
- Entraîne ton modèle avec le mode Entraînement d'Ultralytics
- Exporte au format Axelera avec
model.export(format="axelera") - Valide la précision avec
yolo valpour vérifier que la perte due à la quantification est minimale - Effectue des prédictions avec
yolo predictpour une validation qualitative - Déploie sur un pipeline de bout en bout haute performance sans dépendance à PyTorch — consulte les exemples de YOLO avec le Voyager SDK pour découvrir des pipelines Python composables utilisant
axelera-rt
Vérification de l'état de l'appareil#
Vérifie que ton appareil Axelera fonctionne correctement :
# if axdevice cannot be found, please run at least one inference (see above) to ensure the required packages are installed
axdevicePour obtenir des diagnostics détaillés, consulte la documentation d'AxDevice.
Performances maximales#
Les modèles sont compilés pour une seule image. Transmettre plusieurs images à Predict les achemine via l'planificateur Axelera (Voyager SDK 1.8 ou plus récent), de sorte que batch>1 s'exécute correctement, bien que mesuré de bout en bout sur un seul appareil, il ne soit pas plus rapide que batch=1 :
yolo predict model=yolo26n_axelera_model source=path/to/images batch=8Pour la production nécessitant un débit maximal, le Axelera Voyager SDK propose :
- Des pipelines d'inférence en streaming qui maintiennent plusieurs trames en cours de traitement
- La compilation d'un modèle sur plusieurs cœurs
- Inférence par tuiles pour les caméras à plus haute résolution
Consulte le model-zoo pour connaître les benchmarks en FPS ou contacte Axelera pour obtenir une assistance en production.
Problèmes connus#
- Limitations d'alimentation du M.2 : les modèles volumineux ou très volumineux peuvent rencontrer des erreurs à l'exécution sur les accélérateurs M.2 en raison de contraintes d'alimentation électrique.
Pour obtenir de l'aide, consulte la communauté Axelera.
FAQ#
Le Voyager SDK prend en charge l'exportation des modèles YOLOv8, YOLO11 et YOLO26. Consulte les tâches prises en charge pour connaître les tâches disponibles pour chaque modèle.
Oui. Tout modèle entraîné avec le mode Entraînement d'Ultralytics peut être exporté au format Axelera, à condition d'utiliser des couches et des opérations prises en charge.
Le Voyager SDK d'Axelera quantifie automatiquement les modèles pour l'architecture AIPU à précision mixte. Pour la plupart des tâches de détection d'objets, les gains de performances (FPS plus élevé, consommation réduite) compensent largement l'impact minimal sur la mAP. La quantification prend de quelques secondes à plusieurs heures selon la taille du modèle. Exécute
yolo valaprès l'exportation pour vérifier la précision.Nous recommandons 100 à 400 images. Au-delà de 400, aucun avantage supplémentaire n'est obtenu et le temps de quantification augmente. Expérimente avec 100, 200 et 400 images pour trouver l'équilibre optimal.
Le SDK, les pilotes et les outils de compilation sont disponibles via le portail développeur Axelera.