En el último año, el uso de grandes modelos de lenguaje (LLMs) y la inteligencia artificial generativa ha experimentado un crecimiento sin precedentes. La disponibilidad de modelos fundamentales potentes de acceso público y herramientas para entrenar, ajustar y alojar tus propios LLM han democratizado estas tecnologías. En este contexto, el uso de vLLM en AWS Trainium e Inferentia permite alojar LLMs para una inferencia de alto rendimiento y escalabilidad.
Recientemente, se ha dado a conocer un método para desplegar los últimos modelos Llama de Meta utilizando vLLM en una instancia Inf2 de Amazon Elastic Compute Cloud (Amazon EC2). En esta guía, se utiliza la versión de 1B, aunque otros tamaños de modelos también pueden ser implementados siguiendo estos mismos pasos, así como otros LLMs populares.
El proceso comienza utilizando una instancia EC2 Inferentia de AWS para desplegar el nuevo modelo Llama 3.2 de Meta. Esta guía proporciona instrucciones detalladas sobre cómo solicitar acceso al modelo, crear un contenedor Docker para usar vLLM y ejecutar inferencias tanto en línea como fuera de línea en dicho modelo. También se aborda la optimización del rendimiento del gráfico de inferencia.
Para utilizar el modelo meta-llama/Llama-3.2-1B, es necesario tener una cuenta en Hugging Face y acceso al modelo. Los usuarios deben registrarse, aceptar la licencia del modelo y obtener un token de acceso de Hugging Face. Este token es esencial para realizar los pasos posteriores del proceso.
La creación de una instancia EC2 se puede hacer siguiendo una guía específica, siendo importante solicitar un aumento de cuota si es la primera vez que se usan instancias inf/trn. El tipo de instancia a utilizar es el inf2.xlarge, disponible solo en algunas regiones de AWS, y se recomienda aumentar el volumen gp3 a 100 G. Se debe utilizar la AMI Deep Learning Neuron (Ubuntu 22.04).
Una vez configurada la instancia, se puede conectar para acceder a la línea de comandos y usar Docker, preinstalado en esta AMI, para ejecutar una imagen de contenedor vLLM para neuron. Con Docker, se crea un contenedor con todas las herramientas necesarias para ejecutar vLLM. El proceso de creación de la imagen demora unos diez minutos. Una vez listo, el servidor vLLM se puede iniciar y probar con prompts específicos.
Otra forma de utilizar vLLM en Inferentia es mediante el envío simultáneo y automatizado de varias solicitudes. Al final del proceso de prueba, es importante terminar la instancia EC2 para evitar cargos adicionales.
El ajuste de rendimiento de inferencias basadas en secuencias de longitud variable es otro aspecto técnico relevante. El SDK Neuron genera cubos y un gráfico de cálculo que se adapta al tamaño de las secuencias. Se puede afinar el rendimiento ajustando la longitud de las secuencias de entrada y salida mediante la configuración de variables ambientales.
Al concluir, se tiene una guía detallada para desplegar el modelo meta-llama/Llama-3.2-1B utilizando vLLM en una instancia Inf2 de Amazon EC2. Este enfoque puede adaptarse a otros LLMs populares cambiando el identificador del modelo en el comando de vLLM. Además, se proporciona información sobre cómo integrar el SDK Neuron y vLLM para un procesamiento continuo por lotes, lo que es crucial para implementar estos modelos en producción con autoscaling y tolerancia a fallos.
vía: AWS machine learning blog