Google 发布最新开放大语言模型 Gemma 2,现已登陆 Hugging Face Hub
Google 发布了最新的开放大语言模型 Gemma 2,我们非常高兴与 Google 合作,确保其在 Hugging Face 生态系统中的最佳集成。你可以在 Hub 上找到 4 个开源模型 (2 个基础模型和 2 个微调模型) 。发布的功能和集成包括:
-
Hub 上的模型 https://hf.co/collections/google/g-667d6600fd5220e7b967f315 -
Hugging Face Transformers 集成 https://github.com/huggingface/transformers/releases/tag/v4.42.0 -
与 Google Cloud 和推理端点的集成
Gemma 2 是什么?
Gemma 2 是 Google 最新的开放大语言模型。它有两种规模:90 亿参数和 270 亿参数,分别具有基础 (预训练) 和指令调优版本。Gemma 基于 Google DeepMind 的 Gemini,拥有 8K Tokens 的上下文长度:
-
gemma-2-9b https://hf.co/google/gemma-2-9b 90 亿基础模型。 -
gemma-2-9b-it https://hf.co/google/gemma-2-9b-it 90 亿基础模型的指令调优版本。 -
gemma-2-27b https://hf.co/google/gemma-2-27b 270 亿基础模型。 -
gemma-2-27b-it https://hf.co/google/gemma-2-27b-it 270 亿基础模型的指令调优版本。
Gemma 2 模型的训练数据量约为其第一代的两倍,总计 13 万亿 Tokens (270 亿模型) 和 8 万亿 Tokens (90 亿模型) 的网页数据 (主要是英语) 、代码和数学数据。我们不知道训练数据混合的具体细节,只能猜测更大和更仔细的数据整理是性能提高的重要因素之一。
Gemma 2 与第一代使用相同的许可证,这是一个允许再分发、微调、商业用途和衍生作品的宽松许可证。
立刻在 Hugging Chat 里体验 Gemma2
https://hf.co/chat/models/google/gemma-2-27b-it
Gemma 2 的技术进展
Gemma 2 与第一代有许多相似之处。它有 8192 Tokens 的上下文长度,并使用旋转位置嵌入 (RoPE)。与原始 Gemma 相比,Gemma 2 的主要进展有四点:
-
滑动窗口注意力: 交替使用滑动窗口和全二次注意力以提高生成质量。 -
Logit 软上限: 通过将 logits 缩放到固定范围来防止其过度增长,从而改进训练。 -
知识蒸馏: 利用较大的教师模型来训练较小的模型(适用于 90 亿模型)。 -
模型合并: 将两个或多个大语言模型合并成一个新的模型。
Gemma 2 使用
-
JAX https://jax.readthedocs.io/en/latest/quickstart.html -
ML Pathways https://blog.google/technology/ai/introducing-pathways-next-generation-ai-architecture/ -
Google Cloud TPU 27B on v5p https://cloud.google.com/blog/products/ai-machine-learning/introducing-cloud-tpu-v5p-and-ai-hypercomputer?hl=en -
9B on TPU v4 https://cloud.google.com/tpu/docs/v4
与预训练数据集混合类似,关于微调数据集或与 SFT 和
-
RLHF https://hf.co/blog/rlhf
滑动窗口注意力
-
滑动窗口注意力 https://hf.co/papers/2004.05150 -
Mistral https://hf.co/papers/2310.06825
软上限和注意力实现
软上限是一种防止 logits 过度增长而不截断它们的技术。它通过将 logits 除以最大值阈值 (soft_cap
),然后通过 tanh
层 (确保它们在 (-1, 1)
范围内) ,最后再乘以阈值。这确保了最终值在 (-soft_cap, +soft_cap)
区间内,不会丢失太多信息但稳定了训练。
综合起来,logits 的计算公式为:logits ← soft_cap ∗ tanh(logits/soft_cap)
Gemma 2 对最终层和每个注意力层都采用了软上限。注意力 logits 上限为 50.0,最终 logits 上限为 30.0。
在发布时,软上限与 Flash Attention / SDPA 不兼容,但它们仍可用于推理以实现最高效率。Gemma 2 团队观察到,在推理过程中不使用软上限机制时,差异非常小。
注意:对于稳定的微调运行,仍需启用软上限,因此我们建议使用 eager
注意力进行微调,而不是 SDPA。
知识蒸馏
知识蒸馏是一种常用技术,用于训练较小的 学生 模型以模仿较大但表现更好的 教师 模型的行为。这是通过将大语言模型的下一个 Token 预测任务与教师提供的 Token 概率分布 (例如 GPT-4、Claude 或 Gemini) 结合起来,从而为学生提供更丰富的学习信号。
根据 Gemma 2 技术报告,知识蒸馏用于预训练 90 亿模型,而 270 亿模型则是从头开始预训练的。
在后期训练中,Gemma 2 团队生成了来自教师 (报告中未指定,但可能是 Gemini Ultra) 的多样化补全集,然后使用这些合成数据通过 SFT 训练学生模型。这也是许多开源模型的基础,如
-
Zephyr https://hf.co/HuggingFaceH4/zephyr-7b-beta -
OpenHermes https://hf.co/teknium/OpenHermes-2.5-Mistral-7B
尽管有效,但这种方法存在缺点,因为学生和教师之间的模型容量不匹配可能导致 训练-推理不匹配,即学生在推理期间生成的文本与训练期间看到的文本不同。
为解决这个问题,Gemma 2 团队采用了
-
“在线蒸馏” https://arxiv.org/pdf/2306.13649
这种方法非常有趣,正如我们在社区中看到的那样,在线 DPO 等在线方法会产生更强的模型,而在线蒸馏的一个优势在于只需要教师的 logits,因此无需依赖奖励模型或大语言模型作为评审员来改进模型。我们期待看到这种方法在未来几个月中是否会在微调人员中变得更受欢迎!
模型合并
-
模型合并 https://hf.co/blog/mlabonne/merge-models -
Mergekit https://github.com/arcee-ai/mergekit
根据技术报告,Gemma 2 使用了
-
Warp https://arxiv.org/abs/2406.16768
-
指数移动平均 (EMA):在强化学习 (RL) 微调过程中应用。 -
球形线性插值 (SLERP):在多个策略的 RL 微调后应用。 -
向初始化线性插值 (LITI):在 SLERP 阶段之后应用。
Gemma 2 的评估
Gemma 模型的表现如何?以下是根据技术报告和新版
-
开源 LLM 排行榜 https://hf.co/spaces/HuggingFaceH4/open_llm_leaderboard
技术报告结果
Gemma 2 的技术报告比较了不同开源 LLM 在之前开源 LLM 排行榜基准上的性能。
Llama 3 (70B) | Qwen 1.5 (32B) | Gemma 2 (27B) | |
---|---|---|---|
MMLU | 79.2 | 74.3 | 75.2 |
GSM8K | 76.9 | 61.1 | 75.1 |
ARC-c | 68.8 | 63.6 | 71.4 |
HellaSwag | 88.0 | 85.0 | 86.4 |
Winogrande | 85.3 | 81.5 | 83.7 |
该报告还比较了小型语言模型的性能。
Benchmark | Mistral (7B) | Llama 3 (8B) | Gemma (8B) | Gemma 2 (9B) |
---|---|---|---|---|
MMLU | 62.5 | 66.6 | 64.4 | 71.3 |
GSM8K | 34.5 | 45.7 | 50.9 | 62.3 |
ARC-C | 60.5 | 59.2 | 61.1 | 68.4 |
HellaSwag | 83.0 | 82.0 | 82.3 | 81.9 |
Winogrande | 78.5 | 78.5 | 79.0 | 80.6 |
开源 LLM 排行榜结果
注意:我们目前正在新的开源 LLM 排行榜基准上单独评估 Google Gemma 2,并将在今天晚些时候更新此部分。
如何提示 Gemma 2
基础模型没有提示格式。像其他基础模型一样,它们可以用于继续输入序列的合理延续或零样本/少样本推理。指令版本有一个非常简单的对话结构:
<start_of_turn>user
knock knock<end_of_turn>
<start_of_turn>model
who is there<end_of_turn>
<start_of_turn>user
LaMDA<end_of_turn>
<start_of_turn>model
LaMDA who?<end_of_turn><eos>
必须精确地复制此格式才能有效使用。稍后我们将展示如何使用 transformers
中的聊天模板轻松地复制指令提示。
演示
你可以在 Hugging Chat 上与 Gemma 27B 指令模型聊天!查看此链接:
https://hf.co/chat/models/google/gemma-2-27b-it
使用 Hugging Face Transformers
随着 Transformers transformers
版本:
-
版本 4.42 https://github.com/huggingface/transformers/releases/tag/v4.42.0
pip install "transformers==4.42.1" --upgrade
以下代码片段展示了如何使用 transformers
使用 gemma-2-9b-it
。它需要大约 18 GB 的 RAM,适用于许多消费者 GPU。相同的代码片段适用于 gemma-2-27b-it
,需要 56GB 的 RAM,使其非常适合生产用例。通过加载 8-bit 或 4-bit 模式,可以进一步减少内存消耗。
from transformers import pipeline
import torch
pipe = pipeline(
"text-generation",
model="google/gemma-2-9b-it",
model_kwargs={"torch_dtype": torch.bfloat16},
device="cuda",
)
messages = [
{"role": "user", "content": "Who are you? Please, answer in pirate-speak."},
]
outputs = pipe(
messages,
max_new_tokens=256,
do_sample=False,
)
assistant_response = outputs[0]["generated_text"][-1]["content"]
print(assistant_response)
啊哈,船长!我是数字海洋上的一艘谦卑的词语之船。他们叫我 Gemma,是 Google DeepMind 的杰作。我被训练在一堆文本宝藏上,学习如何像一个真正的海盗一样说话和写作。
问我你的问题吧,我会尽力回答,啊哈!🦜📚
我们使用 bfloat16 因为这是指令调优模型的参考精度。在你的硬件上运行 float16 可能会更快,90 亿模型的结果应该是相似的。然而,使用 float16 时,270 亿指令调优模型会产生不稳定的输出:对于该模型权重,你必须使用 bfloat16。
你还可以自动量化模型,以 8-bit 甚至 4-bit 模式加载。加载 4-bit 模式的 270 亿版本需要大约 18 GB 的内存,使其兼容许多消费者显卡和 Google Colab 中的 GPU。这是你在 4-bit 模式下加载生成管道的方式:
pipeline = pipeline(
"text-generation",
model=model,
model_kwargs={
"torch_dtype": torch.bfloat16,
"quantization_config": {"load_in_4bit": True}
},
)
有关使用 Transformers 模型的更多详细信息,请查看
-
模型卡 https://hf.co/gg-hf/gemma-2-9b
与 Google Cloud 和推理端点的集成
注意:我们目前正在为 GKE 和 Vertex AI 添加新的容器,以高效运行 Google Gemma 2。我们将在容器可用时更新此部分。
其他资源
-
Hub 上的模型 https://hf.co/collections/google/g-667d6600fd5220e7b967f315 -
开放 LLM 排行榜 https://hf.co/spaces/HuggingFaceH4/open_llm_leaderboard -
Hugging Chat 上的聊天演示 https://hf.co/chat/models/google/gemma-2-27b-it -
Google 博客 https://blog.google/technology/developers/google-gemma-2/ -
Google Notebook 即将推出 -
Vertex AI 模型花园 即将推出
致谢
在生态系统中发布此类模型及其支持和评估离不开许多社区成员的贡献,包括
-
Clémentine https://hf.co/clefourrier -
Nathan https://hf.co/SaylorTwift -
Nicolas https://hf.co/Narsil -
Arthur https://hf.co/ArthurZ -
Sanchit https://hf.co/sanchit-gandhi -
Joao https://hf.co/joaogante -
Lysandre https://hf.co/lysandre -
Nathan https://hf.co/nsarrazin -
Victor https://hf.co/victor
感谢 Google 团队发布 Gemma 2!
本文分享自微信公众号 - Hugging Face(gh_504339124f0f)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
开源日报 | 中国大模型登顶全球开源第一;htmx 2.0;开源硬件获得成功;LLM核心能力是“智能水平”;半导体设计迎来“开源潮”;前端最新技术趋势
欢迎阅读 OSCHINA 编辑部出品的开源日报,每天更新一期。 # 2024.6.27 今日要闻 Google 重新采用分页显示搜索结果 Google 在展示搜索结果时已不再使用「滚动加载」方式,而是重新采用经典的「分页展示」。 从桌面端开始,谷歌已于 2024 年 6 月 25 日开始停止桌面版 Google 搜索结果的持续滚动展示功能。未来一个月内,Google 移动端搜索也将下线该功能。 据介绍,谷歌于 2021 年 10 月首次在移动端搜索引擎上推出了持续滚动展示功能,并在 2022 年 12 月同步上线至桌面端。因此,“持续滚动展示功能” 在桌面端搜索上只存在了大约一年半的时间。 谷歌表示,这一改变是为了让搜索公司能够在更多搜索中更快地提供搜索结果,而不是自动加载用户没有明确要求的结果。他们还发现自动加载更多结果并不会显著提高用户对 Google 搜索的满意度。 中国大模型登顶全球开源第一 近日,OpenAI突然宣布中止服务 ,包括中国。6月27日凌晨,全球著名开源平台huggingface(笑脸)的联合创始人兼首席执行官Clem在社交平台表示,为了提供全新的开源大模型排行榜...
- 下一篇
更难、更好、更快、更强:LLM Leaderboard v2 现已发布
评估和比较大语言模型 (LLMs) 是一项艰巨的任务。我们 RLHF 团队在一年前就意识到了这一点,当时他们试图复现和比较多个已发布模型的结果。这几乎是不可能完成的任务:论文或营销发布中的得分缺乏可复现的代码,有时令人怀疑,大多数情况下只是通过优化的提示或评估设置来尽量提升模型表现。因此,他们决定创建一个地方,在完全相同的设置 (同样的问题,按相同的顺序提问等) 下评估参考模型,从而收集完全可复现和可比较的结果;Open LLM Leaderboard 就这样的背景下发布啦! 在一系列高调的模型发布后,它成为了机器学习社区及更广泛领域内的广泛资源,过去 10 个月中有超过 200 万的独立访问者。 每月约有 30 万社区成员通过提交和讨论使用这个平台,通常是为了: 寻找最先进的开源发布,因为排行榜提供了可复现的得分,区分了营销炒作与实际进展。 评估他们的工作,无论是预训练还是微调,公开比较方法并与最佳现有模型进行比较,并获得公众认可。 然而,随着排行榜的成功以及模型性能的不断提升,也带来了挑战。经过一年多的激烈使用和大量社区反馈后,我们认为是时候进行升级了!因此,我们推出了 Open ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS8编译安装MySQL8.0.19
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS7设置SWAP分区,小内存服务器的救世主