Meta lanzó recientemente su serie Llama 3.2 de modelos de lenguaje de visión (VLM), que vienen en variantes de parámetros 11B y 90B. Estos modelos son multimodales y admiten entradas de texto e imágenes.
Además, Meta lanzó variantes de modelos de lenguaje pequeño (SLM) de solo texto de Llama 3.2 con parámetros 1B y 3B. NVIDIA optimizó la colección de modelos Llama 3.2 para un gran rendimiento y un servicio rentable en millones de GPU en todo el mundo, desde nuestras GPU de centro de datos y nube más potentes hasta estaciones de trabajo NVIDIA RTX locales e incluso dispositivos de borde de bajo consumo con NVIDIA Jetson .
Los VLM de Llama 3.2 admiten longitudes de contexto largas de hasta 128 000 tokens de texto, así como una única entrada de imagen con una resolución de 1120 x 1120 píxeles. Para permitir respuestas de baja latencia para lograr excelentes experiencias de usuario y, al mismo tiempo, proporcionar un alto rendimiento para ofrecer estos modelos de manera rentable, la plataforma NVIDIA está optimizada en cada capa de la pila de tecnología.
De manera similar, los SLM de Llama 3.2 se han optimizado para que funcionen bien en millones de PC y estaciones de trabajo NVIDIA RTX en todo el mundo. También se han cuantificado para permitir la implementación local en dispositivos de borde con NVIDIA Jetson. Para obtener más información, consulte Implementación de Llama 3.2 acelerada desde el borde hasta la nube .
Esta publicación describe las optimizaciones de pila completa que permiten un alto rendimiento y una baja latencia en la prestación de los modelos Llama 3.2.
Aceleración del rendimiento de inferencia de IA de Llama 3.2
Los modelos Llama 3.2 11B y Llama 3.2 90B incluyen un codificador de visión con un decodificador de texto. El codificador está optimizado para la inferencia de alto rendimiento mediante la biblioteca NVIDIA TensorRT y el decodificador de texto está optimizado mediante la biblioteca NVIDIA TensorRT-LLM .
La información visual del codificador de visión se fusiona con el decodificador de texto de Llama con un mecanismo de atención cruzada compatible con TensorRT-LLM. Esto permite que los VLM de Llama 3.2 generen texto de manera eficiente teniendo en cuenta el razonamiento y la comprensión visual en el contexto de la entrada de texto.
TensorRT admite el codificador de visión en el formato de datos BF16. TensorRT-LLM admite el decodificador de texto en los formatos FP16 y BF16. La receta oficial publicada por Meta utiliza un decodificador de texto BF16. Este también se utiliza para nuestras mediciones de rendimiento de referencia. Para mejorar aún más el rendimiento, NVIDIA desarrolló una receta de cuantificación posterior al entrenamiento (PTQ) FP8 personalizada , aprovechando los núcleos Tensor FP8 de cuarta generación que forman parte de la arquitectura NVIDIA Hopper .
Esta receta, disponible a través de la biblioteca TensorRT Model Optimizer , permite un mayor rendimiento de Llama 3.2 y una menor latencia, a la vez que ofrece la misma precisión en numerosos puntos de referencia, incluidos ScienceQA , OCRBench , TextVQA y MMMU . Esto significa que los desarrolladores ahora pueden ejecutar el modelo de manera más rentable.
Las optimizaciones de las bibliotecas TensorRT, TensorRT-LLM y TensorRT Model Optimizer se combinan y están disponibles a través de implementaciones listas para producción mediante microservicios NVIDIA NIM .
Ofreciendo alto rendimiento y baja latencia
La Tabla 1 muestra el rendimiento máximo de procesamiento, que representa casos de uso sin conexión, en un rango de longitudes de secuencia de entrada y salida y una sola imagen de entrada con una resolución máxima admitida de 1120 x 1120 píxeles. Utilizando un sistema basado en la plataforma NVIDIA HGX H200, ejecutamos el modelo Llama 3.2 90B en ocho GPU NVIDIA H200 Tensor Core , cada una con 141 GB de memoria HBM3e rápida, conectadas a través de NVLink y NVLink Switch , lo que proporciona 900 GB/s de ancho de banda de GPU a GPU entre las GPU.
Rendimiento máximo de procesamiento: tokens de salida por segundo Ocho GPU NVIDIA H200 Tensor Core | |||
Longitud de secuencia de entrada y salida | Tamaño de imagen | 8.000 | 2.000 | 1120×1120 | 20.000 | 2.000 | 1120×1120 | 60.000 | 2.000 | 1120×1120 |
Codificador BF16 con decodificador FP8 | 2.646 | 1.417 | 480 |
Tabla 1. Rendimiento máximo de procesamiento con mediciones internas de NVIDIA
Receta de NIM optimizada para VLM de TensorRT versión 1.1.0. El servidor NIM se reinicia entre cada configuración de ISL/OSL para establecer una división de caché KV óptima. Datos medidos el 14/11/2024. Los tokens de salida por segundo incluyen el tiempo para generar el primer token: tok/s = tokens generados totales / latencia total. DGX H200, normalizado a 8 GPU (tomando el perfil TP que maximiza el rendimiento por GPU y multiplicando ese valor por 8 para simular una configuración de réplica en paralelo), tamaño de lote ajustado para el máximo rendimiento del nodo, TensorRT Model Optimizer versión 0.21 (versión preliminar), TensorRT-LLM versión 0.16.0.dev, TensorRT versión 10.4.0.
La Tabla 2 muestra el rendimiento de latencia mínima utilizando las mismas longitudes de secuencia de entrada y salida y el mismo tamaño de imagen de entrada.
Rendimiento de latencia mínima: tokens de salida por segundo Ocho GPU NVIDIA H200 Tensor Core | |||
Longitud de secuencia de entrada y salida | Tamaño de imagen | 8.000 | 2.000 | 1120×1120 | 20.000 | 2.000 | 1120×1120 | 60.000 | 2.000 | 1120×1120 |
Codificador BF16 con decodificador FP8 | 64 | 63 | 55 |
Tabla 2. Rendimiento de latencia mínima con mediciones internas de NVIDIA
Receta de NIM optimizada de TensorRT para VLM versión 1.1.0. Datos medidos el 4/11/2024. Los tokens de salida por segundo incluyen el tiempo necesario para generar el primer token: tok/s = total de tokens generados / latencia total. DGX H200, TP8, tamaño de lote = 1, TensorRT Model Optimizer versión 0.21 (versión preliminar), TensorRT-LLM versión 0.16.0.dev, TensorRT versión 10.4.0.
Como muestran estos resultados, las GPU NVIDIA H200 con software optimizado para TensorRT ofrecen un rendimiento excepcional en Llama 3.2 90B VLM, tanto en escenarios optimizados en latencia como en rendimiento.
Rendimiento de rendimiento de GeForce RTX 4090 con ONNX Runtime en NVIDIA RTX
Para las implementaciones de Windows, NVIDIA ha optimizado los SLM de Llama 3.2 para que funcionen de manera eficiente mediante la API generativa de tiempo de ejecución ONNX , con un backend DirectML . Las mediciones de rendimiento se realizan mediante el punto de control del modelo disponible en el catálogo de NGC. El punto de control es una versión cuantificada del modelo de instrucción 3B de Llama 3.2 y se cuantifica a AWQ INT4 mediante AutoAWQ y se convierte a ONNX mediante la API generativa de tiempo de ejecución ONNX.
Rendimiento máximo de procesamiento: tokens de salida por segundo GPU NVIDIA GeForce RTX 4090 | |||
Longitudes de secuencia de entrada y salida | 100 | 100 | 2.000 | 100 | 4.000 | 100 |
Tiempo de ejecución de Onnx-GenAI con DirectML, BS=1 | 253 | 203 | 165 |
Tiempo de ejecución de Onnx-GenAI con DirectML, BS=4 | 615 | 374 | 251 |
Tabla 3. Rendimiento máximo de procesamiento con mediciones internas de NVIDIA
API generativa de tiempo de ejecución ONNX con datos de DirectML medidos el 10/07/2024. Los tokens de salida por segundo incluyen el tiempo necesario para generar el primer token: tok/s = total de tokens generados / latencia total. GPU GeForce RTX 4090.
Mejor rendimiento en Llama 3.2 en todas las plataformas
Con la plataforma de computación acelerada de NVIDIA, puede crear modelos y potenciar sus aplicaciones con los modelos Llama 3.2 de mayor rendimiento en cualquier plataforma, desde el centro de datos y la nube hasta las estaciones de trabajo locales. Las empresas que buscan la rentabilidad más rápida pueden usar NVIDIA NIM , parte de la plataforma de software NVIDIA AI Enterprise , que ofrece inferencia optimizada NVIDIA TensorRT en Llama 3.2 y otros modelos de NVIDIA y su ecosistema de socios.
Expresiones de gratitud
Nos gustaría agradecer a George Yuan, Alex Settle y Chenjie Luo por sus esfuerzos para apoyar esta publicación.
Recursos relacionados
- Sesión de GTC: Optimización y escalado de LLM con TensorRT-LLM para generación de texto
- Sesión de GTC: Desmitifique la depuración y el rendimiento de CUDA con potentes herramientas para desarrolladores
- Contenedores NGC: Llama-3-Swallow-70B-Instruct-v0.1
- Contenedores NGC: Llama-3.1-405b-instruct
- Contenedores NGC: Llama-3.1-Nemotron-70B-Instrucciones
- SDK: Llama3 8B Instruir NIM
nvidia Blog. A. E., A. S., A. M., J. C., Y. T., A. G. y N. C. Traducido al español