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.
- IA al descubierto Bloggers y escritores que debes seguir
- Las 10 formas creativas de utilizar las paredes de palabras en tu rutina de estudio
- Máquinas que Aprenden Explorando las Posibilidades de la Tecnología de IA
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.
Configuración y contenedor recomendados para alojar LLMs
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:
- Implementar Llama-2 70B utilizando el contenedor LMI TRT-LLM 0.25.0
- Implementar Llama-2 70B utilizando el contenedor LMI DeepSpeed 0.25.0
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!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- Dominar la migración a la nube Mejores prácticas para hacerla exitosa
- Asegurando la Nube Navegando la Frontera de la Seguridad en la Nube
- Desbloquea a tus ingenieros de software con Unblocked
- IA y sus Posibilidades/Destrucciones en el Arte.
- K-Means agrupado con Python Numba y CUDA C
- Coraje para aprender ML Desmitificando la regularización L1 y L2 (parte 1)
- Eleva tus análisis de negocios Guía paso a paso para el ajuste estacional