稀疏专家模型是一个有30年历史的概念,至今仍在广泛使用,是深度学习中的流行架构。此类架构包括混合专家系统(MoE)、开关变压器、路由网络、BASE层等。稀疏专家模型在自然语言处理、计算机视觉、语音识别等多个领域都表现出了良好的性能。最近,GoogleAI负责人JeffDean等人写了一篇稀疏专家模型的评论,回顾了稀疏专家模型的概念,提供了通用算法的基本描述,最后展望了未来的研究方向。论文地址:https://arxiv.org/pdf/2209.01667.pdf机器学习(尤其是自然语言)通过增加计算预算、训练数据和模型大小取得了重大进展。著名的里程碑语言模型包括GPT-2(Radford等人,2018年)、BERT(Devlin等人,2018年)、T5(Raffel等人,2019年)、GPT-3(Brown等人,2020年)、Gopher(Rae等人,2021年)、Chinchilla(Hoffmann等人,2022年)和PaLM(Chowdhery等人,2022年)。然而,最先进的模型现在需要数以千计的专用互连加速器,并且需要数周或数月的时间进行训练,这使得这些模型的生产成本很高(Patterson等人,2021年)。随着机器学习系统的扩大,该领域寻求更有效的培训和服务范例。稀疏专家模型已成为一种有前途的解决方案。稀疏专家模型(其中混合专家系统(MoE)是最流行的变体)是一种特殊类型的神经网络,其中一组参数被分成“专家”,每个专家都有独特的权重。在训练和推理期间,该模型将输入样本加权给特定专家,允许每个样本仅与网络参数的一个子集交互,这与传统方法对每个输入使用整个网络不同。由于每个样本仅使用少量专家,因此相对于整个模型的计算量大大减少。许多现代稀疏专家模型从Shazeer等人那里汲取灵感。(2017)。该研究训练了迄今为止最大的模型,并取得了最先进的语言建模和翻译结果。当与Transformer语言模型结合使用时,稀疏专家模型的受欢迎程度进一步飙升(Lepikhin等人,2020年;Fedus等人,2021年)。虽然大部分工作都在自然语言处理方面,但稀疏专家模型也已成功用于各种领域,包括计算机视觉(Puigcerver等人,2020年)、语音识别(You等人,2021年)和多模式学习(Mustafa等人,2022年)。克拉克等人。(2022)研究了不同模型大小和专家数量的稀疏专家模型的缩放特性。此外,许多基准测试的最新结果目前由ST-MoE等稀疏专家模型持有(Zoph等人,2022)。随着研究和工程的进步,该领域正在迅速发展。这篇评论文章将调查范围缩小到狭窄的深度学习时代(自2012年以来)的稀疏专家模型,回顾了最近的进展并讨论了有前途的未来途径。稀疏专家模型机器学习中的MoE概念至少可以追溯到30年前。在早期的概念中,专家们定义了一个完整的神经网络,而MoE类似于一种集成方法。本征等。(2013)提出在抖动MNIST上使用堆叠层专家混合架构,这项工作为后续模型的高效实现奠定了基础。沙泽尔等人。(2017)提出在两个LSTM层之间插入一个MoE层,由此产生的稀疏模型在机器翻译中实现了SOTA性能。然而,虽然这种方法取得了成功,但后续的研究却像冬眠一样停滞不前,大部分研究都转向了Transformer。2020-2021年发布GShard和SwitchTransformer,它们都用专家层替换了Transformer中的前馈层。尽管使用一层专家层的方法已成为主导范例,但过去两年的研究重新审视了专家模型作为完全独立模型的概念,以实现模块化和可组合性。下图2是Shazeer等人提出的原始top-k路由机制。(2017),这是许多后续作品的基础。这篇综述论文的第四章详细阐述了路由算法的新进展。硬件现代稀疏专家模型已与分布式系统共同设计,用于训练最大的神经网络。对大型神经网络的研究(Brownetal.,2020;Raeetal.,2021;Chowdheryetal.,2022)表明神经网络已经远远超过单个加速器的存储容量,因此权重、激活函数、优化器变量等。需要使用各种并行策略对张量进行分片。三种常见的并行方法包括:数据并行(复制模型权重、分片数据)、张量模型并行(数据和权重张量跨设备分片)和流水线并行(整个层或层组跨设备分片)。切片),混合专家模型通常能够适应这些并行方案。在MoE模型的训练和部署方面,Jaszczur等人。(2021)使Transformer模型的所有层都变得稀疏,从而实现了37倍的推理加速;科斯曼等人。(2022)解决了静态专家批处理大小限制。除了数据并行性、模型并行性和专家并行性,Rajbhandari等人。(2022)提出了支持ZeRO分区和ZeRO-Offload的DeepSpeed-MoE库,实现了10倍的推理改进和SOTA翻译性能,从而增加了生产中的模型。服务可用性。稀疏专家模型的缩放特性密集神经语言模型的交叉熵损失在模型参数计数、数据量和计算预算方面表现为幂律(Kaplan等人,2020年)。幂律系数后来在Hoffmann等人中得到了修正。(2022),表明计算最优模型需要数据和参数扩展的更紧密平衡。相比之下,以启发式方式扩展的稀疏专家模型的早期研究获得了强有力的实证结果,但没有仔细描述扩展规律。此外,一些作品强调了上游(例如预训练)和下游(例如微调)行为之间的差异(Fedus等人,2021年;Artetxe等人,2021年),进一步使对稀疏专家模型的理解复杂化。上游扩展稀疏专家模型在大型数据集上训练时表现良好。自然语言处理中的一种常见模式是先执行上游训练(例如预训练),然后对感兴趣的特定数据分布进行下游训练(例如微调)。在上游阶段,稀疏专家模型始终比密集专家模型产生更高的收益。沙泽尔等人。(2017)在十亿词语言建模基准(Chelbaetal.,2013)上展示了模型参数和计算预算的缩放曲线,与密集版本相比取得了显着的进步。Lepikhin等人。(2020)提出了模型扩展函数的改进版本,并在其最大的600B参数稀疏模型上实现了13.5的BLEU分数增益。SwitchTransformer(Fedus等人,2021年)使用相同的计算资源在T5模型上测得4-7倍的墙时间加速。这项工作还研究了将交叉熵损失缩放为参数计数的函数,但观察到超过256位专家的收益递减。下游扩展然而,可靠的上游扩展不会立即在下游任务上产生一致的收益。在强调转移挑战的工作中,Fedus等人。(2021)观察到4倍的预训练改进,但它在像SuperGLUE这样的密集推理任务的微调中表现不佳。这一发现暗示了进一步的必要研究以及计算和参数之间可能需要的平衡。杜等人。(2021)展示了稀疏GLaM模型的扩展,范围从1B-64BFLOPs,每个稀疏层使用64位专家。GLaM取得了SOTA结果,在零样本和单样本性能方面优于具有175B参数的GPT-3模型(Brown等人,2020),同时在推理过程中将每个令牌使用的FLOPs减少了49%,并且函数消耗减少了65%(如下图4(左)所示)。下面的图4(右)是稀疏模型在少样本推理上表现良好的另一个示例。斯利瓦斯塔瓦等。(2022)研究了多项选择BIG-Bench任务中稀疏模型的校准,该任务衡量预测概率与正确概率的匹配程度。研究结果如下图5所示,虽然较大的密集模型和稀疏模型的校准都有所改进,但稀疏模型的校准与使用10倍以上FLOP的密集模型的校准相当。缩放专家层的数量、大小和频率有几个重要的超参数控制稀疏专家模型的缩放,包括:1)专家的数量,2)每个专家的大小,以及3)专家层的频率。这些决策会对上游和下游的扩张产生重大影响。早期的工作扩展到每层数千名相对较小的专家,从而实现了出色的预训练和翻译质量(Shazeer等人,2017年;Lepikhin等人,2020年;Fedus等人,2021年)。然而,稀疏模型的质量在域转移(Artetxe等人,2021年)或对不同任务分布进行微调(Fedus等人,2021年)时不成比例地下降。为了更好地平衡计算和参数,SOTAsparsemodelsforfew-shotinference(GLaM(Duetal.,2021))和fine-tuning(ST-MoE(Zophetal.,2022))只能用于大多数64位较大的专家。由于专家维度的增加,这些模型需要特定于加速器的系统级分片策略才能有效运行(Du等人,2021年;Rajbhandari等人,2022年)。路由算法路由算法是所有稀疏专家体系结构的关键特征,它决定将样本发送到哪里。该领域已被广泛研究,包括使用固定的、非学习的路由模式的反直觉方法(Roller等人,2021)。由于关于选择哪些专家的决策是离散的,因此路由决策通常是不可微分的。专家选择问题后来被重新定义为Bandit问题,并且已经有一些工作使用强化学习来学习专家选择(Bengio等人,2016年;Rosenbaum等人,2017年;2019年;Clark等人,2022年)。沙泽尔等人。(2017)提出了一种可区分的启发式算法来避免强化学习的困难。论文详细阐述了路由算法的分类,进一步阐述了该领域的关键问题——负载均衡。稀疏专家模型的快速发展稀疏专家模型的影响正在迅速扩展到NLP以外的其他领域,包括计算机视觉、语音识别和多模态应用。尽管领域不同,但模型的体系结构和算法大致相同,下表1显示了不同领域的稀疏层输入表示。稀疏专家模型近年来发展非常迅速。以NLP领域为例,Shazeer等人。(2017)引入了用于LSTM语言建模和机器翻译的混合专家层,它们被插入到LSTM模型的标准层之间。2020年,Lepikhin等人。(2020)首次将MoE层引入Transformer,当研究人员将每个专家层扩展到2048位专家时,该模型在100种不同语言上取得了SOTA翻译结果。费杜斯等人。(2021)创建一个达到SOTA预训练质量的稀疏1.6T参数语言模型。新的研究正在推动小样本学习推理和微调基准的发展。杜等人。(2021)训练了一个纯MoE解码器语言模型,在少量样本上取得了SOTA结果,并且只需要训练GPT-3所需计算量的1/3。佐夫等人。(2022)提出ST-MoE,这是一种稀疏编码器-解码器模型,可在广泛的推理和生成任务上实现SOTA。当在SuperGLUE上进行微调时,ST-MoE优于PaLM-540B,同时仅使用大约1/20的预训练FLOP和1/40的推理FLOP。何时使用稀疏模型一个常见的问题是,如果您有固定的计算或FLOP预算(例如,100个GPU需要20小时),您应该训练哪种类型的模型以获得最佳性能?从根本上说,稀疏模型允许通过增加专家数量来显着增加模型中的参数数量,同时保持每个样本的FLOPs大致恒定。根据模型的目的,这种做法有利也有弊。当您有许多加速器(例如GPU/TPU)来承载使用稀疏性带来的所有附加参数时,稀疏性是有益的。使用稀疏性还需要仔细考虑下游任务。如果您有很多用于预训练的机器,但用于微调或服务的机器很少,则应根据下游用例中可用的内存量调整稀疏度(例如专家数量)。在某些情况下,稀疏模型看起来总是比密集模型差。例如,当所有参数都保存在加速器内存中时,稀疏模型不如密集模型。当您能够在多台机器上并行训练或服务以托管来自专家的额外模型参数时,稀疏模型非常有用。此外,这篇综述论文还介绍了稀疏模型训练、可解释性和未来研究方向的改进。有兴趣的小伙伴可以查看论文原文,进一步了解研究内容。
