Motor de inferencia
Descubra cómo los motores de inferencia potencian la IA proporcionando predicciones en tiempo real, optimizando modelos y permitiendo el despliegue multiplataforma.
Un motor de inferencia es un componente de software especializado que ejecuta un modelo de aprendizaje automático entrenado para generar predicciones a partir de datos nuevos y desconocidos. Después de entrenar un modelo utilizando un marco como PyTorch o TensorFlow, el motor de inferencia se encarga de ejecutarlo de forma eficiente en un entorno de producción. Su principal objetivo es optimizar el modelo en cuanto a velocidad y uso de recursos, lo que hace posible lograr la inferencia en tiempo real en diversas plataformas de hardware, desde potentes servidores en la nube hasta dispositivos periféricos con recursos limitados.
El papel de un motor de inferencia
La función principal de un motor de inferencia es tender un puente entre un modelo entrenado y su aplicación en el mundo real. Realiza varias optimizaciones críticas para minimizar la latencia de la inferencia y maximizar el rendimiento sin comprometer significativamente la precisión.
Las principales técnicas de optimización son:
- Optimización de gráficos: El motor analiza el grafo computacional del modelo y aplica optimizaciones como la "fusión de capas", que combina varias operaciones secuenciales en una sola para reducir la carga computacional.
- Optimización específica del hardware: Compila el modelo para ejecutarlo en hardware específico, como CPU, GPU o aceleradores especializados en IA como las TPU de Google. Para ello, se utilizan núcleos de cálculo altamente optimizados y adaptados a la arquitectura del hardware.
- Reducción de la precisión: Técnicas como la cuantización de modelos se utilizan para convertir los pesos de un modelo de números de coma flotante de 32 bits a números enteros más eficientes de 16 u 8 bits. Esto reduce drásticamente el uso de memoria y acelera los cálculos, lo que es especialmente importante para la computación de bordes.
- Poda de modelos: Un motor de inferencia puede facilitar la ejecución de modelos en los que se han eliminado los pesos innecesarios mediante la poda de modelos, lo que reduce aún más el tamaño del modelo y la demanda computacional.
Motores de inferencia populares
Muchas organizaciones han desarrollado motores de inferencia de alto rendimiento para acelerar los modelos de aprendizaje profundo. Las opciones más populares incluyen:
- NVIDIA TensorRT: optimizador y tiempo de ejecución de alto rendimiento para las GPU NVIDIA, que proporciona velocidades de inferencia de última generación. Ultralytics ofrece una integración perfecta con TensorRT para implantar modelos YOLO.
- OpenVINO de Intel: un conjunto de herramientas de código abierto para optimizar e implantar modelos en hardware de Intel, incluidas CPU y GPU integradas. Los modelos de Ultralytics pueden exportarse fácilmente a OpenVINO.
- ONNX Runtime: Motor multiplataforma desarrollado por Microsoft que puede ejecutar modelos en formato ONNX (Open Neural Network Exchange) en una amplia gama de hardware.
- TensorFlow Lite (TFLite): Una solución ligera diseñada específicamente para desplegar modelos en dispositivos móviles e integrados, como los que ejecutan Android e iOS.
- Apache TVM: Un marco compilador de aprendizaje automático de código abierto que puede optimizar modelos para varios backends de hardware.
Aplicaciones reales
Los motores de inferencia son la espina dorsal operativa de innumerables aplicaciones de IA.
- En las soluciones de IA para automoción, un motor de inferencia se ejecuta en el ordenador de a bordo del vehículo para procesar los datos de cámaras y sensores. Ejecuta un modelo de detección de objetos como Ultralytics YOLO11 para identificar peatones, señales de tráfico y otros vehículos en milisegundos, habilitando funciones de seguridad críticas.
- Para la fabricación inteligente, un motor de inferencia en una planta de producción alimenta un sistema de visión por ordenador para el control de calidad. Analiza imágenes de una línea de producción en tiempo real para detectar defectos y garantizar que los productos cumplen las normas de calidad con gran rapidez y fiabilidad.
Motor de inferencia frente a conceptos relacionados
Es útil distinguir un motor de inferencia de otros términos relacionados en MLOps.
Marco de ML frente a motor de inferencia: Un marco de aprendizaje automático como PyTorch es una biblioteca completa para entrenar y desplegar modelos. Incluye herramientas para construir redes neuronales, gestionar conjuntos de datos y ejecutar bucles de entrenamiento. Un motor de inferencia, por el contrario, es una herramienta altamente especializada centrada exclusivamente en la fase de despliegue. Mientras que un marco de trabajo tiene capacidades básicas de inferencia, un motor de inferencia dedicado proporciona un rendimiento superior a través de optimizaciones agresivas y específicas del hardware.
Servicio de modelos frente a motor de inferencia: El servicio de modelos se refiere a la infraestructura más amplia para hacer que un modelo esté disponible a través de una red, que incluye componentes como puntos finales de API, equilibradores de carga y herramientas de supervisión. El motor de inferencia es el componente central de un sistema de servicio de modelos que ejecuta las solicitudes de predicción. Puede explorar varias opciones de despliegue de modelos para ver cómo encajan los motores de inferencia en el panorama general. Plataformas como Ultralytics HUB agilizan todo este proceso, desde la formación hasta el despliegue optimizado.