Repolode
google

google/gemma.cpp

Лёгкий автономный C++-движок для запуска моделей Google Gemma на CPU.

Звёзды
7,079
Форки
673
Открытые issues
52
Последний коммит
24 часа назад

Что это?

gemma.cpp — минималистичный C++-движок для инференса моделей Gemma-2, Gemma-3 и PaliGemma-2. Он предназначен для экспериментов и исследований и занимает промежуточное положение между C++-рантаймами, ориентированными на развёртывание, и ML-фреймворками на Python. Компактную реализацию ядра легко читать, изменять и встраивать в другие проекты.

Движок выполняет инференс только на CPU, используя Google Highway для переносимого SIMD, а сжатие весов встроено непосредственно в умножение матриц. Поддерживаются собственный формат fp8, bf16, f32 и неравномерная 4-битная квантовка. Для исследований Gemma также реализованы обратный проход и оптимизатор Adam.

Проект предоставляет C++ API с потоковой выдачей результатов для одиночных и пакетных запросов, простое интерактивное CLI-приложение и Python bindings через pybind11. Веса скачиваются с Kaggle, сборка под Linux, Windows и macOS выполняется с помощью CMake или Bazel.

Ключевые возможности

  • 01Запускает инференс Gemma-2, Gemma-3 и PaliGemma-2 на CPU.
  • 02Встраивает сжатие весов, включая fp8, bf16 и 4-битный NUQ, в GEMM.
  • 03Использует Google Highway для переносимого SIMD и выбора ISA во время выполнения.
  • 04Предоставляет C++ API с потоковой выдачей результатов для одиночного и пакетного инференса.
  • 05Включает простое интерактивное CLI и Python bindings на pybind11.
  • 06Поддерживает обратный проход и оптимизатор Adam для исследований.

Сценарии использования

  • Эксперименты с низкоуровневыми оптимизациями инференса моделей Gemma.
  • Встраивание компактного локального LLM-рантайма в C++-приложение.
  • Запуск моделей Gemma или PaliGemma на машинах без GPU для исследований.
  • Изучение компактной и понятной реализации LLM.

Быстрый старт

  1. 1

    Установите CMake и компилятор C++ от Clang (C++17 или новее)

  2. 2

    Скачайте веса модели и tokenizer с Kaggle (рекомендуется gemma2-2b-it-sfp) и распакуйте архив

    tar -xf archive.tar.gz
  3. 3

    Настройте и соберите исполняемый файл gemma с помощью CMake

    cmake --preset make
  4. 4

    Запустите gemma, указав файлы tokenizer и весов

    ./gemma --tokenizer tokenizer.spm --weights gemma2-2b-it-sfp.sbs

Что важно знать

  • Инференс выполняется только на CPU; поддержка GPU отсутствует.
  • Чтобы скачать веса модели с Kaggle, необходимо принять форму согласия.
  • Для нативной сборки в Windows требуются Visual Studio Build Tools с clang-cl; вместо этого рекомендуется использовать WSL.
  • Проект предназначен для экспериментов и исследований, а не для развертывания в production.

Темы

Частые вопросы

Что такое gemma.cpp?
Лёгкий автономный C++-движок для запуска моделей Google Gemma на CPU. gemma.cpp — минималистичный C++-движок для инференса моделей Gemma-2, Gemma-3 и PaliGemma-2. Он предназначен для экспериментов и исследований и занимает промежуточное положение между C++-рантаймами, ориентированными на развёртывание, и ML-фреймворками на Python. Компактную реализацию ядра легко читать, изменять и встраивать в другие проекты.
gemma.cpp можно использовать бесплатно? Какая у него лицензия?
gemma.cpp распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
gemma.cpp всё ещё поддерживается?
Активно поддерживается. Последний коммит в gemma.cpp — 6 нояб. 2026 г..
Для чего можно использовать gemma.cpp?
Эксперименты с низкоуровневыми оптимизациями инференса моделей Gemma. Встраивание компактного локального LLM-рантайма в C++-приложение. Запуск моделей Gemma или PaliGemma на машинах без GPU для исследований. Изучение компактной и понятной реализации LLM.
Как установить gemma.cpp?
Установите CMake и компилятор C++ от Clang (C++17 или новее) Скачайте веса модели и tokenizer с Kaggle (рекомендуется gemma2-2b-it-sfp) и распакуйте архив: tar -xf archive.tar.gz Настройте и соберите исполняемый файл gemma с помощью CMake: cmake --preset make Запустите gemma, указав файлы tokenizer и весов: ./gemma --tokenizer tokenizer.spm --weights gemma2-2b-it-sfp.sbs
Где скачать gemma.cpp?
Исходный код и инструкции по установке — на GitHub: https://github.com/google/gemma.cpp

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Движок инференса на C99 запускает модель Kimi K3 с 2,78 трлн параметров на одном CPU, загружая экспертов с диска без GPU и BLAS.

10,9 тыс.+1,1 тыс. за неделю1,7 тыс.CApache-2.0Активно поддерживаетсяОбновлён в прошлом месяце

Библиотека на C++ и Python для быстрого запуска моделей Transformer, таких как Whisper, Llama и NLLB, с меньшим расходом памяти благодаря квантованию и оптимизированным ядрам.

4,7 тыс.+8 за неделю552C++MITАктивно поддерживаетсяОбновлён 5 дней назад