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.
Catá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 exportación a Axelera admite las siete tareas de Ultralytics. La segmentación semántica y la estimación de profundidad solo están disponibles con YOLO26, la única familia que incluye esos cabezales.
Los modelos de detección, segmentación de instancias, pose y OBB de YOLO26 exportan de forma predeterminada su cabezal uno a uno sin NMS, que el entorno de ejecución de Axelera decodifica en el host. Si pasas nms=True, se exporta en su lugar el cabezal uno a muchos, que obtiene peores resultados en Metis: la detección YOLO26n alcanza un mAP50-95 de 0.212 en COCO128 de esa forma, frente a 0.453 con el cabezal sin NMS.
| Tarea | YOLOv8 | YOLO11 | YOLO26 |
|---|---|---|---|
| Detectar | ✅ | ✅ | ✅ |
| Segmentar | ✅ | ✅ | ✅ |
| Semántica | ❌ | ❌ | ✅ |
| Profundidad | ❌ | ❌ | ✅ |
| Clasificar | ✅ | ✅ | ✅ |
| Pose | ✅ | ✅ | ✅ |
| OBB | ✅ | ✅ | ✅ |
Los rangos de cuantización se obtienen de las imágenes de calibración, y el valor predeterminado para profundidad, depth8.yaml, contiene cuatro fotogramas de interior. En la partición de validación de 654 imágenes de NYU Depth V2, YOLO26n de profundidad calibrado con ese valor predeterminado obtiene un delta1 de 0.742 en Metis, frente a 0.783 del modelo PyTorch, mientras que con 100 fotogramas de entrenamiento de NYU obtiene 0.780. Pasa data= con un YAML de conjunto de datos cuya partición val contenga al menos 100 imágenes de las escenas que verá el modelo; la calibración lee la partición val.
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.15 - Voyager SDK: 1.9.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.7.0 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. SDK 1.9 requiere
metis-dkms1.7.0 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 de Python del SDK, por lo que, después de actualizar el SDK, también debes actualizar el controlador para que cumpla la versión mínima requerida por ese SDK: 1.7.0 para SDK 1.9. No se comprueba durante la instalación y, si el controlador es anterior a la versión mínima, el dispositivo queda inaccesible: axdevice informa de la versión requerida y no consigue abrir el dispositivo.
[libaxldev.c:285] Found kernel driver version 1.6.2, but at least version 1.7.0 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.9.0 --extra-index-url https://software.axelera.ai/artifactory/api/pypi/axelera-pypi/simple
pip install axelera-rt==1.9.0 --extra-index-url https://software.axelera.ai/artifactory/api/pypi/axelera-pypi/simpleSDK 1.9 no eleva la versión del formato de modelo compilado .axm, por lo que un directorio _axelera_model exportado con la versión 1.8 se carga y ejecuta sin cambios. Vuelve a exportar solo para aprovechar las mejoras del compilador.
Un SDK que sí eleva la versión del formato rechaza los directorios antiguos al cargarlos, que es lo que ocurre al actualizar desde la versión 1.7 o anterior:
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 | Tamaño del lote de calibración. El modelo compilado procesa una imagen cada vez. |
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). |
* Los modelos se compilan para una sola imagen, así que el parámetro de exportación batch solo establece el tamaño del lote de calibración. Pasa batch a predict en su lugar para entregar varias imágenes a la vez al planificador de Axelera (Voyager SDK 1.8.0 o posterior): consulta Rendimiento máximo.
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, y una sola imagen se ejecuta en un núcleo AIPU. Si pasas varias imágenes a Predict, se entregan juntas al planificador de Axelera, que las distribuye entre los núcleos del dispositivo:
yolo predict model=yolo26n_axelera_model source=path/to/images batch=32yolo26n a imgsz=640 sobre las 128 imágenes de COCO128 de un directorio, Metis PCIe, mediana de tres ejecuciones:
| Voyager SDK | Dispositivos | batch=1 | batch=8 | batch=32 |
|---|---|---|---|---|
| 1.8.0 | 1 | 36 img/s | 45 img/s | 40 img/s |
| 1.8.0 | 2 | 39 img/s | 41 img/s | 41 img/s |
| 1.9.0 | 1 | 41 img/s | 85 img/s | 109 img/s |
| 1.9.0 | 2 | 35 img/s | 83 img/s | 113 img/s |
En SDK 1.9, el uso de un lote es lo que aumenta el rendimiento: 2,7 veces con batch=32, mientras que la versión 1.8 se mantiene cerca de 40 img/s con cualquier tamaño de lote. Usa un lote grande para maximizar el rendimiento sin conexión y batch=1 cuando importe la latencia por imagen. Un segundo dispositivo aporta poco a predict: con batch=32, cada imagen ya dedica unos 4 ms al preprocesamiento en el host, aproximadamente lo mismo que tarda en el dispositivo.
Más allá de predict#
Para 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
Esas rutas omiten el preprocesamiento y el posprocesamiento de PyTorch que predict ejecuta en el host. Consulta el zoo de modelos para ver las pruebas 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.