Repolode
google

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. 1

    Instala CMake y un compilador C++ de Clang (C++17 o posterior)

  2. 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. 3

    Configura y compila el ejecutable gemma con CMake

    cmake --preset make
  4. 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