模型简介
模型特点
模型能力
使用案例
🚀 Gemma 3n模型
Gemma 3n是谷歌推出的轻量级多模态模型,基于Transformer架构,支持文本、音频和视觉(图像和视频)输入。该模型具有多种架构创新,可在低资源设备上高效运行,适用于内容创作、研究教育等多个领域。
🚀 快速开始
本仓库对应Gemma 3n E4B的发布版本,可与Hugging Face的transformers
库配合使用,支持文本、音频和视觉(图像和视频)输入。
安装依赖
Gemma 3n从transformers 4.53.0版本开始支持,使用前需安装最新版本的transformers
库。
$ pip install -U transformers
运行示例
使用pipeline
API进行推理
from transformers import pipeline
import torch
pipe = pipeline(
"image-text-to-text",
torch_dtype=torch.bfloat16,
model="google/gemma-3n-e4b",
device="cuda",
)
output = pipe(
"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/bee.jpg",
text="<image_soft_token> in this image, there is"
)
print(output)
# [{'input_text': '<image_soft_token> in this image, there is',
# 'generated_text': '<image_soft_token> in this image, there is a beautiful flower and a bee is sucking nectar and pollen from the flower.'}]
在单GPU上运行模型
from transformers import AutoProcessor, Gemma3nForConditionalGeneration
from PIL import Image
import requests
import torch
model_id = "google/gemma-3n-e4b"
model = Gemma3nForConditionalGeneration.from_pretrained(model_id, device="cuda", torch_dtype=torch.bfloat16).eval()
processor = AutoProcessor.from_pretrained(model_id)
url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/bee.jpg"
image = Image.open(requests.get(url, stream=True).raw)
prompt = "<image_soft_token> in this image, there is"
model_inputs = processor(text=prompt, images=image, return_tensors="pt").to(model.device)
input_len = model_inputs["input_ids"].shape[-1]
with torch.inference_mode():
generation = model.generate(**model_inputs, max_new_tokens=100)
generation = generation[0][input_len:]
decoded = processor.decode(generation, skip_special_tokens=True)
print(decoded)
# a bee on a flower.
✨ 主要特性
- 多模态支持:支持文本、音频、图像和视频输入,能够处理多种类型的任务。
- 架构创新:采用MatFormer架构,允许在E4B模型中嵌套子模型,提供了一个子模型(E2B),也可以使用Mix-and-Match方法访问各种自定义大小的模型。
- 高效运行:根据有效参数有两种大小可供选择,通过将低利用率矩阵从加速器中卸载,该模型的内存占用与传统的4B模型相当。
- 多语言支持:使用超过140种语言的训练数据,具备良好的跨语言处理能力。
📦 安装指南
Gemma 3n从transformers 4.53.0版本开始支持,使用前需安装最新版本的transformers
库。
$ pip install -U transformers
💻 使用示例
基础用法
from transformers import pipeline
import torch
pipe = pipeline(
"image-text-to-text",
torch_dtype=torch.bfloat16,
model="google/gemma-3n-e4b",
device="cuda",
)
output = pipe(
"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/bee.jpg",
text="<image_soft_token> in this image, there is"
)
print(output)
# [{'input_text': '<image_soft_token> in this image, there is',
# 'generated_text': '<image_soft_token> in this image, there is a beautiful flower and a bee is sucking nectar and pollen from the flower.'}]
高级用法
from transformers import AutoProcessor, Gemma3nForConditionalGeneration
from PIL import Image
import requests
import torch
model_id = "google/gemma-3n-e4b"
model = Gemma3nForConditionalGeneration.from_pretrained(model_id, device="cuda", torch_dtype=torch.bfloat16).eval()
processor = AutoProcessor.from_pretrained(model_id)
url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/bee.jpg"
image = Image.open(requests.get(url, stream=True).raw)
prompt = "<image_soft_token> in this image, there is"
model_inputs = processor(text=prompt, images=image, return_tensors="pt").to(model.device)
input_len = model_inputs["input_ids"].shape[-1]
with torch.inference_mode():
generation = model.generate(**model_inputs, max_new_tokens=100)
generation = generation[0][input_len:]
decoded = processor.decode(generation, skip_special_tokens=True)
print(decoded)
# a bee on a flower.
📚 详细文档
模型信息
描述
Gemma是谷歌推出的一系列轻量级、先进的开源模型,基于与Gemini模型相同的研究和技术构建。Gemma 3n模型专为在低资源设备上高效运行而设计,支持多模态输入,能够处理文本、图像、视频和音频输入,并生成文本输出,提供预训练和指令微调变体的开放权重。这些模型使用了超过140种语言的训练数据。
Gemma 3n模型采用选择性参数激活技术来降低资源需求,该技术允许模型以2B和4B的有效参数大小运行,低于其实际包含的总参数数量。有关Gemma 3n高效参数管理技术的更多信息,请参阅Gemma 3n页面。
输入和输出
属性 | 详情 |
---|---|
输入 | 1. 文本字符串,如问题、提示或待总结的文档 2. 图像,归一化为256x256、512x512或768x768分辨率,并编码为每个256个令牌 3. 音频数据,单通道每秒编码为6.25个令牌 4. 总输入上下文为32K个令牌 |
输出 | 1. 对输入的生成文本响应,如图像内容分析、文档摘要等 2. 总输出长度最多为32K个令牌,减去请求输入令牌 |
模型数据
训练数据集
这些模型在包含多种来源的数据集上进行训练,总计约11万亿个令牌。训练数据的知识截止日期为2024年6月,主要组成部分包括:
- 网页文档:多样化的网页文本集合,确保模型接触到广泛的语言风格、主题和词汇,训练数据集包含超过140种语言的内容。
- 代码:让模型接触代码有助于学习编程语言的语法和模式,提高生成代码和理解代码相关问题的能力。
- 数学:对数学文本的训练有助于模型学习逻辑推理、符号表示和处理数学查询。
- 图像:广泛的图像数据使模型能够执行图像分析和视觉数据提取任务。
- 音频:多样化的声音样本使模型能够识别语音、从录音中转录文本并识别音频数据中的信息。
这些不同数据源的组合对于训练一个强大的多模态模型至关重要,该模型可以处理各种不同的任务和数据格式。
数据预处理
对训练数据应用的主要数据清理和过滤方法包括:
- CSAM过滤:在数据准备过程的多个阶段应用严格的CSAM(儿童性虐待材料)过滤,以确保排除有害和非法内容。
- 敏感数据过滤:作为使Gemma预训练模型安全可靠的一部分,使用自动化技术从训练集中过滤出某些个人信息和其他敏感数据。
- 其他方法:根据内容质量和安全性进行过滤,符合我们的政策。
实现信息
硬件
Gemma使用张量处理单元(TPU)硬件(TPUv4p、TPUv5p和TPUv5e)进行训练。训练生成式模型需要大量的计算能力,TPU专门为机器学习中常见的矩阵运算而设计,在这一领域具有以下优势:
- 性能:TPU专门设计用于处理训练生成式模型涉及的大量计算,与CPU相比可以显著加速训练。
- 内存:TPU通常配备大量高带宽内存,允许在训练期间处理大型模型和批量大小,有助于提高模型质量。
- 可扩展性:TPU Pod(大型TPU集群)为处理大型基础模型不断增长的复杂性提供了可扩展的解决方案,可以将训练分布在多个TPU设备上以实现更快、更高效的处理。
- 成本效益:在许多情况下,与基于CPU的基础设施相比,TPU可以为训练大型模型提供更具成本效益的解决方案,特别是考虑到更快的训练节省的时间和资源。
这些优势与谷歌对可持续运营的承诺相一致。
软件
训练使用JAX和ML Pathways进行。JAX允许研究人员利用最新一代的硬件(包括TPU)进行更快、更高效的大型模型训练。ML Pathways是谷歌构建能够跨多个任务进行泛化的人工智能系统的最新努力,特别适用于基础模型,包括像这样的大型语言模型。
JAX和ML Pathways的结合使用在关于Gemini系列模型的论文中有描述:“Jax和Pathways的‘单控制器’编程模型允许单个Python进程编排整个训练运行,大大简化了开发工作流程。”
评估
基准测试结果
这些模型在全精度(float32)下针对大量不同的数据集和指标进行评估,以涵盖内容生成的不同方面。标记为IT的评估结果是针对指令微调模型,标记为PT的评估结果是针对预训练模型。
推理和事实性
基准测试 | 指标 | n-shot | E2B PT | E4B PT |
---|---|---|---|---|
HellaSwag | 准确率 | 10-shot | 72.2 | 78.6 |
BoolQ | 准确率 | 0-shot | 76.4 | 81.6 |
PIQA | 准确率 | 0-shot | 78.9 | 81.0 |
SocialIQA | 准确率 | 0-shot | 48.8 | 50.0 |
TriviaQA | 准确率 | 5-shot | 60.8 | 70.2 |
Natural Questions | 准确率 | 5-shot | 15.5 | 20.9 |
ARC-c | 准确率 | 25-shot | 51.7 | 61.6 |
ARC-e | 准确率 | 0-shot | 75.8 | 81.6 |
WinoGrande | 准确率 | 5-shot | 66.8 | 71.7 |
BIG-Bench Hard | 准确率 | few-shot | 44.3 | 52.9 |
DROP | 令牌F1分数 | 1-shot | 53.9 | 60.8 |
多语言
基准测试 | 指标 | n-shot | E2B IT | E4B IT |
---|---|---|---|---|
MGSM | 准确率 | 0-shot | 53.1 | 60.7 |
WMT24++ (ChrF) | 字符级F分数 | 0-shot | 42.7 | 50.1 |
Include | 准确率 | 0-shot | 38.6 | 57.2 |
MMLU (ProX) | 准确率 | 0-shot | 8.1 | 19.9 |
OpenAI MMLU | 准确率 | 0-shot | 22.3 | 35.6 |
Global-MMLU | 准确率 | 0-shot | 55.1 | 60.3 |
ECLeKTic | ECLeKTic分数 | 0-shot | 2.5 | 1.9 |
STEM和代码
基准测试 | 指标 | n-shot | E2B IT | E4B IT |
---|---|---|---|---|
GPQA Diamond | 宽松准确率/准确率 | 0-shot | 24.8 | 23.7 |
LiveCodeBench v5 | pass@1 | 0-shot | 18.6 | 25.7 |
Codegolf v2.2 | pass@1 | 0-shot | 11.0 | 16.8 |
AIME 2025 | 准确率 | 0-shot | 6.7 | 11.6 |
其他基准测试
基准测试 | 指标 | n-shot | E2B IT | E4B IT |
---|---|---|---|---|
MMLU | 准确率 | 0-shot | 60.1 | 64.9 |
MBPP | pass@1 | 3-shot | 56.6 | 63.6 |
HumanEval | pass@1 | 0-shot | 66.5 | 75.0 |
LiveCodeBench | pass@1 | 0-shot | 13.2 | 13.2 |
HiddenMath | 准确率 | 0-shot | 27.7 | 37.7 |
Global-MMLU-Lite | 准确率 | 0-shot | 59.0 | 64.5 |
MMLU (Pro) | 准确率 | 0-shot | 40.5 | 50.6 |
伦理和安全
评估方法
我们的评估方法包括结构化评估和对相关内容政策的内部红队测试。红队测试由多个不同的团队进行,每个团队有不同的目标和人类评估指标。这些模型针对与伦理和安全相关的多个不同类别进行评估,包括:
- 儿童安全:评估文本到文本和图像到文本提示,涵盖儿童安全政策,包括儿童性虐待和剥削。
- 内容安全:评估文本到文本和图像到文本提示,涵盖安全政策,包括骚扰、暴力和血腥内容以及仇恨言论。
- 代表性危害:评估文本到文本和图像到文本提示,涵盖安全政策,包括偏见、刻板印象和有害关联或不准确信息。
除了开发阶段的评估,我们还进行“保证评估”,这是我们独立的内部评估,用于责任治理决策。这些评估与模型开发团队分开进行,为发布决策提供信息。高层级的评估结果会反馈给模型团队,但提示集不会公开,以防止过拟合并保留结果为决策提供信息的能力。显著的保证评估结果作为发布审查的一部分报告给我们的责任与安全委员会。
评估结果
在所有安全测试领域,相对于之前的Gemma模型,我们在儿童安全、内容安全和代表性危害等类别中看到了安全水平的表现。所有测试均在没有安全过滤器的情况下进行,以评估模型的能力和行为。对于文本到文本、图像到文本和音频到文本,以及所有模型大小,模型产生的政策违规最少,并且在高严重性违规方面相对于之前的Gemma模型表现出显著改进。我们评估的一个局限性是主要包括英语提示。
使用和限制
预期用途
开源生成式模型在各个行业和领域有广泛的应用,以下潜在用途列表并不全面,目的是提供有关模型创建者在模型训练和开发过程中考虑的可能用例的上下文信息。
- 内容创作和通信
- 文本生成:生成创意文本格式,如诗歌、脚本、代码、营销文案和电子邮件草稿。
- 聊天机器人和对话式AI:为客户服务、虚拟助手或交互式应用程序提供对话界面。
- 文本摘要:生成文本语料库、研究论文或报告的简洁摘要。
- 图像数据提取:提取、解释和总结视觉数据以进行文本通信。
- 音频数据提取:转录口语、将语音翻译成其他语言的文本并分析基于声音的数据。
- 研究和教育
- 自然语言处理(NLP)和生成式模型研究:这些模型可以作为研究人员试验生成式模型和NLP技术、开发算法和推动该领域发展的基础。
- 语言学习工具:支持交互式语言学习体验,有助于语法纠正或提供写作练习。
- 知识探索:通过生成摘要或回答特定主题的问题,帮助研究人员探索大量数据。
限制
- 训练数据
- 训练数据的质量和多样性显著影响模型的能力,训练数据中的偏差或差距可能导致模型响应的局限性。
- 训练数据集的范围决定了模型能够有效处理的主题领域。
- 上下文和任务复杂性
- 模型更擅长可以用清晰提示和指令表述的任务,开放式或高度复杂的任务可能具有挑战性。
🔧 技术细节
Gemma 3n模型具有多个架构创新:
- 有效参数设计:根据有效参数有两种大小可供选择,虽然该模型的原始参数数量为8B,但架构设计允许通过将低利用率矩阵从加速器中卸载,以与传统4B模型相当的内存占用运行。
- MatFormer架构:使用MatFormer架构,允许在E4B模型中嵌套子模型,我们提供一个子模型(E2B),也可以使用Mix-and-Match方法访问各种自定义大小的模型。
更多关于这些技术的信息,请参阅技术博客文章和Gemma文档。
📄 许可证
本模型的许可证为gemma,使用前需访问Gemma 3n查看详细信息。
访问Gemma
要在Hugging Face上访问Gemma,您需要审查并同意Google的使用许可。为此,请确保您已登录Hugging Face并点击下方按钮,请求将立即处理。 确认许可
引用
@article{gemma_3n_2025,
title={Gemma 3n},
url={https://ai.google.dev/gemma/docs/gemma-3n},
publisher={Google DeepMind},
author={Gemma Team},
year={2025}
}
模型页面和资源
⚠️ 重要提示
本仓库对应Gemma 3n E4B的发布版本,使用时请确保transformers版本在4.53.0及以上。
💡 使用建议
在使用模型时,建议根据具体任务选择合适的输入格式和参数,以获得更好的结果。同时,注意训练数据的局限性,对于复杂任务可以尝试提供更清晰的提示和指令。








