vLLM en HuggingFace Jobs: un endpoint LLM en un comando
HuggingFace permite levantar un servidor vLLM con API compatible OpenAI en un solo comando, pagando por segundo. Ideal para tests y batch generation.

Qué es
HuggingFace ha añadido soporte para ejecutar vLLM en su plataforma Jobs con un solo comando. El resultado es un endpoint LLM privado, compatible con la API de OpenAI, sin tener que provisionar servidores ni configurar Kubernetes. Facturación por segundo.
Es la forma más rápida de levantar un modelo para tests, evaluaciones o batch generation. Para producción, HuggingFace recomienda seguir usando Inference Endpoints.
Cómo funciona
El comando hf jobs run es básicamente un docker run sobre la infraestructura de HuggingFace. Se usa la imagen oficial vllm/vllm-openai, se pide una GPU con --flavor, y se expone el puerto con --expose:
hf jobs run --flavor a10g-large --expose 8000 --timeout 2h \
vllm/vllm-openai:latest \
vllm serve Qwen/Qwen3-4B --host 0.0.0.0 --port 8000
El comando devuelve una URL pública accesible desde cualquier sitio:
https://<job_id>--8000.hf.jobs
Una vez que el servidor arranca (descarga de pesos incluida), puedes consultarla con curl:
curl https://<job_id>--8000.hf.jobs/v1/chat/completions \
-H "Authorization: Bearer $(hf auth token)" \
-H "Content-Type: application/json" \
-d '{
"model": "Qwen/Qwen3-4B",
"messages": [{"role": "user", "content": "Hello!"}]
}'
O desde Python con el cliente de OpenAI:
from huggingface_hub import get_token
from openai import OpenAI
client = OpenAI(
base_url="https://<job_id>--8000.hf.jobs/v1",
api_key=get_token(),
)
resp = client.chat.completions.create(
model="Qwen/Qwen3-4B",
messages=[{"role": "user", "content": "Hello!"}],
)
print(resp.choices[0].message.content)
Detalles técnicos
- Requisitos:
huggingface_hub >= 1.20.0y estar logueado conhf auth login - Facturación: por minuto, según el hardware solicitado
- GPU disponible: se especifica con
--flavor(ej:a10g-large) - Timeout: configurable con
--timeout(ej:2h) - Seguridad: el endpoint no es público. Cada request debe llevar un token de HF con acceso de lectura al job. Un navegador sin token recibirá un 403.
- Modelos: cualquier modelo soportado por vLLM en HuggingFace Hub (Qwen, Llama, Mistral, etc.)
¿Para quién es relevante?
- Devs que necesitan un endpoint LLM temporal para pruebas o demos
- Equipos haciendo evals que quieren comparar modelos sin mantener infraestructura
- Proyectos de batch generation donde necesitas procesar datos con un LLM y cerrar
HF Jobs vs Inference Endpoints
HuggingFace aclara la diferencia: Jobs es para uso efímero (tests, batch, prototipos). Inference Endpoints es el producto gestionado para producción, con auto-scaling y SLA. La regla simple: si lo necesitas corriendo 24/7, usa Endpoints. Si lo necesitas para una sesión de 2 horas, usa Jobs.
📎 Fuente original: HuggingFace Blog ↗