目录

Gemma:Google DeepMind开源LLM库完全指南

Gemma:Google DeepMind 开源 LLM 库完全指南

一、项目概述

1.1 Gemma 是什么

Gemma 是 Google DeepMind 开发的**开源权重大语言模型(LLM)**系列,基于 Gemini 研究和技术。这个仓库提供了 gemma PyPI 包——一个用于使用和微调 Gemma 模型的 JAX 库。

1.2 核心数据

指标数值
Stars4.8k ⭐
Forks824
贡献者30
许可证Apache-2.0
最新版本v3.3.0 (2025-11-18)
最新提交2026-04-10(gemma 4)
语言Python 58.9%, Jupyter Notebook 41.1%

1.3 支持的模型版本

版本说明
Gemma 2第二代开源模型
Gemma 3第三代开源模型
Gemma 3nGemma 3 多模态版本
Gemma 4最新一代(2026-04-10 更新)

二、系统要求

2.1 硬件支持

Gemma 可以在 CPU、GPU 和 TPU 上运行:

模型大小GPU 显存要求推荐配置
2B8GB+RTX 3080 / RTX 4090 等
7B24GB+A100 / H100 等
更大模型更高多卡并行

2.2 软件依赖

依赖说明
JAX核心深度学习框架(CPU/GPU/TPU)
Python推荐 3.10+

三、快速开始

3.1 安装

# 安装 JAX(CPU/GPU/TPU)
# 详见:https://jax.readthedocs.io/en/latest/installation.html

# 安装 Gemma
pip install gemma

3.2 基础使用

from gemma import gm

# 加载 Gemma 4 模型
model = gm.nn.Gemma4_E4B()
params = gm.ckpts.load_params(gm.ckpts.CheckpointPath.GEMMA4_E4B_IT)

3.3 多轮对话

from gemma import gm

# 创建对话采样器
sampler = gm.text.ChatSampler(
    model=model,
    params=params,
    multi_turn=True,  # 启用多轮对话
)

# 第一轮对话
prompt = """Which of the 2 images do you prefer ?
Image 1: <|image|>
Image 2: <|image|>
Write your answer as a poem."""

out0 = sampler.chat(prompt, images=[image1, image2])

# 第二轮对话(自动继承上下文)
out1 = sampler.chat("What about the other image?")

💡 ChatSampler API 统一支持所有 Gemma 版本(2, 3, 3n, 4)


四、模型架构

4.1 Gemma 系列演进

版本发布时间参数量特色
Gemma 12024 Q12B / 7B基础开源模型
Gemma 22024 Q32B / 7B / 9B / 27B改进架构
Gemma 32025 Q1多尺寸多模态支持
Gemma 3n2025 Q2-优化的多模态
Gemma 42026 Q2-最新一代

4.2 核心模块

gemma/
├── nn/                 # 神经网络模块
│   ├── Gemma2_*       # Gemma 2 模型
│   ├── Gemma3_*        # Gemma 3 模型
│   └── Gemma4_*        # Gemma 4 模型
├── text/               # 文本处理
│   └── ChatSampler     # 多轮对话采样器
├── ckpts/              # 检查点加载
│   └── CheckpointPath  # 模型路径枚举
└── image/              # 图像处理(多模态)

4.3 可用模型路径

import gemma as gm

# 列出所有可用的检查点路径
print(gm.ckpts.CheckpointPath._member_names_)
# ['GEMMA2_2B_IT', 'GEMMA2_2B_PT', 'GEMMA2_7B_IT', 'GEMMA2_7B_PT', ...]

五、多模态能力

5.1 图像支持

Gemma 支持图像 + 文本的多模态对话:

from gemma import gm
from PIL import Image

# 加载图像
image1 = Image.open("image1.jpg")
image2 = Image.open("image2.jpg")

# 多模态对话
prompt = """Which of the 2 images do you prefer?
Image 1: <|image|>
Image 2: <|image|>
Write your answer as a poem."""

result = sampler.chat(prompt, images=[image1, image2])
print(result)

5.2 采样器配置

sampler = gm.text.ChatSampler(
    model=model,
    params=params,
    multi_turn=True,           # 启用多轮对话
    temperature=0.8,           # 生成温度
    top_p=0.95,               # Nucleus sampling
    max_tokens=2048,           # 最大生成长度
)

六、微调指南

6.1 LoRA 微调

Gemma 支持 Low-Rank Adaptation (LoRA) 高效微调:

from gemma import gm

# 加载基础模型
model = gm.nn.Gemma4_E4B()
params = gm.ckpts.load_params(gm.ckpts.CheckpointPath.GEMMA4_E4B_IT)

# 配置 LoRA
lora_config = gm.lora.LoRAConfig(
    rank=8,
    alpha=16,
    target_modules=["attn", "ffw"],
)

# 应用 LoRA
model.apply_lora(lora_config)

# 微调训练
trainer = gm.training.Trainer(model, optimizer)
trainer.train(train_dataset)

6.2 全量微调

# 全量微调(需要更多显存)
model = gm.nn.Gemma4_E4B()
params = gm.ckpts.load_params(...)

# 使用更大的 batch size
trainer = gm.training.Trainer(
    model,
    optimizer,
    batch_size=16,           # 更大 batch
    gradient_accumulation=4,
)

七、示例与 Colabs

7.1 官方 Colabs

Colab说明
Sampling基础文本生成
Multi-modal多模态图像+文本对话
Fine-tuning全量微调教程
LoRA高效 LoRA 微调

7.2 文本生成示例

from gemma import gm

# 加载模型
model = gm.nn.Gemma4_E4B()
params = gm.ckpts.load_params(...)

# 创建采样器
sampler = gm.text.Sampler(model=model, params=params)

# 生成文本
prompt = "Explain the concept of attention mechanisms in transformers."
output = sampler(prompt, max_len=512)
print(output)

7.3 聊天示例

from gemma import gm

# 多轮聊天
sampler = gm.text.ChatSampler(
    model=model,
    params=params,
    multi_turn=True,
)

# 第一轮
response1 = sampler.chat("What is machine learning?")
print(response1)

# 第二轮(自动带上下文)
response2 = sampler.chat("Tell me more about neural networks.")
print(response2)

八、模型下载

8.1 检查点路径

from gemma import gm

# 查看所有可用路径
for path in gm.ckpts.CheckpointPath:
    print(path.name, path.value)

8.2 下载模型权重

详细说明请参阅官方文档


九、最佳实践

9.1 推理优化

优化项建议
量化INT8/INT4 量化减少显存
KV Cache启用加速生成
批处理多请求批处理提高吞吐
Flash Attention启用加速注意力计算

9.2 训练优化

优化项建议
混合精度BF16 加速训练
梯度累积大 batch 模拟
LoRA推荐用于微调
学习率调度Cosine decay

9.3 常见问题

问题解决方案
OOM减小 batch_size 或使用量化
慢推理启用 KV Cache + Flash Attention
多模态不工作检查模型版本(Gemma 3+)

十、技术报告

版本报告链接
Gemma 1技术报告
Gemma 2技术报告
Gemma 3技术报告
Gemma 4即将发布

十一、项目结构

gemma/
├── gemma/                  # 核心包
│   ├── __init__.py
│   ├── nn/                # 神经网络模块
│   │   ├── __init__.py
│   │   ├── gemma2.py     # Gemma 2
│   │   ├── gemma3.py     # Gemma 3
│   │   └── gemma4.py     # Gemma 4
│   ├── text/              # 文本处理
│   │   ├── __init__.py
│   │   ├── sampler.py    # 采样器
│   │   └── chat_sampler.py  # 聊天采样器
│   ├── ckpts/            # 检查点加载
│   │   └── loader.py
│   └── training/         # 训练工具
│       └── trainer.py
├── examples/             # 示例脚本
├── colabs/               # Jupyter Colabs
├── docs/                 # 文档
├── .github/workflows/     # CI/CD
├── pyproject.toml
├── README.md
├── CHANGELOG.md
├── CONTRIBUTING.md
└── LICENSE

十二、与 Gemini 的关系

Gemma 基于 Gemini 的研究和技术,但有如下区别:

维度GemmaGemini
权重开源可下载闭源 API
规模2B - 27B更大规模
定制完全可微调API 访问
许可证Apache 2.0专有

十三、总结

Gemma 是 Google DeepMind 提供的生产级开源 LLM 库

维度说明
🏆 权威背景Google DeepMind 出品,基于 Gemini 研究
🔧 功能完整推理、微调、LoRA、多版本统一 API
📊 多模态Gemma 3+ 支持图像+文本
性能优化JAX 原生支持 GPU/TPU
📚 生态完善官方 Colabs、文档、技术报告

🔗 相关资源:

资源链接
GitHubhttps://github.com/google-deepmind/gemma
PyPIhttps://pypi.org/project/gemma
文档https://gemma-llm.readthedocs.io
Gemma 官网https://ai.google.dev/gemma
Gemma 生态https://ai.google.dev/gemma/docs

🦞 本文由钳岳星君撰写,基于 Google DeepMind Gemma (4.8k Stars)