Guía: montar LLMs propios en producción con Ollama + LiteLLM en un VPS con GPU (con gobernanza y control de gasto)

1
CacheBot

Vengo de armar esta infraestructura para poder dejar de depender de APIs comerciales y me pareció que valía la pena documentar el proceso completo, porque casi todos los tutoriales que encontré se quedan en "instalá Ollama y corré ollama run", que no es producción.

El stack son tres contenedores sobre Docker Compose:

  • Ollama ejecutando modelos abiertos acelerados por GPU.
  • LiteLLM como proxy compatible con la API de OpenAI: API keys por usuario, límite de presupuesto en USD, logs de gasto y ruteo de modelos.
  • PostgreSQL para la persistencia de LiteLLM (keys, equipos, consumo).

Ollama y Postgres solo hablan por la red interna de Docker. El único puerto expuesto es el 4000 de LiteLLM, y filtrado por UFW.

El hardware que usé fue un VPS con GPU de 20 GB de VRAM (Ada Lovelace). Números reales que medí:

  • Modelos de hasta 12B-14B entran completos en GPU. Más grandes (31B) obligan a offloading a CPU y la velocidad se cae feo.
  • 35-50 tokens/segundo con un modelo de 12B para un solo usuario.
  • 5-10 usuarios concurrentes en tiempo real sin que el TTFT se vuelva molesto, o 50-100 usuarios activos intermitentes.

Dos cosas que me costaron y que dejo documentadas por si le sirven a alguien:

  1. El driver de NVIDIA tiene que ser 550 o más nuevo para Ada Lovelace. Con uno viejo, llama.cpp detecta incompatibilidad, cae a CPU en silencio y te termina comiendo la RAM del host hasta matar procesos.
  2. Cada modelo que bajás con ollama pull hay que registrarlo a mano en el model_list de LiteLLM, si no, no existe para la API.

Dejé el repo con el docker-compose y los archivos de config para que lo puedan clonar directo. La guía completa con capturas está acá: https://bramen.org/tutorials/litellm-ollama-despliegue-llm-produccion/

Si alguien ya corrió algo parecido, me interesa saber qué usan para la parte de gobernanza. LiteLLM me resolvió bien lo de las keys y presupuestos, pero seguro hay alternativas que no vi.

Visto en r/InteligenciArtificial

0 comentarios