TensorRT
Optimice los modelos de deep learning con TensorRT para una inferencia más rápida y eficiente en las GPU de NVIDIA. Logre un rendimiento en tiempo real con YOLO y aplicaciones de IA.
TensorRT es un optimizador de inferencia de deep learning de alto rendimiento y una biblioteca de tiempo de ejecución de NVIDIA. Está diseñado específicamente para maximizar el rendimiento de las redes neuronales (NN) entrenadas en las Unidades de Procesamiento Gráfico (GPU) de NVIDIA. Después de que un modelo es entrenado utilizando un framework como PyTorch o TensorFlow, TensorRT toma ese modelo y aplica numerosas optimizaciones para prepararlo para el despliegue. El resultado es un motor de tiempo de ejecución altamente eficiente que puede reducir significativamente la latencia de inferencia y mejorar el rendimiento, lo que lo hace ideal para aplicaciones que requieren inferencia en tiempo real.
Cómo funciona TensorRT
TensorRT logra sus ganancias de rendimiento a través de un proceso de optimización de varios pasos que transforma un modelo entrenado estándar en un motor de inferencia optimizado. Este proceso es en gran medida automatizado y adaptado a la arquitectura específica de la GPU de NVIDIA en la que se desplegará. Las técnicas clave de optimización incluyen:
- Optimización de Grafos: TensorRT analiza el modelo entrenado y realiza optimizaciones de grafos, como eliminar capas no utilizadas y fusionar capas verticalmente (combinando capas secuenciales) y horizontalmente (combinando capas paralelas). Esto reduce el número de operaciones y la sobrecarga de memoria.
- Calibración de Precisión: Admite la inferencia de menor precisión, como la precisión mixta (FP16) e INT8. Al convertir los pesos del modelo de punto flotante de 32 bits (FP32) a precisiones más bajas a través de la cuantización del modelo, TensorRT reduce drásticamente el uso de memoria y los requisitos computacionales con un impacto mínimo en la precisión.
- Ajuste automático del kernel: TensorRT selecciona de una amplia biblioteca de kernels de GPU optimizados para cada operación o crea los suyos propios, ajustados específicamente para la GPU objetivo. Esto asegura que cada cálculo se realice de la manera más eficiente posible en el hardware.
- Optimización de la memoria de tensores: Optimiza el uso de la memoria reutilizando la memoria para los tensores a lo largo de la ejecución del modelo, reduciendo la huella de memoria y mejorando el rendimiento.
Los modelos Ultralytics YOLO se pueden exportar fácilmente al formato TensorRT, lo que permite a los desarrolladores aprovechar estas optimizaciones para sus aplicaciones de visión artificial (CV).
Aplicaciones en el mundo real
TensorRT es fundamental para implementar IA de alto rendimiento en entornos con restricciones de tiempo y recursos.
- Vehículos autónomos: En los coches autónomos, los sistemas de percepción deben procesar los datos de las cámaras y los sensores en tiempo real para detectar peatones, otros vehículos y obstáculos. Los modelos como Ultralytics YOLO11 optimizados con TensorRT pueden realizar la detección de objetos con una latencia extremadamente baja, lo cual es fundamental para tomar decisiones de conducción seguras.
- Fabricación inteligente: En una planta de fábrica, la IA en la fabricación se utiliza para el control de calidad automatizado. Una cámara captura imágenes de los productos en una cinta transportadora, y un modelo de visión los analiza en busca de defectos. Mediante el uso de TensorRT, estos sistemas pueden mantener el ritmo de las líneas de producción de alta velocidad, identificando los problemas al instante y mejorando la eficiencia general.
TensorRT vs. Tecnologías Relacionadas
Si bien TensorRT es un potente motor de inferencia, es importante comprender en qué se diferencia de otras herramientas del ecosistema de la IA:
- Frameworks de Deep Learning: Frameworks como PyTorch y TensorFlow son principalmente para entrenar modelos. Si bien tienen sus propias capacidades de inferencia, no están tan optimizados para la implementación como un runtime especializado como TensorRT.
- ONNX Runtime: El formato Open Neural Network Exchange (ONNX) proporciona una forma de representar modelos de forma interoperable. ONNX Runtime puede ejecutar modelos en varias plataformas de hardware, incluidas las GPU de NVIDIA (donde puede usar TensorRT como proveedor de ejecución). Sin embargo, la integración directa con TensorRT a menudo produce un mejor rendimiento en el hardware de NVIDIA debido a sus optimizaciones específicas del hardware.
- Intel OpenVINO: OpenVINO es similar a TensorRT, pero está optimizado para hardware de Intel (CPU, iGPU, VPU). Sirve para el mismo propósito de acelerar la inferencia, pero está adaptado para un ecosistema de hardware diferente.
La principal ventaja de TensorRT es su profunda integración con el ecosistema de NVIDIA, desde las GPU hasta las bibliotecas CUDA, lo que permite un rendimiento sin igual para los modelos implementados en plataformas NVIDIA, como se muestra a menudo en los benchmarks de MLPerf. La gestión de la implementación de modelos se puede simplificar aún más con plataformas MLOps como Ultralytics HUB.