©作者 | 郑奘巍单位 | 新加坡国立大学科研方向 | 有效设备学习与神经网络优化
从理论分析入手把握大规模神经网络优化的规律,能够指点实践中的超参数选取。反过来,实践中的超参数选取亦能够指点理论分析。本篇文案聚焦于大语言模型,介绍从 GPT 败兴大众广泛运用的训练超参数的变化。
规模律科研的是随着神经网络规模的增大,超参数、性能是怎样改变的。规模律是对模型、数据、优化器关系的深刻刻画,揭示大模型优化时的广泛规律。经过规模律,咱们能够用少量成本在小模型上验证超参数的选取和性能的变化状况,继而外推到大模型上。
在 LLM 中规模性常常变换模型体积和数据规模,进行海量调参而保持优化器不变。故针对大模型优化器而言,规模性是其性能很好的展现(性能上限)。设计更好的优化器(用更少的数据达到相同的性能)便是在挑战现有的规模律。 超参最佳实践咱们首要回顾从 GPT 败兴重要文案中运用的超参数,本文将区别模型的超参数列举在下方。首要,除了 Google 的 T5, PaLM 外,其它的模型都是用了 Adam 类的优化器(Adam 或 AdamW)。其次,超参数选取上的更新都是在前人的基本上慢慢变化,并被后续采纳的。这包含运用 dropuout、梯度范数裁剪(Megatron-LM),批量的动态变化(GPT-3),Adam(GPT-3)。学习率:咱们发掘随着模型的增大,学习率越来越小。学习率与数据量、批量体积都没有显著的关系,且通常运用 上下的学习率。学习率的变化策略都包含 warmup 和衰减(decay)两周期。日前广泛运用 GPT-3 中余弦衰减到原学习率的非常之一。谷歌则倾向于运用平方根衰减(优点之一在于不消提前晓得训练步数)。批量体积:训练运用的批量体积随着模型的增大亦在持续增大,从 GPT 的 32k、BERT 的 128k,到 GPT-3 的 3.2M、LLaMA 的 4M。值得重视的是,GPT-3 的批量体积是从 32k 起始,在 12B tokens 的训练中逐步增多到 4M 的,批量体积增多了 125 倍。OpenAI 在论文中认为随着学习的进行,模型能够承载的批量体积快速增多。而后续非常多工作直接运用了更大的批量。这可能是批量增大的过程只占总数据的 2%,即使直接运用最大批量亦不会导致太大的问题。权重衰减 /L2 正则化:在 L2 正则化(或 weight decay)上,GPT 与 BERT 都运用了正则化,后续的模型有些运用而有些无运用。首要重视到,在 GPT 和 BERT 时代,数据量还是大于模型参数量的(over-parameterized),训练时亦是运用多轮训练(multi-epoch)。而随着人们认识到数据的重要性,数据量已然超越模型的参数量的(GPT3, 680B tokens, 175B params, under-parameterized),训练时亦只运用了一轮训练(single-epoch)。按照 [ADV+23] 中的分析,在 over-parameterized 网络中运用 weight decay 相当于对优化器施加了潜在的正则;而在 under-parameterized 网络中,weight decay 只是改变了实质的学习率。随着网络训练权重的变化,相当于施加了自适应的学习率变化策略。在本文的最后列举了区别模型的超参选取。其中 Adam 括号中的数字表率 ,sch 为学习率调节策略,bs为批量体积,L2 为权重衰减的 权重,init 为初始化办法。
神经网络规模律神经网络规模律(neural scaling laws)经过低价的小规模实验来预测大规模模型的表现,从而决定最佳的架构、算法、数据集、超参数等等。从广义上讲所有原因都能够科研:模型的宽度,数据数量,计算资源(FLOPs)等等。
上图是强化学习中的有些例子,黑色点为实验数据,红色线为拟合的规模律,绿色点为验证数据。能够看到,倘若规模律的拟合效果好,就能够用来预测大规模模型的表现。除了以上单调的规模律,还有有些非单调的规模律,如下图所示。Tranformer 的性能随着模型的宽度增多先增多后减小最后再增多。
神经网络规模律的科研重点之一在于科研什么样的曲线能够拟合以上现象。一个简单的拟合策略是运用 ,这能够对付不少状况,然而没法应对以上非单调的状况。[CGR+23] 提出了自己的拟合曲线 BNSL(broken neural scaling laws)其中 对应横坐标,其它参数为拟合参数。其中, 表率了曲线由 段构成,当 时便是 。大众不消纠结于公式的详细形式,该公式只是期盼“大包大揽”,把所有可能的规模性都思虑进来。这个公式准许显现下图中所示的三种变化方式,拥有很高的灵活性。
大语言模型规模律讨论大语言模型规模律最重要的两篇能够说是 OpenAI 的 [KMH+20] 和 DeepMind 的 Chinchilla[HBM+22] 了。咱们将重点介绍这两篇文案的结论。定义 为模型参数量, 为数据量, 为计算量(FLOPs), 为损失值。超参数分为优化超参数(学习率等)和架构超参数(如深度、宽度)。 为批量体积, 为训练步数,针对单轮训练,。其中针对大语言模型,确定 和 体积后,就能够估算出。实质中咱们持有的计算量为 时,为了得到最低的损失 ,咱们期盼经过选取 和 使得 最小。记 为给定计算量下最佳的 ,即1. 模型性能与 密切关联,与架构超参数关系不大。2. L 与 成幂律分布(Power-law),即。
这儿 指的是在给定 下的最佳性能,即最低的损失值。该规律的前提要求是不受另一两个原因制约。因为 ,该规律最后会失效,但 [KMH+22] 的实验规模使咱们看不到这一点。3. 给定计算量后, 。该结论即当模型参数翻倍后,数据量亦应该翻倍从而得到最优性能。这是 [HBM+22] 中对 [KMH+20] 重点纠正的结论。下图中黑色虚线为 [KMH+20] 的结论,其它三色线是 [HBM+22] 用三个办法得出的相同结论,并且按照该放缩率训练了 Chinchilla 模型。
在 [KMH+20] 中,作者认为模型增大 5 倍,数据量增大 8 倍。[HBM+22] 认为两个原因引起了[KMH+20] 中的错误:对区别的 无尝试运用区别的学习率调节策略(正确的学习率调节策略对训练影响很大)[KMH+20] 运用的 较小。规模性存在曲率,引起用太小的 得到的结论不准确。(规模性存在曲率亦说明了最后该规律会失效)
这儿展式 [HBM+20] 中的一种论证,即绘制相同 下区别 与最优 的关系,从而得到最优配置。
Chinchilla 规模律的最后拟合结果如下,经过代入 咱们能够计算得到述 的取值,并能够揭示数据与模型规模应该同期增多的规律。另外,在 Chinchilla 的设置下,。4. 临界批量体积 ,与其它原因弱关联。临界批量体积在大规模神经网络优化:批量与噪声中有过介绍,能够理解为运用相同 能够达到相同 的最大 。在 [KMH+20] 中,拟合得到 。 约小能够用的批量越大亦解释了上文 GPT-3 模型中批量体积的增大。
另一方面,训练损失随着训练步数呈现快速下降-线性-平坦三个周期的特点(见下图 Llama 训练图)。因为训练初期训练损失的快速下降,临界批量体积又随损失幂律下降,可见临界批量大小随训练步数下降的火速。咱们用将 llama 的损失带入计算,当训练的非常前期损失就能下降到 2.2,临界批量体积 4.7M,这与 llama 运用的 4M 批量体积吻合。这亦解释了为何能够省略掉批量体积的调节。
倘若损失能够下降到 1.5,临界批量体积就会增多到 30M,因此 llama 能够在训练中进一步增多批量体积的运用。按此推断,GPT-4 最后运用了 60M 的批量体积,对应的训练损失可能为 1.3。
5. 模型的迁移泛化能力与在训练数据集上的泛化能力正关联。如右图所示,在训练数据集上的测试损失越低,则在其它数据集上的损失亦越低(如训练在 Wikipedia,测试在 WebText2)。右图则表示随着参数量增大,模型的测试损失越低。且在区别数据集上的测试损失与在训练集上的测试测试损失仅仅相差一个常数偏移。
6. 更大的模型收敛更快(更少的数据量达到相同的损失)下图中越亮的线表率更大的模型。左图说明达到相同的测试损失,运用大模型需要见到的数据量更少。右图中则是运用相同计算量的比较。两条线的交点分割了运用体积模型的优劣:在交点左侧应该运用小模型,在交点右侧应该运用大模型。
图中另一一个重要的观察是,训练后期损失下降的更慢。故与其训练一个小模型到收敛,不如用相同的资源训练一个不到收敛的大模型更加有效。
大语言模型规模律拾遗除了以上两篇经典文案之外,不少文案亦给出了自己的洞见。
3.1 涌现指的是标选取的结果,连续指标与参数规模符合幂律分布涌现现象指的是模型的某些性能随着模型参数增多到必定规模忽然不可预测的快速提高。这被认为是大模型能力的重要表现。这儿咱们科研的指的是标性能与模型参数的关系,亦是一种规模律。
[SMK23] 论文则指出,大部分所说的涌现现象,都出此刻两种指标上:多选题的正确性,以及完全字符串匹配正确性。更换指标能够更好的对模型能力的规模性进行预测。上文中咱们已然晓得,模型损失值随模型参数指数下降(图A),从而能够得到单个样本预测的正确率指数提升(图B)。倘若将非线性指标“完全字符串匹配正确率”替换为“错误预测的 Token 数”,能够发掘一样的幂律分布。同理,将不连续的选取正确率替换为连续的选取正确率,亦能够得到幂律分布。
笔者认为,这篇文案不该该看做对”涌现“重要性的否定。在现实世界、生活、市场中,咱们关心的指标便是非线性,或说非连续指标。这篇文案的道理在于,咱们能够用连续指标更好的建模规模律,从而预测非连续指标的变化。同期,这亦揭示了大模型中”量变产生质变“的背面机理,并不需要用“整体的繁杂交互”进行解释。
3.2 大模型需要更小的学习率
经过上文中的大模型参数经验,咱们很容易就发掘大模型需要更小的学习率。[YHB+22] 在下左图中展示了这点。其认为这是为了掌控总方差在必定值(方差随参数量以 增大)。针对这点笔者暂未找到仔细的理论解释。[YHB+22] 中还提出了一种新的初始化和参数设置办法以保准区别规模的模型能够运用相同的学习率,这儿再也不展开。
3.3 运用重复数据训练时(multi-epoch),应该用更加多的轮次训练较小的模型[MRB+23] 探究了当数据有限时,怎样训练大模型。左图中,当轮次少于 4 时,与运用新数据效果相当(GPT-4 中重复了文本两次,代码四次,与该结果印证)。当轮次大于 40 次时,则几乎无提高。右图中,用左图的拟合结果能够计算得到,相比于 Chinchilla 的规模性,运用重复数据训练时,应该用更加多的数据(重复数)训练较小的模型。
3.4 运用重复数据训练对训练帮忙很小[XFZ+23] 进行了海量的实验验证了一系列观点。下左图中,作者在 Encoder-Decoder 模型上验证了 Chinchilla 规模律一样成立(即数据量与模型参数量应该同期增多)。右图则表示了运用出发数据训练对性能无帮忙。文中还尝试了高质量数据、UL2 训练目的、区别的正则化办法,最后发掘除了 Dropout 之外对重复训练都无帮助。
3.5 训练比 Chinchilla 规模律更小的模型
Chinchilla 规模律的出发点是给定计算量,经过分配参数量和数据量最小化损失值。换言之,给定要达到的损失值,最小化计算量。然而在实质中,训练一个小模型能带来计算量(表率训练开销)以外的收益: 小模型安排后进行推理成本更小
小模型训练所需的集群数量更少 故 [H23] 提出,在不大幅度增多训练开销的前提下,尽可能减小模型的参数量。详细而言,作者在 Chinchilla 规模律的基本上,让模型的参数量变为 ,从而计算出达到相同损失所需的数据量 。经过推导可得 与 无关,即无论训练开销多大, 与 的关系都是一致的。下图展示了计算量的增多值 与 的关系。
其中,LLaMA-7B 就比 Chinchilla 中对应的最优解运用了更小的模型和更加多的计算量(数据)。因为参数量减小到必定程度,需要的计算量会有急剧的提升,作者认为模型的体积不该该少于临界模型体积。譬如当运用 30% 的参数量时,所需计算量会增多 100%。参数量不该该再继续减小(否则计算量会提升非常多)。在 Llama-2 上咱们亦能看到类似的现象。按照 Chinchilla 规模性,2T 数据对应大约 50B 的参数量。因此针对 Llama-2-7b 来讲,训练了一个相对更小的模型。而针对 Llama-2-70b 来讲,则不足效率。
Werra 认为咱们应该用更加多的数据继续训练更小的模型。这其中的难点在于:训练所需的数据量不足(正如 [XFZ+23] 指出的,咱们正在用尽互联网上所有的 tokens)。
小集群上训练小模型需要更长的训练时间(Llama2 500k its);倘若运用大集群训练则更困难(例如要运用更大的批量体积才可提有效率)。
LLM 的超参选取
4.1 GPT(117M): Adamlr:2.5e-4sch: warmup linear 2k, cosine decay to 0bs: 32k=64x512its: 3M (100e)L2: 0.01init: N(0, 0.02)4.2 BERT(330M):Adam(0.9,0.999)lr: 1e-4sch: warmup 10k, linear decay to 0bs: 128k=256x512its: 1M (40e)L2: 0.01dropout: 0.1
4.3 Megatron-LM(GPT2 8.3B & Bert 3.9B): Adamlr: 1.5e-4sch: warmup 2k, cosine decay to 1e-5bs: 512k=512x1024its: 300kL2: 0.01dropout: 0.1gradient norm clipping: 1.0init: N(0, 0.02), weights before residual layer 4.4 T5 (11B)AdaFactorlr: 1e-2sch: warmup constant 10k, sqrt decaybs: 65k=128x512its: 500k (1e)4.5 GPT-3Adam(0.9, 0.95, eps=1e-8)lr & final bs:
sch: warmup linear 375m tokens, cosine decay to 0.1xlr 260b tokens, continue training with 0.1xlrbs sch: 32k to final bs gradually in 4-12B tokensseq length: 2048data: 680Bgradient norm clipping: 1.04.6 GopherAdam (Adafactor unstable beyond 7.1B)lr & final bs:
sch: warmup 1.5k, cosine decay to 0.1xlrgradient norm clipping: 0.25 for 7.1B & 280B, 1.0 for the rest4.7 Chinchilla (70B)AdamWlr: 1e-4bs: 1.5M to 3Mothers follow Gopher4.8 OPTAdam(0.9, 0.95) (SGD plateau quickly)lr & bs:
sch: warmup linear 2k, decay to 0.1xlrL2: 0.1dropout: 0.1gradient norm clipping: 1.0init: N(0, 0.006), output layer N(0, 0.006*)4.9 PaLMAdafactor(0.9, 1-)lr 1e-2sch: warmup 10k, decay atbs: 1M (<50k), 2M (<115k), 4M (<255k)L2: lrdropout: 0.1gradient norm clipping: 1.0its: 255kinit: N(0,embedding N(0,1)4.10 LLaMA (RMSNorm, SwiGLU, RoPE)AdamW(0.9, 0.95)lr & bs:
sch: warmup 2k, decay to 0.1xlrL2: 0.1gradient norm clipping: 1.04.11 LLaMA2AdamW(0.9, 0.95, eps=1e-5)lr
sch: warmup 2k, decay to 0.1xlrL2: 0.1gradient norm clipping: 1.0
参考文献
[ADV+23] Why do we need weight decay in modern deep learning?
[CGR+23] Broken neural scaling laws
[HBM+22] Training Compute-Optimal Large Language Models
[KMH+20] Scaling Laws for Neural Language Models
[SMK23] Are Emergent Abilities of Large Language Models a Mirage?
[YHB+22] Tensor Programs V: Tuning Large Neural Networks via Zero-Shot Hyperparameter Transfer
[MRB+23] Scaling Data-Constrained Language Models
[XFZ+23] To Repeat or Not To Repeat: Insights from Scaling LLM under Token-Crisis [H23] Go smol or go home
更加多阅读
#投 稿 通 道#
让你的文字被更加多人看到
怎样才可让更加多的优秀内容以更短路径到达读者群体,缩短读者寻找优秀内容的成本呢?答案便是:你不认识的人。
总有有些你不认识的人,晓得你想晓得的东西。PaperWeekly 或许能够作为一座桥梁,促进区别背景、区别方向的学者和学术灵感相互碰撞,迸发出更加多的可能性。
PaperWeekly 鼓励高校实验室或个人,在咱们的平台上分享各类优秀内容,能够是最新论文诠释,亦能够是学术热点剖析、研究心得或竞赛经验讲解等。咱们的目的仅有一个,让知识真正流动起来。
|