谷歌Gemma-2大模型技术报告

太长不看版

  • 开源的模型大小为9B和27B,还有一个小的2.6B玩具。

  • 1.3T token训练(比起最近开源的模型,这个数量不算多。)

  • RLHF中RM模型,作者强调比SFT的模型更大,应该是想要寻求一定的泛化而不仅仅是安全。

  • 注意力机制上使用了滑动窗口和全局注意力结合。

  • 用了一个叫Logit soft-capping的技术,给logit输出值的范围做了一个限制,目测有利于训练的稳定性。

  • 用 RMSNorm做了Post-norm and pre-norm。

  • 用了模型蒸馏和模型融合。

  • GQA。

  • 竞技场评估结果(不算出色,但同等大小的还不错)

图片

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

详细版:

引言

大型语言模型(LLMs)已展现出在语言理解、生成和推理方面的强劲能力。扩大规模是实现这些最新进展的关键,许多新的能力只有在模型规模扩大后才显现出来。最新的大型模型不仅在推理基准测试上达到了前所未有的性能水平,而且还展示了多模态和多语言能力,甚至能够处理超过100万个token的上下文长度。

尽管小规模模型的性能也在迅速提高,但这些提升主要是通过增加训练数据的长度来实现的。这种方法的扩展性与数据集大小成对数关系(Hoffmann et al., 2022),最新的小规模模型需要高达15T的token才能将最先进的性能提升不到1-2%(AI@Meta, 2024)。

然而,这些持续的改进证明了小规模模型仍然训练不足。在这项工作中,我们探索了提高小规模模型性能的替代方法,而不是单纯地增加训练长度。一种解决方案是通过用更丰富的目标替代下一个词预测任务,提高网络在每个训练步骤接收到的信息质量。

特别是,我们集中精力在知识蒸馏上(Hinton et al., 2015),它用从大型模型计算出的潜在下一个词的分布来替代每个token看到的独热向量。这种方法通常用于通过提供更丰富的梯度来减少较小模型的训练时间。在这项工作中,我们使用蒸馏来训练大量的token,以模拟超过可用token数量的训练。具体来说,我们使用一个大型语言模型作为教师,来训练小型模型,即9B和2.6B模型,训练的token数量超过了理论预测的计算最优数量的50倍以上(Hoffmann et al., 2022)。除了使用蒸馏训练的模型外,我们还发布了一个为此工作从头开始训练的27B模型。

我们还从Gemini团队(2023)先前使用的进步中受益,即Beltagy等人(2020a)的全局和局部注意力层的交错,以及Ainslie等人(2023)的分组查询注意力(GQA)机制。

总体而言,Gemma 2在与规模相当的开放模型相比的最先进的性能上有显著提升,甚至与规模超过它们两倍的某些模型相比也具有竞争力(AI@Meta, 2024; Almazrouei等人,2023; Jiang等人,2023; xAI),涵盖各种自动化基准测试和人类评估。示例领域包括问答(Clark等人,2019; Kwiatkowski等人,2019)、常识推理(Sakaguchi等人,2019; Suzgun等人,2022)、数学和科学(Cobbe等人,2021; Hendrycks等人,2020)以及编程(Austin等人,2021; Chen等人,2021)。

尽管我们的模型经过了彻底的测试,但这些测试无法覆盖Gemma 2可能使用的所有应用和场景。考虑到这一点,所有Gemma 2用户在部署或使用之前,应进行针对其用例的严格安全测试。

在这份技术报告中,我们提供了Gemma 2模型的概览,包括架构、训练以及训练前后的配方。我们还提供了在各种定量和定性基准上的详细评估,以及标准学术基准和人类偏好评估。最后,我们讨论了我们对安全和负责任部署的方法,并概述了Gemma 2的更广泛影响、其限制和优势

模型架构

与之前的Gemma模型(Gemma Team, 2024)类似,Gemma 2模型基于仅解码器的transformer架构(Vaswani et al., 2017)。我们在表1中总结了Gemma 2模型的主要参数和架构选择。

一些架构元素与Gemma模型的第一个版本相似;即,上下文长度为8192个token,使用旋转位置嵌入(RoPE)(Su et al., 2021),以及近似的GeGLU非线性激活函数(Shazeer, 2020)。Gemma 1和Gemma 2之间的一些元素有所不同,包括使用更深的网络。我们下面总结了主要的差异。

本地滑动窗口和全局注意力

我们在每一层交替使用本地滑动窗口注意力(Beltagy et al., 2020a,b)和全局注意力(Luong et al., 2015)。本地注意力层的滑动窗口大小设置为4096个token,而全局注意力层的跨度设置为8192个token。

Logit软上限

遵循Gemini 1.5(Gemini Team, 2024),我们在每个注意力层和最后一层中对logit进行软上限限制,使得logit的值保持在-soft_cap和+soft_cap之间。更具体地说,我们设置logit为:

对于9B和27B模型,我们将注意力logit限制在50.0,最终logit限制在30.0。请注意,注意力logit软上限在发布时与常见的FlashAttention实现不兼容,我们已经从使用FlashAttention的库中移除了这个特性,即HuggingFace transformers库和vLLM实现。我们在有无注意力logit软上限的情况下对模型生成进行了消融研究,并发现在大多数预训练和后训练评估中,生成的质量影响最小。本文中的所有评估都使用了带有注意力logit软上限的完整模型架构。尽管如此,一些下游性能可能仍会因这种移除而受到轻微影响。

后归一化和前归一化与RMSNorm

为了稳定训练,我们使用RMSNorm(Zhang和Sennrich, 2019)来归一化每个transformer子层、注意力层和前馈层的输入和输出。

分组查询注意力

27B和9B模型都使用了GQA,num_groups=2,基于消融研究显示在推理时增加了速度,同时保持了下游性能。

具体的模型参数和细节

参数/设计选择2.6B9B27B
模型尺寸230435844608
层数264246
前归一化
后归一化
非线性激活函数GeGLUGeGLUGeGLU
前馈维数184322867273728
头部类型GQAGQAGQA
头部数量81632
KV头部数量4816
头部大小256256128
全局注意力跨度819281928192
滑动窗口409640964096
词汇表大小256128256128256128
Tied embedding

预训练

我们提供了一个关于我们预训练部分的简要概述,这些部分与Gemma 1不同。

训练数据

我们训练Gemma 2 27B模型使用了1.3万亿个token的主要是英文数据,9B模型使用了8万亿个token,2.6B模型使用了2万亿个token。这些token来自多种数据源,包括网页文档、代码和科学文章。我们的模型不是多模态的,也没有专门针对最先进的多语言能力进行训练。最终的数据混合是通过类似于Gemini 1.0(Gemini Team, 2023)中的方法进行消融实验确定的。

分词器

我们使用与Gemma 1和Gemini相同的分词器:一个带有分割数字、保留空白符和字节级编码的SentencePiece分词器(Kudo和Richardson,2018)。最终得到的词汇表有256k个条目。

过滤

我们使用与Gemma 1相同的数据过滤技术。具体来说,我们过滤预训练数据集,以减少不希望或不安全的发言的风险,过滤掉某些个人身份信息或其他敏感数据,从我们的预训练数据混合中清除评估集,并通过最小化敏感输出的扩散来减少背诵的风险。

知识蒸馏

给定一个用作教师的大型模型,我们通过从教师给出的每个token的概率中学习来训练较小的模型,即𝐴?𝐴? (𝑖? | 𝑖?𝐴?)。更具体地说,我们最小化教师和学生概率之间的负对数似然:

其中是学生的参数化概率。在实践中,我们运行一次教师的推理,并将概率存储起来。由于词汇表有256k个条目,我们只存储教师概率的一个抽样子集。

计算基础设施

我们按照表3中概述的方式,使用TPUv4、TPUv5e和TPUv5p训练我们的模型。对于2.6B模型,我们在TPUv5e的2x16x16配置上训练,总计512个芯片,数据复制为512路,模型分片为1路。对于9B模型,我们在TPUv4的8x16x32配置上训练,总计4096个芯片,数据复制为1024路,模型分片为4路。对于27B模型,我们在TPUv5p的8x24x32配置上训练,总计6144个芯片,数据复制为768路,模型分片为8路。

优化器状态进一步使用类似于ZeRO-3(Ren等人,2021)的技术进行分片。对于超出单一pod的规模,我们使用Barham等人(2022)的Pathways方法,在数据中心网络上执行数据副本减少。我们还使用Jax(Roberts等人,2023)的“单一控制器”编程范式和Pathways(Barham等人,2022)。与Gemma 1一样,我们使用GSPMD分区器(Xu等人,2021)进行训练步骤计算,以及MegaScale XLA编译器(XLA,2019)。

评估

在本节中,我们在一系列自动化基准测试和不同领域的人类评估中评估了预训练和 指令微调的模型。我们还报告了具有类似规模的其他模型的性能,这些模型拥有开放许可或由他人报告。请注意,我们考虑的是总参数量,而不仅仅是活跃参数量,因为总内存使用量通常是限制开放模型在标准设备上使用的因素。

预训练评估

整体评估
在这里插入图片描述

竞技场评估
在这里插入图片描述

评估27B模型

在这里插入图片描述

在这套评估中,我们评估了在13万亿token上训练而没有使用蒸馏的27B模型的性能。我们在表12中报告了结果,将其与规模相似的模型Qwen1.5 34B(Team, 2024)以及规模大2.5倍的模型LLaMA-3 70B在HuggingFace评估套件上进行了比较。我们根据它们在HuggingFace排行榜上的排名选择了这些模型。

总体而言,我们观察到,我们的模型在其规模类别中是最好的,甚至与训练时间更长的大型模型也具有竞争力。也就是说,以类似方式训练的模型的性能仅随着其规模的增加而对数增长,因此,我们的模型可能与LLaMA-3模型处于相同的帕累托曲线上。然而,目前尚不清楚这些差异如何影响最终IT模型的质量。

评估2.6B和9B模型

在这套实验中,我们将使用蒸馏训练的新2.6B和9B模型与我们之前的模型和几个标准开放模型进行了比较(Gemma Team, 2024)。

我们观察到,与之前的版本相比,我们的模型总体上有了巨大的改进,9B模型在某些基准测试中的性能提高了高达10%。两个2.6B模型分别使用了相似数量的token进行训练(v2为2T,v1.0为3T),我们仍然观察到新模型有显著的改进。这证实了即使在相同数量的token上训练,蒸馏也能显著提高模型的质量。

训练后评估

在本节中,我们在一组人类评估和标准学术基准上评估了我们的IT模型。Gemma 9B和27B IT模型推动了训练后开放权重模型的前沿,在LMSYS Chatbot Arena(Chiang等人,2024)上设定了新的最先进水平。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值