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