模型简介
模型特点
模型能力
使用案例
🚀 Gemma-3 12B指令式GGUF模型
本项目提供了Gemma-3 12B指令式的GGUF模型,通过实验性的重新量化操作,测试不同量化方式对模型性能的影响,并对模型的使用、训练数据、实现细节等方面进行了详细介绍。
🚀 快速开始
文本输入
./llama-cli -hf google/gemma-3-27b-it-qat-q4_0-gguf -p "Write a poem about the Kraken."
图像输入
wget https://github.com/bebechien/gemma/blob/main/surprise.png?raw=true -O ~/Downloads/surprise.png
./llama-gemma3-cli -hf google/gemma-3-12b-it-qat-q4_0-gguf -p "Describe this image." --image ~/Downloads/surprise.png
使用ollama(仅文本)
ollama run hf.co/google/gemma-3-12b-it-qat-q4_0-gguf
✨ 主要特性
- 多模态处理:支持文本和图像输入,生成文本输出。
- 大上下文窗口:4B、12B和27B模型支持128K的输入上下文,1B模型支持32K的输入上下文。
- 多语言支持:支持超过140种语言。
- 轻量化设计:相对较小的模型尺寸,适合在资源有限的环境中部署。
📦 安装指南
暂未提供相关安装步骤。
💻 使用示例
基础用法
# 文本输入示例
./llama-cli -hf google/gemma-3-27b-it-qat-q4_0-gguf -p "Write a poem about the Kraken."
高级用法
# 图像输入示例
wget https://github.com/bebechien/gemma/blob/main/surprise.png?raw=true -O ~/Downloads/surprise.png
./llama-gemma3-cli -hf google/gemma-3-12b-it-qat-q4_0-gguf -p "Describe this image." --image ~/Downloads/surprise.png
📚 详细文档
模型信息
描述
Gemma是谷歌推出的一系列轻量级、先进的开源模型,基于与Gemini模型相同的研究和技术构建。Gemma 3模型支持多模态输入,能够处理文本和图像输入并生成文本输出,预训练和指令调优版本的权重均开源。该模型具有128K的大上下文窗口,支持超过140种语言,并且提供了比之前版本更多的模型尺寸选择。Gemma 3模型适用于各种文本生成和图像理解任务,如问答、摘要生成和推理等。其相对较小的尺寸使得它可以在笔记本电脑、台式机或自有云基础设施等资源有限的环境中部署,让更多人能够使用到先进的AI模型,促进创新。
输入和输出
- 输入:
- 文本字符串,如问题、提示或待摘要的文档。
- 图像,归一化到896 x 896分辨率,并编码为每个256个令牌。
- 4B、12B和27B模型的总输入上下文为128K令牌,1B模型为32K令牌。
- 输出:
- 针对输入生成的文本,如问题的答案、图像内容的分析或文档的摘要。
- 总输出上下文为8192令牌。
模型数据
训练数据集
这些模型在包含多种来源的文本数据集上进行训练。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 Pod(大型TPU集群)为处理大型基础模型不断增长的复杂性提供了可扩展的解决方案。可以在多个TPU设备上分布训练,以实现更快、更高效的处理。
- 成本效益:在许多情况下,与基于CPU的基础设施相比,TPU可以为训练大型模型提供更具成本效益的解决方案,尤其是考虑到更快的训练速度所节省的时间和资源。
- 这些优势符合[谷歌的可持续运营承诺][sustainability]。
软件
训练使用[JAX][jax]和[ML Pathways][ml-pathways]进行。 JAX允许研究人员利用最新一代的硬件,包括TPU,以更快、更高效地训练大型模型。ML Pathways是谷歌最新的构建能够跨多个任务进行泛化的人工智能系统的努力。这特别适用于基础模型,包括像这样的大型语言模型。 JAX和ML Pathways的使用方式如[关于Gemini系列模型的论文][gemini-2-paper]中所述:“Jax和Pathways的‘单控制器’编程模型允许单个Python进程协调整个训练过程,大大简化了开发工作流程。”
预期用途
开源视觉语言模型(VLM)在各个行业和领域都有广泛的应用。以下列出的潜在用途并非详尽无遗,其目的是提供有关模型创建者在模型训练和开发过程中考虑的可能用例的上下文信息。
- 内容创作和通信:
- 文本生成:这些模型可用于生成创意文本格式,如诗歌、脚本、代码、营销文案和电子邮件草稿。
- 聊天机器人和对话式AI:为客户服务、虚拟助手或交互式应用程序提供对话界面。
- 文本摘要:生成文本语料库、研究论文或报告的简洁摘要。
- 图像数据提取:这些模型可用于提取、解释和总结视觉数据,用于文本通信。
- 研究和教育:
- 自然语言处理(NLP)和VLM研究:这些模型可以作为研究人员实验VLM和NLP技术、开发算法和推动该领域发展的基础。
- 语言学习工具:支持交互式语言学习体验,帮助进行语法纠正或提供写作练习。
- 知识探索:帮助研究人员通过生成摘要或回答特定主题的问题来探索大量文本。
局限性
- 训练数据:
- 训练数据的质量和多样性显著影响模型的能力。训练数据中的偏差或差距可能导致模型响应的局限性。
- 训练数据集的范围决定了模型能够有效处理的主题领域。
- 上下文和任务复杂性:
- 模型更擅长能够用清晰提示和指令描述的任务。开放式或高度复杂的任务可能具有挑战性。
- 模型的性能可能受到提供的上下文量的影响(在一定范围内,更长的上下文通常会导致更好的输出)。
- 语言歧义与细微差别:自然语言本质上是复杂的。模型可能难以理解微妙的细微差别、讽刺或比喻语言。
- 事实准确性:模型根据从训练数据集中学到的信息生成响应,但它们不是知识库。它们可能会生成不正确或过时的事实陈述。
- 常识:模型依赖于语言中的统计模式。在某些情况下,它们可能缺乏应用常识推理的能力。
伦理考虑和风险
视觉语言模型(VLM)的开发引发了一些伦理问题。在创建开源模型时,我们仔细考虑了以下方面:
- 偏差和公平性:在大规模真实世界文本和图像数据上训练的VLM可能反映训练材料中嵌入的社会文化偏差。这些模型经过了仔细审查、输入数据预处理,并在本卡片中报告了后续评估结果。
- 错误信息和滥用:
- VLM可能被滥用来生成虚假、误导或有害的文本。
- 提供了负责任使用模型的指南,请参阅[负责任的生成式AI工具包][rai-toolkit]。
- 透明度和问责制:
- 本模型卡片总结了模型的架构、能力、局限性和评估过程的详细信息。
- 负责任开发的开源模型为AI生态系统中的开发者和研究人员提供了共享创新的机会,使VLM技术更易于获取。
识别的风险和缓解措施:
- 偏差的延续:鼓励在模型训练、微调等使用场景中进行持续监测(使用评估指标、人工审查)并探索去偏技术。
- 有害内容的生成:内容安全机制和指南至关重要。鼓励开发者根据其特定的产品政策和应用用例谨慎行事,并实施适当的内容安全保障措施。
- 恶意用途:技术限制以及对开发者和最终用户的教育有助于减轻VLM的恶意应用。提供了教育资源和用户举报滥用行为的机制。Gemma模型的禁止使用情况在[Gemma禁止使用政策][prohibited-use]中列出。
- 隐私侵犯:模型在经过过滤以去除某些个人信息和其他敏感数据的数据集上进行训练。鼓励开发者遵守隐私法规并采用隐私保护技术。
优势
在发布时,与同等规模的模型相比,这个系列的模型提供了高性能的开源视觉语言模型实现,从底层设计就考虑了负责任的AI开发。使用本文档中描述的基准评估指标,这些模型表现出比其他同等规模的开源模型更好的性能。
引用
@article{gemma_2025,
title={Gemma 3},
url={https://goo.gle/Gemma3Report},
publisher={Kaggle},
author={Gemma Team},
year={2025}
}
🔧 技术细节
实验性重新量化
作者进行了实验性的重新量化操作,测试了从QAT模型重新量化的模型是否比量化到相同比特级别的bf16模型表现更好。作者从谷歌原始的QAT Q4_0量化模型创建了imatrix文件,然后使用该imatrix将模型重新压缩到更低比特的量化级别。作者对从bf16量化的4b模型和从QAT Q4_0模型重新量化的模型进行了测试,两者使用相同的张量量化进行量化。
实验结果
困惑度测试
python3 ~/code/GGUFModelBuilder/perp_test_2_files.py ./gemma-3-4b-it-qat-q4_0-q3_k_l.gguf ./google_gemma-3-4b-it-q3_k_l.gguf
Testing model: gemma-3-4b-it-qat-q4_0-q3_k_l.gguf
Running: llama.cpp/llama-perplexity -m gemma-3-4b-it-qat-q4_0-q3_k_l.gguf -f perplexity_test_data.txt --ctx-size 256 --ppl-stride 32 --chunks 1 --threads 4
[✓] Perplexity: 4.0963 (Time: 284.70s)
Testing model: google_gemma-3-4b-it-q3_k_l.gguf
Running: llama.cpp/llama-perplexity -m google_gemma-3-4b-it-q3_k_l.gguf -f perplexity_test_data.txt --ctx-size 256 --ppl-stride 32 --chunks 1 --threads 4
[✓] Perplexity: 4.5557 (Time: 287.15s)
=== Comparison Results ===
Model 1: gemma-3-4b-it-qat-q4_0-q3_k_l.gguf - Perplexity: 4.10 (Time: 284.70s)
Model 2: google_gemma-3-4b-it-q3_k_l.gguf - Perplexity: 4.56 (Time: 287.15s)
Winner: gemma-3-4b-it-qat-q4_0-q3_k_l.gguf (Difference: 0.46)
.NET代码测试
要求两个模型编写一些.NET代码来测试网站是否使用量子安全加密,并让Deepseek-R1进行评估。评估结果表明,QAT Q4_0模型的代码在技术准确性、代码质量、安全相关性、现实性和可用性等方面均优于BF16模型。但两个模型都存在一些关键缺陷,如错误地假设TLS版本和密码套件在HTTP头中暴露,以及未能检查后量子算法等,因此都未能解决原始问题。
📄 许可证
要在Hugging Face上访问Gemma,您需要审查并同意Google的使用许可。请确保您已登录Hugging Face并点击下方按钮。请求将立即处理。 [确认许可](Acknowledge license)
属性 | 详情 |
---|---|
模型类型 | Gemma-3 12B指令式GGUF模型 |
训练数据 | 包含网页文档、代码、数学和图像等多种来源的文本数据集 |
⚠️ 重要提示
本项目的重新量化操作处于实验阶段,结果可能存在一定的不确定性。请根据实际需求谨慎使用。
💡 使用建议
在使用模型时,建议根据具体任务和数据特点选择合适的模型尺寸和量化级别。同时,注意输入数据的格式和上下文长度,以获得更好的输出结果。








