vLLM: Revolucionando el servicio de LLM con PagedAttention
Published on
¡Hola! Hoy, nos adentraremos en algo que está causando sensación en la comunidad de inteligencia artificial: vLLM. Si te gusta la inteligencia artificial y los modelos de lenguaje grandes (LLMs), vas a querer saber más sobre esto. vLLM no es solo otra herramienta; es un cambio radical en cómo servimos y utilizamos los LLMs, haciéndolos más rápidos, eficientes y accesibles para una amplia gama de proyectos y equipos. Prepárate, porque vamos a explorar qué hace que vLLM sea tan especial y por qué podría ser el avance que estábamos esperando.
En el mundo de la inteligencia artificial, la promesa de los modelos de lenguaje grandes (LLMs) ha sido revolucionaria. Estos modelos tienen el potencial de transformar industrias, ofreciendo nuevas formas de interactuar con la tecnología y procesar información. Sin embargo, la realidad de servir estos modelos ha estado llena de desafíos. Requieren recursos computacionales sustanciales y, a pesar de la disponibilidad de hardware potente, servir LLMs puede ser sorprendentemente lento y costoso. Ahí es donde entra en juego vLLM, un faro de innovación en los a menudo turbulentos mares de la tecnología de inteligencia artificial.
vLLM: Servicio fácil, rápido y económico de LLMs con PagedAttention
Presentado el 20 de junio de 2023 por un equipo de UC Berkeley, vLLM es un testimonio de lo que la innovación colaborativa puede lograr. Desarrollado por Woosuk Kwon, Zhuohan Li, Siyuan Zhuang, Ying Sheng, Lianmin Zheng, Cody Yu, Joey Gonzalez, Hao Zhang e Ion Stoica, vLLM aborda de frente los problemas fundamentales que enfrenta el servicio de LLMs. Al aprovechar un nuevo algoritmo de atención llamado PagedAttention, vLLM supera significativamente a las soluciones existentes en términos de rendimiento y eficiencia.
Aspectos destacados:
- GitHub | Documentación | Paper: vLLM (opens in a new tab) es un tesoro de código abierto para aquellos que deseen adentrarse en los aspectos técnicos o simplemente comenzar a utilizarlo para sus propias necesidades de servicio de LLMs (opens in a new tab).
- Rendimiento inigualable: En pruebas, vLLM ofrece hasta 24 veces más rendimiento en comparación con bibliotecas populares como HuggingFace Transformers, sin necesidad de realizar cambios en la arquitectura del modelo.
El secreto detrás de su éxito: PagedAttention
- En su núcleo, PagedAttention aborda el cuello de botella de la memoria en el servicio de LLMs. Al gestionar las claves y valores de atención de manera más efectiva, permite un alto rendimiento y una utilización eficiente de la memoria.
- Flexibilidad y eficiencia: Inspirado en los sistemas de memoria virtual de los sistemas operativos, PagedAttention almacena claves y valores en bloques de memoria no contiguos, lo que permite una gestión dinámica y eficiente de la memoria.
- Uso optimizado de la memoria: Este método reduce drásticamente el desperdicio de memoria y permite una mayor utilización de la GPU, lo que se traduce en un mejor rendimiento.
Aplicaciones prácticas e impacto
- Despliegue en el mundo real: vLLM se ha implementado en plataformas como Chatbot Arena y Vicuna Demo, demostrando su eficacia en la atención de millones de usuarios.
- Eficiencia de costos: Al mejorar el rendimiento y reducir los requerimientos de GPU, vLLM permite a los equipos pequeños servir LLMs de forma asequible, democratizando el acceso a tecnologías de IA de vanguardia.
Empezando con vLLM
Para aquellos ansiosos por ponerse manos a la obra, comenzar con vLLM es tan sencillo como ejecutar un solo comando para instalarlo desde GitHub. Ya sea que quieras realizar inferencias fuera de línea o configurar un sistema de servicio en línea, vLLM ofrece flexibilidad y facilidad de uso.
- Instalación: Sencilla y fácil de usar, solo se necesita un comando para ponerlo en marcha.
- Escenarios de uso: Admite una variedad de casos de uso, desde inferencia por lotes en conjuntos de datos hasta la ejecución de un servidor compatible con la API de OpenAI para el servicio en línea.
vLLM en acción: Una guía paso a paso
Para darte una idea de cómo es trabajar con vLLM, aquí tienes un resumen rápido:
- Inferencia por lotes fuera de línea: Aprende cómo utilizar vLLM para generar texto de alta velocidad a partir de una lista de indicaciones.
- Creación de un servidor de API: Sigue el proceso de configurar un servidor de API para el servicio de LLM, compatible con la API de OpenAI.
- Funciones avanzadas: Explora las capacidades de vLLM, incluyendo muestreo paralelo y búsqueda de haz, para ver cómo maneja con facilidad algoritmos de muestreo complejos.
así que allana el camino para un servicio de LLM más accesible, eficiente y escalable. Ya seas un investigador, un desarrollador o simplemente un entusiasta de la IA, vLLM te brinda la oportunidad de empujar los límites de lo que es posible con los modelos de lenguaje grandes. Ahora, sumerjámonos en los detalles técnicos y veamos vLLM en acción.
Profundizando en vLLM
vLLM destaca no solo por su impresionante rendimiento, sino también por su facilidad de uso. Proporciona una integración perfecta con las herramientas y flujos de trabajo existentes, lo que lo convierte en una elección versátil para una variedad de necesidades de servicio de LLM.
Características principales de vLLM
vLLM ofrece una serie de características que abordan muchos de los desafíos asociados con el servicio de LLM:
- Rendimiento de servicio de última generación: Aprovechando los núcleos CUDA optimizados y el innovador algoritmo PagedAttention, vLLM logra velocidades de servicio sin precedentes.
- Gestión eficiente de la memoria: A través de PagedAttention, vLLM administra de manera eficiente la memoria clave y de valor de atención, reduciendo drásticamente la huella de memoria de la inferencia del LLM.
- Batching continuo: vLLM puede agrupar continuamente las solicitudes entrantes, maximizando la utilización del hardware y el rendimiento.
- Kernels CUDA optimizados: El uso de kernels CUDA personalizados mejora aún más el rendimiento, asegurando que vLLM se ejecute de manera eficiente como sea posible.
Empezando con vLLM y LangChain
Integrar vLLM en tus proyectos es sencillo, gracias a su compatibilidad con paquetes populares de Python. Aquí tienes una guía rápida de inicio:
-
Instalación: Asegúrate de tener instalado el paquete de Python vllm. Puedes instalarlo usando pip:
%pip install --upgrade --quiet vllm -q
-
Uso básico: Comienza importando VLLM desde el paquete langchain_community.llms y inicialízalo con el modelo deseado. Aquí tienes un ejemplo:
from langchain_community.llms import VLLM llm = VLLM( model="mosaicml/mpt-7b", trust_remote_code=True, # obligatorio para modelos hf max_new_tokens=128, top_k=10, top_p=0.95, temperature=0.8, ) print(llm.invoke("¿Cuál es la capital de Francia?"))
Este simple script demuestra cómo realizar inferencia, devolviendo "Paris" como la capital de Francia.
Mejorando la Inferencia con LLMChain
Para tareas de inferencia más complejas, vLLM puede integrarse en un LLMChain, lo que permite un sofisticado proceso de ingeniería y procesamiento de prompts:
from langchain.chains import LLMChain
from langchain.prompts import PromptTemplate
template = """Pregunta: {question}
Respuesta: Pensemos paso a paso."""
prompt = PromptTemplate.from_template(template)
llm_chain = LLMChain(prompt=prompt, llm=llm)
question = "¿Quién fue el presidente de Estados Unidos en el año en que se lanzó el primer juego de Pokémon?"
print(llm_chain.invoke(question))
Este enfoque permite un razonamiento paso a paso, proporcionando respuestas detalladas a preguntas complejas.
Inferencia Distribuida y Cuantización
vLLM admite funciones avanzadas como la inferencia distribuida y la cuantización, lo que lo hace adecuado para entornos de alta demanda:
- Inferencia Distribuida: Para aprovechar múltiples GPUs, simplemente establece el argumento
tensor_parallel_size
al inicializar VLLM. - Cuantización: vLLM también admite cuantización AWQ, lo cual puede reducir significativamente la huella de memoria del modelo sin sacrificar el rendimiento.
Servidor Compatible con OpenAI
Una de las características más poderosas de vLLM es su capacidad para imitar el protocolo de la API de OpenAI, lo que lo convierte en un reemplazo directo para aplicaciones que actualmente utilizan la API de OpenAI. Esta capacidad abre un mundo de posibilidades para implementar soluciones eficientes y escalables con LLM.
Conclusión: El Futuro del Servicio LLM con vLLM
vLLM representa un gran avance en la tecnología de servicio LLM. Con su combinación de alta capacidad de procesamiento, gestión eficiente de memoria y facilidad de uso, vLLM está bien posicionado para convertirse en un jugador clave en el panorama de la IA. Ya sea que estés buscando mejorar aplicaciones existentes o explorar nuevas posibilidades con LLMs, vLLM ofrece las herramientas y el rendimiento necesarios para lograr el éxito en tus proyectos. A medida que la comunidad continúa explorando y ampliando las capacidades de vLLM, podemos esperar aún más aplicaciones innovadoras y mejoras en el futuro.