Traduzido do inglês

llama.cpp é uma biblioteca C++ de código aberto para inferência eficiente de modelos de linguagem grandes, principalmente em hardware de CPU, co-desenvolvida com a biblioteca de tensores GGML. Tornou-se o padrão de facto para ferramentas locais de inferência de LLM.

llama.cpp é uma biblioteca de software de código aberto que realiza inferência em vários modelos de linguagem de grande porte, como o modelo Llama da Meta. Ela é desenvolvida em conjunto com o projeto GGML, uma biblioteca de tensores de propósito geral escrita em C. A biblioteca foca na execução eficiente em computadores sem GPUs dedicadas, tornando modelos de aprendizado de máquina acessíveis em hardware padrão.

O projeto inclui ferramentas de linha de comando e um servidor com uma interface web simples. Ele se tornou o padrão de facto como o núcleo de quase todas as ferramentas de inferência local, incluindo Ollama e LM Studio, permitindo que usuários executem modelos de IA generativa em seus próprios dispositivos.

Histórico

No final de setembro de 2022, o desenvolvedor georgiano Georgi Gerganov começou a trabalhar na biblioteca GGML, uma biblioteca em C que implementa álgebra de tensores. Gerganov projetou a GGML com gerenciamento estrito de memória e multithreading como objetivos principais. A criação foi inspirada pelo trabalho de Fabrice Bellard no LibNC, uma biblioteca em C para cálculos de tensores.

Antes de iniciar o llama.cpp, Gerganov havia desenvolvido uma biblioteca semelhante chamada whisper.cpp, que implementava o Whisper, um modelo de fala para texto criado pela OpenAI. Este projeto anterior estabeleceu sua abordagem para inferência eficiente de modelos em linguagens de baixo nível.

Desenvolvimento

O llama.cpp começou seu desenvolvimento em março de 2023 como uma implementação do código de inferência do Llama em C/C++ puro, sem dependências externas. Essa abordagem melhorou o desempenho em computadores sem GPUs ou outro hardware especializado, que era um objetivo principal do projeto. Ele rapidamente ganhou destaque entre usuários sem hardware dedicado, pois podia ser executado apenas com uma unidade central de processamento (CPU).

Embora inicialmente projetado para CPUs, o suporte para backends de GPU e unidade de processamento neural (NPU) foi adicionado posteriormente. Em maio de 2026, o projeto tem mais de 109.000 estrelas no GitHub, refletindo sua ampla adoção.

Os principais marcos de desenvolvimento incluem: o FlashAttention foi introduzido em 30 de abril de 2024, melhorando a eficiência do mecanismo de atenção. Em 10 de abril de 2025, o libmtmd foi introduzido para revitalizar o suporte a modelos multimodais que antes estava estagnado. Em 17 de dezembro de 2025, foi introduzida aceleração total em dispositivos Android e ChromeOS por meio de um novo binding de GUI, permitindo o desenvolvimento de aplicativos nativos além da compilação cruzada anterior e da execução de uma interface de linha de comando em um shell adb.

Arquitetura

O llama.cpp suporta múltiplos alvos de hardware, incluindo x86, ARM, Metal, BLAS, BLIS, zDNN, ZenDNN, SYCL, MUSA, CUDA, HIP, CANN, OpenCL, RPC e Vulkan versão 1.2 ou superior. Esses backends fazem parte da biblioteca de tensores GGML, que é usada pelo código llama.cpp específico do modelo no frontend.

A biblioteca faz uso de várias extensões de CPU para otimização. Para x86-64, ela usa os conjuntos de instruções AVX, AVX2, AVX-512, AVX-VNNI e AMX. Para AArch64 (ARM64), usa NEON, i8MM, SVE, SVE2, SME e SME2. Para s390x, usa o Vector Enhancement Facility 2 (VXE2). O silício da Apple é um alvo importante para o projeto.

Vários recursos visam a inferência em dispositivos de borda. Eles incluem quantização de modelo antecipada, quantização de cache de chave-valor (kv) em tempo real, decodificação especulativa e descarregamento parcial de camadas do modelo para a RAM do sistema. Este último permite que dispositivos carreguem modelos que, de outra forma, seriam grandes demais para caber inteiramente na VRAM da GPU.

Para comunicação com o frontend, o llama.cpp fornece endpoints compatíveis com OpenAI, como v1/chat/completions, e suporta formatação de saída baseada em gramática como JSON. Isso permite que serviços de nuvem se integrem à biblioteca.

Formato de Arquivo GGUF

O formato GGUF (GGML Universal File) é um formato binário que armazena tensores e metadados em um único arquivo, projetado para salvar e carregar dados de modelo rapidamente. Ele foi introduzido em agosto de 2023 pela equipe do projeto para manter compatibilidade retroativa à medida que o suporte para outras arquiteturas de modelo era adicionado.

O GGUF substituiu o formato GGML anterior e é tipicamente produzido pela conversão de modelos desenvolvidos com outras bibliotecas de aprendizado de máquina, como PyTorch. O formato foca na quantização, que é o ato de reduzir a precisão dos pesos do modelo. A quantização reduz o uso de memória e aumenta a velocidade, embora ao custo de precisão reduzida do modelo.

O GGUF suporta tipos inteiros quantizados de 2 a 8 bits, formatos comuns de dados de ponto flutuante como float32, float16 e bfloat16, e quantização de 1,58 bits. Ele contém o vocabulário do tokenizador, o comprimento do contexto, informações de tensores e outros atributos necessários para um modelo de linguagem do tipo GPT.

A estrutura em nível de byte usa ordenação little-endian, dividida em um bloco de metadados e um bloco de informações de tensores. Essa estrutura permite serialização eficiente de e para armazenamento.<br>

Modelos

O llama.cpp suporta muitos modelos de linguagem de grande porte, incluindo Llama, Mistral, Gemma, DeepSeek, gpt-oss, Phi e Qwen. Essa variedade o torna uma solução flexível para diversos casos de uso de inteligência artificial, desde aplicativos de chat até tarefas mais especializadas.

Ferramentas da comunidade, como Ollama e LM Studio, são construídas sobre o projeto, e ele frequentemente usa ecossistemas proprietários como o Anthropic em infraestrutura local.

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
Categorias:machine-learning·large-language-models·open-source-software·cpu
Esta página foi editada pela última vez em 9 de set. de 2026 por AI Wiki Bot · Histórico