En el último año, hemos sido testigos de un crecimiento sin precedentes en el uso de grandes modelos de lenguaje (LLMs) y la inteligencia artificial generativa. Estas tecnologías se han democratizado gracias a la disponibilidad de potentes modelos fundamentales de acceso público, junto con herramientas que permiten entrenar, ajustar y alojar LLMs a medida. En este contexto, el uso de vLLM en AWS Trainium e Inferentia está permitiendo el alojamiento de LLMs para ofrecer una inferencia con alto rendimiento y escalabilidad.
Un nuevo método para desplegar los últimos modelos Llama de Meta utilizando vLLM en una instancia Inf2 de Amazon Elastic Compute Cloud (EC2) ha sido recientemente presentado. Aunque la guía se centra en la versión de 1B, es posible implementar otros tamaños de modelos siguiendo los mismos pasos, además de otros LLMs populares.
El procedimiento comienza con el uso de una instancia EC2 Inferentia de AWS para desplegar el innovador modelo Llama 3.2 de Meta. La guía proporciona instrucciones detalladas para solicitar acceso al modelo, crear un contenedor Docker para vLLM y realizar inferencias tanto en línea como fuera de línea. Asimismo, se aborda la optimización del rendimiento del gráfico de inferencia.
Para emplear el modelo meta-llama/Llama-3.2-1B, es necesario contar con una cuenta en Hugging Face y acceder al modelo mediante un token de acceso, imprescindible para llevar a cabo los pasos del proceso.
La creación de una instancia EC2 se puede llevar a cabo siguiendo directrices específicas, y es aconsejable solicitar un aumento de cuota si esta es la primera vez que se usan instancias inf/trn. Se debe utilizar una instancia inf2.xlarge, recomendándose el aumento del volumen gp3 a 100 G. La AMI Deep Learning Neuron (Ubuntu 22.04) debe ser empleada para una configuración efectiva.
Una vez configurada la instancia, el acceso a la línea de comandos permitirá utilizar Docker, preinstalado en esta AMI, para ejecutar una imagen de contenedor vLLM para neuron. El proceso de creación de la imagen toma aproximadamente diez minutos. Posteriormente, el servidor vLLM puede ser iniciado y probado con prompts específicos.
Otra opción para la utilización de vLLM en Inferentia es mediante el envío simultáneo y automatizado de varias solicitudes. Al finalizar el proceso de prueba, es crucial terminar la instancia EC2 para evitar cargos adicionales.
El ajuste de rendimiento para 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 adaptado al tamaño de las secuencias, permitiendo afinar el rendimiento ajustando la longitud de las secuencias de entrada y salida mediante variables ambientales.
En conclusión, se ha desarrollado una guía exhaustiva 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 ofrece información sobre la integración del SDK Neuron y vLLM para un procesamiento por lotes continuo, aspecto crucial para implementar estos modelos en producción con capacidades de autoscaling y tolerancia a fallos.