模型简介
模型特点
模型能力
使用案例
许可证:gemma
流水线标签:文本生成
许可证链接:LICENSE
量化者:bartowski
基础模型:google/gemma-3-4b-pt
标签:
- llamafile
Gemma 3 4B Instruct - llamafile
- 模型创建者:Google
- 原始模型:google/gemma-3-4b-it
Mozilla将Gemma 3模型打包成可执行的权重文件,我们称之为llamafile。这为您提供了在Linux、MacOS、Windows、FreeBSD、OpenBSD和NetBSD系统上使用模型的最简单快捷的方式,支持AMD64和ARM64架构。
软件最后更新:2025-03-31
Llamafile版本:0.9.2
快速开始
要开始使用,您需要Gemma 3的权重文件和llamafile软件。这两者都包含在一个文件中,可以通过以下方式下载并运行:
wget https://huggingface.co/Mozilla/gemma-3-4b-it-llamafile/resolve/main/google_gemma-3-4b-it-Q6_K.llamafile
chmod +x google_gemma-3-4b-it-Q6_K.llamafile
./google_gemma-3-4b-it-Q6_K.llamafile
这些llamafile的默认操作模式是我们的新命令行聊天机器人界面。
使用方法
您可以使用三引号在多行上提问。可以通过传递/stats
和/context
等命令查看运行时状态信息。您可以通过传递-p "新系统提示"
标志来更改系统提示。可以按CTRL-C中断模型,最后按CTRL-D退出。
如果您更喜欢使用Web图形界面,那么提供了一个--server
模式,将在浏览器中打开一个带有聊天机器人和补全界面的标签页。如需更多帮助,可以传递--help
标志。服务器还提供了一个与OpenAI API兼容的补全端点,可以通过Python使用openai
pip包访问。
./google_gemma-3-4b-it-Q6_K.llamafile --server
还提供了一个高级CLI模式,适用于shell脚本。您可以通过传递--cli
标志来使用它。如需更多帮助,可以传递--help
标志。
./google_gemma-3-4b-it-Q6_K.llamafile --cli -p 'four score and seven' --log-disable
故障排除
遇到问题?请参阅README中的"常见问题"部分。
在Linux上,避免运行检测器错误的方法是安装APE解释器。
sudo wget -O /usr/bin/ape https://cosmo.zip/pub/cosmos/bin/ape-$(uname -m).elf
sudo chmod +x /usr/bin/ape
sudo sh -c "echo ':APE:M::MZqFpD::/usr/bin/ape:' >/proc/sys/fs/binfmt_misc/register"
sudo sh -c "echo ':APE-jart:M::jartsr::/usr/bin/ape:' >/proc/sys/fs/binfmt_misc/register"
在Windows上,可执行文件大小限制为4GB。
上下文窗口
此模型的最大上下文窗口大小为128k token。默认情况下,使用8192 token的上下文窗口大小。您可以通过传递-c 0
标志让llamafile使用最大上下文大小。这足以容纳一本小书。如果您希望与您的书进行对话,可以使用-f book.txt
标志。
GPU加速
在具有足够RAM的GPU上,可以传递-ngl 999
标志以使用系统的NVIDIA或AMD GPU。在Windows上,如果您拥有NVIDIA GPU,只需安装显卡驱动程序即可。在Windows上,如果您有AMD GPU,应安装ROCm SDK v6.1,然后在首次运行llamafile时传递--recompile --gpu amd
标志。
在NVIDIA GPU上,默认使用预构建的tinyBLAS库执行矩阵乘法。这是开源软件,但速度不如闭源的cuBLAS。如果您的系统上安装了CUDA SDK,则可以传递--recompile
标志为您的系统构建一个使用cuBLAS的GGML CUDA库。这确保您获得最佳性能。
更多信息,请参阅llamafile README。
关于llamafile
llamafile是Mozilla于2023年11月20日引入的一种新格式。它使用Cosmopolitan Libc将LLM权重转换为可运行的llama.cpp二进制文件,这些二进制文件可以在六个操作系统的标准安装上运行,支持ARM64和AMD64架构。
Gemma 3模型卡
模型页面: Gemma
资源和技术文档:
- [Gemma 3技术报告][g3-tech-report]
- [负责任生成AI工具包][rai-toolkit]
- [Kaggle上的Gemma][kaggle-gemma]
- [Vertex Model Garden上的Gemma][vertex-mg-gemma3]
使用条款: [条款][terms]
作者: 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
pipe = pipeline("text-generation", model="google/gemma-3-4b-it", device="cuda", torch_dtype=torch.bfloat16)
messages = [
[
{
"role": "system",
"content": [{"type": "text", "text": "You are a helpful assistant."},]
},
{
"role": "user",
"content": [{"type": "text", "text": "Write a poem on Hugging Face, the company"},]
},
],
]
output = pipe(messages, max_new_tokens=50)
在单/多GPU上运行模型
from transformers import AutoTokenizer, BitsAndBytesConfig, Gemma3ForCausalLM
import torch
model_id = "google/gemma-3-4b-it"
quantization_config = BitsAndBytesConfig(load_in_8bit=True)
model = Gemma3ForCausalLM.from_pretrained(
model_id, quantization_config=quantization_config
).eval()
tokenizer = AutoTokenizer.from_pretrained(model_id)
messages = [
[
{
"role": "system",
"content": [{"type": "text", "text": "You are a helpful assistant."},]
},
{
"role": "user",
"content": [{"type": "text", "text": "Write a poem on Hugging Face, the company"},]
},
],
]
inputs = tokenizer.apply_chat_template(
messages,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
).to(model.device).to(torch.bfloat16)
with torch.inference_mode():
outputs = model.generate(**inputs, max_new_tokens=64)
outputs = tokenizer.batch_decode(outputs)
引用
@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预训练模型安全可靠的一部分,使用自动化技术从训练集中过滤掉某些个人信息和其他敏感数据。
- 其他方法: 根据[我们的政策][safety-policies]基于内容质量和安全性进行过滤。
实现信息
关于模型内部的详细信息。
硬件
Gemma使用[Tensor Processing Unit (TPU)][tpu]硬件(TPUv4p、TPUv5p和TPUv5e)进行训练。训练视觉语言模型(VLM)需要大量计算能力。TPU专为机器学习中常见的矩阵操作设计,在此领域具有多项优势:
- 性能: TPU专门设计用于处理训练VLM涉及的大规模计算,相比CPU可以显著加快训练速度。
- 内存: TPU通常配备大量高带宽内存,可以在训练期间处理大型模型和批量大小,从而提高模型质量。
- 可扩展性: TPU Pod(大型TPU集群)为处理大型基础模型日益增长的复杂性提供了可扩展的解决方案。您可以将训练分布在多个TPU设备上,以实现更快更高效的处理。
- 成本效益: 在许多情况下,与基于CPU的基础设施相比,TPU可以为训练大型模型提供更具成本效益的解决方案,尤其是在考虑到由于更快训练而节省的时间和资源时。
- 这些优势与[Google的可持续运营承诺][sustainability]一致。
软件
训练使用[JAX][jax]和[ML Pathways][ml-pathways]完成。
JAX允许研究人员利用包括TPU在内的最新硬件,更快更高效地训练大型模型。ML Pathways是Google最新努力构建能够跨多个任务泛化的人工智能系统。这特别适合基础模型,包括像这些大型语言模型。
如[关于Gemini模型家族的论文][gemini-2-paper]所述,JAX和ML Pathways一起使用;"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 |









