Intermedio 11 minllama.cpp

llama.cpp: ¿qué es y hay que abandonar Ollama? ?

Respuesta directa

llama.cpp es el motor de inferencia en C/C++ que ejecuta los modelos en formato GGUF en CPU y en GPU NVIDIA, AMD, Intel y Apple Silicon; Ollama, LM Studio y KoboldCpp se basan en él. Usarlo directamente, a través de llama-server, no hace que un modelo sea más rápido en el mismo hardware: te da el control sobre ajustes que las aplicaciones basadas en él eligen por ti, como la distribución GPU/CPU, el tamaño del contexto y la cuantización de la caché KV.

llama.cpp es el motor de inferencia escrito en C y C++ que ejecuta modelos en formato GGUF en CPU, en GPU NVIDIA, AMD e Intel, y en Mac. A fecha del 20 de septiembre de 2026, la mayoría de las aplicaciones de LLM locales se basan en él o en su biblioteca ggml: Ollama, LM Studio, KoboldCpp, Jan. Usarlo directamente no hace que tu modelo sea más rápido. Te da control sobre ajustes que las capas de software que lo utilizan deciden por ti.

Por Mohamed Meguedmi·Actualización 2026-09-28·Probado en macOS 14+

#llama.cpp en resumen

Georgi Gerganov lanzó el proyecto en marzo de 2023 con un objetivo sencillo: ejecutar el modelo LLaMA de Meta en un MacBook, sin Python ni dependencias pesadas. Está publicado bajo licencia MIT. Tres años después, el repositorio (ahora bajo la organización ggml-org) admite cientos de arquitecturas, y el formato de archivo que definió en agosto de 2023, GGUF, se ha convertido en el estándar de facto para distribuir un modelo cuantizado.

Dos decisiones técnicas explican este éxito. La primera es la cuantización: llama.cpp puede ejecutar pesos comprimidos de 2 a 8 bits, lo que permite que un modelo de 8 mil millones de parámetros quepa en 5 GB en lugar de 16. La segunda es el reparto entre procesador y tarjeta gráfica: cuando un modelo no cabe completamente en la VRAM, parte de las capas permanece en la RAM y el resto se carga en la GPU. Es más lento que cargar todo el modelo en la GPU, pero funciona, y pocos motores lo ofrecen.

#Lo que hay en la caja

El kit de IA Local

Tu ChatGPT privado y gratuito en tu máquina en 1 hora — LM Studio, Ollama, Open WebUI, tus documentos, sin nube.

  • Espacio en línea de por vida
  • PDF + archivos
  • Reembolsado 30 j
llama-cli
El chat de línea de comandos. Útil para probar un modelo o un ajuste en pocos segundos.
llama-server
Un servidor HTTP con una API compatible con OpenAI y una interfaz web integrada, en el puerto 8080. Es el componente que la mayoría de los usuarios avanzados ejecutan continuamente.
llama-bench
La herramienta de medición. Da por separado la velocidad de lectura del prompt y la velocidad de generación, lo que permite comparar dos ajustes sin autoengañarse.
llama-quantize
Convierte un GGUF de precisión completa a una cuantización más ligera (Q4_K_M, Q5_K_M, Q8_0).

#Lo que las capas adicionales aportan y ocultan

Ollama, LM Studio y KoboldCpp ofrecen lo que llama.cpp no hace: un catálogo de modelos, descarga en un solo comando, una interfaz, carga y descarga automáticas. A cambio, establecen valores por defecto. La tabla a continuación no compara rendimientos, indica quién decide sobre qué.

Comparativa del control disponible, no de la velocidad · estado al 20/09/2026
Ajustellama.cpp sin capas adicionalesOllamaLM StudioKoboldCpp
Tamaño del contextoOpción -c, libreValor predeterminado prudente, modificable mediante una variable o un ModelfileControl deslizante por modeloOpción al inicio
Elección de la cuantizaciónCualquier archivo GGUFEtiqueta del catálogo, Q4 por defectoLista disponible para descargarCualquier archivo GGUF
Capas enviadas al GPUOpción -ngl, capa por capaAutomáticoControl deslizanteOpción al inicio
Cuantización de la caché KVOpciones -ctk y -ctvVariable de entorno globalConfiguración avanzadaOpción al inicio
APIllama-server, compatible con OpenAIAPI limpia + compatibilidad con OpenAIServidor compatible con OpenAIAPI limpia + compatibilidad con OpenAI
Actualizaciones del motorEl mismo día, con cada commitCon un desfaseCon un desfaseCon un desfase

La última línea importa más de lo que parece. Cuando aparece una nueva arquitectura de modelo, primero se incorpora su soporte en llama.cpp y después, unos días o semanas más tarde, en las herramientas construidas sobre él. Si quieres probar un modelo la semana de su publicación, a menudo es la única vía.

#Los cuatro ajustes que cambian todo

-ngl (n-gpu-layers)
El número de capas del modelo colocadas en VRAM. El valor 99 significa «todo lo que cabe». Si el modelo supera la capacidad de tu VRAM, reduce este número hasta que se cargue correctamente: cada capa que se deja en la CPU ralentiza la generación, pero un modelo que funciona a 8 tokens por segundo es mejor que uno que no arranca.
-c (ctx-size)
La ventana de contexto asignada. La caché KV crece con ella: en un modelo de 8B, pasar de 8.000 a 32.000 tokens cuesta varios GB de VRAM. Asigna lo que necesitas, no el máximo anunciado por el modelo.
-fa (flash-attn)
Activa Flash Attention, que reduce el uso de memoria y acelera la lectura de prompts largos. También es un requisito previo para cuantizar la caché KV.
--n-cpu-moe
Para los modelos MoE, mantén a los expertos de un número determinado de capas en RAM y deja el resto en el GPU. Es lo que permite ejecutar un MoE de 30 o 120 mil millones de parámetros en una tarjeta de 16 GB a una velocidad útil.

#Lo que ha cambiado: --fit ajusta -ngl por ti

Durante mucho tiempo, ajustar -ngl a mano fue el primer paso habitual en cualquier guía de llama.cpp: poner 99 para enviar todo a la GPU y luego ir reduciendo el valor por ensayo y error si fallaba la carga. Ya no es un paso obligatorio. El proyecto ha añadido una opción --fit, activada por defecto, que ajusta automáticamente los parámetros no especificados (incluido -ngl) para que el modelo quepa en la memoria disponible. En una tarjeta modesta, esto evita el habitual ciclo entre un intento de ejecución fallido y la reducción manual de -ngl.

→
-ngl 99 sigue siendo válido
Si prefieres forzar una asignación precisa, -ngl continúa funcionando exactamente como antes; --fit solo se aplica a los parámetros que no has fijado tú mismo. El cambio de comportamiento afecta al valor por defecto, no al comando.

#¿Qué backend para tu tarjeta?

llama.cpp se compila o se descarga para un backend de cálculo determinado. La elección correcta depende únicamente de tu hardware. La tabla recoge las familias de nuestra base de 90 configuraciones.

Familias derivadas de la base de datos de hardware de QuelLLM (90 GPU y chips) · 20/09/2026
Tu equipoBackend recomendadoNota
NVIDIA GTX 10 a RTX 50, de sobremesa y para portátilesCUDAEl camino más rápido y mejor probado.
AMD Radeon RX 7000 y RX 9000ROCm (HIP) o VulkanROCm es más rápido cuando funciona. Vulkan se instala sin problemas, incluso en Windows.
AMD Radeon RX 6000 y modelos anterioresVulkanSoporte parcial o ausente de ROCm según la tarjeta.
Apple M1 a M5MetalActivado por defecto en los binarios de macOS. Se puede utilizar toda la memoria unificada.
GPU integrado Intel o AMD, Intel ArcVulkan o SYCLMejora real frente al uso exclusivo de la CPU en modelos pequeños.
Sin GPUCPU (AVX2, AVX-512, NEON)Funciona en cualquier equipo. Busca modelos de hasta 8 mil millones de parámetros.

#Nuestras mediciones con llama.cpp

llama.cpp es el motor de referencia de nuestro banco de pruebas, precisamente porque funciona de forma idéntica en todas las plataformas. Estas son las velocidades de generación registradas con Llama 3.1 8B en Q4, con un contexto de 2 048 tokens, una sola solicitud y Flash Attention activada.

Medido · banco de pruebas de QuelLLM, llama.cpp b4280, mediciones del 18/04/2026 · tabla completa en la página Benchmarks
MáquinaMemoriaLlama 3.1 8B Q4
RTX 509032 GB172 tok/s
RTX 409024 GB128 tok/s
RTX 407012 GB76 tok/s
Mac M3 Max64 GB unificados64 tok/s
RTX 306012 GB44 tok/s
Ryzen 7 7700, solo CPURAM del sistema7,8 tok/s

Dos conclusiones. En primer lugar, la diferencia entre una RTX 3060 y un procesador por sí solo es de un factor de cinco a seis: incluso una tarjeta de gama básica cambia la experiencia. En segundo lugar, estas cifras serían prácticamente las mismas en Ollama o LM Studio en las mismas máquinas, ya que el motor de cálculo es el mismo.

#Quedarse en Ollama o pasar a llama.cpp

Quédate con Ollama o LM Studio si…Pásate a llama.cpp si…
Quieres hablar con un modelo sin leer documentación.Tu modelo supera la capacidad de la VRAM y quieres ajustar con precisión la distribución entre GPU y CPU.
Cambias frecuentemente de modelo y aprecias el catálogo integrado.Quieres probar una arquitectura publicada esta semana.
Tus herramientas (Open WebUI, extensiones de editor) esperan la API de Ollama.Estás montando un servidor para usarlo a largo plazo y quieres controlar cada opción, desde el contexto hasta la caché KV.

#Empezar en diez minutos

No necesitas compilar para probarlo. Se publican binarios precompilados para Windows, macOS y Linux con cada versión, y los gestores de paquetes se encargan del resto. El comando a continuación descarga un pequeño modelo desde Hugging Face y abre la interfaz web en http://localhost:8080.

Instalar y lanzar el servidor
# macOS et Linux (Homebrew)
brew install llama.cpp

# Windows
winget install llama.cpp

# Télécharger un modèle et ouvrir l'interface web
llama-server -hf ggml-org/gemma-3-4b-it-GGUF -ngl 99 -c 8192

Para un modelo más ambicioso del catálogo, descarga el archivo GGUF que prefieras e indica su ruta con la opción -m. Compilar a partir del código fuente solo resulta útil para activar un backend específico o seguir el desarrollo día a día.

#Errores más comunes al cargar

La mayoría de los problemas con llama.cpp se reducen a tres causas: superar la memoria disponible, un archivo GGUF incompatible con la compilación instalada o una opción mal escrita. El mensaje de error mostrado en la línea de comandos indica casi siempre cuál de las tres es la causa, siempre que lo leas hasta el final en lugar de cerrar la ventana y volver a ejecutar el programa.

Leer el mensaje antes de cambiar de ajuste
Mensaje o síntomaCausa probableA probar
cudaMalloc failed: out of memoryEl modelo, con el contexto solicitado, supera la VRAM disponibleReducir -c, dejar que --fit ajuste -ngl o elegir una cuantización más ligera
unknown model architectureEl archivo GGUF utiliza una arquitectura más reciente que el binario instaladoActualizar a la última versión publicada; las nuevas arquitecturas llegan primero a llama.cpp
Generación muy lenta a pesar de tener una GPU recienteLas capas no se cargan todas en el GPU, a menudo por falta de VRAM libreComprobar la salida de carga (línea «offloaded»), cerrar las demás aplicaciones que ocupan la tarjeta
error: invalid argumentUna opción renombrada o mal escrita en el comandoComparar con llama-server --help, que enumera los alias cortos y largos actualizados

Conviene leer una vez de principio a fin la línea de carga que aparece al iniciar el servidor: indica el número de capas realmente enviadas a la GPU, el tamaño efectivo del contexto y el tipo de caché KV utilizado. A menudo resulta más rápido que añadir opciones al azar hasta que funcione. Presta también atención a la versión instalada: llama.cpp publica versiones nocturnas con mucha frecuencia y, a veces, ya se ha publicado una corrección para tu tarjeta o tu modelo que todavía no ha llegado al paquete de Homebrew o winget que instalaste la semana anterior.

#FAQ

¿Es más rápido llama.cpp que Ollama?+
Con los mismos ajustes, no: Ollama se basa en el mismo motor de cálculo, por lo que la velocidad de generación es muy similar. La diferencia proviene de los ajustes. llama.cpp te permite elegir con precisión el número de capas en la GPU, el tamaño del contexto y la cuantización de la caché, lo que a veces permite que quepa en VRAM un modelo que Ollama habría dejado parcialmente en la CPU.
¿Se necesita saber compilar para usar llama.cpp?+
No. Se publican binarios precompilados en cada versión para Windows, macOS y Linux, y el paquete está disponible en Homebrew (macOS, Linux) y winget (Windows): basta con un comando de instalación, sin necesidad de tocar un compilador. Compilar a partir del código fuente solo resulta útil para activar un backend específico que no esté incluido en el binario oficial, aplicar un parche local o seguir la rama de desarrollo día a día en lugar de una versión publicada.
¿Se puede usar llama.cpp sin tarjeta gráfica?+
Sí, de hecho es su uso original: el proyecto se diseñó para ejecutar un modelo solo con un procesador, sin GPU ni Python. En un procesador reciente, un modelo 8B en Q4 genera alrededor de 8 tokens por segundo en nuestro banco de pruebas, lo que sigue siendo lento pero permite leer las respuestas para conversar o resumir. Por encima de 14 mil millones de parámetros, la espera se vuelve tediosa sin aceleración por hardware.
¿Qué diferencia hay entre llama.cpp y vLLM?+
llama.cpp está orientado a un equipo personal, sea cual sea su hardware, con modelos cuantizados en GGUF. vLLM está orientado a un servidor GPU que atiende muchas solicitudes en paralelo, con los pesos de Hugging Face. El primero maximiza lo que puedes ejecutar en tu equipo; el segundo, la capacidad de procesamiento de una GPU compartida.
¿Y en Mac, llama.cpp o MLX?+
Ambos aprovechan la GPU de Apple a través de la memoria unificada. MLX, la biblioteca diseñada por Apple para sus propios chips, suele tener ventaja en velocidad con los modelos recientes; llama.cpp tiene a su favor el inmenso catálogo de archivos GGUF ya cuantizados y ajustes más precisos del contexto y de la caché KV. En la práctica, muchos usuarios de Mac mantienen ambos instalados y eligen según el formato disponible para el modelo deseado.

¿Esta guía te ha ayudado?

¿Un comentario, un error, una precisión? Avísanos, eso mejora la guía para todos.