Fork do llama.cpp focado em acelerar a inferência em CPU, com tipos extras de quantização e recursos para executar LLMs GGUF localmente.
google/gemma.cpp
Um mecanismo de inferência C++ leve e independente para executar modelos Gemma do Google na CPU.
- Estrelas
- 7,080
- Forks
- 672
- Issues abertas
- 52
- Último commit
- há 6 horas
O que é?
gemma.cpp é um mecanismo de inferência C++ minimalista para os modelos Gemma-2, Gemma-3 e PaliGemma-2. Foi criado para experimentação e pesquisa, com o objetivo de ocupar um espaço entre os runtimes C++ voltados à implantação e os frameworks de ML baseados em Python. Sua implementação central é enxuta e fácil de ler, modificar e incorporar a outros projetos.
O mecanismo executa inferência somente na CPU usando o Google Highway para SIMD portátil e integra a compressão de pesos diretamente à multiplicação de matrizes, com formatos como fp8 personalizado, bf16, f32 e quantização não uniforme de 4 bits. Também inclui uma etapa de retropropagação e o otimizador Adam para pesquisas com Gemma.
O projeto oferece APIs C++ com streaming para consultas individuais e em lote, um aplicativo básico de linha de comando interativo e bindings para Python via pybind11. Os pesos são baixados do Kaggle, e os builds usam CMake ou Bazel no Linux, Windows e macOS.
Recursos principais
- 01Executa inferência dos modelos Gemma-2, Gemma-3 e PaliGemma-2 na CPU.
- 02Integra à GEMM a compressão de pesos com formatos como fp8, bf16 e NUQ de 4 bits.
- 03Usa o Google Highway para SIMD portátil e seleção de ISA em tempo de execução.
- 04Oferece APIs C++ com streaming para inferência individual e em lote.
- 05Inclui uma CLI interativa básica e bindings para Python via pybind11.
- 06Oferece uma etapa de retropropagação e o otimizador Adam para pesquisa.
Casos de uso
- Experimentar otimizações de inferência de baixo nível para modelos Gemma.
- Incorporar um runtime LLM local e compacto em um aplicativo C++.
- Executar modelos Gemma ou PaliGemma em máquinas sem GPU para pesquisa.
- Estudar uma implementação de LLM compacta e fácil de ler.
Início rápido
- 1
Instale o CMake e um compilador C++ do Clang (C++17 ou mais recente)
- 2
Baixe os pesos do modelo e o tokenizer do Kaggle (gemma2-2b-it-sfp recomendado) e extraia o arquivo
tar -xf archive.tar.gz - 3
Configure e compile o executável gemma com o CMake
cmake --preset make - 4
Execute o gemma com os arquivos do tokenizer e dos pesos
./gemma --tokenizer tokenizer.spm --weights gemma2-2b-it-sfp.sbs
Antes de usar
- A inferência funciona apenas na CPU; não há suporte a GPU.
- É necessário baixar os pesos do modelo do Kaggle após aceitar um formulário de consentimento.
- Para compilar nativamente no Windows, é necessário ter o Visual Studio Build Tools com clang-cl; recomenda-se usar o WSL.
- Projetado para experimentação e pesquisa, não para implantação em produção.
Tópicos
Perguntas frequentes
- O que é gemma.cpp?
- Um mecanismo de inferência C++ leve e independente para executar modelos Gemma do Google na CPU. gemma.cpp é um mecanismo de inferência C++ minimalista para os modelos Gemma-2, Gemma-3 e PaliGemma-2. Foi criado para experimentação e pesquisa, com o objetivo de ocupar um espaço entre os runtimes C++ voltados à implantação e os frameworks de ML baseados em Python. Sua implementação central é enxuta e fácil de ler, modificar e incorporar a outros projetos.
- gemma.cpp é gratuito? Qual é a licença?
- gemma.cpp é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- gemma.cpp ainda é mantido?
- Manutenção ativa. O último commit de gemma.cpp foi em 7 de nov. de 2026.
- Para que posso usar gemma.cpp?
- Experimentar otimizações de inferência de baixo nível para modelos Gemma. Incorporar um runtime LLM local e compacto em um aplicativo C++. Executar modelos Gemma ou PaliGemma em máquinas sem GPU para pesquisa. Estudar uma implementação de LLM compacta e fácil de ler.
- Como instalar gemma.cpp?
- Instale o CMake e um compilador C++ do Clang (C++17 ou mais recente) Baixe os pesos do modelo e o tokenizer do Kaggle (gemma2-2b-it-sfp recomendado) e extraia o arquivo: tar -xf archive.tar.gz Configure e compile o executável gemma com o CMake: cmake --preset make Execute o gemma com os arquivos do tokenizer e dos pesos: ./gemma --tokenizer tokenizer.spm --weights gemma2-2b-it-sfp.sbs
- Onde consigo gemma.cpp?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/google/gemma.cpp
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Um mecanismo de inferência em C99 que executa o modelo Kimi K3, com 2,78 trilhões de parâmetros, em uma única CPU, carregando especialistas do disco sem GPU nem BLAS.
Framework oficial da Microsoft para inferência em CPU/GPU de LLMs de 1 bit (ternários, 1,58 bit), baseado no llama.cpp.
Biblioteca C++ e Python que executa modelos Transformer, como Whisper, Llama e NLLB, com mais rapidez e menos memória usando quantização e kernels otimizados.
Inferência de transformers no estilo Llama 2, escrita em Mojo puro em um único arquivo, com vetorização SIMD e multithreading.
Biblioteca de tensores em C/C++ puro para machine learning, simples, portátil e eficiente, com configuração mínima.