Форк llama.cpp с упором на скорость инференса на CPU, дополнительными типами квантования и функциями для локального запуска LLM в формате GGUF.
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
Установите CMake и компилятор C++ от Clang (C++17 или новее)
- 2
Скачайте веса модели и tokenizer с Kaggle (рекомендуется gemma2-2b-it-sfp) и распакуйте архив
tar -xf archive.tar.gz - 3
Настройте и соберите исполняемый файл gemma с помощью CMake
cmake --preset make - 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.
Официальный фреймворк Microsoft для инференса 1-битных (тернарных, 1,58-битных) LLM на CPU и GPU, созданный на базе llama.cpp.
Библиотека на C++ и Python для быстрого запуска моделей Transformer, таких как Whisper, Llama и NLLB, с меньшим расходом памяти благодаря квантованию и оптимизированным ядрам.
Инференс трансформера в стиле Llama 2 на чистом Mojo, в одном файле, с SIMD-векторизацией и многопоточностью.
Библиотека тензоров на чистом C/C++ для машинного обучения: простая, переносимая и эффективная, с минимальными требованиями к настройке.