Exportation et déploiement avec Axelera AI#
Ultralytics s’associe à Axelera AI pour permettre une inférence performante et écoénergétique sur les appareils Edge AI. Exporte et déploie les modèles Ultralytics YOLO directement 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 en périphérie, en s’appuyant sur une architecture propriétaire à flux de données et sur le calcul en mémoire pour offrir jusqu’à 856 TOPS avec une faible consommation électrique.
Choisir le matériel adapté#
Axelera AI propose différents formats pour répondre à diverses contraintes de déploiement. Le tableau ci-dessous t’aide à choisir le matériel optimal pour ton déploiement Ultralytics YOLO.
Gamme de matériel#
La gamme de matériel Axelera est optimisée pour exécuter Ultralytics YOLO26 et les versions précédentes avec un excellent rendement en FPS par watt.
Cartes accélératrices#
Ces cartes accélèrent l’IA sur les appareils hôtes existants et facilitent les déploiements sur des infrastructures existantes.
| Produit | Format | Calcul | Performances (INT8) | Application cible |
|---|---|---|---|---|
| Metis PCIe x4 | PCIe Gen3 x16 | 4x Metis AIPU | 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 proposer 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 : un appareil autonome en périphérie qui associe le Metis AIPU à un CPU ARM Rockchip RK3588.
- Stations de travail : des tours professionnelles de Dell (Precision 3460XE) et Lenovo (ThinkStation P360 Ultra).
- PC industriels : des systèmes renforcés 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’instances YOLO26 n’est pas non plus prise en charge par export d’Ultralytics, 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étecter | ✅ | ✅ | ✅ |
| Segmenter | ✅ | ✅ | ❌ |
| Sémantique | ❌ | ❌ | ✅ |
| Profondeur | ❌ | ❌ | ❌ |
| Classifier | ✅ | ✅ | ✅ |
| Pose | ✅ | ✅ | ✅ |
| OBB | ✅ | ✅ | ✅ |
La segmentation d’instances YOLO26 n’est pas encore prise en charge par la commande export d’Ultralytics. Si tu as besoin de yolo26-seg, tu peux déployer le modèle via le Voyager SDK avec deploy.py, qui fournit une solution de contournement en espace utilisateur. La prise en charge native par le compilateur sera ajoutée dans une prochaine 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 d’exécution
- Pilote du noyau Metis :
metis-dkms1.6.2 ou version ultérieure, installé séparément depip - Dépendance système :
sudo apt install libgl1(requis par OpenCV, non inclus viapip)
Installation d’Ultralytics#
pip install ultralyticsPour des instructions détaillées, consulte notre guide d’installation d’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 l’extrait ci-dessous 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 une version ultérieure ; la version la plus récente est donc installée ici :sudo apt update sudo apt install -y metis-dkms sudo modprobe metis
Le pilote du noyau est installé séparément des packages Python du SDK. Après la mise à niveau du SDK, tu dois donc également mettre le pilote à la version minimale requise par ce SDK — 1.6.2 pour le SDK 1.8. Aucune vérification n’est effectuée lors de l’installation ; un pilote dont la version est inférieure au minimum rend l’appareil indisponible : axdevice indique la version requise et échoue à 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:0Consulte également l’étape 3 : installer le pilote du noyau Metis. Si tu utilises déjà une version antérieure du SDK sur Ubuntu, mets à jour le pilote et recharge le module du noyau (aucun redémarrage nécessaire) :
sudo apt update
sudo apt install -y metis-dkms
sudo rmmod metis
sudo modprobe metisExécute ensuite axdevice à nouveau pour confirmer que l’appareil est détecté.
Lors de la première exécution de yolo export format=axelera ou yolo predict avec un modèle Axelera, les packages du SDK Axelera sont automatiquement téléchargés et installés. Selon la vitesse de ta connexion, cette opération peut prendre plusieurs minutes, sans indicateur de progression pendant le téléchargement. Pour effectuer l’installation 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 ; les répertoires _axelera_model créés avec une version antérieure du SDK sont donc rejetés au 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 Export, Predict et Validate. 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 effectuer une inférence ou valider sa précision.
from ultralytics import YOLO
# Charger un modèle YOLO26
model = YOLO("yolo26n.pt")
# Exporter le modèle au format Axelera
model.export(format="axelera") # creates 'yolo26n_axelera_model'from ultralytics import YOLO
# Charger le modèle Axelera exporté
model = YOLO("yolo26n_axelera_model")
# Exécuter l’inférence
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# Charger le modèle Axelera exporté
model = YOLO("yolo26n_axelera_model")
# Valider la précision sur le jeu de données COCO8
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 de lot pour l’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 quantification. 8 (INT8) est requis et activé automatiquement pour l’Axelera AIPU. Remplace les indicateurs obsolètes half/int8. Consulte la quantification INT8. |
data | str | None | Fichier YAML du jeu de données de calibration ; pour la classification, indique plutôt un répertoire de jeu de données ou le nom d’un jeu de données intégré. Si tu ne précises rien, Ultralytics sélectionne un jeu de données de calibration adapté à la tâche. |
fraction | float, int ou list | 1.0 | Sous-ensemble de calibration défini 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 une version ultérieure ; les modèles sont compilés pour une seule image.
Pour consulter toutes les options d’exportation, voir la documentation du mode Export.
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 d’Axelera AI#
L’AIPU Metis maximise le débit tout en minimisant la consommation d’énergie.
| Modèle | FPS Metis PCIe (images par seconde) | FPS Metis M.2 (images par seconde) |
|---|---|---|
| YOLOv8n | 847 | 771 |
| YOLO11n | 746 | 574 |
| YOLO26n | 648.6 | 484.9 |
Benchmarks basés sur les données d’Axelera AI. Le FPS réel dépend de la taille du modèle, du traitement par lots et de la résolution d’entrée.
Il s’agit de mesures du débit côté hôte, effectuées par le zoo de modèles avec le pipeline de streaming du Voyager SDK sur un fichier vidéo 720p. Un seul appel predict indique plutôt la latence par image, une mesure différente.
Applications concrètes#
Ultralytics YOLO sur le matériel Axelera permet de mettre en œuvre des solutions avancées d’informatique en périphérie :
- Commerce de détail 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 à grande vitesse sur des UAV pour l’agriculture et les opérations de recherche et de 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 Train d’Ultralytics
- Exporte au format Axelera avec
model.export(format="axelera") - Valide la précision avec
yolo valafin de vérifier que la perte due à la quantification est minime - Effectue des prédictions avec
yolo predictpour une validation qualitative - Déploie un pipeline de bout en bout hautes performances sans dépendance à PyTorch — consulte les exemples 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 AxDevice.
Performances maximales#
Les modèles sont compilés pour une seule image. Le passage de plusieurs images à Predict les achemine via le planificateur Axelera (Voyager SDK 1.8 ou version ultérieure), ce qui permet à batch>1 de fonctionner correctement, mais, mesuré de bout en bout sur un seul appareil, ce n’est 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, l’Axelera Voyager SDK offre :
- Des pipelines d’inférence en streaming qui maintiennent plusieurs images en cours de traitement
- La compilation d’un même modèle sur plusieurs cœurs
- L’inférence par tuiles pour les caméras à plus haute résolution
Consulte le zoo de modèles pour les benchmarks FPS ou contacte Axelera pour obtenir de l’assistance en production.
Problèmes connus#
- Limites d’alimentation du M.2 : les modèles de grande ou très grande taille peuvent rencontrer des erreurs à l’exécution sur les accélérateurs M.2 en raison des contraintes d’alimentation électrique.
Pour obtenir de l’aide, rends-toi sur la communauté Axelera.
FAQ#
Le Voyager SDK prend en charge l’exportation des modèles YOLOv8, YOLO11 et YOLO26. Consulte la page 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 Train 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és, consommation réduite) compensent largement l’effet minime sur le 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 de 100 à 400 images. Au-delà de 400, il n’y a aucun avantage supplémentaire et le temps de quantification augmente. Fais des essais avec 100, 200 et 400 images pour trouver le meilleur équilibre.
Le SDK, les pilotes et les outils de compilation sont disponibles sur le portail développeur Axelera.