O llama.cpp é um motor de inferência de Inteligência Artificial, de código aberto, desenvolvido principalmente em C e C++. Ele permite executar modelos de linguagem no próprio computador, usando CPU, GPU ou uma combinação dos dois. Inferência significa utilizar um modelo já treinado para processar uma entrada e produzir uma resposta, em vez de treiná-lo do zero.
É importante separar as coisas: o llama.cpp não é um modelo de IA, mas o software que executa modelos. Apesar do nome, ele não está limitado à família Llama. Também oferece suporte a modelos de outras famílias, como Qwen e Gemma, desde que a arquitetura e o formato sejam compatíveis com a versão utilizada.
Seu principal diferencial é executar modelos com eficiência em diferentes tipos de hardware. Ele tem otimizações para processadores convencionais, GPUs NVIDIA via CUDA, GPUs AMD e Apple Silicon via Metal. Portanto, não exige obrigatoriamente uma GPU NVIDIA: também pode executar modelos somente na CPU ou distribuir o processamento entre CPU e GPU.
Nesse contexto, aparecem dois conceitos importantes: GGUF e quantização.
GGUF é um formato de arquivo que armazena os parâmetros e os metadados necessários para executar o modelo. Já a quantização representa os parâmetros com menos bits, reduzindo o tamanho do arquivo e o consumo de memória. Isso ajuda a executar modelos maiores em máquinas com recursos limitados, embora possa causar alguma perda de qualidade. São conceitos diferentes: GGUF é o formato; quantização é uma técnica de redução da precisão numérica.
Há relação com ferramentas que você já utiliza. O Ollama incorpora o llama.cpp como um de seus mecanismos de execução, acrescentando facilidades para baixar, gerenciar e disponibilizar modelos. O LM Studio também utiliza llama.cpp para executar modelos GGUF, oferecendo uma interface gráfica para conversar e configurar o ambiente. No Mac, o LM Studio também pode utilizar MLX, portanto nem toda execução nele passa pelo llama.cpp.
Você também pode usar o llama.cpp diretamente, sem Ollama ou LM Studio. O projeto oferece ferramentas para conversar pelo terminal e um servidor HTTP com interface web e endpoints compatíveis com partes da API da OpenAI. Por exemplo, uma aplicação sua poderia enviar perguntas para esse servidor local e receber respostas do modelo executado na sua máquina.
Nos seus laboratórios, especialmente no Mac com Apple Silicon, ele é interessante para estudar e controlar a execução dos modelos mais de perto. Usá-lo diretamente permite ajustar aspectos como contexto, processamento na GPU e parâmetros do servidor. Minha recomendação seria manter Ollama ou LM Studio para a conveniência cotidiana e explorar llama.cpp quando o objetivo for experimentar configurações e compreender melhor o mecanismo de inferência.
Acesse o site oficial e comece a construir coisas incríveis: https://llama-cpp.com
David Matos
