Glosario

TensorRT

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

TensorRT es una biblioteca de tiempo de ejecución y optimizador de inferencia de aprendizaje profundo (DL) de alto rendimiento desarrollada por NVIDIA. Está diseñada específicamente para maximizar el rendimiento de inferencia y minimizar la latencia de inferencia para aplicaciones de aprendizaje profundo que se ejecutan en GPUs NVIDIA. TensorRT toma modelos de redes neuronales entrenados a partir de diversos marcos de trabajo y aplica numerosas optimizaciones para generar un motor de ejecución altamente optimizado para su implantación. Este proceso es crucial para implantar modelos de forma eficiente en entornos de producción, especialmente cuando la velocidad y la capacidad de respuesta son fundamentales.

Principales características y optimizaciones

TensorRT consigue importantes mejoras de rendimiento gracias a varias técnicas sofisticadas:

  • Calibración de precisión: Reduce la precisión del modelo de FP32 a precisiones más bajas como FP16 o INT8(precisión mixta o cuantificación del modelo) con una pérdida mínima de precisión, lo que conlleva un cálculo más rápido y un menor uso de memoria.
  • Fusión de capas y tensor: Combina varias capas u operaciones en un único núcleo(fusión de capas), lo que reduce el uso de ancho de banda de memoria y la sobrecarga de lanzamiento del núcleo.
  • Ajuste automático del kernel: Selecciona los mejores algoritmos preimplementados (kernels) para la arquitectura de GPU NVIDIA de destino, lo que garantiza un rendimiento óptimo para el hardware específico.
  • Memoria tensorial dinámica: Minimiza la huella de memoria reutilizando la memoria asignada a los tensores cuya vida útil no se solapa.
  • Ejecución multisecuencia: Permite el procesamiento paralelo de múltiples flujos de entrada.

Cómo funciona TensorRT

El flujo de trabajo normalmente implica tomar un modelo entrenado (por ejemplo, de PyTorch o TensorFlow, a menudo a través de un formato intermedio como ONNX) e introducirlo en el optimizador TensorRT. TensorRT analiza el modelo, realiza optimizaciones de grafos y optimizaciones específicas del objetivo basadas en la precisión especificada y la GPU objetivo, y finalmente genera un plan de inferencia optimizado, conocido como motor TensorRT. Este archivo de motor puede desplegarse para una inferencia rápida.

Relevancia en IA y ML

TensorRT es muy relevante para la fase de despliegue de modelos del ciclo de vida del aprendizaje automático. Su capacidad para acelerar significativamente la inferencia lo hace indispensable para aplicaciones que requieren inferencia en tiempo real, como la detección de objetos con modelos como Ultralytics YOLO, la segmentación de imágenes y el procesamiento del lenguaje natural. Es un componente clave de la pila de software de NVIDIA, junto con herramientas como CUDA, que permite a los desarrolladores aprovechar todo el potencial del hardware NVIDIA, desde las potentes GPU para centros de datos hasta los módulos NVIDIA Jetson de bajo consumo para Edge AI. Ultralytics proporciona una integración perfecta, lo que permite a los usuarios exportar modelos YOLO al formato TensorRT para una implantación optimizada, que suele utilizarse con plataformas como Triton Inference Server.

Aplicaciones reales

TensorRT se utiliza ampliamente en diversos sectores en los que se necesita una inferencia de IA rápida y eficiente:

  1. Vehículos autónomos: En los coches autónomos(IA en automoción), TensorRT optimiza los modelos de percepción (como la detección de objetos y la segmentación de carriles) que se ejecutan en plataformas NVIDIA DRIVE integradas, lo que garantiza la toma de decisiones en tiempo real, cruciales para la seguridad. Modelos como RTDETR pueden optimizarse utilizando TensorRT para su implantación en este tipo de sistemas(comparación entre RTDETRv2 y YOLOv5).
  2. Análisis de imágenes médicas: los hospitales y las instituciones de investigación utilizan TensorRT para acelerar la inferencia de modelos de IA que analizan exploraciones médicas (TC, RM) para tareas como la detección de tumores o la identificación de anomalías(IA en la atención sanitaria), lo que permite realizar diagnósticos más rápidos y respalda los flujos de trabajo clínicos. A menudo forma parte de sistemas más amplios de visión por ordenador (CV).

TensorRT frente a tecnologías relacionadas

Aunque TensorRT se centra en optimizar la inferencia específicamente para las GPU NVIDIA, existen otras herramientas en el ecosistema:

  • Marcos de aprendizaje profundo (PyTorch, TensorFlow): Se utilizan principalmente para entrenar modelos, pero también ofrecen capacidades básicas de inferencia. TensorRT optimiza los modelos entrenados en estos marcos para su despliegue.
  • ONNX Runtime: Un motor de inferencia multiplataforma que soporta múltiples aceleradores de hardware, incluyendo GPUs NVIDIA (a menudo usando TensorRT como proveedor de ejecución), CPUs y otros. Ofrece una compatibilidad de hardware más amplia, pero puede no alcanzar el mismo nivel de optimización en hardware NVIDIA que TensorRT directamente.
  • Intel OpenVINO: Similar a TensorRT pero optimizado para hardware Intel (CPUs, iGPUs, VPUs). Los modelos de Ultralytics también pueden exportarse al formato OpenVINO.

El principal factor diferenciador de TensorRT es su profunda integración con el hardware de NVIDIA y sus agresivas estrategias de optimización adaptadas a las GPU, que a menudo proporcionan el mayor rendimiento en las pruebas comparativas (véase MLPerf Benchmarks) en plataformas NVIDIA en comparación con otros tiempos de ejecución de uso más general. La gestión de modelos e implantaciones puede agilizarse utilizando plataformas como Ultralytics HUB.

Únase a la comunidad Ultralytics

Únase al futuro de la IA. Conecta, colabora y crece con innovadores de todo el mundo.

Únete ahora
Enlace copiado en el portapapeles