ONNX 模型库
返回模型

说明文档

Gemma 3 模型卡

模型页面Gemma

资源和技术文档

使用条款条款

作者:Google DeepMind

模型信息

摘要描述以及输入和输出的简要定义。

描述

Gemma 是 Google 推出的轻量级、最先进开放模型系列,采用与创建 Gemini 模型相同的研究和技术构建。Gemma 3 模型是多模态的,可处理文本和图像输入并生成文本输出,提供预训练变体和指令微调变体的开放权重。Gemma 3 拥有 128K 的大上下文窗口,支持超过 140 种语言,并提供比以往版本更多的尺寸选择。Gemma 3 模型非常适合各种文本生成和图像理解任务,包括问答、摘要和推理。它们相对较小的尺寸使其能够在资源有限的环境中部署,例如笔记本电脑、台式机或您自己的云基础设施,从而使最先进的 AI 模型大众化,并帮助促进每个人的创新。

输入和输出

  • 输入:

    • 文本字符串,例如问题、提示或需要摘要的文档
    • 图像,标准化为 896 x 896 分辨率,每张图像编码为 256 个 token
    • 4B、12B 和 27B 尺寸的总输入上下文为 128K 个 token,1B 尺寸为 32K 个 token
  • 输出:

    • 响应输入生成的文本,例如问题的答案、图像内容分析或文档摘要
    • 总输出上下文为 8192 个 token

用法

以下是一些关于如何快速开始运行模型的代码片段。首先,安装 Transformers 库。Gemma 3 从 transformers 4.50.0 开始支持。

$ pip install -U transformers

然后,从与您的用例相关的部分复制代码片段。

使用 pipeline API 运行

您可以按如下方式使用 pipeline 初始化模型和处理器进行推理。

from transformers import pipeline
import torch

pipe = pipeline(
    \"image-text-to-text\",
    model=\"google/gemma-3-4b-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-4b-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.

引用

@article{gemma_2025,
    title={Gemma 3},
    url={https://goo.gle/Gemma3Report},
    publisher={Kaggle},
    author={Gemma Team},
    year={2025}
}

模型数据

用于模型训练的数据以及数据处理方式。

训练数据集

这些模型在包含多种来源的文本数据集上进行了训练。27B 模型使用 14 万亿个 token 训练,12B 模型使用 12 万亿个 token 训练,4B 模型使用 4 万亿个 token 训练,1B 模型使用 2 万亿个 token 训练。以下是关键组成部分:

  • 网页文档:多样化的网页文本集合确保模型接触广泛的语言风格、主题和词汇。训练数据集包含超过 140 种语言的内容。
  • 代码:让模型接触代码有助于学习编程语言的语法和模式,从而提高生成代码和理解代码相关问题的能力。
  • 数学:在数学文本上训练有助于模型学习逻辑推理、符号表示以及解决数学查询。
  • 图像:广泛的图像使模型能够执行图像分析和视觉数据提取任务。

这些多样化数据源的组合对于训练能够处理各种不同任务和数据格式的强大多模态模型至关重要。

数据预处理

以下是应用于训练数据的关键数据清洗和过滤方法:

  • CSAM 过滤:在数据准备过程的多个阶段应用了严格的 CSAM(儿童性虐待材料)过滤,以确保排除有害和非法内容。
  • 敏感数据过滤:作为使 Gemma 预训练模型安全可靠的一部分,使用自动化技术从训练集中过滤掉某些个人信息和其他敏感数据。
  • 其他方法:根据我们的政策进行基于内容质量和安全性的过滤。

实现信息

关于模型内部结构的详细信息。

硬件

Gemma 使用 Tensor Processing Unit (TPU) 硬件(TPUv4p、TPUv5p 和 TPUv5e)进行训练。训练视觉语言模型 (VLM) 需要大量计算能力。TPU 专为机器学习中常见的矩阵运算而设计,在此领域具有多项优势:

  • 性能:TPU 专为处理训练 VLM 所涉及的大量计算而设计。与 CPU 相比,它们可以显著加速训练。
  • 内存:TPU 通常配备大量高带宽内存,允许在训练期间处理大型模型和批量大小。这可以带来更好的模型质量。
  • 可扩展性:TPU Pod(大型 TPU 集群)为处理日益复杂的大型基础模型提供了可扩展的解决方案。您可以将训练分布在多个 TPU 设备上,以实现更快、更高效的处理。
  • 成本效益:在许多场景中,与基于 CPU 的基础设施相比,TPU 可以为训练大型模型提供更具成本效益的解决方案,特别是考虑到由于更快的训练而节省的时间和资源。
  • 这些优势与 Google 可持续运营的承诺 相一致。

软件

训练使用 JAXML Pathways 进行。

JAX 允许研究人员利用最新一代硬件(包括 TPU)更快、更高效地训练大型模型。ML Pathways 是 Google 构建能够在多个任务之间泛化的人工智能系统的最新成果。这特别适合基础模型,包括此类大型语言模型。

JAX 和 ML Pathways 的结合使用如 关于 Gemini 模型系列的论文 中所述;"Jax 和 Pathways 的'单控制器'编程模型允许单个 Python 进程编排整个训练运行,极大地简化了开发工作流程。"

评估

模型评估指标和结果。

基准测试结果

这些模型针对大量不同的数据集和指标进行了评估,以涵盖文本生成的不同方面:

推理和事实性

基准测试 指标 Gemma 3 PT 1B Gemma 3 PT 4B Gemma 3 PT 12B Gemma 3 PT 27B
HellaSwag 10-shot 62.3 77.2 84.2 85.6
BoolQ 0-shot 63.2 72.3 78.8 82.4
PIQA 0-shot 73.8 79.6 81.8 83.3
SocialIQA 0-shot 48.9 51.9 53.4 54.9
TriviaQA 5-shot 39.8 65.8 78.2 85.5
Natural Questions 5-shot 9.48 20.0 31.4 36.1
ARC-c 25-shot 38.4 56.2 68.9 70.6
ARC-e 0-shot 73.0 82.4 88.3 89.0
WinoGrande 5-shot 58.2 64.7 74.3 78.8
BIG-Bench Hard few-shot 28.4 50.9 72.6 77.7
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 5-shot 59.6 74.5 78.6
MMLU (Pro COT) 5-shot 29.2 45.3 52.2
AGIEval 3-5-shot 42.1 57.4 66.2
MATH 4-shot 24.2 43.3 50.0
GSM8K 8-shot 38.4 71.0 82.6
GPQA 5-shot 15.0 25.4 24.3
MBPP 3-shot 46.0 60.4 65.6
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 2.04 34.7 64.3 74.3
Global-MMLU-Lite 24.9 57.0 69.4 75.7
WMT24++ (ChrF) 36.7 48.4 53.9 55.7
FloRes 29.5 39.2 46.0 48.8
XQuAD (all) 43.9 68.0 74.5 76.8
ECLeKTic 4.69 11.0 17.2 24.4
IndicGenBench 41.4 57.2 61.7 63.4

多模态

基准测试 Gemma 3 PT 4B Gemma 3 PT 12B Gemma 3 PT 27B
COCOcap 102 111 116
DocVQA (val) 72.8 82.3 85.6
InfoVQA (val) 44.1 54.8 59.4
MMMU (pt) 39.2 50.3 56.1
TextVQA (val) 58.9 66.5 68.6
RealWorldQA 45.5 52.2 53.9
ReMI 27.3 38.5 44.8
AI2D 63.2 75.2 79.0
ChartQA 63.6 74.7 76.3
VQAv2 63.9 71.2 72.9
BLINK 38.0 35.9 39.6
OKVQA 51.0 58.7 60.2
TallyQA 42.5 51.8 54.3
SpatialSense VQA 50.9 60.0 59.4
CountBenchQA 26.1 17.8 68.0

伦理与安全

伦理和安全评估方法及结果。

评估方法

我们的评估方法包括结构化评估和相关内容政策的内部红队测试。红队测试由多个不同的团队进行,每个团队都有不同的目标和人工评估指标。这些模型针对与伦理和安全相关的多个不同类别进行了评估,包括:

  • 儿童安全:评估涵盖儿童安全政策的文本到文本和图像到文本提示,包括儿童性虐待和剥削。
  • 内容安全:评估涵盖安全政策(包括骚扰、暴力和血腥以及仇恨言论)的文本到文本和图像到文本提示。
  • 代表性伤害:评估涵盖安全政策(包括偏见、刻板印象以及有害联想或不准确)的文本到文本和图像到文本提示。

除了开发级别的评估外,我们还进行"保证评估",这是我们用于负责任治理决策的"独立"内部评估。它们与模型开发团队分开进行,以告知有关发布的决策。高级别发现会反馈给模型团队,但提示集被保留以防止过拟合并保持结果告知决策的能力。保证评估结果作为发布审查的一部分报告给我们的负责任与安全委员会。

评估结果

在所有安全测试领域,我们看到在儿童安全、内容安全和代表性伤害类别方面相对于以前的 Gemma 模型有重大改进。所有测试都在没有安全过滤器的情况下进行,以评估模型能力和行为。对于文本到文本和图像到文本,以及所有模型尺寸,模型产生的政策违规最少,并且在无根据推断方面显示出比以前的 Gemma 模型性能的显著改进。我们评估的一个局限性是它们仅包含英语提示。

使用和限制

这些模型存在一些用户应该注意的限制。

预期用途

开放视觉语言模型 在各个行业和领域具有广泛的应用。以下潜在用途列表并不全面。此列表的目的是提供关于模型创建者在模型训练和开发过程中考虑的可能用例的背景信息。

  • 内容创建和沟通
    • 文本生成:这些模型可用于生成创意文本格式,如诗歌、脚本、代码、营销文案和电子邮件草稿。
    • 聊天机器人和对话式 AI:为客户服务、虚拟助手或交互式应用程序提供对话界面支持。
    • 文本摘要:生成文本语料库、研究论文或报告的简洁摘要。
    • 图像数据提取:这些模型可用于提取、解释和总结视觉数据以进行文本通信。
  • 研究和教育
    • 自然语言处理 (NLP) 和 VLM 研究:这些模型可以作为研究人员实验 VLM 和 NLP 技术、开发算法并为该领域的发展做出贡献的基础。
    • 语言学习工具:支持交互式语言学习体验,帮助语法纠正或提供写作练习。
    • 知识探索:通过生成摘要或回答有关特定主题的问题,帮助研究人员探索大量文本。

限制

  • 训练数据
    • 训练数据的质量和多样性显著影响模型的能力。训练数据中的偏见或差距可能导致模型响应的限制。
    • 训练数据集的范围决定了模型可以有效处理的主题领域。
  • 上下文和任务复杂性
    • 模型更擅长可以用清晰提示和指令框架的任务。开放式或高度复杂的任务可能具有挑战性。
    • 模型的性能可能受到提供的上下文量的影响(更长的上下文通常会导致更好的输出,达到某一点)。
  • 语言歧义和细微差别
    • 自然语言本质上很复杂。模型可能难以掌握微妙的细微差别、讽刺或比喻性语言。
  • 事实准确性
    • 模型根据从训练数据集中学到的信息生成响应,但它们不是知识库。它们可能会生成不正确或过时的事实陈述。
  • 常识
    • 模型依赖语言中的统计模式。它们可能缺乏在某些情况下应用常识推理的能力。

伦理考量和风险

视觉语言模型 的开发引发了几个伦理问题。在创建开放模型时,我们仔细考虑了以下方面:

  • 偏见和公平性
    • 在大规模、现实世界文本和图像数据上训练的 VLM 可能反映嵌入训练材料中的社会文化偏见。这些模型经过了仔细审查、所述的输入数据预处理以及本卡中报告的后评估。
  • 错误信息和滥用
    • VLM 可能被滥用于生成虚假、误导性或有害的文本。
    • 为模型负责任的使用提供了指南,请参阅负责任生成式 AI 工具包
  • 透明度和问责制:
    • 此模型卡总结了有关模型架构、能力、限制和评估过程的详细信息。
    • 负责任开发的开放模型提供了通过使 VLM 技术对 AI 生态系统中的开发人员和研究人员可用来分享创新的机会。

已识别的风险和缓解措施:

  • 偏见的延续:鼓励在模型训练、微调和其他用例期间进行持续监控(使用评估指标、人工审查)和探索去偏技术。
  • 有害内容的生成:内容安全的机制和指南至关重要。鼓励开发人员根据其特定的产品策略和应用用例谨慎行事并实施适当的内容安全保障措施。
  • 恶意目的的滥用:技术限制以及开发人员和最终用户教育可以帮助减轻 VLM 的恶意应用。为用户提供了用于标记滥用的教育资源和报告机制。Gemma 模型的禁止用途在 Gemma 禁止使用政策 中概述。
  • 隐私侵犯:模型在经过过滤以删除某些个人信息和其他敏感数据的数据上进行训练。鼓励开发人员通过隐私保护技术遵守隐私法规。

优势

在发布时,与类似尺寸的模型相比,此模型系列提供了从头开始为负责任 AI 开发设计的高性能开放视觉语言模型实现。

使用本文档中描述的基准评估指标,这些模型已显示出比其他类似尺寸的开放模型替代方案提供更优越的性能。

jva96160/go

作者 jva96160

image-text-to-text transformers
↓ 0 ♥ 0

创建时间: 2025-05-15 01:33:29+00:00

更新时间: 2025-11-05 03:06:44+00:00

在 Hugging Face 上查看

文件 (109)

.gitattributes
ASRDataset.py
README.md
added_tokens.json
chat_template.json
config.json
configuration_gemma3omni.py
cpp/ASRDataset.py
cpp/__pycache__/ASRDataset.cpython-310.pyc
cpp/__pycache__/speech_conformer_encoder.cpython-310.pyc
cpp/convert_onnx.ipynb
cpp/convert_tensorRT.ipynb
cpp/gemma_v1/ASRDataset.py
cpp/gemma_v1/__pycache__/ASRDataset.cpython-312.pyc
cpp/gemma_v1/added_tokens.json
cpp/gemma_v1/chat_template.json
cpp/gemma_v1/config.json
cpp/gemma_v1/configuration_gemma3omni.py
cpp/gemma_v1/eval.py
cpp/gemma_v1/eval_multiturn.ipynb
cpp/gemma_v1/eval_multiturn.py
cpp/gemma_v1/merge_lora.ipynb
cpp/gemma_v1/model-00001-of-00003.safetensors
cpp/gemma_v1/model-00002-of-00003.safetensors
cpp/gemma_v1/model-00003-of-00003.safetensors
cpp/gemma_v1/model.safetensors.index.json
cpp/gemma_v1/modeling_gemma3omni.py
cpp/gemma_v1/preprocessing_gemma3omni.py
cpp/gemma_v1/preprocessor_config.json
cpp/gemma_v1/processor_config.json
cpp/gemma_v1/special_tokens_map.json
cpp/gemma_v1/speech_conformer_encoder.py
cpp/gemma_v1/speech_conformer_encoder_old.py
cpp/gemma_v1/tokenizer.json
cpp/gemma_v1/tokenizer.model
cpp/gemma_v1/tokenizer_config.json
cpp/gemma_v1/training.py
cpp/gemma_v1/training_multiturn.py
cpp/gemma_v1/training_multiturn_textonly.py
cpp/inference/audio_encoder_lib.cpp
cpp/inference/audio_encoder_lib.h
cpp/inference/audio_encoder_lib.o
cpp/inference/audio_inference
cpp/inference/audio_inference_app
cpp/inference/compile.sh
cpp/inference/dummy.wav
cpp/inference/f0.txt
cpp/inference/f_inp.txt
cpp/inference/kiss_fft.o
cpp/inference/kiss_fftr.o
cpp/inference/main_text.cpp
cpp/inference/matrix_output.txt
cpp/inference/run.sh
cpp/inference/test copy 2.cpp
cpp/inference/test copy.cpp
cpp/inference/test.cpp
cpp/libraries.zip
cpp/onnx_files/speech_init_export/phi-4-mm-speech.onnx ONNX
cpp/sample_data/convert16k.py
cpp/sample_data/pickup_breezy-common_voice_zh-TW_17376838-breezyvoice-00818.wav
cpp/sample_data/pickup_breezy-common_voice_zh-TW_17382475-breezyvoice-01452.wav
cpp/sample_data/pickup_breezy-common_voice_zh-TW_17382549-breezyvoice-00643.wav
cpp/sample_data/pickup_breezy-common_voice_zh-TW_17382570-breezyvoice-01041.wav
cpp/sample_data/pickup_breezy-common_voice_zh-TW_17382594-breezyvoice-00389.wav
cpp/sample_data/pickup_processed.json
cpp/sample_data_old/pickup_breezy-common_voice_zh-TW_17376838-breezyvoice-00818.pcm
cpp/sample_data_old/pickup_breezy-common_voice_zh-TW_17376838-breezyvoice-00818.wav
cpp/sample_data_old/pickup_breezy-common_voice_zh-TW_17382475-breezyvoice-01452.pcm
cpp/sample_data_old/pickup_breezy-common_voice_zh-TW_17382475-breezyvoice-01452.wav
cpp/sample_data_old/pickup_breezy-common_voice_zh-TW_17382549-breezyvoice-00643.pcm
cpp/sample_data_old/pickup_breezy-common_voice_zh-TW_17382549-breezyvoice-00643.wav
cpp/sample_data_old/pickup_breezy-common_voice_zh-TW_17382570-breezyvoice-01041.pcm
cpp/sample_data_old/pickup_breezy-common_voice_zh-TW_17382570-breezyvoice-01041.wav
cpp/sample_data_old/pickup_breezy-common_voice_zh-TW_17382594-breezyvoice-00389.pcm
cpp/sample_data_old/pickup_breezy-common_voice_zh-TW_17382594-breezyvoice-00389.wav
cpp/sample_data_old/toPCM.sh
cpp/speech_conformer_encoder.py
cpp/test.ipynb
deploy/__pycache__/main.cpython-310.pyc
deploy/log.txt
deploy/main.py
deploy/testapi.ipynb
eval.py
eval_multiturn.ipynb
eval_multiturn.py
eval_multiturn_textonly.py
generation_config.json
merge_lora.ipynb
model-00001-of-00003.safetensors
model-00002-of-00003.safetensors
model-00003-of-00003.safetensors
model.safetensors.index.json
modeling_gemma3omni.py
preprocessing_gemma3omni.py
preprocessor_config.json
processor_config.json
run.sh
special_tokens_map.json
speech_conformer_encoder.py
template.json
test.ipynb
test.jinja
tmp.sh
tokenizer.json
tokenizer.model
tokenizer_config.json
training.py
training_multiturn.py
training_multiturn_textonly.py