Repolode
google

google/gemma.cpp

面向 Google Gemma 模型的轻量级独立 C++ 推理引擎,主要在 CPU 上运行。

Star
7,079
Fork
673
未关闭 Issue
52
最近提交
20小时前

这是什么?

gemma.cpp 是一个面向 Gemma-2、Gemma-3 和 PaliGemma-2 模型的极简 C++ 推理引擎,定位于实验与研究。它介于面向部署的 C++ 运行时和基于 Python 的机器学习框架之间,核心实现约 2K 行代码,便于阅读、修改和嵌入其他项目。

引擎仅支持 CPU 推理,借助 Google Highway 实现可移植的 SIMD 加速,并将权重压缩直接集成到矩阵乘法中,支持自定义 fp8、bf16、f32 以及非均匀 4-bit(NUQ)格式。项目还包含用于 Gemma 研究的反向传播和 Adam 优化器。

项目提供支持流式输出的 C++ API(单条与批量推理)、基础交互式命令行工具以及基于 pybind11 的 Python 绑定。模型权重从 Kaggle 获取,可使用 CMake 或 Bazel 在 Linux、Windows 和 macOS 上构建。

核心功能

  • 01在 CPU 上运行 Gemma-2、Gemma-3 和 PaliGemma-2 推理。
  • 02将 fp8、bf16、4-bit NUQ 等权重压缩直接集成到矩阵乘法中。
  • 03借助 Google Highway 实现可移植 SIMD,并在运行时选择指令集。
  • 04提供支持流式输出的 C++ API,可用于单条和批量推理。
  • 05包含基础交互式命令行工具和 pybind11 Python 绑定。
  • 06支持反向传播和 Adam 优化器,便于 Gemma 相关研究。

适用场景

  • 在 Gemma 模型上试验底层推理优化。
  • 将轻量级本地大模型运行时嵌入 C++ 应用。
  • 在仅有 CPU 的机器上运行 Gemma 或 PaliGemma 模型进行研究。
  • 学习一个紧凑、易读的大语言模型实现。

快速上手

  1. 1

    安装 CMake 和支持 C++17 的 Clang 编译器

  2. 2

    从 Kaggle 下载模型权重和分词器(推荐 gemma2-2b-it-sfp)并解压

    tar -xf archive.tar.gz
  3. 3

    使用 CMake 配置并编译 gemma 可执行文件

    cmake --preset make
  4. 4

    使用分词器和权重文件运行 gemma

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

使用前须知

  • 仅支持 CPU 推理,不支持 GPU。
  • 需要在接受同意书后从 Kaggle 下载模型权重。
  • 在 Windows 上原生构建需要 Visual Studio Build Tools 和 clang-cl,README 推荐使用 WSL。
  • 项目面向实验和研究,而非生产部署。

标签

常见问题

gemma.cpp 是什么?
面向 Google Gemma 模型的轻量级独立 C++ 推理引擎,主要在 CPU 上运行。 gemma.cpp 是一个面向 Gemma-2、Gemma-3 和 PaliGemma-2 模型的极简 C++ 推理引擎,定位于实验与研究。它介于面向部署的 C++ 运行时和基于 Python 的机器学习框架之间,核心实现约 2K 行代码,便于阅读、修改和嵌入其他项目。
gemma.cpp 可以免费使用吗?用的什么许可证?
gemma.cpp 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
gemma.cpp 还在维护吗?
活跃维护中。gemma.cpp 最近一次提交是在 2026年11月6日。
gemma.cpp 适合用来做什么?
在 Gemma 模型上试验底层推理优化。 将轻量级本地大模型运行时嵌入 C++ 应用。 在仅有 CPU 的机器上运行 Gemma 或 PaliGemma 模型进行研究。 学习一个紧凑、易读的大语言模型实现。
gemma.cpp 怎么安装和运行?
安装 CMake 和支持 C++17 的 Clang 编译器 从 Kaggle 下载模型权重和分词器(推荐 gemma2-2b-it-sfp)并解压: tar -xf archive.tar.gz 使用 CMake 配置并编译 gemma 可执行文件: cmake --preset make 使用分词器和权重文件运行 gemma: ./gemma --tokenizer tokenizer.spm --weights gemma2-2b-it-sfp.sbs
在哪里获取 gemma.cpp?
源代码和安装说明在 GitHub 上:https://github.com/google/gemma.cpp

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目