¡Sintonice YOLO Vision 2025!
25 de septiembre de 2025
10:00 — 18:00 BST
Evento híbrido
Yolo Vision 2024
Glosario

ONNX (Open Neural Network Exchange)

Descubra cómo ONNX mejora la portabilidad e interoperabilidad de los modelos de IA, permitiendo la implementación perfecta 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 (ML). Desarrollado conjuntamente por empresas como Microsoft y Facebook, ONNX actúa como un traductor universal, que permite a los desarrolladores mover modelos entre diferentes marcos y herramientas de ML. Esta interoperabilidad es crucial para agilizar el recorrido desde el desarrollo del modelo hasta la producción. En lugar de estar bloqueados en un único ecosistema, los equipos pueden entrenar un modelo en un marco, como PyTorch, e implementarlo para la inferencia utilizando otro, como TensorFlow o un motor de inferencia especializado. Los modelos Ultralytics YOLO, por ejemplo, se pueden exportar fácilmente al formato ONNX, lo que proporciona la máxima flexibilidad para la implementación en varias plataformas.

¿Cómo funciona ONNX?

ONNX proporciona una definición estándar para un gráfico computacional, junto con una lista de operadores integrados. Cuando se convierte un modelo al formato ONNX, su arquitectura, compuesta por capas y operaciones matemáticas, se asigna a este estándar universal. El resultado .onnx el archivo contiene tanto la estructura de la red como los datos entrenados pesos del modelo.

Este archivo estandarizado puede ser cargado por cualquier herramienta que soporte la especificación ONNX. Esto incluye:

  • Frameworks de Deep Learning: Frameworks como PyTorch y TensorFlow tienen utilidades para importar y exportar modelos ONNX.
  • Tiempos de Ejecución de Inferencia: Los tiempos de ejecución de alto rendimiento como ONNX Runtime, OpenVINO de Intel y TensorRT de NVIDIA están diseñados para ejecutar modelos ONNX de manera eficiente en hardware específico, como una CPU o una GPU.
  • Servicios en la nube: Las principales plataformas en la nube, incluyendo Azure Machine Learning y Amazon SageMaker, utilizan ONNX para simplificar el model serving.

Aplicaciones reales de ONNX

La flexibilidad de ONNX lo hace invaluable en muchos escenarios de visión artificial y ML.

  1. Implementación de IA en dispositivos Edge: Un desarrollador podría entrenar un modelo complejo de detección de objetos como Ultralytics YOLO11 en un potente equipo de escritorio con GPU NVIDIA. Para que la aplicación se ejecute en un dispositivo edge de bajo consumo, como una Raspberry Pi o una cámara inteligente utilizada en analítica minorista, el modelo se exporta a ONNX. A continuación, un entorno de ejecución como ONNX Runtime u OpenVINO puede optimizarlo 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 médica 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 el ONNX Runtime para .NET para integrar las capacidades del modelo directamente, reduciendo significativamente el tiempo de desarrollo y la complejidad.

ONNX vs. Conceptos relacionados

Es importante distinguir ONNX de términos relacionados:

  • Formatos Específicos del Framework: Formatos como los de PyTorch .pt o SavedModel de TensorFlow son nativas de sus respectivos frameworks. ONNX actúa como intermediario, permitiendo la conversión entre estos formatos o la implementación a través de un runtime común. TorchScript es otro formato para la serialización de modelos PyTorch, a veces utilizado como una alternativa o precursor de la exportación ONNX.
  • Motores/Tiempos de Ejecución de Inferencia: Herramientas como ONNX Runtime, TensorRT y OpenVINO son bibliotecas de software diseñadas para ejecutar modelos de ML de manera eficiente. Muchos de estos motores pueden consumir modelos ONNX, aplicando a menudo optimizaciones adicionales (como la cuantización o la 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 el pipeline de operaciones de aprendizaje automático (MLOps), lo que permite a los desarrolladores elegir las mejores herramientas para el entrenamiento y la implementación sin estar limitados por las limitaciones del framework. Plataformas como Ultralytics HUB aprovechan estos formatos para simplificar el recorrido desde el desarrollo del modelo hasta la 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.

Únete a la comunidad de Ultralytics

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

Únete ahora
Enlace copiado al portapapeles