ES

Idioma

Nuestras ediciones

Escritas para cada público, no traducidas palabra por palabra.

Ollama vs llama.cpp: el mismo motor debajo y distinto control encima

ComparativaPor Lucas Matías García TorresActualizado el (publicado el )Datos comprobados el 6 min de lectura

Revisado por Lucas Matías García Torres el . Cómo trabajamos.

Read in English

Vista despiezada de una tarjeta gráfica: ventiladores, heat pipes, disipador y la placa con la GPU iluminada en naranja

Respuesta corta

Ollama vs llama.cpp es una elección de capa: el README de Ollama cita llama.cpp como su motor y añade una biblioteca de modelos, un servicio en segundo plano y una API sencilla en el puerto 11434. llama.cpp te da el motor y su propio servidor con todos los ajustes a la vista. Casi todas las diferencias de velocidad vienen de los valores por defecto: Ollama usa 4.096 tokens de contexto y una petición a la vez por modelo, y llama-server toma el contexto del modelo y procesa por lotes. Para muchos usuarios en servidores con GPU, encaja mejor vLLM.

Los precios y límites cambian a menudo: compruébalos en la web del proveedor antes de pagar. Cómo nos financiamos.

Ollama vs llama.cpp no es tanto una competición como una elección de capa. El propio README de Ollama pone llama.cpp como su motor: llama.cpp es el programa en C/C++ que ejecuta el modelo en tu procesador o tu tarjeta gráfica, y Ollama envuelve un motor así con una biblioteca de modelos, un servicio en segundo plano y una API sencilla. Así que la pregunta útil no es cuál es más rápido en abstracto, sino si quieres la comodidad de Ollama o el control directo de llama.cpp. Esta guía compara los dos con su documentación a 10 de octubre de 2026, enseña los valores por defecto que explican casi todas las quejas de «Ollama va más lento» y dice cuándo tiene más sentido una tercera opción, vLLM.

Ollama vs llama.cpp de un vistazo

Tabla: Ollama y llama.cpp comparados con su propia documentación (10 de octubre de 2026)

Concepto Ollama llama.cpp
Qué es Aplicación y servidor que descarga, ejecuta y gestiona modelos Biblioteca de inferencia en C/C++ con herramientas de terminal y un servidor
Instalación Un comando en macOS y Linux, PowerShell o instalador en Windows, imagen de Docker Un comando desde llama.app, binarios ya compilados, Docker o compilar el código
Cómo se consigue un modelo ollama pull desde la biblioteca de Ollama, o importar GGUF y Safetensors Cualquier archivo GGUF, o -hf para descargarlo de Hugging Face (Q4_K_M por defecto)
API local Puerto 11434, API propia y rutas compatibles con OpenAI y con Anthropic llama-server, puerto 9931 por defecto, rutas compatibles con OpenAI y Anthropic e interfaz web
Varios modelos Carga y descarga según se piden; cada uno sigue en memoria 5 minutos Modo router: carga y descarga según se piden; hasta 4 a la vez por defecto
Contexto por defecto 4.096 tokens si no lo cambias El que indique el archivo del modelo
Peticiones simultáneas 1 por modelo por defecto Número de huecos automático, con procesamiento por lotes continuo
Licencia MIT MIT

Los dos ejecutan los mismos archivos GGUF y los dos pueden repartir un modelo entre tarjeta gráfica y procesador cuando no cabe en la memoria de vídeo. Si nunca has ejecutado un modelo en tu ordenador, empieza por cómo instalar Ollama.

Qué relación hay entre Ollama y llama.cpp

llama.cpp define su objetivo como ejecutar modelos de lenguaje con una configuración mínima y un rendimiento puntero en hardware muy variado. Está escrito en C/C++ sin dependencias, se apoya en la biblioteca ggml y trae motores para NVIDIA (CUDA), AMD (HIP), Apple (Metal), Vulkan, gráficas de Intel (SYCL) y más, con soporte para los procesadores neuronales de Intel mediante OpenVINO marcado como en desarrollo. Incluye sus propias herramientas: un chat en la terminal, un servidor y un programa para cuantizar.

Ollama está un nivel por encima. Su README dice «Start building with open models», cita llama.cpp en «Supported backends» y añade lo que llama.cpp te deja a ti: una biblioteca de modelos con etiquetas, un servicio que carga el modelo cuando llega una petición y lo descarga después, el formato Modelfile para ajustes propios, una aplicación de escritorio y conexión con un comando a herramientas de programación como Claude Code, Codex y Copilot. Los comandos del día a día están en nuestra guía de comandos de Ollama.

Dos consecuencias prácticas. La primera: un modelo que funciona en uno suele funcionar en el otro, porque los dos leen GGUF. La guía de importación de Ollama incluso te manda a llama-quantize, de llama.cpp, para preparar un GGUF, porque Ollama no cuantiza los GGUF al importarlos. La segunda: los dos proyectos publican versiones por separado, así que un día cualquiera pueden no estar usando la misma versión del código de abajo.

¿Es llama.cpp más rápido que Ollama?

No los hemos medido, y las cifras de terceros que circulan no coinciden entre sí. Lo que sí deja ver la documentación es que casi todas las diferencias de velocidad y de memoria que se cuentan vienen de los valores por defecto, no de un motor distinto:

  • Longitud del contexto. Ollama usa una ventana de contexto de 4.096 tokens salvo que pongas OLLAMA_CONTEXT_LENGTH o num_ctx. llama-server toma la del archivo del modelo, que en los modelos recientes puede ser de cientos de miles de tokens y necesita muchísima más memoria. Un contexto pequeño va más rápido y ocupa menos, pero recorta sin avisar las peticiones largas; uno grande puede echar capas fuera de la tarjeta gráfica. Por qué el contexto gasta memoria lo explicamos en cuánta VRAM necesitas.
  • Peticiones simultáneas. Ollama atiende una petición a la vez por modelo (OLLAMA_NUM_PARALLEL=1), y su FAQ avisa de que la memoria crece con el número de peticiones en paralelo por la longitud del contexto. llama-server elige solo el número de huecos y deja activado el procesamiento por lotes continuo, que ayuda cuando lo usan varios programas a la vez.
  • Capas en la gráfica y flash attention. llama.cpp decide por defecto cuántas capas van a la tarjeta gráfica (-ngl auto) y pone flash attention en automático; Ollama hace el reparto por su cuenta y lo enseña en ollama ps. Si parte del modelo acaba en el procesador, la generación se hunde en los dos: Ollama no usa la GPU explica cómo comprobarlo.
  • Cuantización. Comparar un archivo Q4 en uno con un Q8 en el otro mide los archivos, no las herramientas. Lo que cuesta cada nivel en calidad y memoria está en qué es la cuantización.

Para comparar en serio, ejecuta el mismo GGUF con la misma longitud de contexto, el mismo número de capas en la gráfica y el mismo ajuste de paralelismo, y mide los tokens por segundo con tus propias peticiones.

API, modelos y comandos, uno al lado del otro

Arrancar un modelo. En Ollama, ollama run descarga el modelo de su biblioteca si hace falta y abre un chat. En llama.cpp, el arranque rápido del README es llama cli -hf ggml-org/Qwen3.5-0.8B-GGUF para chatear y llama serve -hf ggml-org/Qwen3.5-0.8B-GGUF para levantar un servidor compatible con OpenAI, los dos bajando el modelo directamente de Hugging Face.

La API. Ollama escucha en http://localhost:11434 con su API propia y rutas compatibles con OpenAI para chat, respuestas, embeddings y modelos, además de una compatible con Anthropic. llama-server ofrece chat, respuestas y embeddings compatibles con OpenAI, compatibilidad con la API Messages de Anthropic, reordenación de resultados, JSON ajustado a un esquema, llamadas a funciones con casi cualquier modelo, decodificación especulativa y una interfaz web. Ojo con el puerto: la documentación actual del servidor da el 9931 por defecto, mientras que muchas guías antiguas y sus propios ejemplos de Docker usan el 8080; fíjalo con --port si un programa espera uno u otro.

Varios modelos. Ollama carga por defecto hasta tres modelos por tarjeta gráfica (tres con procesador) si caben en memoria, y descarga cada uno tras cinco minutos sin uso. Si arrancas llama-server sin modelo, funciona en modo router: busca modelos en su caché o en una carpeta que le pasas con --models-dir, los carga al pedirlos y mantiene hasta cuatro a la vez por defecto.

Seguridad. Los dos escuchan solo en tu propio equipo por defecto (127.0.0.1); Ollama lo cambia con OLLAMA_HOST y llama.cpp con --host. llama-server puede exigir claves con --api-key; si abres cualquiera de los dos a la red, pon delante algún tipo de autenticación.

Cuál usar y cuándo es mejor vLLM

  • Elige Ollama si quieres modelos funcionando en minutos, cambias a menudo de modelo o conectas modelos locales a aplicaciones y herramientas de programación que ya hablan su API. Compáralo con la alternativa de escritorio en Ollama vs LM Studio.
  • Elige llama.cpp si quieres todos los ajustes en tus manos (contexto, tamaño de lote, capas en la gráfica, decodificación especulativa), más motores de hardware (su README cita 17, de CUDA y Metal a SYCL y Snapdragon), un servidor que atiende a varios usuarios con lotes continuos o un único programa sin servicio en segundo plano.
  • Elige vLLM si vas a dar servicio a muchos usuarios desde una o varias tarjetas gráficas de centro de datos. Su README destaca un rendimiento puntero sirviendo peticiones, con gestión de memoria PagedAttention, lotes continuos y caché de prefijos, un servidor compatible con OpenAI y con la API Messages de Anthropic, y soporte para gráficas de NVIDIA, AMD e Intel y procesadores, con Apple mediante un complemento. Está pensado para servidores, no para una persona con un portátil.

Elijas lo que elijas, el hardware decide más que el software: mira nuestra guía de la mejor GPU para modelos en local antes de comprar nada.

Qué hemos comprobado

  • README de Ollama: instalación con un script en macOS y Linux y con PowerShell o instalador en Windows; imagen oficial de Docker ollama/ollama; al ejecutar ollama propone usar un modelo o conectarlo a herramientas como Claude Code, OpenClaw, OpenCode, Codex y Copilot; motores admitidos: llama.cpp, proyecto fundado por Georgi Gerganov; documentación de la CLI, la API REST, la importación de modelos y el Modelfile. Licencia MIT. (Ollama (GitHub), )
  • FAQ de Ollama: ventana de contexto por defecto de 4.096 tokens, que se cambia con OLLAMA_CONTEXT_LENGTH o num_ctx; los modelos siguen en memoria 5 minutos por defecto (keep_alive); OLLAMA_MAX_LOADED_MODELS vale por defecto 3 por cada GPU o 3 con procesador; OLLAMA_NUM_PARALLEL vale 1 por defecto y la RAM necesaria crece con OLLAMA_NUM_PARALLEL por OLLAMA_CONTEXT_LENGTH; Ollama escucha en 127.0.0.1, puerto 11434, por defecto, y se cambia con OLLAMA_HOST; ollama ps enseña los modelos cargados y el procesador. (Ollama, )
  • Ollama importa modelos Safetensors y GGUF con un Modelfile; no cuantiza los GGUF al importarlos y recomienda prepararlos con una herramienta como llama-quantize de llama.cpp. (Ollama, )
  • La compatibilidad de Ollama con OpenAI cubre /v1/chat/completions, /v1/responses, /v1/embeddings y /v1/models. (Ollama, )
  • La compatibilidad de Ollama con Anthropic ofrece la ruta /v1/messages. (Ollama, )
  • README de llama.cpp: inferencia de modelos de lenguaje en C/C++, licencia MIT; instalación con un script desde llama.app, Docker, binarios ya compilados o compilando; arranque rápido con llama cli -hf ggml-org/Qwen3.5-0.8B-GGUF y llama serve -hf ggml-org/Qwen3.5-0.8B-GGUF para un servidor compatible con OpenAI; objetivo de configuración mínima y rendimiento puntero en hardware variado; C/C++ sin dependencias sobre ggml; cuantización de 1,5 a 8 bits; inferencia mixta CPU y GPU; 17 motores, entre ellos CUDA, HIP, Metal, Vulkan, SYCL, Hexagon (Snapdragon) y OpenVINO (en desarrollo) para CPU, GPU y NPU de Intel. (ggml-org / llama.cpp, )
  • llama-server: rutas de chat, respuestas y embeddings compatibles con OpenAI; compatibilidad con la API Messages de Anthropic; reordenación; decodificación en paralelo; lotes continuos activados por defecto; multimodal; JSON ajustado a esquema; llamadas a funciones con casi cualquier modelo; decodificación especulativa; interfaz web activada por defecto. Valores por defecto: contexto 0 = el del modelo, capas en GPU auto, flash attention auto, huecos en paralelo auto, host 127.0.0.1, puerto 9931; --api-key para autenticar; -hf descarga de Hugging Face con Q4_K_M por defecto; modo router si arranca sin modelo, con modelos de la caché o de --models-dir y hasta 4 cargados a la vez por defecto (--models-max). Los ejemplos de Docker usan el puerto 8080. (ggml-org / llama.cpp, )
  • README de vLLM: servicio de modelos fácil, rápido y barato; rendimiento puntero sirviendo peticiones; PagedAttention; lotes continuos, prefill por trozos y caché de prefijos; cuantización, GGUF incluido; servidor compatible con la API de OpenAI más la API Messages de Anthropic y gRPC; soporte para gráficas de NVIDIA, AMD e Intel y procesadores x86, ARM y PowerPC, con complementos de hardware, Apple Silicon entre ellos. (vLLM (GitHub), )

Qué puede cambiar

  • Los dos proyectos publican versiones a menudo; valores por defecto como el puerto del servidor, la longitud del contexto o las peticiones en paralelo ya han cambiado antes y pueden volver a hacerlo. Revisamos esta página cada trimestre.
  • No hemos medido la velocidad ni la memoria; las diferencias dependen del hardware, el archivo del modelo, las versiones y los ajustes.

Preguntas frecuentes

¿Ollama usa llama.cpp por debajo?

El README de Ollama cita llama.cpp, el proyecto fundado por Georgi Gerganov, en su lista de motores. Ollama añade encima una biblioteca de modelos, un servicio que carga y descarga modelos, el formato Modelfile, una aplicación de escritorio y su propia API. Los dos leen los mismos archivos GGUF.

¿Es llama.cpp más rápido que Ollama?

No los hemos medido y las cifras de terceros no coinciden. Casi todas las diferencias vienen de los valores por defecto: Ollama usa 4.096 tokens de contexto y una petición a la vez por modelo, y llama-server toma el contexto del modelo y procesa peticiones por lotes. Compara el mismo archivo con los mismos ajustes.

¿llama.cpp tiene una API compatible con OpenAI?

Sí. llama-server ofrece chat, respuestas y embeddings compatibles con OpenAI, compatibilidad con la API Messages de Anthropic, interfaz web y llamadas a funciones. Su documentación da el puerto 9931 por defecto, mientras que guías antiguas y sus ejemplos de Docker usan el 8080, así que fíjalo a mano.

¿Cuándo conviene vLLM en vez de Ollama o llama.cpp?

Cuando das servicio a muchos usuarios desde gráficas de centro de datos. El README de vLLM se centra en el rendimiento sirviendo peticiones, con PagedAttention, lotes continuos y caché de prefijos, un servidor compatible con OpenAI y soporte para gráficas de NVIDIA, AMD e Intel. Para una persona con un portátil, Ollama o llama.cpp son más sencillos.

¿Puedo usar en llama.cpp los modelos de Ollama?

Los dos usan archivos GGUF, así que un modelo GGUF funciona en cualquiera de ellos. llama.cpp puede además descargar GGUF directamente de Hugging Face con la opción -hf, y Ollama importa modelos GGUF y Safetensors; Ollama no cuantiza los GGUF al importarlos y remite a llama-quantize de llama.cpp.

Fuentes

  1. ollama/ollama: README (install, get started, supported backends) and MIT license, Ollama (GitHub). Consultado el 10 de octubre de 2026.
  2. Ollama FAQ: context window, keep-alive, concurrency, Flash Attention, K/V cache quantization, multiple GPUs and GPU check, Ollama. Consultado el 10 de octubre de 2026.
  3. Importing a model into Ollama (Safetensors and GGUF; no quantization of GGUF on import), Ollama. Consultado el 10 de octubre de 2026.
  4. Ollama: OpenAI compatibility (chat completions, responses, embeddings, models), Ollama. Consultado el 10 de octubre de 2026.
  5. Ollama: Anthropic compatibility (Messages API), Ollama. Consultado el 10 de octubre de 2026.
  6. ggml-org/llama.cpp: README (quick start, description, supported backends) and MIT license, ggml-org / llama.cpp. Consultado el 10 de octubre de 2026.
  7. llama.cpp HTTP server: features, defaults (context, port, slots, GPU layers) and router mode, ggml-org / llama.cpp. Consultado el 10 de octubre de 2026.
  8. vllm-project/vllm: README (serving throughput, PagedAttention, OpenAI-compatible server, hardware support), vLLM (GitHub). Consultado el 10 de octubre de 2026.

¿Has visto un error o un dato desactualizado? Avísanos y lo corregimos.

Historial de cambios

  • : Redacción revisada; no cambia ninguna cifra, fecha ni fuente.
  • : Primera publicación. Comprobado con los README de Ollama y llama.cpp, la FAQ de Ollama, sus páginas de importación y compatibilidad, la documentación de llama-server y el README de vLLM el 10 de octubre de 2026.

Próxima revisión: .

Más guías de Modelos en local.

Otros temas