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.
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:
La flexibilidad de ONNX lo hace inestimable en muchos escenarios de visión por ordenador y ML.
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.
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.
Es importante distinguir ONNX de los términos relacionados:
.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.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.