库名称: transformers
许可证: gemma
额外授权标题: 在Hugging Face上访问RecurrentGemma
额外授权提示: 要访问Hugging Face上的RecurrentGemma,您需要审阅并同意Google的使用许可。为此,请确保您已登录Hugging Face并点击下方按钮。请求将立即处理。
额外授权按钮内容: 确认许可
RecurrentGemma 模型卡
模型页面: RecurrentGemma
此模型卡对应RecurrentGemma模型的9B指令版本。您还可以访问9B基础模型的模型卡。
资源与技术文档:
使用条款: 条款
作者: Google
模型信息
使用方法
以下是一些快速运行模型的代码片段。
首先,确保已安装pip install transformers
,然后复制适用于您用例的代码片段。
在单GPU/多GPU上运行模型
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("google/recurrentgemma-9b-it")
model = AutoModelForCausalLM.from_pretrained("google/recurrentgemma-9b-it", device_map="auto")
input_text = "写一首关于机器学习的诗。"
input_ids = tokenizer(input_text, return_tensors="pt").to("cuda")
outputs = model.generate(**input_ids)
print(tokenizer.decode(outputs[0]))
聊天模板
指令调优模型使用必须遵守的聊天模板。最简单的方法是使用分词器内置的聊天模板,如下所示。
加载模型并应用聊天模板到对话中。以下示例展示单次用户交互:
from transformers import AutoTokenizer, AutoModelForCausalLM
import transformers
import torch
tokenizer = AutoTokenizer.from_pretrained("google/recurrentgemma-9b-it")
model = AutoModelForCausalLM.from_pretrained(
"google/recurrentgemma-9b-it",
device_map="auto",
torch_dtype=dtype,
)
chat = [
{ "role": "user", "content": "写一个Hello World程序" },
]
prompt = tokenizer.apply_chat_template(chat, tokenize=False, add_generation_prompt=True)
此时,提示文本包含以下内容:
<bos><start_of_turn>user
写一个Hello World程序<end_of_turn>
<start_of_turn>model
如您所见,每个对话轮次前有<start_of_turn>
分隔符,后接实体角色(user
表示用户提供的内容,model
表示LLM响应)。轮次以<end_of_turn>
标记结束。
如果需要手动构建提示,可以遵循此格式。
提示准备就绪后,可以按以下方式生成内容:
inputs = tokenizer.encode(prompt, add_special_tokens=False, return_tensors="pt")
outputs = model.generate(input_ids=inputs.to(model.device), max_new_tokens=150)
print(tokenizer.decode(outputs[0]))
模型摘要
描述
RecurrentGemma是基于Google开发的新型循环架构构建的开放语言模型家族。提供预训练和指令调优的英文版本。
与Gemma类似,RecurrentGemma模型适用于多种文本生成任务,包括问答、摘要和推理。由于其新颖架构,RecurrentGemma比Gemma内存需求更低,在生成长序列时推理速度更快。
输入与输出
- 输入: 文本字符串(如问题、提示或待摘要文档)。
- 输出: 响应输入的英文文本(如问题答案、文档摘要)。
引用
@article{recurrentgemma_2024,
title={RecurrentGemma},
url={},
DOI={},
publisher={Kaggle},
author={Griffin Team, Soham De, Samuel L Smith, Anushan Fernando, Alex Botev, George-Christian Muraru, Ruba Haroun, Leonard Berrada et al.},
year={2024}
}
模型数据
训练数据集与数据处理
RecurrentGemma使用与Gemma模型家族相同的训练数据和数据处理方法。完整描述见Gemma模型卡。
实现信息
训练使用的硬件与框架
与Gemma类似,RecurrentGemma在TPUv5e上训练,使用JAX和ML Pathways。
评估信息
基准测试结果
评估方法
这些模型针对大量不同数据集和指标进行评估,涵盖文本生成的各个方面:
评估结果
基准测试 |
指标 |
RecurrentGemma 9B |
[MMLU] |
5-shot, top-1 |
60.5 |
[HellaSwag] |
0-shot |
80.4 |
[PIQA] |
0-shot |
81.3 |
[SocialIQA] |
0-shot |
52.3 |
[BoolQ] |
0-shot |
80.3 |
[WinoGrande] |
部分得分 |
73.6 |
[CommonsenseQA] |
7-shot |
73.2 |
[OpenBookQA] |
|
51.8 |
[ARC-e][ARC-c] |
|
78.8 |
[ARC-c] |
|
52.0 |
[TriviaQA] |
5-shot |
70.5 |
[Natural Questions] |
5-shot |
21.7 |
[HumanEval] |
pass@1 |
31.1 |
[MBPP] |
3-shot |
42.0 |
[GSM8K] |
maj@1 |
42.6 |
[MATH] |
4-shot |
23.8 |
[AGIEval] |
|
39.3 |
[BIG-Bench] |
|
55.2 |
平均 |
|
56.1 |
推理速度结果
RecurrentGemma提供更快的采样速度,尤其是长序列或大批量时。我们将RecurrentGemma-9B与Gemma-7B的采样速度进行比较。注意Gemma-7B使用多头注意力,与使用多查询注意力的Transformer相比,速度提升会较小。
吞吐量
我们评估了吞吐量(即每秒生成的最大令牌数),通过增加批量大小,使用2K令牌预填充,比较RecurrentGemma-9B与Gemma-7B。
延迟
我们还比较了RecurrentGemma-9B相对于Gemma-7B的端到端加速,采样长序列时使用4K令牌预填充和批量大小为1。
采样令牌数 |
Gemma-7B (秒) |
RecurrentGemma-9B (秒) |
提升 (%) |
128 |
3.1 |
2.8 |
9.2% |
256 |
5.9 |
5.4 |
9.7% |
512 |
11.6 |
10.5 |
10.7% |
1024 |
23.5 |
20.6 |
14.2% |
2048 |
48.2 |
40.9 |
17.7% |
4096 |
101.9 |
81.5 |
25.0% |
8192 |
OOM |
162.8 |
- |
16384 |
OOM |
325.2 |
- |
伦理与安全
伦理与安全评估
评估方法
我们的评估方法包括结构化评估和相关内容政策的内部红队测试。红队由多个团队进行,每个团队有不同的目标和人工评估指标。这些模型针对多个伦理与安全相关类别进行评估,包括:
- 文本到文本内容安全: 对人类提示进行安全政策评估,包括儿童性虐待与剥削、骚扰、暴力与血腥、仇恨言论。
- 文本到文本代表性危害: 针对相关学术数据集(如WinoBias和BBQ数据集)进行基准测试。
- 记忆: 自动评估训练数据记忆,包括个人身份信息暴露风险。
- 大规模危害: 测试“危险能力”,如化学、生物、放射性和核(CBRN)风险;以及说服与欺骗、网络安全和自主复制测试。
评估结果
伦理与安全评估结果在可接受阈值内,符合内部政策的类别,如儿童安全、内容安全、代表性危害、记忆、大规模危害。除了稳健的内部评估外,还展示了知名安全基准测试结果,如BBQ、Winogender、Winobias、RealToxicity和TruthfulQA。
基准测试 |
指标 |
RecurrentGemma 9B |
RecurrentGemma 9B IT |
[RealToxicity] |
平均 |
10.3 |
8.8 |
[BOLD] |
|
39.8 |
47.9 |
[CrowS-Pairs] |
top-1 |
38.7 |
39.5 |
[BBQ Ambig][BBQ] |
top-1 |
95.9 |
67.1 |
[BBQ Disambig][BBQ] |
top-1 |
78.6 |
78.9 |
[Winogender] |
top-1 |
59.0 |
64.0 |
[TruthfulQA] |
|
38.6 |
47.7 |
[Winobias 1_2][Winobias] |
|
61.5 |
60.6 |
[Winobias 2_2][Winobias] |
|
90.2 |
90.3 |
[Toxigen] |
|
58.8 |
64.5 |
模型使用与限制
已知限制
这些模型存在一些用户应注意的限制:
- 训练数据
- 训练数据的质量和多样性显著影响模型能力。训练数据中的偏见或空白可能导致模型响应受限。
- 训练数据集的范围决定了模型能有效处理的学科领域。
- 上下文与任务复杂性
- LLM更擅长处理能清晰提示和指令的任务。开放式或高度复杂的任务可能具有挑战性。
- 模型性能受提供的上下文量影响(在一定范围内,上下文越长输出越好)。
- 语言歧义与细微差别
- 自然语言本质复杂。LLM可能难以把握细微差别、讽刺或比喻语言。
- 事实准确性
- LLM基于训练数据生成响应,但它们不是知识库。可能生成不正确或过时的事实陈述。
- 常识
- LLM依赖语言统计模式。在某些情况下可能缺乏常识推理能力。
伦理考量与风险
大型语言模型(LLM)的开发引发多个伦理问题。在创建开放模型时,我们仔细考虑了以下方面:
- 偏见与公平性
- 基于大规模真实文本数据训练的LLM可能反映训练材料中的社会文化偏见。这些模型经过仔细审查,输入数据预处理描述和后续评估见本模型卡。
- 错误信息与滥用
- 透明度与责任