Alejandría

Busca en Alejandría

Lenguajes y marcos

vLLM

Sirve modelos de lenguaje aprovechando mejor el hardware.

01

En pocas palabras

Motor para ejecutar y servir modelos de lenguaje con alto rendimiento, optimizando memoria y agrupando solicitudes concurrentes.

Qué problema resuelve

Aprovechamiento insuficiente del hardware y costos elevados al atender muchas peticiones de inferencia.

Cuándo utilizarlo

Alojamiento propio de modelos compatibles, en nube o infraestructura local. Ejemplo: desplegar un modelo abierto como servicio interno para búsqueda de conocimiento o asistencia de programación.

02

De la idea a la práctica

Funcionamiento, ejemplos y decisiones para pasar al siguiente nivel.

Cómo funciona

vLLM agrupa solicitudes de forma continua y gestiona la memoria de atención para aprovechar el acelerador. Sus capacidades dependen de la arquitectura del modelo y del hardware disponible.

Ejemplo: servir un modelo compatible

Con vLLM instalado y hardware y memoria adecuados para el modelo:

vllm serve Qwen/Qwen2.5-7B-Instruct \
  --host 127.0.0.1 \
  --port 8000

El servicio puede ser consumido mediante su API de inferencia. La primera ejecución puede descargar los pesos; verifica previamente los requisitos y la licencia del modelo.

Técnicas que explican su rendimiento

Técnica Efecto
PagedAttention Gestiona la caché KV en bloques, como memoria virtual; casi sin desperdicio
Continuous batching Incorpora peticiones nuevas en cada paso de generación, sin esperar a que termine el lote
Prefix caching Reutiliza la caché de prefijos comunes (system prompts, documentos)
Chunked prefill Mezcla el procesamiento de prompts largos con la generación de otros
Speculative decoding Un modelo pequeño propone tokens que el grande valida
Cuantización FP8, AWQ, GPTQ y otros para reducir memoria

Parámetros de despliegue

vllm serve meta-llama/Llama-3.1-8B-Instruct \
  --max-model-len 16384 \
  --gpu-memory-utilization 0.90 \
  --tensor-parallel-size 2 \
  --enable-prefix-caching \
  --enable-auto-tool-choice --tool-call-parser llama3_json \
  --api-key "$VLLM_API_KEY"
Parámetro Decisión
--max-model-len Contexto máximo; reducirlo libera memoria para más peticiones concurrentes
--gpu-memory-utilization Fracción de memoria para pesos y caché KV
--tensor-parallel-size Repartir un modelo grande entre varias GPU de un nodo
--max-num-seqs Concurrencia máxima por réplica
--enable-lora Servir varios adaptadores LoRA sobre el mismo modelo base

API compatible con OpenAI

from openai import OpenAI

cliente = OpenAI(base_url="http://vllm:8000/v1", api_key=VLLM_API_KEY)
res = cliente.chat.completions.create(
    model="meta-llama/Llama-3.1-8B-Instruct",
    messages=[{"role": "user", "content": "Clasifica: 'no me llegó el desembolso'"}],
    response_format={"type": "json_schema", "json_schema": {"name": "c", "schema": esquema}},
)

Admite chat, completions, embeddings y salida estructurada guiada por gramática (structured output), de modo que se puede poner detrás de LiteLLM junto a proveedores comerciales.

Métricas

El endpoint /metrics expone en formato Prometheus las peticiones en curso y en espera, el uso de la caché KV, el tiempo hasta el primer token, la latencia entre tokens y el throughput. Una caché KV cerca del 100 % y una cola creciente indican que hacen falta más réplicas o menos contexto. Para la GPU, combina con NVIDIA DCGM Exporter.

Uso offline por lotes

from vllm import LLM, SamplingParams

llm = LLM(model="Qwen/Qwen2.5-7B-Instruct")
salidas = llm.generate(prompts, SamplingParams(temperature=0, max_tokens=200))

Para procesar grandes volúmenes (clasificar millones de textos), el modo offline aprovecha todo el batching sin la sobrecarga del servidor HTTP. En Kubernetes, proyectos como KServe, llm-d o el production stack de vLLM añaden enrutamiento consciente de la caché y autoescalado.

Criterios de implementación

Mide tokens por segundo, tiempo hasta el primer token y latencia bajo concurrencia. Ajusta el tamaño de contexto y memoria con cargas reales. Para exponerlo fuera del equipo, configura autenticación, límites y supervisión operativa.

Continúa en las fuentes

Documentación oficial para verificar detalles y explorar más.