Ollama en 2024: ejecutar LLM localmente sin dolor
Actualizado: 2026-05-03
Ejecutar modelos de lenguaje grandes en el propio portátil dejó de ser un experimento para iniciados durante 2024. Si hubiera que señalar al responsable de que cualquier desarrollador pueda tener hoy un Llama 3.2 respondiendo en su terminal en menos de cinco minutos, sería Ollama[1]. Construido sobre llama.cpp, añade experiencia de usuario pulida, un catálogo curado y una API compatible con OpenAI que lo convierte en sustituto inmediato de la nube para la mayoría de tareas de desarrollo.
Puntos clave
- Ollama empaqueta llama.cpp en un binario único con CLI estilo Docker y API HTTP compatible con OpenAI.
- El catálogo cubre Llama 3.2, Mistral, Phi-3, Gemma 2, Qwen 2.5, modelos de visión y embeddings.
- La regla de hardware práctica: Phi-3 Mini corre en 4 GB; Llama 3.1 8B Q4 pide 6 GB; Mixtral 8x7B necesita 30 GB.
OLLAMA_HOST=0.0.0.0sin proxy inverso con auth delante es un riesgo real — no dejarlo expuesto.- Para servir tráfico de producción a escala, vLLM sigue siendo la elección correcta.
Qué resuelve Ollama
El problema histórico del LLM local no era la ausencia de motores de inferencia, sino la fricción. llama.cpp existe desde hace años y es excelente, pero compilar con las banderas correctas para Metal, CUDA o ROCm, localizar archivos GGUF, elegir cuantización y recordar parámetros de línea de comandos es una barrera seria para quien solo quiere escribir código.
Ollama empaqueta todo eso en un binario único con un servicio que arranca en localhost:11434 y expone tres cosas: una línea de comandos estilo Docker, una API HTTP con el dialecto de OpenAI, y un catálogo central donde los modelos tienen nombres legibles y cuantizaciones predeterminadas sensatas. El motor sigue siendo llama.cpp por debajo, pero la superficie expuesta cabe en un folio. Para profundizar en las capacidades del motor subyacente, el artículo sobre llama.cpp y sus optimizaciones ofrece el contexto necesario.
Instalación y primer modelo
La instalación depende de la plataforma: brew install ollama en macOS, un script oficial en Linux, instalador gráfico en Windows. En los tres casos el servicio queda corriendo en segundo plano y escuchando en el puerto local. A partir de ahí, una sola orden descarga y arranca un modelo:
ollama run llama3.2La primera invocación descarga el archivo GGUF cuantizado; las siguientes son instantáneas. El mismo patrón funciona para todo el catálogo: Mistral 7B, Mixtral 8x7B, Qwen 2.5, Phi-3, Gemma 2, DeepSeek Coder v2, o embeddings como nomic-embed-text. La lista completa vive en ollama.com/library.
Dimensionar el hardware
La pregunta que todo el mundo hace es cuánta RAM hace falta. Como regla práctica:
- Phi-3 Mini corre en 4 GB.
- Llama 3.1 8B cuantizado a cuatro bits pide 6 GB.
- Mistral 7B se mueve en el mismo rango.
- Mixtral 8x7B necesita unos 30 GB.
- Llama 3.1 70B sobre 48 GB.
- El 405B empieza a pedir más de 240 GB.
La memoria unificada de los Mac con Apple Silicon es ventaja clara aquí, porque la GPU accede al mismo banco que la CPU sin copias. Un M3 Max sirve Llama 3.1 8B a 50-80 tokens por segundo; una RTX 4090 pasa de 120. Los modelos de 70B caen a 8-12 tokens por segundo incluso en hardware serio. CPU-only es posible para modelos pequeños, pero la experiencia se degrada rápido.
La API compatible con OpenAI
La decisión de diseño más influyente de Ollama es exponer el endpoint /v1/chat/completions con el mismo esquema que OpenAI. El cliente oficial de Python de OpenAI, apuntado a http://localhost:11434/v1 con una clave ficticia, funciona sin modificaciones. Eso significa que cualquier herramienta construida contra la API de OpenAI — Aider, Continue, LangChain, LlamaIndex, OpenWebUI — cambia de proveedor con una sola variable de entorno.
Los modelos de visión de la familia Llama 3.2 se usan igual, pasando imágenes en base64 dentro del array content del mensaje.
Modelfile y personalización
Para guardar configuraciones reutilizables Ollama define el formato Modelfile, con sintaxis inspirada en Dockerfile. Una línea FROM indica el modelo base, PARAMETER fija temperatura, contexto o top-p, y SYSTEM establece el prompt de sistema. ollama create produce un modelo derivado con nombre propio.
El mismo mecanismo permite importar GGUF externos — afinados propios, versiones específicas de Hugging Face, cuantizaciones a medida — y tratarlos igual que los del catálogo oficial.
Dónde encaja frente a las alternativas
Frente a llama.cpp directo, Ollama sacrifica control por ergonomía. Si se necesitan banderas raras, cuantizaciones experimentales o builds personalizados, llama.cpp desnudo sigue siendo la opción correcta. Para el 90% restante, la capa de Ollama ahorra horas sin costar nada perceptible.
Frente a LM Studio, la diferencia es filosófica. LM Studio prioriza interfaz gráfica, es software cerrado y está orientado a quien quiere explorar modelos sin tocar terminal. Ollama es línea de comandos y API, código abierto, pensado para integrarse en flujos de desarrollo. Coexisten sin problema.
Frente a vLLM, la divergencia es operacional. vLLM está diseñado para producción multiusuario: batching continuo, paged attention, múltiples GPUs, alto throughput agregado. Ollama está optimizado para una sola sesión a la vez. Para servir a cientos de usuarios simultáneos, vLLM gana sin discusión. Para un desarrollador con un modelo en su máquina o un equipo pequeño detrás de un proxy inverso, Ollama sobra.
Qué significa “local” en la práctica
“Local” se usa como sinónimo de privacidad, pero las dos cosas no son automáticamente equivalentes. Ollama por defecto escucha solo en localhost, lo cual es seguro. Cambiar OLLAMA_HOST=0.0.0.0 para exponer el servicio en la red local es trivial, y mucha gente lo hace sin pensar en las consecuencias: no hay autenticación incorporada, no hay limitación de tasa, no hay auditoría. Cualquier despliegue fuera del propio equipo necesita un proxy inverso con autenticación delante. Traefik con forward-auth vía Authentik es el patrón recomendado para producción.
Lo mismo aplica al contenido de los modelos. Descargar un GGUF arbitrario ejecuta código de inferencia sobre pesos de origen desconocido; para entornos sensibles conviene limitarse al catálogo oficial o a fuentes verificables.
Integraciones que merecen la pena
El ecosistema maduró rápido. Las integraciones más útiles son:
- OpenWebUI: interfaz tipo ChatGPT más pulida, conecta directamente al puerto 11434.
- Continue.dev: autocompletado y chat en VS Code apuntando a Ollama en lugar de Copilot.
- Aider: asistencia desde terminal con diffs aplicables al repositorio.
- LangChain y LlamaIndex: lo tratan como proveedor de primera clase.
ollama/ollama: contenedor oficial que hace trivial el despliegue en Docker Compose o Swarm.
Conclusión
Ollama ganó 2024 por la razón correcta: resolvió fricción real sin pretender ser todo para todos. El modelo mental útil es pensarlo como Docker para LLMs — una capa de empaquetado sobre un motor existente — y juzgarlo con ese criterio. Para desarrollo diario, privacidad individual, trabajo offline y despliegues on-prem de pocos usuarios, es la herramienta por defecto. La combinación Ollama más OpenWebUI cubre el 90% de los casos personales y de equipo pequeño; el resto se resuelve cuando aparece.