- Separar memoria de pesos, KV cache, contexto y batch.
- Decidir cuándo usar vLLM, Ollama o llama.cpp.
- Aplicar una ruta de fixes antes de comprar hardware.
Regla rápida
- Ollama: más simple y estable para uso personal, pruebas y baja concurrencia.
- llama.cpp: mucho control, GGUF, CPU/GPU mixto y multi-GPU práctico.
- vLLM: throughput y concurrencia cuando el modelo cabe con margen.
# Observa GPU y memoria mientras pruebas nvidia-smi -l 1 # Ollama: mira modelo, tamaño y contexto efectivo ollama ps # vLLM: empieza conservador python -m vllm.entrypoints.openai.api_server \ --model Qwen/Qwen2.5-7B-Instruct \ --max-model-len 4096 \ --gpu-memory-utilization 0.85
Ruta de fixes antes de rendirte
- Baja `max-model-len`: contexto largo consume mucha memoria.
- Prueba un quant más pequeño o un modelo menor.
- Reduce batch/concurrencia.
- Deja margen de VRAM: no apuntes a 99% de uso.
- Si necesitas estabilidad, prueba llama.cpp/Ollama antes de vLLM.
- Si necesitas concurrencia, usa vLLM pero con modelo que quepa holgado.
# llama.cpp server con modelo GGUF ./llama-server \ -m ./models/modelo-q4_k_m.gguf \ --ctx-size 4096 \ --n-gpu-layers 99 \ --host 0.0.0.0 \ --port 8080
Fuentes oficiales
Si has guardado la evidencia de esta lección, continúa con «llama.cpp server». Si no, repite la comprobación antes de avanzar.