模型简介
模型特点
模型能力
使用案例
🚀 RecurrentGemma模型卡片
RecurrentGemma是基于新型循环架构开发的语言模型,具有高效推理和低内存占用的特点,适用于多种文本生成任务。
🚀 快速开始
要快速开始运行该模型,可参考以下代码片段。首先,确保执行 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 = "Write me a poem about Machine Learning."
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": "Write a hello world program" },
]
prompt = tokenizer.apply_chat_template(chat, tokenize=False, add_generation_prompt=True)
此时,提示包含以下文本:
<bos><start_of_turn>user
Write a hello world program<end_of_turn>
<start_of_turn>model
如你所见,每个回合都以 <start_of_turn>
分隔符开头,然后是实体的角色(user
表示用户提供的内容,model
表示大语言模型的响应)。回合以 <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]))
✨ 主要特性
- 新型架构:基于谷歌开发的新型循环架构,推理速度更快,内存占用更低。
- 多任务支持:适用于多种文本生成任务,如问答、摘要生成和推理等。
- 高质量输出:在多个基准测试中表现出色,提供高质量的英文文本生成。
📦 安装指南
确保你已经安装了 transformers
库,可以使用以下命令进行安装:
pip install transformers
📚 详细文档
模型信息
本模型卡片对应RecurrentGemma模型的9B指令版本。你也可以访问 9B基础模型 的模型卡片。
资源和技术文档:
使用条款:条款
作者:Google
模型数据
训练数据集和数据处理
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] | partial score | 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使用多头注意力机制,与使用多查询注意力机制的变压器模型相比,速度提升会较小。
吞吐量
我们评估了RecurrentGemma-9B与Gemma-7B在预填充2K令牌时的吞吐量,即每秒产生的最大令牌数。
延迟
我们还比较了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] | avg | 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)的开发引发了一些伦理问题。在创建开放模型时,我们仔细考虑了以下方面:
- 偏差与公平性
- 在大规模真实世界文本数据上训练的大语言模型可能反映训练材料中嵌入的社会文化偏差。这些模型经过了仔细审查,输入数据进行了预处理,并在本卡片中报告了后续评估结果。
- 错误信息与滥用
- 大语言模型可能被滥用来生成虚假、误导或有害的文本。
- 提供了模型负责任使用的指南,请参阅 负责任的生成式AI工具包。
- 透明度与问责制
- 本模型卡片总结了模型的架构、能力、限制和评估过程的详细信息。
- 负责任开发的开放模型为整个AI生态系统的开发者和研究人员提供了共享创新的机会,使大语言模型技术更易于获取。
已识别的风险及缓解措施:
- 偏差的延续:鼓励在模型训练、微调及其他用例中进行持续监控(使用评估指标、人工审查),并探索去偏差技术。
- 有害内容的生成:内容安全机制和指南至关重要。鼓励开发者根据其特定的产品政策和应用用例谨慎行事,并实施适当的内容安全保障措施。
- 恶意用途的滥用:技术限制以及对开发者和最终用户的教育有助于减轻大语言模型的恶意应用。提供了教育资源和用户举报滥用行为的机制。Gemma模型的禁止使用情况在我们的 使用条款 中进行了概述。
- 隐私侵犯:模型在经过过滤以去除个人身份信息(PII)的数据上进行训练。鼓励开发者遵循隐私法规并采用隐私保护技术。
预期用途
应用场景
开放大型语言模型(LLM)在各个行业和领域都有广泛的应用。以下潜在用途列表并非详尽无遗。列出此列表的目的是提供有关模型创建者在模型训练和开发过程中考虑的可能用例的上下文信息。
- 内容创作与沟通
- 文本生成:这些模型可用于生成创意文本格式,如诗歌、脚本、代码、营销文案、电子邮件草稿等。
- 聊天机器人和对话式AI:为客户服务、虚拟助手或交互式应用程序提供对话界面。
- 文本摘要:生成文本语料库、研究论文或报告的简洁摘要。
- 研究与教育
- 自然语言处理(NLP)研究:这些模型可以为研究人员提供基础,用于实验NLP技术、开发算法并推动该领域的发展。
- 语言学习工具:支持交互式语言学习体验,辅助语法纠正或提供写作练习。
- 知识探索:通过生成摘要或回答特定主题的问题,帮助研究人员探索大量文本。
优势
在发布时,与同等规模的模型相比,这个模型家族提供了高性能的开放大型语言模型实现,从底层设计就考虑了负责任的AI开发。
使用本文档中描述的基准评估指标,这些模型表现出优于其他同等规模开放模型的性能。
特别是,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}
}
📄 许可证
本模型的许可证为gemma。
⚠️ 重要提示
要在Hugging Face上访问RecurrentGemma,你需要审查并同意Google的使用许可。为此,请确保你已登录Hugging Face并点击下方按钮。请求将立即处理。
💡 使用建议
点击下方按钮以确认许可:[确认许可](Acknowledge license)



