当前位置: 首页 > 科技观察

JeffDean:我们写了一篇《稀疏模型设计指南》,请查看

时间:2023-03-12 08:59:20 科技观察

稀疏模型在深度学习领域发挥着越来越重要的作用。对于给定的token或sample,它只能激活模型的一小部分,这样在拥有大量参数的同时也能计算友好。然而,如何可靠地训练此类模型仍然是一个悬而未决的问题。在这篇文章中,来自Google的BarretZoph、IrwanBello、WilliamFedus、JeffDean等研究人员给出了“GuidelinesforEfficientSparseExpertModelDesign”。稀疏专家神经网络展示了纯规模的优势,并为当今常用的静态神经网络架构提供了有效的替代方案。稀疏专家网络不是将相同的参数应用于所有输入,而是动态选择用于每个输入的参数。这允许网络极大地扩展参数的数量,同时保持每个令牌的FLOPs大致恒定。采用这些方法产生了最先进的翻译模型、4-7倍的预训练加速和GPT-3级别的一次性性能,而训练成本仅为其1/3。尽管参数数量惊人,但稀疏模型将训练大型神经网络的碳足迹减少了一个数量级。然而,困难依然存在。费杜斯等人。(2021)观察到,与以前的SOTA方法(Raffel等人,2019年)相比,稀疏1.6T参数模型实现了4倍的预训练加速,但是当在SuperGLUE等常见基准上进行微调时,却落后于较小的模型。在Artetxe等人。(2021),研究人员在域外数据上微调了MoE语言模型并观察到类似的差距。为了解决这个问题,提出了Switch-XXL模型,其参数更少,但计算空间增加到8倍(FLOPs约等于最大的T5模型),在自然语言理解任务上的表现有得到改善。.然而,必要的预训练受到以前在小规模研究中未发现的训练不稳定性的阻碍。这些不稳定性后来在其他稀疏模型中被识别出来。这些结果揭示了参数和计算之间的必要平衡,但如何可靠地训练此类模型仍然是一个悬而未决的问题。本文的目的是提高稀疏模型的实用性和可靠性。他们研究这两个问题并给出设计指南。最后,他们将稀疏模型的参数缩放到269B,其计算成本与32B的密集编码器-解码器Transformer(稳定、可转移的专家混合,ST-MoE-32B)相当。这是稀疏模型首次在迁移学习中取得SOTA性能,跨越一系列不同的任务,包括推理(SuperGLUE、ARCEasy、ARCChallenge)、总结(XSum、CNN-DM)、闭卷问答(WebQA,自然问题)和对抗性构建任务(Winogrande,ANLIR3)。本文的贡献可归纳如下:1.对稳定性技术的质量-稳定性权衡进行了大规模研究;2.引入routerz-loss解决稳定性问题,同时略微提升了模型质量;3.给出了稀疏和密集模型的微调分析,揭示了两者对batchsize和learningrate不同的超参数敏感性;他们发现较差的超参数导致几乎没有Fine-tuning增益,尽管预训练有很大的加速;4.给出了在分布式环境下设计Pareto高效稀疏模型的架构、路由和模型设计原则;5.对跨专家层的代币路由决策的定性跟踪给出分析;6.训练了一个269B的稀疏模型,以在一组不同的自然语言基准上实现SOTA性能。使用路由器z-loss稳定神经网络的最成功方法之一是激活的约束和梯度。一种流行的方法是剪裁梯度范数以补偿在通过深度网络反向传播时的梯度爆炸。在本文中,研究人员使用Adafactor优化器,因为它具有内存效率(尽管最近推出的8位优化器(Dettmersetal.,2021)可能提供更好的权衡)。Adafactor使用更新裁剪而不是梯度裁剪,其中权重的变化被限制在某个标准以下。他们试图将更新剪辑收紧到较小的值。接下来,他们调查了进入路由器的登录限制。路由器将专家的概率分布计算为float32。然而,研究人员发现,在最大范围内,这不足以产生可靠的训练结果。为了解决这个问题,他们引入了routerz-loss,其中B是token的数量,N是专家的数量,x∈RB×N是将进入router的logit。下面的表4显示,在三个运行中,更新裁剪和路由器z-loss都稳定了模型,但更新裁剪严重影响了模型的质量。因此,研究人员使用z-loss方法来修复模型的稳定性。路由器z-loss引入了另一个超参数(c_z),它是一个加权系数,作为优化总损失的一部分。总损失是交叉熵损失(L_CE)、辅助负载平衡损失(L_B)和路由器z-损失(L_Z)的线性加权组合。基于超参数扫描预训练后的最佳模型质量,我们选择c_z=0.001的值。附录B记录了预训练期间的损失。稀疏模型的设计密集模型的设计以Kaplan等人的基础工作为指导。(2020)。但是当涉及到稀疏模型时,还有无数额外的问题需要解决,例如:(1)使用多少专家?(2)使用哪种路由算法?(3)容量因子的取值是多少?(4)硬件如何改变这些决定?在这篇论文中,研究人员给出了以下建议:1.在他们的设置中,他们推荐容量因子为1.25的top-2路由,每个核心最多有一个专家;2.在评估期间,可以更改容量因子,以适应新的内存/计算要求;3、Denselayerstacking和multiplicativebias可以提高质量。有关更多详细信息,请参阅原始论文。