gemma.cpp

纯 C++ 本地跑 Gemma,无需 Python 依赖

开源 🏷️完全免费 🔧 仅开源项目,无在线服务,需自行部署 基础设施 🍴 复刻 673 🐛 待处理 51 👀 关注 45
GitHub ↗
GitHub 星标 ★ 7080
维护状态 活跃
是否开源 开源
定价模式 🏷️完全免费 开源免费,需自行编译部署

项目预览

gemma.cpp 项目界面预览图
图片来源:GitHub 官方仓库名片

项目数据

分类基础设施
开发团队google
定价模式🏷️完全免费
价格说明开源免费,需自行编译部署
访问状态🔧 仅开源项目,无在线服务,需自行部署
是否开源是
开源协议Apache-2.0
主要语言C++
GitHub 星标★ 7080
上线时间2024-02-13 00:00:00
代码更新2026-11-07
仓库体积11.9 MB
本站数据更新2026-11-08
维护状态活跃
收录时间2026-11-08
浏览次数0

项目介绍

gemma.cpp 是 Google 官方开源的轻量级独立 C++ 推理引擎,专门用于在本地运行 Gemma 系列大语言模型。项目不依赖 Python 运行时或重型深度学习框架,仅用 C++ 实现模型加载、权重量化与推理计算,可编译为单一可执行程序,便于在 CPU 环境或嵌入式设备上部署。核心能力包括支持 Gemma 2B/7B 等模型权重格式、提供 int8 等量化方案以降低内存占用、内置简洁的 C++ API 便于二次集成,并附带命令行交互示例。它解决的是研究者和工程师希望在无 GPU、无复杂依赖的环境中快速验证和嵌入 Gemma 模型的问题,适合作为学习 LLM 推理实现、构建本地化 AI 工具的基础组件。

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

数据来源:GitHub API 逐日快照 · 收录于 2026-11-08 · 当前星标 ★ 7080

使用教程

⚠ 本教程由 AI 依据该项目 README 整理;原始文档不完整,部分步骤为通用流程推断,实际安装请以项目官方文档为准。

难度:进阶 约 30 分钟 部署方式:本地安装 7 步

⚠ 该项目 README 未提供完整安装说明,以下步骤为通用流程,请以官方文档为准。

环境要求

  • 可编译 C++ 项目的本地开发环境(README 节选未给出具体构建命令)
  • 从 Kaggle 下载的 Gemma 压缩权重文件(如 gemma2-2b-it-sfp.sbs)
  • 配套的 tokenizer.spm 文件(2025-05-06 之后生成的单格式权重文件可省略)
  • 不需要 Python 运行时或重型深度学习框架

安装与启动步骤

  1. 1下载模型权重

    从 Kaggle 的 Gemma 模型页面下载 gemma.cpp 专用权重文件与分词器文件,记住保存路径。

  2. 2编译生成可执行文件

    按 README Quick Start 的编译步骤在项目内构建,产物为 build 目录下的 gemma 可执行程序。

  3. 3进入 build 目录

    运行程序前先切换到 build 目录,权重和分词器文件也可放在此处以便使用相对路径。

    cd build
  4. 4带参数启动推理

    必需参数为 --weights 与 --tokenizer;指定权重与分词器文件后启动交互式终端界面。

    ./gemma --tokenizer tokenizer.spm --weights gemma2-2b-it-sfp.sbs
  5. 5按回车触发生成

    所有用法模式都是交互式的,输入文本后按换行才会开始生成回复内容。

  6. 6设为命令行工具

    用 alias 固化参数并配合 --verbosity 0,只输出生成结果,适合作为 CLI 工具调用。

    alias gemma2b="~/gemma.cpp/build/gemma --tokenizer ~/gemma.cpp/build/tokenizer.spm --weights ~/gemma.cpp/build/gemma2-2b-it-sfp.sbs --verbosity 0"
  7. 7管道输入示例

    可把文件内容截断后通过管道作为提示词传入,注意上下文长度限制。

    cat configs.h | tail -n 35 | tr '\n' ' ' | xargs -0 echo "What does this C++ code do: " | gemma2b

关键配置

配置项必填说明示例
--weights是指定压缩后的模型权重文件名gemma2-2b-it-sfp.sbs
--tokenizer是指定分词器文件;单格式权重文件可省略tokenizer.spm
--verbosity否控制输出详细程度:0 最简、1 默认、2 调试信息0

如何确认成功

在 build 目录执行 ./gemma 并输入一段文本回车,终端能输出生成的回答即表示启动成功。

常见问题

Q:运行时提示找不到 tokenizer.spm 怎么办?

A:确认分词器文件已下载且路径与 --tokenizer 参数一致;若使用 2025-05-06 之后生成的单格式权重文件,可省略该参数。

Q:输入内容后没有反应?

A:所有用法模式都是交互式的,必须以换行结束输入才会触发文本生成。

Q:如何只输出生成结果?

A:加上 --verbosity 0 进入最简模式,再配合 alias 固定参数即可当作命令行工具使用。

Q:想看更多调试信息?

A:使用 --verbosity 2,会额外打印开发者与调试相关信息。

注意事项

  • README 节选未包含完整编译步骤,构建命令请以项目 Quick Start 中 Step 1–3 的实际内容为准,不要凭猜测执行。
  • 命令行工具用法目前属于实验性质,需自行考虑上下文长度限制。
  • 权重文件需从 Kaggle 获取,下载与登录流程请遵循模型页面的官方说明。

核心亮点

  • 纯 C++ 实现,编译即用,不依赖 Python 或 PyTorch 等重型框架
  • 支持权重量化,显著降低内存占用,可在普通 CPU 上运行
  • 代码结构清晰、注释充分,适合学习 LLM 推理引擎内部实现

不足之处

  • 仅支持 Gemma 系列模型,通用性和生态扩展有限
  • CPU 推理速度较慢,缺少 GPU 加速与批处理优化
  • 文档和社区规模相对较小,问题排查资料待积累

适用场景

  • 在无 GPU 的笔记本或服务器上本地运行 Gemma 模型做原型验证
  • 将 Gemma 推理能力嵌入 C++ 桌面应用或嵌入式程序
  • 学习大语言模型推理流程与量化实现的工程实践

替代项目

llama.cpp、mlx、ollama

上一篇:luminal

下一篇:client

同类项目推荐

fastembed-go 开源

在 Go 里直接生成文本向量,告别 Python 依赖

Go implementation of @qdrant/fastembed.

★ 103 2026-08-09
meridian 开源

把 Claude Max 订阅用到所有 AI 编程工具里,省心省钱

Use Claude and Antigravity with Pi, OpenCode and other coding clients. Local API bri···

★ 2178 2026-08-09
instill-core 开源

拖拽搭建 AI 流水线,从数据到模型一键编排

Instill Core is a full-stack AI infrastructure tool for data, model and pipeline orc···

★ 2321 2026-08-09
ADI-Stable-Diffusion 开源

用 C++ 和 ONNXRuntime 让 Stable Diffusion 推理飞起来

Accelerate your Stable Diffusion inference with the library's universal C/C++ framew···

★ 464 2026-08-09
queryflux 开源

一个入口智能分发 SQL 到多个查询引擎

Multi-engine and Agentic AI SQL query router in Rust for all data platforms and lake···

★ 157 2026-10-09
ray 开源

把 Python 代码一键变成分布式,搞定大规模 AI 训练和部署

Ray is an AI compute engine. Ray consists of a core distributed runtime and a set of···

★ 44232 2026-08-09
oomstore 开源

用 Go/Rust 打造的高速特征仓库,让特征上线快如闪电

Lightweight and Fast Feature Store Powered by Go (and Rust).

★ 91 2026-08-09
llm-graph-builder 开源

上传文档,一键用LLM自动生成知识图谱

Neo4j graph construction from unstructured data using LLMs

★ 5301 2026-08-09