2026年7月2日 周四晚上19:30,报名腾讯会议了解“如何构建自进化的动态知识库(Brain)”(限30人)
免费POC, 零成本试错
FDE知识库

FDE知识库

学习大模型的前沿技术与行业落地应用


收藏

Google最新开源大语言模型:Gemma 2介绍及其微调(上篇)

发布日期:2024-07-25 08:39:47 浏览次数: 4284
  • 引言
  • 简介
  • Gemma 2模型介绍
    • 架构设计
    • 训练方法
    • 后训练优化
    • 关键发现:知识蒸馏的影响
    • 性能评估
  • 使用
    • 体验:Hugging Chat
    • 如何提示 Gemma 2
    • 基于Hugging Face Transformers
  • 结论与展望
  • 模型汇总

引言

两岸荔枝红,万家烟雨中。

小伙伴们好,我是微信公众号《小窗幽记机器学习》的小编:卖荔枝的小男孩。Google 最近谷歌发布了开源大语言模型 Gemma 2,目前可以在 huggingface 上找到 4 个开源模型(2 个基础模型和 2 个微调模型)。今天这篇小作文主要介绍Gemma 2的一些技术特点及其使用初体验,下一篇小作文将介绍如何微调Gemma 2模型。

技术报告原文:https://storage.googleapis.com/deepmind-media/gemma/gemma-2-report.pdf

简介

2024年6月27日,Google DeepMind发布了Gemma 2,这是Gemma系列轻量级开放语言模型的最新成员。Gemma 2在架构和训练方法上都有重大创新,在多项基准测试中取得了显著进步,甚至可以与参数规模大2-3倍的模型相媲美。本文将对Gemma 2技术报告的主要内容进行解读,包括模型架构、预训练和后训练方法、性能评估等方面。

Gemma 2 模型的训练数据量约为其第一代的两倍,总计 13 万亿 Tokens(27b 模型)和 8 万亿 Tokens(9b 模型)的网页数据(主要是英语)、代码和数学数据。官方尚未透露训练数据混合的具体细节。

Gemma 2模型介绍

Gemma 2系列包括三种规模的模型:27B(270亿参数)、9B(90亿参数)和2.6B(26亿参数)。其中27B和9B模型已经发布,2.6B模型即将发布。这些模型均采用Transformer解码器架构,具有以下主要特点:

  • 上下文长度为8192个token
  • 使用旋转位置编码(RoPE)
  • 采用近似GeGLU非线性激活函数
  • 交替使用局部滑动窗口注意力和全局注意力
  • 应用logit软上限技术
  • 使用RMSNorm进行后归一化和前归一化
  • 9B和27B模型采用分组查询注意力(GQA)机制

架构设计

相比Gemma 1,Gemma 2在架构上有几项重要改进:

(1) 局部滑动窗口和全局注意力交替

Gemma 2在每隔一层交替使用局部滑动窗口注意力和全局注意力。局部注意力的窗口大小为4096个token,全局注意力的跨度为8192个token。这种设计兼顾了计算效率和长程依赖建模能力。

(2) Logit软上限

在每个注意力层和最终输出层,Gemma 2对logit值进行软上限处理,将其限制在[-soft_cap, +soft_cap]范围内。具体实现为:

logits ← soft_cap * tanh(logits/soft_cap)

9B和27B模型的注意力logit上限为50.0,最终logit上限为30.0。这项技术有助于稳定训练过程和生成质量。

(3) RMSNorm归一化

Gemma 2使用RMSNorm来归一化每个Transformer子层、注意力层和前馈层的输入和输出,以提高训练稳定性。

(4) 分组查询注意力(GQA)

9B和27B模型采用了GQA机制,组数为2。实验表明,GQA可以在保持下游任务性能的同时提高推理速度。

训练方法

Gemma 2的另一大亮点是采用了创新的训练方法,尤其是对较小规模模型(9B和2.6B)使用知识蒸馏技术。

(1) 预训练数据

27B模型在13万亿token的数据上训练,9B模型使用8万亿token,2.6B模型使用2万亿token。训练数据主要为英语,来源包括网页文档、代码和科学文章等。tokenizer采用SentencePiece方法,词表大小为256k。

(2) 知识蒸馏

对于9B和2.6B模型,Gemma 2团队创新性地将知识蒸馏应用于大规模预训练。具体做法是:使用一个大型模型作为教师,最小化学生模型与教师模型在每个token的条件概率分布之间的负对数似然。这种方法可以在有限的计算资源下,让小模型获得类似于训练更多token的效果。

(3) 计算基础设施

Gemma 2使用了TPUv4、TPUv5e和TPUv5p进行训练,采用数据并行和模型并行相结合的策略。例如,27B模型在6144个TPUv5p芯片上训练,采用768路数据复制和8路模型分片。

后训练优化

为了进一步提升模型性能和安全性,Gemma 2在预训练后进行了一系列优化:

(1) 监督微调(SFT)

在英语指令-响应对数据集上进行监督微调,数据包括合成和人工生成的样本。

(2) 人类反馈强化学习(RLHF)

在SFT基础上应用RLHF,奖励模型基于标注的英语偏好数据训练,策略使用与SFT相同的提示。

(3) 模型融合

将不同超参数实验得到的模型进行平均,以提升整体性能。


关键发现:知识蒸馏的影响

技术报告重点介绍了知识蒸馏对小型语言模型性能的显著影响:

  • 在500B token上训练的2.6B模型,使用知识蒸馏比从头训练在3项基准测试的平均分上高出7.4个百分点。
  • 随着模型规模增加(从200M到1B参数),知识蒸馏带来的收益依然存在。
  • 在9B规模上,使用GQA替代多头注意力(MHA)对性能影响不大,但可以减少参数量并提高推理速度。
  • 对于9B模型,更深的网络结构略优于更宽的结构。
  • 可以在推理时调整局部注意力的滑动窗口大小,对困惑度的影响较小,为推理速度优化提供了灵活性。

性能评估

Gemma 2在多项基准测试中展现出优异性能:

  • 在同等规模的开放模型中达到最佳性能
  • 甚至可以与参数量大2-3倍的模型相竞争
  • 在问答、常识推理、数学科学、编程等多个领域的任务上表现出色

具体评估涵盖了以下方面:

  • 自动化基准测试
  • 人工评估
  • 问答能力(如SQuAD、Natural Questions)
  • 常识推理(如WinoGrande、HellaSwag)
  • 数学和科学(如MATH、MMLU)
  • 代码能力(如HumanEval、MBPP)

使用

体验:Hugging Chat

你可以在 Hugging Chat 上与 Gemma 27B 指令模型聊天!查看此链接:https://huggingface.co/chat/models/google/gemma-2-27b-it

如何提示 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 Face Transformers

随着 Transformers 版本 4.42  的发布,你可以使用 Gemma 并利用 Hugging Face 生态系统中的所有工具。要使用 Transformers 使用 Gemma 模型,请确保使用最新的 transformers 版本:

pip install "transformers>=4.42.3" --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""请模仿蔡坤的方式说两句土味情话"},
]
outputs = pipe(
    messages,
    max_new_tokens=256,
    do_sample=False,
)
assistant_response = outputs[0]["generated_text"][-1]["content"]
print(assistant_response)

输出结果如下:

1. 你就像一碗热腾腾的番茄鸡蛋面,让我欲罢不能!
2. 你的眼睛像星星一样闪亮,照亮了我这颗孤独的心!


希望你喜欢我的土味情话!?

这里我们使用 bfloat16 因为这是指令调优模型的参考精度。在你的硬件上运行 float16 可能会更快,90 亿模型的结果应该是相似的。然而,使用 float16 时,270 亿指令调优模型会产生不稳定的输出:对于该模型权重,你必须使用 bfloat16。

你还可以自动量化模型,以 8-bit 甚至 4-bit 模式加载。加载 4-bit 模式的 270 亿版本需要大约 18 GB 的内存,使其兼容许多消费者显卡和 Google Colab 中的 GPU。这是你在 4-bit 模式下加载生成管道的方式:

import os
from transformers import pipeline
import torch

init_model_dir = "/share_model_zoo/LLM/"
# init_model_id = "google/gemma-2-9b"
init_model_id = "google/gemma-2-9b-it"
init_model_path = os.path.join(init_model_dir, init_model_id)

pipeline = pipeline(
    "text-generation",
    model=init_model_path,
    model_kwargs={
        "torch_dtype": torch.bfloat16,
        "quantization_config": {"load_in_4bit"True}
    },
    device_map="auto",
)

messages = [
    {"role""user""content""请模仿蔡坤的语气说两句土味情话"},
]
outputs = pipeline(
    messages,
    max_new_tokens=256,
    do_sample=False,
)
assistant_response = outputs[0]["generated_text"][-1]["content"]
print(assistant_response)

输出结果如下:

1.  宝贝,你就像一朵盛开的玫瑰,香气迷人,让我忍不住想把你捧在手里,永远守护着。
2.  你是我这辈子最想遇见的人,就像天上的星星,照亮我的整个世界,让我不再迷茫。


希望你喜欢这些土味情话!

有关使用 Transformers 模型的更多详细信息,请查看模型卡。

结论与展望

Gemma 2代表了轻量级开放语言模型的重大进展。通过创新的架构设计和训练方法,尤其是知识蒸馏技术的大规模应用,Gemma 2在有限的参数规模下实现了卓越的性能。这不仅推动了语言模型技术的发展,也为更广泛的AI应用提供了高效、实用的解决方案。

未来的研究方向可能包括:

  • 进一步优化知识蒸馏技术
  • 探索更高效的模型架构
  • 增强模型的多语言和跨领域能力
  • 改进模型的安全性和可控性

总的来说,Gemma 2的成功表明,通过精心的设计和创新的训练方法,我们可以在不盲目追求参数规模的情况下,显著提升语言模型的能力。这为构建更高效、更易部署的AI系统开辟了新的可能性,有望推动AI技术在更多实际场景中的应用与落地。

模型汇总

模型百川2千问Qwen1天工Gemma 2
参数量7B,13B7B,14B13B2.6B, 9B,27B
预训练token数2.6万亿3万亿3.2万亿2.6B:2万亿;9B:8万亿;27B:13万亿
tokenizerBPEBPEBPEBPE
词表大小125696152K65536256k
位置编码7b:RoPE ; 13b:ALiBi (影响不大)RoPERoPERoPE
最长上下文4096训练时2048;推理时8K40968192
模型外推--NTK插值、窗口注意力、LogN注意力缩放等技术来提升模型的上下文长度----
激活函数SwiGLUSwiGLUSwiGLUGeGLU
归一化Layer Normalization; RMSNormPre-Norm; RMSNormPre-Norm; RMSNormPre-Norm; RMSNorm
注意力机制xFormers2Flash AttentionFlash Attention V2GQA
优化器AdamW+NormHead+Max-z损失AdamWAdamW--
特色Infrastructure、Scaling Laws--两阶段的预训练滑动窗口注意力,Logit 软上限,知识蒸馏,模型合并


53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询

扫码登录
登录即表示您同意《53AI网站服务协议》
服务协议

欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。

在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。

一、 定义

本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。

会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。

知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。

二、 账号注册与登录

登录方式:本网站支持以下登录方式,您可根据实际情况选择:

微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。

手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。

账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。

实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。

未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。

三、 服务内容与规范

知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。

服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。

禁止行为:您在使用服务时不得实施以下行为:

利用技术手段批量爬取、下载、转存知识库内容;

将知识库内容用于商业目的或未经授权地向第三方传播;

干扰本网站正常运行或侵犯其他用户合法权益;

发布违法违规信息或从事违反公序良俗的活动。

四、 知识产权声明

权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。

有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。

侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。

五、 个人信息保护

我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。

您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。

您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。

六、 免责声明

内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。

不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。

第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。

七、 违约责任

如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。

如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。

八、 法律适用与争议解决

本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。

因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。

九、 其他

本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。

本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。

我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。


已查阅