google/gemma.cppView GitHub Homepage for Latest Official Releases
谷歌开发的轻量级、独立的 C++ 推理引擎,用于运行 Gemma 大语言模型
Apache-2.0C++gemma.cppgoogle 6.6k Last Updated: September 04, 2025
Gemma.cpp 项目详细介绍
项目概述
Gemma.cpp 是由谷歌开发的轻量级、独立的 C++ 推理引擎,专门用于运行 Google 的 Gemma 大语言模型。该项目于 2023 年秋季启动,由 Austin Huang 和 Jan Wassenberg 发起,并于 2024 年 2 月正式发布。
核心特性
1. 轻量级设计
- 最小依赖: 设计为易于嵌入到其他项目中,具有最少的外部依赖
- 紧凑代码: 核心实现仅约 2K 行代码,支持工具约 4K 行代码
- 简洁架构: 专注于简单性和可修改性
2. 高效推理
- CPU 优化: 针对 CPU 推理进行了专门优化
- SIMD 支持: 通过 Google Highway 库使用便携式 SIMD 指令
- 低延迟: 专注于优化性能和低延迟推理
3. 多平台支持
- 跨平台: 支持 CPU 和 GPU 推理
- 多精度: 支持从 32 位全精度到 4 位低精度的多种精度级别
- 灵活部署: 可在各种硬件配置上运行
技术架构
推理引擎设计
Gemma.cpp 采用独立的 C++ 实现,避免了复杂的依赖关系。其设计理念是:
- 专注于实验和研究用例
- 探索 CPU 推理的设计空间
- 研究推理算法的优化
量化支持
项目支持多种量化技术:
- QAT 模型: 支持量化感知训练(Quantization Aware Training)模型
- GGUF 格式: 兼容 GGUF 格式的量化模型
- 多精度级别: 从 4-bit 到 32-bit 的不同精度选择
支持的模型
Gemma 模型系列
- Gemma 3: 最新的 Gemma 3 系列模型
- Gemma 3n: 专为移动设备优化的架构
- 多参数规模: 支持不同参数量的模型变体
模型功能
- 多语言支持: 支持超过 140 种语言
- 长上下文: 支持 128k token 的上下文窗口
- 函数调用: 支持复杂任务的函数调用功能
- 多模态: 支持文本和视觉推理能力
使用场景
1. 研究与实验
- 大语言模型推理算法研究
- CPU 推理性能优化实验
- 模型量化技术探索
2. 嵌入式应用
- 移动设备上的 AI 推理
- 边缘计算场景
- 资源受限环境的 AI 应用
3. 生产部署
- 高性能推理服务
- 实时 AI 应用
- 低延迟推理需求
安装与使用
环境要求
- C++ 编译器支持
- CMake 构建系统
- 适当的硬件配置(CPU/GPU)
基本使用流程
- 克隆项目仓库
- 构建推理引擎
- 下载模型权重
- 运行推理任务
代码示例
// 基本的推理代码结构
#include "gemma.h"
int main() {
// 初始化模型
// 加载权重
// 运行推理
return 0;
}
性能优势
1. 高效内存使用
- 优化的内存管理
- 支持不同精度级别以平衡性能和内存使用
- 适合单 GPU 或 TPU 应用
2. 快速推理速度
- 专门优化的 CPU 推理路径
- SIMD 指令加速
- 低延迟响应
3. 灵活的部署选项
- 可在消费级 GPU 上运行
- 支持云端和边缘部署
- 易于集成到现有系统
生态系统集成
兼容性
- llama.cpp: 支持 GGUF 格式,可与 llama.cpp 生态系统集成
- Kaggle: 模型权重在 Kaggle 上可用
- 开发者工具: 提供完整的开发者工具支持
社区支持
- 活跃的开源社区
- 持续的更新和改进
- 丰富的文档和教程
安全特性
ShieldGemma 2
项目还包含 ShieldGemma 2,一个基于 Gemma 3 的 4B 参数图像安全检查器:
- 危险内容检测
- 性暴力内容识别
- 暴力内容过滤
- 可定制的安全策略
总结
Gemma.cpp 是一个专业的、高效的 C++ 推理引擎,为开发者提供了在各种环境中运行 Gemma 大语言模型的能力。其轻量级设计、高性能特性和易于集成的特点,使其成为 AI 推理应用的理想选择。无论是研究实验还是生产部署,Gemma.cpp 都能提供可靠的解决方案。