Glosario

ONNX (Intercambio abierto de redes neuronales)

Descubra cómo ONNX mejora la portabilidad y la interoperabilidad de los modelos de IA, lo que permite un despliegue perfecto de los modelos YOLO de Ultralytics en diversas plataformas.

ONNX (Open Neural Network Exchange) es un formato de código abierto para representar modelos de aprendizaje automático. Co-desarrollado por empresas como Microsoft y Facebook, ONNX actúa como traductor universal, permitiendo a los desarrolladores mover modelos entre diferentes marcos y herramientas de ML. Esta interoperabilidad es crucial para agilizar el camino desde el desarrollo del modelo hasta la producción. En lugar de estar encerrados en un único ecosistema, los equipos pueden entrenar un modelo en un marco, como PyTorch, y desplegarlo para la inferencia utilizando otro, como TensorFlow o un motor de inferencia especializado. Los modelos YOLO de Ultralytics, por ejemplo, pueden exportarse fácilmente al formato ONNX, lo que proporciona la máxima flexibilidad para su despliegue en diversas plataformas.

Cómo funciona ONNX

ONNX ofrece una definición estándar de gráfico computacional, junto con una lista de operadores incorporados. Al convertir un modelo al formato ONNX, su arquitectura -compuesta de capas y operaciones matemáticas- se adapta a este estándar universal. El resultado .onnx contiene tanto la estructura de la red como los datos entrenados pesos del modelo.

Este archivo normalizado puede ser cargado por cualquier herramienta compatible con la especificación ONNX. Esto incluye:

Aplicaciones reales de ONNX

La flexibilidad de ONNX lo hace inestimable en muchos escenarios de visión por ordenador y ML.

  1. Implantación de la IA en dispositivos Edge: Un desarrollador puede entrenar un modelo complejo de detección de objetos como Ultralytics YOLO11 en un potente ordenador de sobremesa con GPU NVIDIA. Para que la aplicación se ejecute en un dispositivo de bajo consumo como una Raspberry Pi o una cámara inteligente utilizada en el análisis de comercios, el modelo se exporta a ONNX. A continuación, puede optimizarse mediante un tiempo de ejecución como ONNX Runtime u OpenVINO para obtener un rendimiento eficiente en el hardware de destino sin necesidad del entorno PyTorch original.

  2. Integración de modelos en diversas aplicaciones: Consideremos una empresa de atención sanitaria que crea un modelo de análisis de imágenes médicas utilizando Python y TensorFlow. La infraestructura de software existente del hospital está construida con C# y .NET. En lugar de reescribir el modelo, el equipo lo exporta a ONNX. La aplicación C# puede entonces utilizar ONNX Runtime para .NET para integrar directamente las capacidades del modelo, reduciendo significativamente el tiempo de desarrollo y la complejidad.

ONNX frente a conceptos relacionados

Es importante distinguir ONNX de los términos relacionados:

  • Formatos específicos del marco: Formatos como el de PyTorch .pt o Modelo guardado de TensorFlow son nativos de sus respectivos frameworks. ONNX actúa como intermediario, permitiendo la conversión entre estos formatos o el despliegue a través de un tiempo de ejecución común. TorchScript es otro formato para la serialización de modelos PyTorch, a veces utilizado como alternativa o precursor de la exportación ONNX.
  • Motores de inferencia/tiempos de ejecución: Herramientas como ONNX Runtime, TensorRT y OpenVINO son bibliotecas de software diseñadas para ejecutar modelos ML de forma eficiente. Muchos de estos motores pueden consumir modelos de ONNX, a menudo aplicando optimizaciones adicionales (como cuantificación o fusión de grafos) para objetivos de hardware específicos. ONNX proporciona la entrada de modelo estandarizada para estos motores.

En resumen, ONNX es un estándar vital para garantizar la flexibilidad y la interoperabilidad en la cadena de operaciones de aprendizaje automático (MLOps), lo que permite a los desarrolladores elegir las mejores herramientas para la formación y el despliegue sin verse restringidos por las limitaciones del marco. Plataformas como Ultralytics HUB aprovechan estos formatos para simplificar el camino desde el desarrollo del modelo hasta su aplicación en el mundo real. Para obtener más información, visite el sitio web oficial de ONNX y explore el proyecto en GitHub.

Únase a la comunidad Ultralytics

Únase al futuro de la IA. Conecta, colabora y crece con innovadores de todo el mundo.

Únete ahora
Enlace copiado en el portapapeles