Exportación y despliegue con Axelera AI#
Ultralytics colabora con Axelera AI para ofrecer inferencia de alto rendimiento y eficiencia energética en dispositivos Edge AI. Exporta y despliega modelos Ultralytics YOLO directamente en la AIPU Metis® mediante el SDK Voyager.
Axelera AI ofrece aceleración por hardware dedicada para la visión artificial en el edge, con una arquitectura de flujo de datos propia y computación en memoria para alcanzar hasta 856 TOPS con un bajo consumo energético.
Cómo elegir el hardware adecuado#
Axelera AI ofrece distintos formatos para adaptarse a diferentes limitaciones de despliegue. El gráfico siguiente te ayuda a identificar el hardware óptimo para desplegar 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:#fffCatálogo de hardware#
La gama de hardware de Axelera está optimizada para ejecutar Ultralytics YOLO26 y versiones anteriores con una alta eficiencia en FPS por vatio.
Tarjetas aceleradoras#
Estas tarjetas permiten acelerar la IA en dispositivos host existentes, lo que facilita los despliegues en entornos existentes.
| Producto | Formato | Cómputo | Rendimiento (INT8) | Aplicación de destino |
|---|---|---|---|---|
| Metis PCIe x4 | PCIe Gen3 x16 | 4x AIPU Metis | 856 TOPS | Analítica de vídeo de alta densidad, ciudades inteligentes |
| Metis PCIe x1 | PCIe Gen3 x1 | 1x AIPU Metis | 214 TOPS | PC industriales, gestión de colas en comercios |
| Metis M.2 | M.2 2280 M-Key | 1x AIPU Metis | 214 TOPS | Drones, robótica, dispositivos médicos portátiles |
| Metis M.2 MAX | M.2 2280 | 1x AIPU Metis | 214 TOPS | Entornos que requieren una gestión térmica avanzada |
Sistemas integrados#
Para ofrecer soluciones listas para usar, Axelera colabora con fabricantes y proporciona sistemas validados previamente para la AIPU Metis.
- Placa de cómputo Metis: dispositivo edge independiente que combina la AIPU Metis con una CPU ARM Rockchip RK3588.
- Estaciones de trabajo: torres empresariales de Dell (Precision 3460XE) y Lenovo (ThinkStation P360 Ultra).
- PC industriales: sistemas robustos de Advantech y Aetina, diseñados para la automatización de la fabricación.
Tareas compatibles#
La estimación de profundidad no es compatible: el cabezal de profundidad genera operadores que el compilador de la AIPU Metis no puede reducir. La segmentación de instancias de YOLO26 tampoco es compatible con export de Ultralytics, pero se puede desplegar mediante el SDK Voyager, como se describe a continuación. La segmentación semántica de YOLO26 sí es compatible.
| Tarea | YOLOv8 | YOLO11 | YOLO26 |
|---|---|---|---|
| Detectar | ✅ | ✅ | ✅ |
| Segmentar | ✅ | ✅ | ❌ |
| Semántica | ❌ | ❌ | ✅ |
| Profundidad | ❌ | ❌ | ❌ |
| Clasificar | ✅ | ✅ | ✅ |
| Pose | ✅ | ✅ | ✅ |
| OBB | ✅ | ✅ | ✅ |
La segmentación de instancias de YOLO26 aún no es compatible con el comando export de Ultralytics. Si necesitas yolo26-seg, puedes desplegarlo mediante el SDK Voyager usando deploy.py, que ofrece una solución provisional en espacio de usuario. La compatibilidad nativa del compilador se añadirá en una versión futura.
Instalación#
La exportación al formato Axelera requiere:
- Sistema operativo: solo Linux (se recomienda Ubuntu 22.04/24.04)
- Hardware: acelerador Axelera AI (dispositivos Metis)
- Python: versiones 3.10, 3.11, 3.12 y 3.13
- PyTorch:
torch>=2.8,<2.13 - SDK Voyager: 1.8.0; la exportación instala esta versión del kit de desarrollo y la inferencia instala esta versión del entorno de ejecución
- Controlador del kernel Metis:
metis-dkms1.6.2 o posterior, instalado por separado depip - Dependencia del sistema:
sudo apt install libgl1(necesaria para OpenCV, no se incluye mediantepip)
Instalación de Ultralytics#
pip install ultralyticsPara obtener instrucciones detalladas, consulta nuestra guía de instalación de Ultralytics. Si tienes problemas, consulta nuestra guía de problemas frecuentes.
Instalación del controlador de Axelera#
-
Añade la clave del repositorio de Axelera:
sudo sh -c "curl -fsSL https://software.axelera.ai/artifactory/api/security/keypair/axelera/public | gpg --dearmor -o /etc/apt/keyrings/axelera.gpg" -
Añade el repositorio a apt:
Elige el fragmento adecuado de los siguientes según el sistema operativo que uses.
# 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" -
Instala el controlador y cárgalo. El SDK 1.8 necesita
metis-dkms1.6.2 o posterior, así que aquí se instala la versión más reciente:sudo apt update sudo apt install -y metis-dkms sudo modprobe metis
El controlador del kernel se instala por separado de los paquetes del SDK de Python, así que, después de actualizar el SDK, también debes actualizar el controlador como mínimo a la versión requerida por ese SDK: 1.6.2 para el SDK 1.8. No se comprueba durante la instalación, y una versión del controlador anterior a la mínima requerida deja el dispositivo inaccesible: axdevice indica la versión necesaria y no consigue abrir el dispositivo.
[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:0Consulta también el Paso 3: Instala el controlador del kernel Metis. Si ya estás usando una versión anterior del SDK en Ubuntu, actualiza el controlador y vuelve a cargar el módulo del kernel (no hace falta reiniciar):
sudo apt update
sudo apt install -y metis-dkms
sudo rmmod metis
sudo modprobe metisA continuación, vuelve a ejecutar axdevice para confirmar que se detecta el dispositivo.
La primera vez que ejecutes yolo export format=axelera o yolo predict con un modelo Axelera, se descargarán e instalarán automáticamente los paquetes del SDK de Axelera. Esto puede tardar varios minutos, según la velocidad de conexión, y no se muestra ningún indicador de progreso durante la descarga. Para instalarlo manualmente antes:
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/simpleEl SDK 1.8 aumenta la versión del formato del modelo compilado .axm, por lo que los directorios _axelera_model generados por una versión anterior del SDK se rechazan al cargarlos. Vuelve a exportar cada modelo después de actualizar:
Error: Unsupported model version: 4.0, expected at least 5.0
Please re-deploy or re-download the model.Exportación de modelos YOLO a Axelera#
El formato Axelera es compatible con los modos Exportar, Predecir y Validar. La inferencia y la validación se ejecutan en hardware AIPU Metis de Axelera. Exporta el modelo y, a continuación, carga el modelo exportado para ejecutar la inferencia o validar su precisión.
from ultralytics import YOLO
# Carga un modelo YOLO26
model = YOLO("yolo26n.pt")
# Exporta el modelo al formato Axelera
model.export(format="axelera") # creates 'yolo26n_axelera_model'from ultralytics import YOLO
# Carga el modelo Axelera exportado
model = YOLO("yolo26n_axelera_model")
# Ejecutar inferencia
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# Carga el modelo Axelera exportado
model = YOLO("yolo26n_axelera_model")
# Valida la precisión con el conjunto de datos COCO8
metrics = model.val(data="coco8.yaml")Argumentos de exportación#
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
format | str | 'axelera' | Formato de destino para el hardware AIPU Metis de Axelera. |
imgsz | int o tuple | 640 | Tamaño de imagen para la entrada del modelo. |
batch* | int | 1 | Especifica el tamaño del lote de inferencia del modelo exportado o el número máximo de imágenes que el modelo exportado procesará simultáneamente en el modo predict. |
quantize | int o str | 8/auto | Precisión de cuantización. 8 (INT8) es obligatorio y se activa automáticamente para la AIPU Axelera. Sustituye a los indicadores obsoletos half/int8. Consulta Cuantización INT8. |
data | str | None | Archivo YAML del conjunto de datos de calibración; para clasificación, en su lugar se acepta un directorio del conjunto de datos o el nombre de un conjunto de datos integrado. Si se omite, Ultralytics selecciona un conjunto de datos de calibración específico para la tarea. |
fraction | float, int o list | 1.0 | Subconjunto de calibración indicado como proporción, número de imágenes o proporciones/recuentos [train, val, test]. Las listas de dos elementos mantienen completo test, mientras que 0 lo omite (se recomiendan entre 100 y 400 imágenes). |
device | str | None | Dispositivo de exportación: GPU (device=0) o CPU (device=cpu). |
* La inferencia con batch>1 requiere Voyager SDK 1.8.0 o posterior; los modelos se compilan para una sola imagen.
Consulta todas las opciones de exportación en la documentación del modo Exportar.
Estructura de salida#
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 de Axelera AI#
La AIPU Metis maximiza el rendimiento y minimiza el consumo energético.
| Modelo | FPS de Metis PCIe (fotogramas por segundo) | FPS de Metis M.2 (fotogramas por segundo) |
|---|---|---|
| YOLOv8n | 847 | 771 |
| YOLO11n | 746 | 574 |
| YOLO26n | 648.6 | 484.9 |
Benchmarks basados en datos de Axelera AI. Los FPS reales dependen del tamaño del modelo, el procesamiento por lotes y la resolución de entrada.
Estas cifras corresponden al rendimiento del host y se han medido con el zoo de modelos mediante la canalización de streaming del Voyager SDK sobre un archivo de vídeo de 720p. Una única llamada a predict devuelve la latencia por imagen, que es una magnitud distinta.
Aplicaciones en el mundo real#
Ultralytics YOLO en hardware Axelera permite soluciones avanzadas de computación en el borde:
- Comercio minorista inteligente: Conteo de objetos y análisis de mapas de calor en tiempo real para optimizar las tiendas.
- Seguridad industrial: Detección de EPI de baja latencia en entornos de fabricación.
- Análisis con drones: Detección de objetos de alta velocidad en UAV para la agricultura y las operaciones de búsqueda y rescate.
- Sistemas de tráfico: Reconocimiento de matrículas y estimación de velocidad en el borde.
Flujo de trabajo recomendado#
- Entrena tu modelo con el modo Train de Ultralytics
- Exporta al formato de Axelera con
model.export(format="axelera") - Valida la precisión con
yolo valpara comprobar que la pérdida por cuantización es mínima - Predice con
yolo predictpara realizar una validación cualitativa - Despliega en una canalización integral de alto rendimiento sin depender de PyTorch; consulta los ejemplos de YOLO en Voyager SDK para ver canalizaciones componibles de Python que utilizan
axelera-rt
Comprobación del estado del dispositivo#
Comprueba que tu dispositivo Axelera funciona correctamente:
# if axdevice cannot be found, please run at least one inference (see above) to ensure the required packages are installed
axdevicePara obtener diagnósticos detallados, consulta la documentación de AxDevice.
Rendimiento máximo#
Los modelos se compilan para una sola imagen. Si pasas varias imágenes a Predict, se dirigirán al planificador de Axelera (Voyager SDK 1.8 o posterior), por lo que batch>1 funcionará correctamente, aunque, medido de extremo a extremo en un único dispositivo, no será más rápido que batch=1:
yolo predict model=yolo26n_axelera_model source=path/to/images batch=8Para producción que requiera el máximo rendimiento, el Voyager SDK de Axelera ofrece:
- Canalizaciones de inferencia en streaming que mantienen varios fotogramas en curso
- Compilación de un modelo en varios núcleos
- Inferencia por mosaicos para cámaras de mayor resolución
Consulta el zoo de modelos para ver benchmarks de FPS o contacta con Axelera para obtener asistencia para producción.
Problemas conocidos#
- Limitaciones de potencia de M.2: Los modelos grandes o extragrandes pueden provocar errores en tiempo de ejecución en aceleradores M.2 debido a las limitaciones de la fuente de alimentación.
Para obtener asistencia, visita la comunidad de Axelera.
Preguntas frecuentes#
Voyager SDK permite exportar modelos YOLOv8, YOLO11 y YOLO26. Consulta las tareas compatibles para saber qué tareas están disponibles para cada modelo.
Sí. Cualquier modelo entrenado con el modo Train de Ultralytics se puede exportar al formato de Axelera, siempre que utilice capas y operaciones compatibles.
Voyager SDK de Axelera cuantiza automáticamente los modelos para la arquitectura AIPU de precisión mixta. En la mayoría de las tareas de detección de objetos, las mejoras de rendimiento (más FPS y menor consumo) compensan con creces el efecto mínimo en el mAP. La cuantización puede tardar desde unos segundos hasta varias horas, según el tamaño del modelo. Ejecuta
yolo valdespués de la exportación para verificar la precisión.Recomendamos usar entre 100 y 400 imágenes. Más de 400 no aporta ningún beneficio adicional y aumenta el tiempo de cuantización. Prueba con 100, 200 y 400 imágenes para encontrar el equilibrio óptimo.
El SDK, los controladores y las herramientas de compilación están disponibles en el portal para desarrolladores de Axelera.