Cómo Amazon Search logra una inferencia T5 de baja latencia y alto rendimiento con NVIDIA Triton en AWS PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Cómo Amazon Search logra una inferencia T5 de baja latencia y alto rendimiento con NVIDIA Triton en AWS

La visión de Amazon Search es permitir que los clientes busquen sin esfuerzo. Nuestra corrección ortográfica lo ayuda a encontrar lo que desea, incluso si no conoce la ortografía exacta de las palabras deseadas. En el pasado, usábamos algoritmos clásicos de aprendizaje automático (ML) con ingeniería de funciones manual para la corrección ortográfica. Para dar el próximo salto generacional en el desempeño de la corrección ortográfica, estamos adoptando una serie de enfoques de aprendizaje profundo, incluidos los modelos de secuencia a secuencia. Los modelos de aprendizaje profundo (DL) son intensivos en computación tanto en el entrenamiento como en la inferencia, y estos costos históricamente han hecho que los modelos DL no sean prácticos en un entorno de producción a la escala de Amazon. En esta publicación, presentamos los resultados de una experimentación de optimización de inferencia en la que superamos esos obstáculos y logramos una aceleración de inferencia del 534 % para el popular transformador Hugging Face T5.

Desafío

El transformador de transferencia de texto a texto (T5, Explorando los límites del aprendizaje por transferencia con un transformador de texto a texto unificado, Reffel et al) es la arquitectura modelo de procesamiento de lenguaje natural (NLP) de última generación. T5 es una arquitectura prometedora para la corrección ortográfica, que encontramos que funciona bien en nuestros experimentos. Los modelos T5 son fáciles de investigar, desarrollar y capacitar, gracias a los marcos de aprendizaje profundo de código abierto y la investigación académica y empresarial en curso.

Sin embargo, es difícil lograr una inferencia de baja latencia y calidad de producción con un T5. Por ejemplo, una única inferencia con PyTorch T5 tarda 45 milisegundos en una de las cuatro GPU NVIDIA V100 Tensor Core que equipan una instancia Amazon Elastic Compute Cloud (EC2) p3.8xlarge. (Todos los números de inferencia informados son para una entrada de 9 tokens y una salida de 11 tokens. La latencia de las arquitecturas T5 es sensible a las longitudes de entrada y salida).

La inferencia T5 rentable y de baja latencia a escala es una dificultad conocida que han informado varios clientes de AWS más allá de Amazon Search, lo que aumenta nuestra motivación para contribuir con esta publicación. Para pasar de un logro científico fuera de línea a un servicio de producción orientado al cliente, Amazon Search enfrenta los siguientes desafíos:

  • Estado latente – Cómo realizar la inferencia T5 en menos de 50 milisegundos de latencia P99
  • rendimiento – Cómo manejar solicitudes de inferencia simultáneas a gran escala
  • Eficiencia de costo – Cómo mantener los costos bajo control

En el resto de esta publicación, explicamos cómo la pila de optimización de inferencia de NVIDIA, es decir, la TensorRT de NVIDIA compilador y el código abierto Servidor de inferencia NVIDIA Triton—resuelve esos desafíos. Leer Comunicado de prensa de NVIDIA para conocer las actualizaciones.

NVIDIA TensorRT: reducción de costos y latencia con optimización de inferencia

Los marcos de aprendizaje profundo son convenientes para iterar rápidamente en la ciencia y vienen con numerosas funcionalidades para el modelado científico, la carga de datos y la optimización del entrenamiento. Sin embargo, la mayoría de esas herramientas son subóptimas para la inferencia, que solo requiere un conjunto mínimo de operadores para las funciones de activación y multiplicación de matrices. Por lo tanto, se pueden obtener ganancias significativas mediante el uso de una aplicación especializada solo de predicción en lugar de ejecutar la inferencia en el marco de desarrollo de aprendizaje profundo.

NVIDIA TensorRT es un SDK para la inferencia de aprendizaje profundo de alto rendimiento. TensorRT ofrece un tiempo de ejecución optimizado, utilizando kernels optimizados de bajo nivel disponibles en las GPU de NVIDIA, y un gráfico de modelo solo de inferencia, que reorganiza el cálculo de inferencia en un orden optimizado.

En la siguiente sección, hablaremos sobre los detalles que suceden detrás de TensorRT y cómo acelera el rendimiento.

Cómo Amazon Search logra una inferencia T5 de baja latencia y alto rendimiento con NVIDIA Triton en AWS PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

  1. Precisión reducida maximiza el rendimiento con FP16 o INT8 mediante la cuantificación de modelos mientras mantiene la corrección.
  2. Fusión de capas y tensores optimiza el uso de la memoria GPU y el ancho de banda al fusionar nodos en un kernel para evitar la latencia de lanzamiento del kernel.
  3. Ajuste automático del núcleo selecciona las mejores capas de datos y algoritmos en función de la plataforma de GPU de destino y las formas del kernel de datos.
  4. Memoria de tensor dinámico minimiza el uso de memoria al liberar el consumo de memoria innecesario de resultados intermedios y reutiliza la memoria para tensores de manera eficiente.
  5. Ejecución de flujo múltiple utiliza un diseño escalable para procesar múltiples flujos de entrada en paralelo con flujos CUDA dedicados.
  6. Fusión de tiempo optimiza las redes neuronales recurrentes en pasos de tiempo con núcleos generados dinámicamente.

T5 utiliza capas de transformadores como bloques de construcción para sus arquitecturas. La última versión de NVIDIA TensorRT 8.2 presenta nuevas optimizaciones para los modelos T5 y GPT-2 para la inferencia en tiempo real. En la siguiente tabla, podemos ver la aceleración con TensorRT en algunos modelos T5 públicos que se ejecutan en instancias Amazon EC2G4dn, con tecnología de GPU NVIDIA T4 e instancias EC2 G5, con tecnología de GPU NVIDIA A10G.

 

Modelo Ejemplo Latencia de referencia de Pytorch (ms) TensorRT 8.2 Latencia (ms) Aceleración frente a la línea de base HF
FP32 FP32 FP16 FP32 FP16
codificador Descifrador De extremo a extremo codificador Descifrador De extremo a extremo codificador Descifrador De extremo a extremo De extremo a extremo De extremo a extremo
t5-pequeño g4dn.xgrande 5.98 9.74 30.71 1.28 2.25 7.54 0.93 1.59 5.91 407.40% 519.34%
g5.xgrande 4.63 7.56 24.22 0.61 1.05 3.99 0.47 0.80 3.19 606.66% 760.01%
base t5 g4dn.xgrande 11.61 19.05 78.44 3.18 5.45 19.59 3.15 2.96 13.76 400.48% 569.97%
g5.xgrande 8.59 14.23 59.98 1.55 2.47 11.32 1.54 1.65 8.46 530.05% 709.20%

Para obtener más información acerca de las optimizaciones y la replicación del rendimiento adjunto, consulte Optimización de T5 y GPT-2 para inferencia en tiempo real con NVIDIA TensorRT.

Es importante tener en cuenta que la compilación preserva la precisión del modelo, ya que opera en el entorno de inferencia y la programación de cómputo, dejando inalterada la ciencia del modelo, a diferencia de la compresión de eliminación de peso, como la destilación o la poda. NVIDIA TensorRT permite combinar la compilación con la cuantificación para obtener más ganancias. La cuantificación tiene doble beneficio en el hardware reciente de NVIDIA: reduce el uso de memoria y permite el uso de NVIDIA Tensor Cores, celdas específicas de DL que ejecutan una matriz fusionada, multiplicación y suma con precisión mixta.

En el caso de la experimentación de Amazon Search con el modelo Hugging Face T5, reemplazar PyTorch con TensorRT para la inferencia del modelo aumenta la velocidad en un 534 %.

NVIDIA Triton: servicio de inferencia de alto rendimiento y baja latencia

Las soluciones modernas de servicio de modelos pueden transformar modelos capacitados fuera de línea en productos impulsados ​​por ML orientados al cliente. Para mantener costos razonables a tal escala, es importante mantener bajos los gastos generales de servicio (manejo HTTP, preprocesamiento y posprocesamiento, comunicación CPU-GPU) y aprovechar al máximo la capacidad de procesamiento paralelo de las GPU.

NVIDIA Triton es un software de servicio de inferencia que ofrece una amplia compatibilidad con tiempos de ejecución de modelos (NVIDIA TensorRT, ONNX, PyTorch, XGBoost, entre otros) y backends de infraestructura, incluidos GPU, CPU y Inferencia de AWS.

Los practicantes de ML aman a Triton por múltiples razones. Su capacidad de procesamiento por lotes dinámico permite acumular solicitudes de inferencia durante un retraso definido por el usuario y dentro de un tamaño de lote máximo definido por el usuario, de modo que la inferencia de GPU se procesa por lotes, amortizando la sobrecarga de comunicación CPU-GPU. Tenga en cuenta que el procesamiento por lotes dinámico ocurre en el lado del servidor y dentro de períodos de tiempo muy cortos, de modo que el cliente solicitante todavía tiene una experiencia de invocación sincrónica, casi en tiempo real. Los usuarios de Triton también disfrutan de su capacidad de ejecución de modelos concurrentes. Las GPU son poderosas multitareas que se destacan en la ejecución de cargas de trabajo intensivas en cómputo en paralelo. Triton maximiza la utilización y el rendimiento de la GPU mediante el uso de secuencias CUDA para ejecutar varias instancias de modelos al mismo tiempo. Estas instancias de modelo pueden ser diferentes modelos de diferentes marcos para diferentes casos de uso, o una copia directa del mismo modelo. Esto se traduce en una mejora directa del rendimiento cuando tiene suficiente memoria de GPU inactiva. Además, como Triton no está vinculado a un marco de desarrollo de DL específico, permite a los científicos expresarse plenamente en la herramienta de su elección.

Con Triton en AWS, Amazon Search espera brindar un mejor servicio Amazon.com clientes y cumplir con los requisitos de latencia a bajo costo. La estrecha integración entre el tiempo de ejecución de TensorRT y el servidor Triton facilita la experiencia de desarrollo. El uso de la infraestructura en la nube de AWS permite escalar hacia arriba o hacia abajo en minutos en función de los requisitos de rendimiento, al mismo tiempo que mantiene el nivel alto de confiabilidad y seguridad.

Cómo AWS reduce la barrera de entrada

Si bien Amazon Search realizó este experimento en la infraestructura de Amazon EC2, existen otros servicios de AWS para facilitar el desarrollo, la capacitación y el alojamiento de soluciones de aprendizaje profundo de última generación.

Por ejemplo, AWS y NVIDIA colaboraron para lanzar una implementación administrada de Triton Inference Server en Amazon SageMaker ; Para más información, ver Implemente IA rápida y escalable con NVIDIA Triton Inference Server en Amazon SageMaker. AWS también colaboró ​​con Hugging Face para desarrollar una integración administrada y optimizada entre Amazon SageMaker y Hugging Face Transformers, el marco de código abierto del que se deriva el modelo Amazon Search T5; Lee mas en https://aws.amazon.com/machine-learning/hugging-face/.

Alentamos a los clientes con aplicaciones de servicio de aprendizaje profundo de CPU y GPU sensibles a la latencia a que consideren NVIDIA TensorRT y Triton en AWS. ¡Háganos saber lo que construye!

¿Le apasiona el aprendizaje profundo y la creación de soluciones basadas en el aprendizaje profundo para la Búsqueda de Amazon? Echa un vistazo a nuestro página de carreras.


Acerca de los autores

Cómo Amazon Search logra una inferencia T5 de baja latencia y alto rendimiento con NVIDIA Triton en AWS PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.RJ es un ingeniero en el equipo de Search M5 que lidera los esfuerzos para construir sistemas de aprendizaje profundo a gran escala para capacitación e inferencia. Fuera del trabajo, explora diferentes cocinas de comida y practica deportes de raqueta.

Cómo Amazon Search logra una inferencia T5 de baja latencia y alto rendimiento con NVIDIA Triton en AWS PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Hemant Pugaliya es científico aplicado en Search M5. Trabaja en la aplicación de la última investigación en procesamiento de lenguaje natural y aprendizaje profundo para mejorar la experiencia del cliente en las compras de Amazon en todo el mundo. Sus intereses de investigación incluyen el procesamiento del lenguaje natural y los sistemas de aprendizaje automático a gran escala. Fuera del trabajo, le gusta caminar, cocinar y leer.

Cómo Amazon Search logra una inferencia T5 de baja latencia y alto rendimiento con NVIDIA Triton en AWS PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.andy sol es ingeniero de software y líder técnico para la corrección ortográfica de búsqueda. Sus intereses de investigación incluyen la optimización de la latencia de inferencia de aprendizaje profundo y la creación de plataformas de experimentación rápida. Fuera del trabajo, disfruta del cine y las acrobacias.

Cómo Amazon Search logra una inferencia T5 de baja latencia y alto rendimiento con NVIDIA Triton en AWS PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Le Cai es ingeniero de software en Amazon Search. Trabaja para mejorar el rendimiento de la corrección ortográfica de búsqueda para ayudar a los clientes con su experiencia de compra. Se está enfocando en la inferencia en línea de alto rendimiento y la optimización del entrenamiento distribuido para el modelo de aprendizaje profundo. Fuera del trabajo, disfruta del esquí, el senderismo y el ciclismo.

Cómo Amazon Search logra una inferencia T5 de baja latencia y alto rendimiento con NVIDIA Triton en AWS PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.antonio ko actualmente trabaja como ingeniero de software en Search M5 Palo Alto, CA. Trabaja en la creación de herramientas y productos para la implementación de modelos y la optimización de inferencias. Fuera del trabajo, le gusta cocinar y jugar deportes de raqueta.

Cómo Amazon Search logra una inferencia T5 de baja latencia y alto rendimiento con NVIDIA Triton en AWS PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.olivier cruchant es un arquitecto de soluciones especialista en aprendizaje automático en AWS, con sede en Francia. Olivier ayuda a los clientes de AWS, desde pequeñas empresas emergentes hasta grandes empresas, a desarrollar e implementar aplicaciones de aprendizaje automático de nivel de producción. En su tiempo libre, disfruta leer trabajos de investigación y explorar la naturaleza con amigos y familiares.

Cómo Amazon Search logra una inferencia T5 de baja latencia y alto rendimiento con NVIDIA Triton en AWS PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Anish Mohan es un arquitecto de aprendizaje automático en NVIDIA y el líder técnico para los compromisos de ML y DL con sus clientes en la región metropolitana de Seattle.

Cómo Amazon Search logra una inferencia T5 de baja latencia y alto rendimiento con NVIDIA Triton en AWS PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.jiahong liu es arquitecto de soluciones en el equipo de proveedores de servicios en la nube de NVIDIA. Ayuda a los clientes a adoptar soluciones de inteligencia artificial y aprendizaje automático que aprovechan la computación acelerada de NVIDIA para abordar sus desafíos de capacitación e inferencia. En su tiempo libre, disfruta del origami, proyectos de bricolaje y jugar al baloncesto.

Cómo Amazon Search logra una inferencia T5 de baja latencia y alto rendimiento con NVIDIA Triton en AWS PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Eliuth Triana es Gerente de Relaciones con los Desarrolladores en NVIDIA. Conecta a los líderes de productos, desarrolladores y científicos de Amazon y AWS con los tecnólogos y líderes de productos de NVIDIA para acelerar las cargas de trabajo de Amazon ML/DL, los productos EC2 y los servicios de IA de AWS. Además, Eliuth es un apasionado del ciclismo de montaña, esquiador y jugador de póquer.

Sello de tiempo:

Mas de Aprendizaje automático de AWS