Glosario

TensorRT

Optimiza los modelos de aprendizaje profundo con TensorRT para una inferencia más rápida y eficiente en las GPUs NVIDIA . Consigue rendimiento en tiempo real con YOLO y aplicaciones de IA.

Entrena los modelos YOLO simplemente
con Ultralytics HUB

Saber más

TensorRT es un kit de desarrollo de software (SDK) para la inferencia de aprendizaje profundo de alto rendimiento. Desarrollado por NVIDIA, facilita la optimización de redes neuronales entrenadas para su despliegue en entornos de producción, especialmente en GPUs NVIDIA . Está diseñado para tomar modelos entrenados de marcos como PyTorch o TensorFlow y optimizarlos para una inferencia más rápida y eficiente, lo que es crucial para las aplicaciones en tiempo real.

¿Qué es TensorRT?

TensorRT es esencialmente un optimizador de la inferencia y un motor de ejecución. Toma un modelo de aprendizaje profundo entrenado y aplica diversas optimizaciones para mejorar su rendimiento durante la fase de inferencia. Este proceso implica técnicas como la optimización de grafos, la fusión de capas, la cuantización y el autoajuste del núcleo. Al optimizar el modelo, TensorRT reduce la latencia y aumenta el rendimiento, lo que permite desplegar modelos complejos de IA en aplicaciones que exigen tiempos de respuesta rápidos.

TensorRT no es un marco de entrenamiento, sino que se utiliza después de haber entrenado un modelo con marcos como PyTorch o TensorFlow. Se centra específicamente en la fase de despliegue, garantizando que los modelos se ejecuten con la mayor rapidez y eficacia posibles en el hardware de destino, principalmente las GPU de NVIDIA . Esto es especialmente valioso para las aplicaciones que se ejecutan en dispositivos periféricos o en centros de datos, donde la velocidad de inferencia y la utilización de recursos son fundamentales.

Cómo funciona TensorRT

El proceso de optimización en TensorRT implica varios pasos clave para mejorar el rendimiento de la inferencia:

  • Optimización del grafo: TensorRT analiza el grafo de la red neuronal y lo reestructura para eliminar operaciones redundantes y agilizar el flujo de ejecución. Esto puede incluir la eliminación de capas innecesarias u operaciones que no contribuyen significativamente al resultado final.
  • Fusión de capas: Múltiples capas compatibles se combinan en una sola capa para reducir la sobrecarga y mejorar la eficiencia computacional. Por ejemplo, las capas consecutivas de convolución, sesgo y ReLU a menudo pueden fusionarse en una sola operación.
  • Cuantización: TensorRT puede reducir la precisión de los pesos y activaciones del modelo de coma flotante (FP32 o FP16) a formatos enteros (INT8 o incluso inferiores). Esto reduce los requisitos de ancho de banda de la memoria y acelera el cálculo, especialmente en hardware optimizado para aritmética entera. Aunque la cuantización puede reducir ligeramente la precisión, TensorRT pretende minimizar este impacto a la vez que mejora significativamente la velocidad.
  • Autoajuste del núcleo: TensorRT selecciona la implementación (núcleo) más eficiente para cada operación de capa basándose en la arquitectura GPU de destino. Este proceso de autoajuste garantiza que el modelo aproveche al máximo las capacidades del hardware subyacente.

Estas optimizaciones conducen colectivamente a mejoras sustanciales en la velocidad y eficacia de la inferencia, en comparación con la ejecución del modelo original no optimizado.

Aplicaciones de TensorRT

TensorRT se utiliza ampliamente en diversas aplicaciones en las que es esencial la inferencia en tiempo real o casi real. Dos ejemplos concretos son:

  • Vehículos autónomos: En los coches de conducción autónoma, la detección rápida de objetos y la comprensión de la escena son primordiales para la seguridad y la capacidad de respuesta. Ultralytics YOLO Los modelos, cuando se optimizan con TensorRT, pueden alcanzar las velocidades de inferencia necesarias en las plataformas NVIDIA DRIVE para procesar los datos de los sensores en tiempo real, permitiendo una rápida toma de decisiones para la navegación y la evitación de obstáculos.
  • Análisis de vídeo en tiempo real: Para aplicaciones como la vigilancia de la seguridad o la supervisión del tráfico, TensorRT permite procesar flujos de vídeo de alta resolución para la detección, el seguimiento y el análisis de objetos con una latencia mínima. Esto permite alertas y acciones inmediatas basadas en eventos detectados, como la detección de intrusos en sistemas de alarma de seguridad o el análisis del flujo de tráfico para ciudades inteligentes.

TensorRT también es beneficioso en otras áreas, como el análisis de imágenes médicas, la robótica y los servicios de inferencia basados en la nube, donde la baja latencia y el alto rendimiento son fundamentales.

TensorRT y Ultralytics YOLO

Ultralytics YOLO pueden exportarse y optimizarse utilizando TensorRT para su despliegue en dispositivos NVIDIA . La documentación de exportación de Ultralytics YOLO proporciona instrucciones detalladas sobre cómo convertir los modelos YOLO al formato TensorRT . Esto permite a los usuarios aprovechar las capacidades de optimización de TensorRT para acelerar significativamente la velocidad de inferencia de sus modelos YOLO .

Para los usuarios que despliegan YOLOv8 en dispositivos NVIDIA Jetson Edge, la optimización TensorRT suele ser un paso crucial para conseguir rendimiento en tiempo real. Además, DeepStream en NVIDIA Jetson aprovecha TensorRT para aplicaciones de análisis de vídeo de alto rendimiento.

Ventajas de utilizar TensorRT

Utilizar TensorRT proporciona varias ventajas clave para desplegar modelos de aprendizaje profundo:

  • Mayor velocidad de inferencia: Las optimizaciones reducen significativamente la latencia de la inferencia y aumentan el rendimiento, lo que permite un rendimiento en tiempo real.
  • Latencia reducida: Una menor latencia es fundamental para las aplicaciones que requieren respuestas inmediatas, como los sistemas autónomos y los análisis en tiempo real.
  • Utilización optimizada de los recursos: La cuantificación y la optimización de gráficos reducen la huella de memoria y las demandas computacionales, lo que hace que los modelos sean más eficientes en dispositivos con recursos limitados.
  • Aceleración por hardware: TensorRT está diseñado para maximizar la utilización de las GPU de NVIDIA , garantizando un rendimiento óptimo en el hardware NVIDIA .
  • Preparación para el despliegue: Proporciona un entorno de ejecución listo para la producción, agilizando el proceso de despliegue desde el modelo entrenado hasta la aplicación.

En resumen, TensorRT es una herramienta vital para los desarrolladores que buscan implantar aplicaciones de inferencia de aprendizaje profundo de alto rendimiento, especialmente cuando utilizan GPUs NVIDIA . Al optimizar los modelos para conseguir velocidad y eficiencia, TensorRT ayuda a salvar la distancia entre la investigación y la implantación en el mundo real, haciendo que la IA avanzada sea accesible y práctica en diversos sectores.

Leer todo