Un fork de llama.cpp centrado en acelerar la inferencia en CPU, con más tipos de cuantización y funciones para ejecutar LLMs GGUF localmente.
google/gemma.cpp
Un motor de inferencia C++ ligero e independiente para ejecutar modelos Gemma de Google en CPU.
- Estrellas
- 7,080
- Forks
- 672
- Issues abiertos
- 52
- Último commit
- hace 7 horas
¿Qué es?
gemma.cpp es un motor de inferencia C++ minimalista para los modelos Gemma-2, Gemma-3 y PaliGemma-2. Está diseñado para la experimentación y la investigación, y busca situarse entre los entornos de ejecución C++ orientados al despliegue y los frameworks de ML basados en Python, con una implementación central pequeña, fácil de leer y modificar, e integrar en otros proyectos.
El motor ejecuta inferencias exclusivamente en CPU mediante Google Highway para SIMD portable, e integra la compresión de pesos directamente en la multiplicación de matrices. Incluye un formato fp8 personalizado, bf16, f32 y cuantización de 4 bits no uniforme. También incluye una pasada hacia atrás y el optimizador Adam para la investigación con Gemma.
El proyecto ofrece API de C++ con streaming para consultas individuales y por lotes, una aplicación básica interactiva de línea de comandos y bindings de Python mediante pybind11. Los pesos se descargan de Kaggle y las compilaciones usan CMake o Bazel en Linux, Windows y macOS.
Funciones clave
- 01Ejecuta inferencias de Gemma-2, Gemma-3 y PaliGemma-2 en CPU.
- 02Integra en GEMM la compresión de pesos, como fp8, bf16 y NUQ de 4 bits.
- 03Usa Google Highway para SIMD portable y la selección de ISA en tiempo de ejecución.
- 04Ofrece API de streaming en C++ para inferencias individuales y por lotes.
- 05Incluye una CLI interactiva básica y bindings de Python con pybind11.
- 06Incluye una pasada hacia atrás y el optimizador Adam para investigación.
Casos de uso
- Experimentar con optimizaciones de bajo nivel para la inferencia de modelos Gemma.
- Integrar un entorno de ejecución local y pequeño para LLM en una aplicación C++.
- Ejecutar modelos Gemma o PaliGemma en equipos que solo tienen CPU, con fines de investigación.
- Estudiar una implementación de LLM compacta y fácil de leer.
Inicio rápido
- 1
Instala CMake y un compilador C++ de Clang (C++17 o posterior)
- 2
Descarga los pesos del modelo y el tokenizer desde Kaggle (se recomienda gemma2-2b-it-sfp) y descomprime el archivo
tar -xf archive.tar.gz - 3
Configura y compila el ejecutable gemma con CMake
cmake --preset make - 4
Ejecuta gemma con los archivos del tokenizer y los pesos
./gemma --tokenizer tokenizer.spm --weights gemma2-2b-it-sfp.sbs
Antes de usarlo
- La inferencia solo funciona con CPU; no hay compatibilidad con GPU.
- Es necesario descargar los pesos del modelo desde Kaggle después de aceptar un formulario de consentimiento.
- Para compilar de forma nativa en Windows, se necesitan las herramientas Visual Studio Build Tools con clang-cl; se recomienda usar WSL.
- Está diseñado para la experimentación y la investigación, no para implementaciones en producción.
Temas
Preguntas frecuentes
- ¿Qué es gemma.cpp?
- Un motor de inferencia C++ ligero e independiente para ejecutar modelos Gemma de Google en CPU. gemma.cpp es un motor de inferencia C++ minimalista para los modelos Gemma-2, Gemma-3 y PaliGemma-2. Está diseñado para la experimentación y la investigación, y busca situarse entre los entornos de ejecución C++ orientados al despliegue y los frameworks de ML basados en Python, con una implementación central pequeña, fácil de leer y modificar, e integrar en otros proyectos.
- ¿gemma.cpp es gratuito? ¿Qué licencia tiene?
- gemma.cpp es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿gemma.cpp sigue mantenido?
- Mantenimiento activo. El último commit de gemma.cpp fue el 7 nov 2026.
- ¿Para qué puedo usar gemma.cpp?
- Experimentar con optimizaciones de bajo nivel para la inferencia de modelos Gemma. Integrar un entorno de ejecución local y pequeño para LLM en una aplicación C++. Ejecutar modelos Gemma o PaliGemma en equipos que solo tienen CPU, con fines de investigación. Estudiar una implementación de LLM compacta y fácil de leer.
- ¿Cómo se instala gemma.cpp?
- Instala CMake y un compilador C++ de Clang (C++17 o posterior) Descarga los pesos del modelo y el tokenizer desde Kaggle (se recomienda gemma2-2b-it-sfp) y descomprime el archivo: tar -xf archive.tar.gz Configura y compila el ejecutable gemma con CMake: cmake --preset make Ejecuta gemma con los archivos del tokenizer y los pesos: ./gemma --tokenizer tokenizer.spm --weights gemma2-2b-it-sfp.sbs
- ¿Dónde consigo gemma.cpp?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/google/gemma.cpp
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Motor de inferencia C99 que ejecuta el modelo Kimi K3 de 2,78 billones de parámetros en una sola CPU y transmite los expertos desde el disco, sin GPU ni BLAS.
Framework oficial de inferencia para CPU y GPU de Microsoft, destinado a modelos de lenguaje grandes de 1 bit (ternarios, de 1,58 bits) y basado en llama.cpp.
Biblioteca de C++ y Python que ejecuta modelos Transformer como Whisper, Llama y NLLB más rápido y con menos memoria gracias a la cuantización y los kernels optimizados.
Inferencia de transformers al estilo de Llama 2, escrita íntegramente en Mojo en un solo archivo, con vectorización SIMD y multihilo.
Una biblioteca de tensores en C/C++ para machine learning, sencilla, portable y eficiente, con una configuración mínima.