Intermediário 11 minllama.cpp

llama.cpp: o que é e é preciso deixar de usar o Ollama? ?

Resposta direta

llama.cpp é o motor de inferência em C/C++ que executa modelos no formato GGUF em CPU e em GPU NVIDIA, AMD, Intel e Apple Silicon; Ollama, LM Studio e KoboldCpp dependem dele. Usá-lo diretamente, via llama-server, não torna um modelo mais rápido no mesmo hardware: isso dá controle sobre configurações que as camadas superiores escolhem por você, como a divisão GPU/CPU, o tamanho do contexto e a quantização do cache KV.

O llama.cpp é o motor de inferência escrito em C e C++ que executa modelos no formato GGUF em CPUs, em GPUs NVIDIA, AMD e Intel e em Macs. Em 20 de setembro de 2026, a maioria dos aplicativos de LLM local se baseia nele ou em sua biblioteca ggml: Ollama, LM Studio, KoboldCpp, Jan. Usá-lo diretamente não torna seu modelo mais rápido. Isso dá a você controle sobre ajustes que as camadas superiores decidem por você.

Por Mohamed Meguedmi·Atualização 2026-09-28·Testado no macOS 14+

#llama.cpp em resumo

O projeto foi lançado em março de 2023 por Georgi Gerganov, com um objetivo simples: rodar o modelo LLaMA da Meta em um MacBook, sem Python nem dependências pesadas. Ele é publicado sob licença MIT. Três anos depois, o repositório (agora sob a organização ggml-org) oferece suporte a centenas de arquiteturas, e o formato de arquivo definido pelo projeto em agosto de 2023, o GGUF, tornou-se o padrão de fato para distribuir um modelo quantizado.

Duas escolhas técnicas explicam esse sucesso. A primeira é a quantização: o llama.cpp sabe executar pesos comprimidos de 2 a 8 bits, o que permite que um modelo de 8 bilhões de parâmetros caiba em 5 GB em vez de 16. A segunda é a divisão entre processador e placa gráfica: quando um modelo não cabe inteiro na VRAM, parte das camadas permanece na RAM e o restante vai para o GPU. Isso é mais lento que um carregamento completo, mas funciona, e poucos motores oferecem essa possibilidade.

#O que está dentro da caixa

O kit IA Local

Seu ChatGPT privado e gratuito na sua máquina em 1 hora — LM Studio, Ollama, Open WebUI, seus documentos, sem nuvem.

  • Espaço online vitalício
  • PDF + arquivos
  • Atualizações vitalícias
llama-cli
O chat na linha de comando. Útil para testar um modelo ou um ajuste em poucos segundos.
llama-server
Um servidor HTTP com API compatível com OpenAI e interface web integrada, na porta 8080. É o componente que a maioria dos usuários avançados mantém em execução continuamente.
llama-bench
O utilitário de medição. Ele fornece separadamente a velocidade de leitura do prompt e a velocidade de geração, permitindo comparar dois ajustes sem se iludir.
llama-quantize
Converte um GGUF em precisão completa para uma quantização mais leve (Q4_K_M, Q5_K_M, Q8_0).

#O que as camadas extras adicionam e escondem

Ollama, LM Studio e KoboldCpp oferecem o que o llama.cpp não faz: um catálogo de modelos, download com um único comando, interface, carregamento e descarregamento automáticos. Em troca, eles definem valores padrão. A tabela abaixo não compara desempenhos, apenas indica quem decide sobre o que.

Comparativo de controle, não de velocidade · situação em 20/09/2026
Ajustellama.cpp puroOllamaLM StudioKoboldCpp
Tamanho do contextoOpção -c, livreValor padrão prudente, modificável por variável ou ModelfileControle deslizante por modeloOpção na inicialização
Escolha da quantizaçãoQualquer arquivo GGUFTag do catálogo, Q4 padrãoLista disponível para downloadQualquer arquivo GGUF
Camadas enviadas para o GPUOpção -ngl, camada por camadaAutomáticoControle deslizanteOpção na inicialização
Quantização do cache KVOpções -ctk e -ctvVariável de ambiente globalConfiguração avançadaOpção na inicialização
APIllama-server, compatível com OpenAIAPI limpa + compatibilidade com OpenAIServidor compatível com OpenAIAPI limpa + compatibilidade com OpenAI
Atualizações do motorNo mesmo dia, com cada commitCom deslocamentoCom deslocamentoCom deslocamento

A última linha conta mais do que parece. Quando uma nova arquitetura de modelo é lançada, ela é primeiro suportada pelo llama.cpp, depois pelas camadas superiores alguns dias ou semanas depois. Se você quer testar um modelo na semana de seu lançamento, muitas vezes é o único caminho.

#Os quatro ajustes que mudam tudo

-ngl (n-gpu-layers)
O número de camadas do modelo colocadas na VRAM. O valor 99 significa “tudo o que couber”. Se o modelo exceder a capacidade da sua VRAM, reduza esse número até que o carregamento seja concluído com sucesso: cada camada deixada na CPU torna a geração mais lenta, mas um modelo que roda a 8 tokens por segundo é melhor do que um modelo que não inicia.
-c (ctx-size)
A janela de contexto alocada. O cache KV aumenta com ela: em um modelo de 8B, passar de 8.000 para 32.000 tokens custa vários GB de VRAM. Aloque o que você precisa, não o máximo anunciado pelo modelo.
-fa (flash-attn)
Ativa o Flash Attention, que reduz o uso de memória e acelera a leitura de prompts longos. É também um pré-requisito para quantizar o cache KV.
--n-cpu-moe
Para modelos MoE, mantém os especialistas de um determinado número de camadas na RAM e deixa o restante na GPU. É isso que permite rodar um MoE com 30 ou 120 bilhões de parâmetros em uma placa de 16 GB a uma velocidade utilizável.

#O que mudou: --fit ajusta -ngl por você

Por muito tempo, ajustar -ngl manualmente foi o primeiro reflexo de qualquer guia do llama.cpp: definir 99 para enviar tudo para a GPU e depois reduzir o valor por tentativa e erro se o carregamento falhasse. Essa etapa já não é obrigatória. O projeto adicionou uma opção --fit, ativada por padrão, que ajusta automaticamente os parâmetros não especificados (incluindo -ngl) para que o modelo caiba na memória disponível. Em uma placa modesta, isso evita a alternância habitual entre uma tentativa de execução que falha e uma redução manual de -ngl.

→
-ngl 99 continua válido
Se você preferir forçar um posicionamento preciso, -ngl continua funcionando exatamente como antes; --fit se aplica apenas aos parâmetros que você não definiu por conta própria. A mudança de comportamento diz respeito ao valor padrão, não ao comando.

#Qual backend para a sua placa

llama.cpp é compilado ou baixado para um backend de cálculo específico. A escolha correta depende exclusivamente do seu hardware. A tabela lista as famílias de nossa base de 90 configurações.

Famílias extraídas da base de hardware do QuelLLM (90 GPUs e chips) · 20/09/2026
Seu hardwareBackend recomendadoObservação
NVIDIA GTX 10 a RTX 50, para desktops e notebooksCUDAO caminho mais rápido e melhor testado.
AMD Radeon RX 7000 e RX 9000ROCm (HIP) ou VulkanROCm é mais rápido quando funciona. Vulkan pode ser instalado sem dificuldades, inclusive no Windows.
AMD Radeon RX 6000 e modelos anterioresVulkanSuporte parcial ou inexistente ao ROCm conforme a placa.
Apple M1 a M5MetalAtivado por padrão nos binários macOS. Toda a memória unificada é utilizável.
GPU integrada Intel ou AMD, Intel ArcVulkan ou SYCLGanho real nos modelos pequenos em comparação com o uso apenas da CPU.
Sem GPUCPU (AVX2, AVX-512, NEON)Funciona em qualquer lugar. Busque modelos com no máximo 8 bilhões de parâmetros.

#Nossas medições com llama.cpp

llama.cpp é o motor de referência da nossa bancada de testes, precisamente porque funciona da mesma forma em todas as plataformas. Aqui estão as velocidades de geração registradas com Llama 3.1 8B em Q4, contexto de 2 048 tokens, uma única requisição e Flash Attention ativada.

Medido · bancada de testes QuelLLM, llama.cpp b4280, medições de 18/04/2026 · tabela completa na página Benchmarks
MáquinaMemóriaLlama 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, apenas CPURAM do sistema7,8 tok/s

Duas conclusões. Primeiro, a diferença entre uma RTX 3060 e o uso apenas do processador é de um fator de cinco a seis: mesmo uma placa de entrada muda a experiência. Segundo, esses números seriam praticamente os mesmos no Ollama ou no LM Studio nas mesmas máquinas, já que o motor de cálculo é o mesmo.

#Continuar usando o Ollama ou passar para o llama.cpp

Continue usando Ollama ou LM Studio se…Mude para llama.cpp se…
Você quer conversar com um modelo sem ler documentação.Seu modelo ultrapassa a VRAM e você quer ajustar cuidadosamente a distribuição entre GPU e CPU.
Você muda frequentemente de modelo e aprecia o catálogo integrado.Você quer testar uma arquitetura lançada esta semana.
Suas ferramentas (Open WebUI, extensões de editor) esperam a API do Ollama.Você está montando um servidor para uso a longo prazo e quer dominar cada opção, do contexto até o cache KV.

#Iniciar em dez minutos

Nada precisa ser compilado para testar. Binários pré-compilados são publicados para Windows, macOS e Linux a cada versão, e os gerenciadores de pacotes fazem o resto. O comando abaixo baixa um modelo pequeno do Hugging Face e abre a interface web no http://localhost:8080.

Instalar e iniciar o 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 um modelo mais ambicioso do catálogo, baixe o arquivo GGUF de sua escolha e indique esse arquivo com a opção -m. A compilação a partir do código-fonte só se torna útil para ativar um backend específico ou acompanhar o desenvolvimento dia a dia.

#Erros mais comuns de carregamento

A maioria dos problemas com llama.cpp se resume a três causas: o uso de memória excede a capacidade disponível, um arquivo GGUF é incompatível com o build instalado ou uma opção está escrita incorretamente. A mensagem de erro exibida na linha de comando quase sempre indica qual das três é a causa, desde que você a leia até o final em vez de fechá-la e executar novamente.

Ler a mensagem antes de mudar o ajuste
Mensagem ou sintomaCausa provávelPara experimentar
cudaMalloc failed: out of memoryO modelo, com o contexto solicitado, ultrapassa a VRAM disponívelReduzir -c, deixar --fit ajustar -ngl, ou escolher uma quantificação mais leve
unknown model architectureO arquivo GGUF utiliza uma arquitetura mais recente do que o binário instaladoAtualizar para a última versão publicada; as novas arquiteturas chegam primeiro no llama.cpp
Geração muito lenta apesar de ter um GPU recenteNem todas as camadas são transferidas para a GPU, muitas vezes por falta de VRAM livreVerificar a saída de carregamento (linha « offloaded »), fechar outras aplicações que ocupam a placa
error: invalid argumentUma opção renomeada ou escrita incorretamente no comandoComparar com llama-server --help, que lista os aliases curtos e longos atualizados

Vale a pena ler uma vez, por inteiro, a linha de carregamento exibida ao iniciar o servidor: ela indica o número de camadas realmente enviadas à GPU, o tamanho efetivo do contexto e o tipo de cache KV utilizado. Muitas vezes, isso é mais rápido do que adicionar opções ao acaso até funcionar. Fique também de olho na versão instalada: o llama.cpp publica versões noturnas com muita frequência, e às vezes uma correção para sua placa ou seu modelo já foi lançada, mas ainda não chegou ao pacote do Homebrew ou do winget que você instalou na semana anterior.

#FAQ

O llama.cpp é mais rápido que o Ollama?+
Com configurações iguais, não: Ollama utiliza o mesmo motor de cálculo, portanto a velocidade de geração é muito próxima. A diferença vem dos ajustes. O llama.cpp permite que você escolha precisamente o número de camadas na GPU, o tamanho do contexto e a quantização do cache, o que às vezes permite fazer caber na VRAM um modelo que Ollama teria deixado parcialmente na CPU.
É necessário saber compilar para usar llama.cpp?+
Não. Binários pré-compilados são publicados a cada versão para Windows, macOS e Linux, e o pacote está disponível no Homebrew (macOS, Linux) e no winget (Windows): basta executar um comando de instalação, sem precisar tocar em um compilador. A compilação a partir do código-fonte só se torna útil para ativar um backend específico ausente no binário oficial, aplicar um patch local ou acompanhar a branch de desenvolvimento diariamente em vez de uma versão publicada.
É possível usar o llama.cpp sem placa de vídeo?+
Sim, esse é até seu uso original: o projeto foi pensado para rodar um modelo em um simples processador, sem GPU nem Python. Em um processador recente, um modelo de 8B em Q4 roda em torno de 8 tokens por segundo na nossa bancada de testes, o que ainda é lento, mas permite acompanhar a leitura para conversar ou resumir. Acima de 14 bilhões de parâmetros, a espera se torna incômoda sem aceleração por hardware.
Qual a diferença entre llama.cpp e vLLM?+
llama.cpp é voltado para computadores pessoais, independentemente do hardware, com modelos quantizados em GGUF. vLLM é voltado para um servidor com GPU que atende muitas requisições em paralelo, com os pesos do Hugging Face. O primeiro maximiza o que roda na sua máquina; o segundo, a taxa de processamento de uma GPU compartilhada.
E no Mac, llama.cpp ou MLX?+
Ambos aproveitam a GPU da Apple por meio da memória unificada. O MLX, a biblioteca desenvolvida pela Apple para seus próprios chips, costuma levar vantagem em velocidade nos modelos recentes; o llama.cpp tem a seu favor o enorme catálogo de arquivos GGUF já quantizados e ajustes mais finos de contexto e cache KV. Na prática, muitos usuários de Mac mantêm os dois instalados e escolhem conforme o formato disponível para o modelo desejado.

Este guia ajudou você?

Um comentário, um erro ou uma observação? Avise-nos; isso ajuda a melhorar o guia para todos.