Mejora el rendimiento de la inferencia para LLMs con los nuevos contenedores de Amazon SageMaker

Optimiza el rendimiento de inferencia para LLMs con los nuevos contenedores de Amazon SageMaker

Hoy, Amazon SageMaker lanza una nueva versión (0.25.0) de Contenedores de Aprendizaje Profundo de Inferencia de Modelos Grandes (LMI) y agrega soporte para Biblioteca TensorRT-LLM de NVIDIA. Con estas actualizaciones, puedes acceder sin esfuerzo a herramientas de última generación para optimizar modelos de lenguaje grandes (LLMs) en SageMaker y obtener beneficios de rendimiento de precio: Amazon SageMaker LMI TensorRT-LLM DLC reduce la latencia en promedio en un 33% y mejora el rendimiento en promedio en un 60% para los modelos Llama2-70B, Falcon-40B y CodeLlama-34B, en comparación con la versión anterior.

Los LLMs han experimentado un crecimiento sin precedentes en popularidad en una amplia gama de aplicaciones. Sin embargo, estos modelos a menudo son demasiado grandes para caber en un solo acelerador o dispositivo GPU, lo que dificulta lograr una inferencia de baja latencia y escalabilidad. SageMaker ofrece LMI DLCs para ayudarte a maximizar la utilización de los recursos disponibles y mejorar el rendimiento. Los últimos LMI DLCs ofrecen soporte continuo de agrupación para solicitudes de inferencia para mejorar el rendimiento, operaciones colectivas eficientes para mejorar la latencia, Paged Attention V2 (que mejora el rendimiento de las cargas de trabajo con longitudes de secuencia más largas) y la última biblioteca TensorRT-LLM de NVIDIA para maximizar el rendimiento en GPUs. Los LMI DLCs ofrecen una interfaz de bajo código que simplifica la compilación con TensorRT-LLM al requerir solo el ID del modelo y los parámetros opcionales del modelo; toda la carga pesada necesaria para construir un modelo optimizado de TensorRT-LLM y crear un repositorio de modelos es administrada por los LMI DLCs. Además, puedes utilizar las últimas técnicas de cuantificación, como GPTQ, AWQ y SmoothQuant, que están disponibles en los LMI DLCs. Como resultado, con los LMI DLCs en SageMaker, puedes acelerar el tiempo de valor para tus aplicaciones de IA generativa y optimizar LLMs para el hardware de tu elección y lograr la mejor relación precio-rendimiento.

En esta publicación, profundizaremos en las nuevas características con la última versión de los LMI DLCs, discutiremos las pruebas de rendimiento y describiremos los pasos requeridos para implementar LLMs con los LMI DLCs para maximizar el rendimiento y reducir costos.

Nuevas características con SageMaker LMI DLCs

En esta sección, discutiremos tres nuevas características con SageMaker LMI DLCs.

SageMaker LMI ahora admite TensorRT-LLM

SageMaker ahora ofrece TensorRT-LLM de NVIDIA como parte de la última versión de LMI DLC (0.25.0), lo que permite optimizaciones de vanguardia como SmoothQuant, FP8 y agrupación continua para LLMs al utilizar GPUs de NVIDIA. TensorRT-LLM abre la puerta a experiencias de latencia ultra baja que pueden mejorar considerablemente el rendimiento. El SDK de TensorRT-LLM admite implementaciones que van desde configuraciones de una sola GPU hasta configuraciones de múltiples GPU, con posibles ganancias adicionales de rendimiento a través de técnicas como el paralelismo de tensores. Para utilizar la biblioteca de TensorRT-LLM, elige el LMI DLC de TensorRT-LLM de los LMI DLCs disponibles y establece engine=MPI entre otras configuraciones como option.model_id. El siguiente diagrama ilustra la pila tecnológica de TensorRT-LLM.

Operaciones colectivas de inferencia eficientes

En una implementación típica de LLMs, los parámetros del modelo se distribuyen en múltiples aceleradores para adaptarse a los requisitos de un modelo grande que no puede caber en un solo acelerador. Esto mejora la velocidad de inferencia al permitir que cada acelerador realice cálculos parciales en paralelo. Posteriormente, se introduce una operación colectiva para consolidar estos resultados parciales al final de estos procesos y redistribuirlos entre los aceleradores.

Para los tipos de instancia P4D, SageMaker implementa una nueva operación colectiva que acelera la comunicación entre las GPUs. Como resultado, obtienes una latencia más baja y un mayor rendimiento con los últimos LMI DLCs en comparación con versiones anteriores. Además, esta función es compatible de manera predeterminada con los LMI DLCs y no necesitas configurar nada para usar esta función porque está integrada en los LMI DLCs de SageMaker y está disponible exclusivamente para Amazon SageMaker.

Soporte de cuantización

Ahora, los DLC de SageMaker LMI admiten las últimas técnicas de cuantización, incluyendo modelos pre-cuantizados con GPTQ, Cuantización de Peso Consciente de la Activación (AWQ) y cuantización just-in-time como SmoothQuant.

GPTQ permite que LMI ejecute modelos INT3 e INT4 populares de Hugging Face. Ofrece los pesos de modelo más pequeños posibles que pueden ajustarse en una sola GPU/multi-GPU. Los DLC de LMI también admiten la inferencia de AWQ, lo que permite una velocidad de inferencia más rápida. Por último, los DLC de LMI ahora admiten SmoothQuant, lo que permite la cuantización INT8 para reducir la huella de memoria y el costo computacional de los modelos con una pérdida mínima de precisión. Actualmente, te permitimos hacer la conversión just-in-time para los modelos de SmoothQuant sin ningún paso adicional. GPTQ y AWQ deben ser cuantizados con un conjunto de datos para ser utilizados con los DLC de LMI. También puedes elegir modelos populares pre-cuantizados de GPTQ y AWQ para usar en los DLC de LMI. Para usar SmoothQuant, establece option.quantize=smoothquan con engine=DeepSpeed en serving.properties. Hay un cuaderno de muestra que utiliza SmoothQuant para alojar GPT-Neox en ml.g5.12xlarge ubicado en GitHub.

Utilizando los DLC de SageMaker LMI

Puedes implementar tus LLMs en SageMaker utilizando los nuevos DLCs de LMI 0.25.0 sin realizar cambios en tu código. Los DLCs de SageMaker LMI utilizan DJL serving para servir tu modelo para inferencia. Para empezar, simplemente necesitas crear un archivo de configuración que especifique configuraciones como la paralelización del modelo y las bibliotecas de optimización de inferencia a utilizar. Para obtener instrucciones y tutoriales sobre cómo utilizar los DLCs de SageMaker LMI, consulta Paralelismo de modelo e inferencia de modelos grandes y nuestra lista de DLCs de SageMaker LMI disponibles.

El contenedor de DeepSpeed incluye una biblioteca llamada LMI Distributed Inference Library (LMI-Dist). LMI-Dist es una biblioteca de inferencia utilizada para ejecutar inferencias de modelos grandes con la mejor optimización utilizada en diferentes bibliotecas de código abierto, como vLLM, Text-Generation-Inference (hasta la versión 0.9.4), FasterTransformer y DeepSpeed. Esta biblioteca incorpora tecnologías populares de código abierto como FlashAttention, PagedAttention, FusedKernel y núcleos eficientes de comunicación GPU para acelerar el modelo y reducir el consumo de memoria.

TensorRT LLM es una biblioteca de código abierto lanzada por NVIDIA en octubre de 2023. Optimizamos la biblioteca de TensorRT-LLM para acelerar la inferencia y creamos un conjunto de herramientas para simplificar la experiencia del usuario al admitir la conversión de modelos justo a tiempo. Esta herramienta permite a los usuarios proporcionar un ID de modelo de Hugging Face y desplegar el modelo de principio a fin. También admite batching continuo con streaming. Puedes esperar aproximadamente entre 1 y 2 minutos para compilar los modelos Llama-2 7B y 13B, y alrededor de 7 minutos para el modelo de 70B. Si deseas evitar este tiempo de compilación durante la configuración del punto de conexión de SageMaker y la escalabilidad de las instancias, te recomendamos utilizar la compilación de tiempo de anticipación (AOT) con nuestro tutorial para preparar el modelo. También aceptamos cualquier modelo TensorRT LLM construido para Triton Server que pueda ser utilizado con los DLCs de LMI.

Resultados de referencia de rendimiento

Comparamos el rendimiento de la última versión de los DLCs de SageMaker LMI (0.25.0) con la versión anterior (0.23.0). Realizamos experimentos con los modelos Llama-2 70B, Falcon 40B y CodeLlama 34B para demostrar la mejora de rendimiento con TensorRT-LLM y las operaciones de inferencia colectiva eficientes (disponibles en SageMaker).

Los contenedores SageMaker LMI vienen con un script de controlador predeterminado para cargar y alojar modelos, brindando una opción de bajo código. También tienes la opción de usar tu propio script si necesitas realizar personalizaciones en los pasos de carga del modelo. Debes pasar los parámetros requeridos en un archivo serving.properties. Este archivo contiene las configuraciones necesarias para que el servidor de modelos de la biblioteca Deep Java (DJL) descargue y aloje el modelo. El siguiente código es el serving.properties utilizado para nuestra implementación y evaluación de rendimiento:

engine=MPIoption.use_custom_all_reduce=true option.model_id={{s3url}}option.tensor_parallel_degree=8option.output_formatter=jsonoption.max_rolling_batch_size=64option.model_loading_timeout=3600

El parámetro engine se utiliza para definir el motor de tiempo de ejecución para el servidor de modelos DJL. Podemos especificar el ID del modelo de Hugging Face o la ubicación de Amazon Simple Storage Service (Amazon S3) del modelo utilizando el parámetro model_id. El parámetro de tarea se utiliza para definir la tarea de procesamiento del lenguaje natural (NLP). El parámetro tensor_parallel_degree establece el número de dispositivos en los que se distribuyen los módulos paralelos de tensor. El parámetro use_custom_all_reduce se establece en verdadero para instancias de GPU que tienen NVLink habilitado para acelerar la inferencia del modelo. Puedes configurarlo para P4D, P4de, P5 y otras GPU que tienen NVLink conectado. El parámetro output_formatter establece el formato de salida. El parámetro max_rolling_batch_size establece el límite para el número máximo de solicitudes concurrentes. El parámetro model_loading_timeout establece el valor de tiempo de espera para descargar y cargar el modelo para servir la inferencia. Para obtener más detalles sobre las opciones de configuración, consulta Configuraciones.

Llama-2 70B

Los siguientes son los resultados de comparación de rendimiento de Llama-2 70B. La latencia se redujo en un 28% y el rendimiento aumentó en un 44% para una concurrencia de 16, con el nuevo LMI TensorRT LLM DLC.

Falcon 40B

Las siguientes cifras comparan Falcon 40B. La latencia se redujo en un 36% y el rendimiento aumentó en un 59% para una concurrencia de 16, con el nuevo LMI TensorRT LLM DLC.

CodeLlama 34B

Las siguientes cifras comparan CodeLlama 34B. La latencia se redujo en un 36% y el rendimiento aumentó en un 77% para una concurrencia de 16, con el nuevo LMI TensorRT LLM DLC.

Con la última versión, SageMaker proporciona dos contenedores: 0.25.0-deepspeed y 0.25.0-tensorrtllm. El contenedor DeepSpeed contiene DeepSpeed, la biblioteca de inferencia distribuida de LMI. El contenedor TensorRT-LLM incluye la Biblioteca TensorRT-LLM de NVIDIA para acelerar la inferencia de LLM.

Recomendamos la configuración de implementación ilustrada en el siguiente diagrama.

Para comenzar, consulte los cuadernos de muestra:

Conclusión

En esta publicación, mostramos cómo puede utilizar los DLC de SageMaker LMI para optimizar los LLM para su caso de uso empresarial y lograr beneficios de rendimiento y precio. Para obtener más información sobre las capacidades de los DLC de LMI, consulte Paralelismo de modelos e inferencia de modelos grandes. Estamos emocionados de ver cómo utiliza estas nuevas capacidades de Amazon SageMaker.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Cuando la visión por computadora funciona más como un cerebro, ve más como lo hacen las personas.

Entrenar redes neuronales artificiales con datos de cerebros reales puede hacer que la visión por computadora sea más...

Inteligencia Artificial

Gran noticia Google retrasa el lanzamiento del modelo de IA Gemini

En un desarrollo inesperado, Google ha decidido posponer el tan esperado lanzamiento de su avanzado modelo de intelig...

Aprendizaje Automático

DeepMind presenta AlphaDev un agente de aprendizaje por refuerzo profundo que descubre algoritmos de clasificación más rápidos desde cero.

Desde la Inteligencia Artificial y el Análisis de Datos hasta la Criptografía y la Optimización, los algoritmos juega...

Inteligencia Artificial

El cucaracha cibernético puede navegar por un laberinto

Los investigadores han desarrollado un método para crear cucarachas ciborg para ser utilizadas en misiones de búsqued...

Ciencia de Datos

Cuidado con los datos poco confiables en la evaluación de modelos un estudio de caso de selección de LLM Prompt con Flan-T5.

La evaluación confiable del modelo es fundamental en MLops y LLMops, guiando decisiones cruciales como cuál modelo o ...