模型简介
模型特点
模型能力
使用案例
🚀 Gemma 3 12B 指令调优 INT4
Gemma 3 12B 指令调优 INT4 是将 QAT INT4 Flax 检查点(来自 Kaggle)转换为 GGUF 格式的模型,方便用户使用。转换脚本可在 https://github.com/gau-nernst/gemma3-int4 找到。
注意:此模型与官方在 https://huggingface.co/collections/google/gemma-3-qat-67ee61ccacbf2be4195c265b 发布的 QAT INT4 GGUFs 不同。
以下是来自 https://huggingface.co/google/gemma-3-12b-it 的原始模型卡片内容。
🚀 快速开始
要在 Hugging Face 上访问 Gemma,你需要查看并同意 Google 的使用许可。请确保你已登录 Hugging Face 并点击下方按钮,请求将立即处理。 [确认许可](Acknowledge license)
安装依赖
首先,安装 transformers
库,Gemma 3 从 transformers 4.50.0
版本开始支持。
$ pip install -U transformers
运行示例
使用 pipeline
API 进行推理
from transformers import pipeline
import torch
pipe = pipeline(
"image-text-to-text",
model="google/gemma-3-12b-it",
device="cuda",
torch_dtype=torch.bfloat16
)
对于指令调优模型,需要先使用聊天模板处理输入,然后再传入 pipeline
。
messages = [
{
"role": "system",
"content": [{"type": "text", "text": "You are a helpful assistant."}]
},
{
"role": "user",
"content": [
{"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"},
{"type": "text", "text": "What animal is on the candy?"}
]
}
]
output = pipe(text=messages, max_new_tokens=200)
print(output[0]["generated_text"][-1]["content"])
# Okay, let's take a look!
# Based on the image, the animal on the candy is a **turtle**.
# You can see the shell shape and the head and legs.
在单 GPU 或多 GPU 上运行模型
# pip install accelerate
from transformers import AutoProcessor, Gemma3ForConditionalGeneration
from PIL import Image
import requests
import torch
model_id = "google/gemma-3-12b-it"
model = Gemma3ForConditionalGeneration.from_pretrained(
model_id, device_map="auto"
).eval()
processor = AutoProcessor.from_pretrained(model_id)
messages = [
{
"role": "system",
"content": [{"type": "text", "text": "You are a helpful assistant."}]
},
{
"role": "user",
"content": [
{"type": "image", "image": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/bee.jpg"},
{"type": "text", "text": "Describe this image in detail."}
]
}
]
inputs = processor.apply_chat_template(
messages, add_generation_prompt=True, tokenize=True,
return_dict=True, return_tensors="pt"
).to(model.device, dtype=torch.bfloat16)
input_len = inputs["input_ids"].shape[-1]
with torch.inference_mode():
generation = model.generate(**inputs, max_new_tokens=100, do_sample=False)
generation = generation[0][input_len:]
decoded = processor.decode(generation, skip_special_tokens=True)
print(decoded)
# **Overall Impression:** The image is a close-up shot of a vibrant garden scene,
# focusing on a cluster of pink cosmos flowers and a busy bumblebee.
# It has a slightly soft, natural feel, likely captured in daylight.
✨ 主要特性
- 多模态处理:支持文本和图像输入,生成文本输出,适用于各种文本生成和图像理解任务。
- 大上下文窗口:拥有 128K 的大上下文窗口,支持超过 140 种语言。
- 轻量级设计:相对较小的模型尺寸,可在资源有限的环境(如笔记本电脑、桌面电脑或自有云基础设施)中部署。
📦 安装指南
安装 transformers
库
$ pip install -U transformers
💻 使用示例
基础用法
使用 pipeline
API 进行推理:
from transformers import pipeline
import torch
pipe = pipeline(
"image-text-to-text",
model="google/gemma-3-12b-it",
device="cuda",
torch_dtype=torch.bfloat16
)
高级用法
在单 GPU 或多 GPU 上运行模型:
# pip install accelerate
from transformers import AutoProcessor, Gemma3ForConditionalGeneration
from PIL import Image
import requests
import torch
model_id = "google/gemma-3-12b-it"
model = Gemma3ForConditionalGeneration.from_pretrained(
model_id, device_map="auto"
).eval()
processor = AutoProcessor.from_pretrained(model_id)
messages = [
{
"role": "system",
"content": [{"type": "text", "text": "You are a helpful assistant."}]
},
{
"role": "user",
"content": [
{"type": "image", "image": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/bee.jpg"},
{"type": "text", "text": "Describe this image in detail."}
]
}
]
inputs = processor.apply_chat_template(
messages, add_generation_prompt=True, tokenize=True,
return_dict=True, return_tensors="pt"
).to(model.device, dtype=torch.bfloat16)
input_len = inputs["input_ids"].shape[-1]
with torch.inference_mode():
generation = model.generate(**inputs, max_new_tokens=100, do_sample=False)
generation = generation[0][input_len:]
decoded = processor.decode(generation, skip_special_tokens=True)
print(decoded)
# **Overall Impression:** The image is a close-up shot of a vibrant garden scene,
# focusing on a cluster of pink cosmos flowers and a busy bumblebee.
# It has a slightly soft, natural feel, likely captured in daylight.
📚 详细文档
模型信息
描述
Gemma 是 Google 推出的一系列轻量级、先进的开源模型,基于与 Gemini 模型相同的研究和技术构建。Gemma 3 模型是多模态的,支持文本和图像输入,生成文本输出,预训练和指令调优变体的权重均开源。Gemma 3 具有 128K 的大上下文窗口,支持超过 140 种语言,且比之前的版本有更多尺寸可供选择。该模型适用于各种文本生成和图像理解任务,如问答、摘要和推理。其相对较小的尺寸使其能够在资源有限的环境中部署,让更多人能够使用先进的 AI 模型,促进创新。
输入和输出
- 输入:
- 文本字符串,如问题、提示或待摘要的文档。
- 图像,归一化为 896 x 896 分辨率,每个图像编码为 256 个标记。
- 4B、12B 和 27B 尺寸的模型总输入上下文为 128K 标记,1B 尺寸的模型为 32K 标记。
- 输出:
- 针对输入生成的文本,如问题的答案、图像内容分析或文档摘要。
- 总输出上下文为 8192 个标记。
模型数据
训练数据集
这些模型在包含多种来源的文本数据集上进行训练。27B 模型使用 14 万亿标记进行训练,12B 模型使用 12 万亿标记,4B 模型使用 4 万亿标记,1B 模型使用 2 万亿标记。主要组成部分如下:
- 网络文档:多样化的网络文本集合,确保模型接触到广泛的语言风格、主题和词汇。训练数据集包含超过 140 种语言的内容。
- 代码:让模型接触代码有助于学习编程语言的语法和模式,提高生成代码和理解代码相关问题的能力。
- 数学:在数学文本上进行训练有助于模型学习逻辑推理、符号表示和处理数学查询。
- 图像:广泛的图像数据使模型能够执行图像分析和视觉数据提取任务。
数据预处理
训练数据应用了以下关键的数据清理和过滤方法:
- CSAM 过滤:在数据准备过程的多个阶段应用了严格的 CSAM(儿童性虐待材料)过滤,确保排除有害和非法内容。
- 敏感数据过滤:为了使 Gemma 预训练模型安全可靠,使用自动化技术从训练集中过滤掉某些个人信息和其他敏感数据。
- 其他方法:根据内容质量和安全性,按照[我们的政策][safety-policies]进行过滤。
实现信息
硬件
Gemma 使用 [张量处理单元 (TPU)][tpu] 硬件(TPUv4p、TPUv5p 和 TPUv5e)进行训练。训练视觉语言模型 (VLM) 需要大量的计算能力。TPU 专门为机器学习中常见的矩阵运算而设计,在这个领域具有以下优势:
- 性能:TPU 专门用于处理训练 VLM 涉及的大量计算,与 CPU 相比可以显著加速训练。
- 内存:TPU 通常配备大量的高带宽内存,允许在训练过程中处理大型模型和批量大小,有助于提高模型质量。
- 可扩展性:TPU Pods(大型 TPU 集群)为处理大型基础模型不断增长的复杂性提供了可扩展的解决方案。可以在多个 TPU 设备上分布训练,以实现更快、更高效的处理。
- 成本效益:在许多情况下,与基于 CPU 的基础设施相比,TPU 可以为训练大型模型提供更具成本效益的解决方案,特别是考虑到由于训练速度加快而节省的时间和资源。
- 这些优势符合 [Google 的可持续运营承诺][sustainability]。
软件
使用 [JAX][jax] 和 [ML Pathways][ml-pathways] 进行训练。
JAX 使研究人员能够利用最新一代的硬件(包括 TPU),更快、更高效地训练大型模型。ML Pathways 是 Google 构建能够跨多个任务进行泛化的人工智能系统的最新成果,特别适用于基础模型,包括此类大型语言模型。
JAX 和 ML Pathways 的结合使用在 [关于 Gemini 模型家族的论文][gemini-2-paper] 中有描述:“Jax 和 Pathways 的‘单控制器’编程模型允许单个 Python 进程编排整个训练过程,极大地简化了开发工作流程。”
评估
基准测试结果
这些模型在大量不同的数据集和指标上进行了评估,以涵盖文本生成的不同方面。
推理和事实性
基准测试 | 指标 | Gemma 3 PT 1B | Gemma 3 PT 4B | Gemma 3 PT 12B | Gemma 3 PT 27B |
---|---|---|---|---|---|
[HellaSwag][hellaswag] | 10-shot | 62.3 | 77.2 | 84.2 | 85.6 |
[BoolQ][boolq] | 0-shot | 63.2 | 72.3 | 78.8 | 82.4 |
[PIQA][piqa] | 0-shot | 73.8 | 79.6 | 81.8 | 83.3 |
[SocialIQA][socialiqa] | 0-shot | 48.9 | 51.9 | 53.4 | 54.9 |
[TriviaQA][triviaqa] | 5-shot | 39.8 | 65.8 | 78.2 | 85.5 |
[Natural Questions][naturalq] | 5-shot | 9.48 | 20.0 | 31.4 | 36.1 |
[ARC-c][arc] | 25-shot | 38.4 | 56.2 | 68.9 | 70.6 |
[ARC-e][arc] | 0-shot | 73.0 | 82.4 | 88.3 | 89.0 |
[WinoGrande][winogrande] | 5-shot | 58.2 | 64.7 | 74.3 | 78.8 |
[BIG-Bench Hard][bbh] | few-shot | 28.4 | 50.9 | 72.6 | 77.7 |
[DROP][drop] | 1-shot | 42.4 | 60.1 | 72.2 | 77.2 |
STEM 和代码
基准测试 | 指标 | Gemma 3 PT 4B | Gemma 3 PT 12B | Gemma 3 PT 27B |
---|---|---|---|---|
[MMLU][mmlu] | 5-shot | 59.6 | 74.5 | 78.6 |
[MMLU][mmlu] (Pro COT) | 5-shot | 29.2 | 45.3 | 52.2 |
[AGIEval][agieval] | 3 - 5-shot | 42.1 | 57.4 | 66.2 |
[MATH][math] | 4-shot | 24.2 | 43.3 | 50.0 |
[GSM8K][gsm8k] | 8-shot | 38.4 | 71.0 | 82.6 |
[GPQA][gpqa] | 5-shot | 15.0 | 25.4 | 24.3 |
[MBPP][mbpp] | 3-shot | 46.0 | 60.4 | 65.6 |
[HumanEval][humaneval] | 0-shot | 36.0 | 45.7 | 48.8 |
多语言
基准测试 | Gemma 3 PT 1B | Gemma 3 PT 4B | Gemma 3 PT 12B | Gemma 3 PT 27B |
---|---|---|---|---|
[MGSM][mgsm] | 2.04 | 34.7 | 64.3 | 74.3 |
[Global-MMLU-Lite][global-mmlu-lite] | 24.9 | 57.0 | 69.4 | 75.7 |
[WMT24++][wmt24pp] (ChrF) | 36.7 | 48.4 | 53.9 | 55.7 |
[FloRes][flores] | 29.5 | 39.2 | 46.0 | 48.8 |
[XQuAD][xquad] (all) | 43.9 | 68.0 | 74.5 | 76.8 |
[ECLeKTic][eclektic] | 4.69 | 11.0 | 17.2 | 24.4 |
[IndicGenBench][indicgenbench] | 41.4 | 57.2 | 61.7 | 63.4 |
多模态
基准测试 | Gemma 3 PT 4B | Gemma 3 PT 12B | Gemma 3 PT 27B |
---|---|---|---|
[COCOcap][coco-cap] | 102 | 111 | 116 |
[DocVQA][docvqa] (val) | 72.8 | 82.3 | 85.6 |
[InfoVQA][info-vqa] (val) | 44.1 | 54.8 | 59.4 |
[MMMU][mmmu] (pt) | 39.2 | 50.3 | 56.1 |
[TextVQA][textvqa] (val) | 58.9 | 66.5 | 68.6 |
[RealWorldQA][realworldqa] | 45.5 | 52.2 | 53.9 |
[ReMI][remi] | 27.3 | 38.5 | 44.8 |
[AI2D][ai2d] | 63.2 | 75.2 | 79.0 |
[ChartQA][chartqa] | 63.6 | 74.7 | 76.3 |
[VQAv2][vqav2] | 63.9 | 71.2 | 72.9 |
[BLINK][blinkvqa] | 38.0 | 35.9 | 39.6 |
[OKVQA][okvqa] | 51.0 | 58.7 | 60.2 |
[TallyQA][tallyqa] | 42.5 | 51.8 | 54.3 |
[SpatialSense VQA][ss-vqa] | 50.9 | 60.0 | 59.4 |
[CountBenchQA][countbenchqa] | 26.1 | 17.8 | 68.0 |
伦理与安全
评估方法
评估方法包括结构化评估和对相关内容政策的内部红队测试。红队测试由多个不同的团队进行,每个团队有不同的目标和人工评估指标。这些模型针对与伦理和安全相关的多个不同类别进行了评估,包括:
- 儿童安全:评估文本到文本和图像到文本的提示,涵盖儿童安全政策,包括儿童性虐待和剥削。
- 内容安全:评估文本到文本和图像到文本的提示,涵盖安全政策,包括骚扰、暴力和血腥内容以及仇恨言论。
- 代表性危害:评估文本到文本和图像到文本的提示,涵盖安全政策,包括偏见、刻板印象以及有害关联或不准确信息。
除了开发阶段的评估,还进行“保证评估”,这是独立于模型开发团队的内部评估,用于责任治理决策。评估结果反馈给模型团队,但提示集被保留,以防止过拟合并确保结果能够为决策提供信息。保证评估结果作为发布审查的一部分报告给我们的责任与安全委员会。
评估结果
在所有安全测试领域,相对于之前的 Gemma 模型,在儿童安全、内容安全和代表性危害类别中都有显著改进。所有测试均在不使用安全过滤器的情况下进行,以评估模型的能力和行为。对于文本到文本和图像到文本,以及所有模型尺寸,模型产生的政策违规最少,并且在无根据推断方面相对于之前的 Gemma 模型表现有显著改善。评估的一个局限性是只包括英语提示。
使用和局限性
预期用途
开源视觉语言模型 (VLM) 在各个行业和领域有广泛的应用。以下潜在用途列表并不全面,旨在提供有关模型创建者在模型训练和开发过程中考虑的可能用例的上下文信息。
- 内容创作和通信:
- 文本生成:可用于生成创意文本格式,如诗歌、脚本、代码、营销文案和电子邮件草稿。
- 聊天机器人和对话式 AI:为客户服务、虚拟助手或交互式应用程序提供对话界面。
- 文本摘要:生成文本语料库、研究论文或报告的简洁摘要。
- 图像数据提取:用于提取、解释和总结视觉数据,用于文本通信。
- 研究和教育:
- 自然语言处理 (NLP) 和 VLM 研究:作为研究人员实验 VLM 和 NLP 技术、开发算法和推动该领域发展的基础。
- 语言学习工具:支持交互式语言学习体验,帮助进行语法纠正或提供写作练习。
- 知识探索:协助研究人员探索大量文本,通过生成摘要或回答关于特定主题的问题。
局限性
- 训练数据:
- 训练数据的质量和多样性显著影响模型的能力。训练数据中的偏差或差距可能导致模型响应的局限性。
- 训练数据集的范围决定了模型能够有效处理的主题领域。
- 上下文和任务复杂性:
- 模型在能够用清晰提示和指令描述的任务上表现更好。开放式或高度复杂的任务可能具有挑战性。
- 模型的性能可能受到提供的上下文量的影响(在一定程度上,更长的上下文通常会导致更好的输出)。
- 语言歧义与细微差别:自然语言本质上很复杂,模型可能难以理解微妙的细微差别、讽刺或比喻语言。
- 事实准确性:模型根据从训练数据集中学习到的信息生成响应,但它们不是知识库,可能会生成不正确或过时的事实陈述。
- 常识:模型依赖于语言中的统计模式,可能缺乏在某些情况下应用常识推理的能力。
伦理考虑和风险
视觉语言模型 (VLM) 的开发引发了一些伦理问题。在创建开源模型时,我们仔细考虑了以下方面:
- 偏差和公平性:在大规模真实世界文本和图像数据上训练的 VLM 可能反映训练材料中嵌入的社会文化偏差。这些模型经过了仔细审查,输入数据的预处理和后续评估在本卡片中有所报告。
- 错误信息和滥用:VLM 可能被滥用来生成虚假、误导或有害的文本。提供了负责任使用模型的指南,见 [负责任生成式 AI 工具包][rai-toolkit]。
- 透明度和问责制:
- 本模型卡片总结了模型的架构、能力、局限性和评估过程的详细信息。
- 负责任开发的开源模型为整个 AI 生态系统的开发者和研究人员提供了分享创新、使用 VLM 技术的机会。
识别的风险和缓解措施:
- 偏差的延续:鼓励在模型训练、微调及其他用例中进行持续监测(使用评估指标、人工审查)并探索去偏技术。
- 有害内容的生成:内容安全机制和指南至关重要。鼓励开发者根据其特定的产品政策和应用用例谨慎行事,并实施适当的内容安全保障措施。
- 恶意用途:技术限制以及对开发者和最终用户的教育有助于减轻 VLM 的恶意应用。提供教育资源和报告机制,让用户标记滥用行为。Gemma 模型的禁止使用情况在 [Gemma 禁止使用政策][prohibited-use] 中列出。
- 隐私侵犯:模型在经过过滤以去除某些个人信息和其他敏感数据的数据上进行训练。鼓励开发者遵守隐私法规并采用隐私保护技术。
优势
在发布时,与同等规模的模型相比,该系列模型提供了从头开始为负责任的 AI 开发而设计的高性能开源视觉语言模型实现。
使用本文档中描述的基准评估指标,这些模型已显示出优于其他同等规模的开源模型替代方案的性能。
🔧 技术细节
模型训练
- 训练硬件:使用 [张量处理单元 (TPU)][tpu] 硬件(TPUv4p、TPUv5p 和 TPUv5e)进行训练。
- 训练软件:使用 [JAX][jax] 和 [ML Pathways][ml-pathways] 进行训练。
数据处理
- 训练数据集:包含网络文档、代码、数学和图像等多种数据来源。
- 数据预处理:应用 CSAM 过滤、敏感数据过滤等方法,确保数据安全和质量。
📄 许可证
Gemma 模型的使用需遵循 Google 的使用许可,详情请见 [Gemma 3 条款][terms]。
引用
@article{gemma_2025,
title={Gemma 3},
url={https://goo.gle/Gemma3Report},
publisher={Kaggle},
author={Gemma Team},
year={2025}
}








