机器之心报道

机器之心编辑部

30年时间,稀疏专家模型已逐渐成为一种很有前途的解决方案。

稀疏专家模型是一个已有 30 年历史的概念,至今依然被广泛使用,是深度学习中的流行架构。此类架构包括混合专家系统(MoE)、Switch Transformer、路由网络、BASE 层等。稀疏专家模型已经在自然语言处理、计算机视觉和语音识别等多个领域展示出良好的性能。

近日,谷歌 AI 负责人 Jeff Dean 等人撰写了一篇稀疏专家模型的综述,回顾了稀疏专家模型的概念,提供了通用算法的基本描述,最后展望了未来的研究方向。

论文地址:https://arxiv.org/pdf/2209.01667.pdf

通过增加计算预算、训练数据和模型大小,机器学习(尤其是自然语言)取得了显著进步。著名的里程碑语言模型包括 GPT-2(Radford et al., 2018)、BERT(Devlin et al., 2018)、T5(Raffel et al., 2019)、GPT-3(Brown et al., 2020)、Gopher (Rae et al., 2021)、Chinchilla (Hoffmann et al., 2022) 和 PaLM (Chowdhery et al., 2022)。

然而,最先进的模型现在需要数以千计的专用互连加速器,训练数周或数月的时间,因此这些模型的生产成本很高(Patterson et al., 2021)。随着机器学习系统规模的扩大,该领域寻求更有效的训练和服务范式。稀疏专家模型已成为一种很有前途的解决方案。

稀疏专家模型(其中,混合专家系统(MoE)是最流行的变体)是一种特殊的神经网络,其中一组参数被划分为 “专家”,每个“专家” 具有唯一的权重。

在训练和推理期间,模型将输入样本给到特定的专家权重,让每个样本仅与网络参数的子集交互,这与将整个网络用于每个输入的常规方法不同。由于每个样本仅使用一小部分专家,因此相对于总模型来说计算量大幅减小了。

许多现代稀疏专家模型从 Shazeer et al. (2017)中汲取了灵感。该研究训练了当时最大的模型,并取得了最先进的语言建模和翻译结果。与 Transformer 语言模型结合使用时,稀疏专家模型的受欢迎程度进一步飙升(Lepikhin et al., 2020; Fedus et al., 2021)。虽然大部分工作都在自然语言处理方面,但稀疏专家模型也已成功用于各种领域,包括计算机视觉(Puigcerver et al., 2020)、语音识别(You et al., 2021)和多模态学习(Mustafa et al., 2022)。Clark et al. (2022) 研究了稀疏专家模型在不同模型大小和专家数量下的扩展特性。此外,许多基准测试的最新结果目前由 ST-MoE 等稀疏专家模型持有(Zoph et al., 2022)。随着研究和工程的进步,该领域正在迅速发展。

这篇综述论文将调查范围缩小到狭义深度学习时代(从 2012 年开始)的稀疏专家模型,回顾了最近的进展并讨论了有希望的未来途径。

稀疏专家模型

机器学习中的 MoE 概念可以追溯到至少 30 年前,在早期的概念中,专家们定义了一个完整的神经网络,MoE 类似于一种集成方法。

Eigen et al. (2013) 提出在抖动(jittered)的 MNIST 上使用堆叠层专家混合架构,这项工作为后来模型的高效实现奠定了基础。

Shazeer et al. (2017)提出在两个 LSTM 层之间插入一个 MoE 层,由此产生的稀疏模型在机器翻译中实现 SOTA 性能。然而,此方法虽然取得了成功,但后续研究就像冬眠了一样,停滞不前,大部分研究都转向了 Transformer。

2020 到 2021 年间,GShard 和 Switch Transformer 发布,两者都用专家层取代了 Transformer 中的前馈层。

尽管使用一层专家层的方法已经成为主导范式,但近两年的研究重新审视了专家模型作为完全独立模型的概念,以实现模块化和可组合性。

下图 2 是 Shazeer et al. (2017) 提出的原始 top-k 路由机制,这是许多后续工作的基础。该综述论文在第四章中详细讲解了路由算法的新进展。

硬件

现代稀疏专家模型已与用于训练最大神经网络的分布式系统共同设计。

大型神经网络(Brown et al., 2020; Rae et al., 2021; Chowdhery et al., 2022)的研究表明神经网络已经远远超过单个加速器的内存容量,因此权重,激活函数,优化器变量等张量需要使用各种并行策略分片。

三种常见的并行方法包括:数据并行(复制模型权重,对数据进行分片)、张量模型并行(数据和权重张量跨设备分片)和 pipeline 并行(整个层或层组被跨设备分片),混合专家模型通常能够适应这些并行方案。

在MoE 模型的训练和部署方面,Jaszczur et al. (2021)将 Transformer 模型的所有层进行稀疏化,从而实现了 37 倍的推理加速;Kossmann et al. (2022)通过 RECOMPILE 库解决了静态专家批处理大小的约束问题。

除了数据并行、模型并行和专家并行外,Rajbhandari et al.(2022) 提出 DeepSpeed-MoE 库,以支持 ZeRO partitioning 和 ZeRO-Offload,实现了 10 倍推理提升和 SOTA 翻译性能,从而增加了模型在生产服务中的实用性。

稀疏专家模型的扩展特性

密集神经语言模型的交叉熵损失表现为一种关于模型参数计数、数据量和计算预算(Kaplan et al., 2020)的幂律。幂律系数后来在 Hoffmann et al. (2022)中得到纠正,这表明计算最优模型需要数据和参数扩展更紧密的平衡。相比之下,稀疏专家模型的早期研究以启发式方式扩展获得了强有力的实证结果,但没有仔细描述扩展定律。此外,一些工作强调了上游(例如预训练)和下游(例如微调)行为之间的差异(Fedus et al., 2021; Artetxe et al., 2021),进一步复杂化了对稀疏专家模型的理解。

 上游扩展

稀疏专家模型在大型数据集上训练时表现出色。自然语言处理中的常见模式是先执行上游训练(例如预训练),然后对特定感兴趣的数据分布进行下游训练(例如微调)。在上游阶段,稀疏专家模型一直比密集对应模型产生更高的收益。Shazeer et al. (2017) 在 10 亿字语言建模基准(Chelba et al., 2013)上提出了关于模型参数和计算预算的扩展曲线,与密集版本相比取得了显著收益。Lepikhin et al. (2020)提出了模型扩展函数的改进版本,并在其最大的 600B 参数稀疏模型上获得了 13.5 的 BLEU 分数增益。Switch Transformer (Fedus et al., 2021) 在 T5 模型上使用相同的计算资源测量到 4-7 倍的 wall-time 加速。该工作还研究了作为参数计数函数的交叉熵损失扩展,但观察到超过 256 位专家时,收益减少了。

下游扩展

然而,可靠的上游扩展并没有立即在下游任务上产生一致的收益。在一项强调迁移挑战的工作中,Fedus et al. (2021)使用低计算、高参数编码器 - 解码器 Transformer(1.6T 参数,每个稀疏层有 2048 个专家)观察到 4 倍的预训练改进,但它在 SuperGLUE 等密集型推理任务上的微调效果不佳。这一发现暗示了进一步的必要研究以及计算和参数之间可能需要的平衡。

Du et al.(2021) 展示了稀疏 GLaM 模型的扩展,范围从 1B-64B FLOP,每个稀疏层使用 64 位专家。GLaM 取得了 SOTA 结果,在 zero-shot 和 one-shot 性能方面优于 175B 参数的 GPT-3 模型(Brown et al., 2020),同时在推理时每个token使用的 FLOP 减少了 49%,功耗降低了 65% (如下图4(左)所示)。下图 4 (右) 是稀疏模型在少样本推理上表现良好的另一个例子。

Srivastava et al. (2022) 研究了稀疏模型在多项选择 BIG-Bench 任务上的校准,即度量预测概率与正确概率匹配的程度。研究结果如下图 5 所示,虽然较大的密集模型和稀疏模型的校准都得到了改善,但稀疏模型与使用 10 倍以上 FLOP 的密集模型的校准相当。

扩展专家层的数量、大小和频率

有几个重要的超参数控制着稀疏专家模型的扩展,包括:1)专家数量,2)每个专家的大小,以及 3)专家层的频率。这些决策可能对上游和下游扩展产生重大影响。

许多早期的工作扩展到每层数千个相对较小的专家,从而产生了出色的预训练和翻译质量(Shazeer et al., 2017; Lepikhin et al., 2020; Fedus et al., 2021)。然而,稀疏模型的质量在域偏移(Artetxe et al., 2021)或对不同任务分布进行微调(Fedus et al., 2021)时不成比例地降低。为了使计算和参数获得更好的平衡,用于小样本推理 (GLaM (Du et al., 2021)) 和微调 (ST-MoE (Zoph et al., 2022)) 的 SOTA 稀疏模型最多仅能使用 64 个更大的专家。由于专家维度的增加,这些模型需要有针对加速器的特定系统级分片策略才能有效运行(Du et al., 2021; Rajbhandari et al., 2022)。

路由算法

路由算法是所有稀疏专家架构的关键特性,它决定了将样本发送到哪里。该领域已被广泛研究,包括使用固定的、非学习路由模式的反直觉方法(Roller et al., 2021)。由于要对选择哪些专家做出离散决策,因此路由决策通常是不可微的。

专家选择问题后来被重新定义为 Bandit 问题,并且已有一些工作使用强化学习来学习专家选择(Bengio et al., 2016; Rosenbaum et al., 2017; 2019; Clark et al., 2022)。Shazeer et al. (2017) 提出了一种可微的启发式算法,以避开强化学习的难点。

该论文详细阐述了路由算法的分类,并进一步说明了该领域的关键问题——负载均衡。

稀疏专家模型的迅速发展

稀疏专家模型的影响正在迅速蔓延到NLP以外的其他领域,包括计算机视觉、语音识别和多模态应用。尽管领域不同,但模型的架构和算法大致相同,下表 1 显示了不同域的稀疏层输入表征。

稀疏专家模型近几年的发展非常迅速。以NLP领域为例,Shazeer et al. (2017) 为 LSTM 语言建模和机器翻译引入了混合专家层,这些层被插入到 LSTM 模型的标准层之间。

2020 年,Lepikhin et al. (2020)首次将 MoE 层引入到 Transformer,当研究人员将每个专家层扩展到 2048 名专家时,模型在 100 种不同语言上实现了 SOTA 翻译结果。

Fedus et al. (2021) 创建了一个稀疏的 1.6T 参数语言模型,实现了 SOTA 预训练质量。

新研究正在推动小样本学习推理和微调基准的发展。Du et al. (2021) 训练了一个纯 MoE 解码器语言模型,取得了小样本上的 SOTA 结果,并且只需要训练 GPT-3 所需的 1/3 计算量。Zoph et al. (2022) 提出了 ST-MoE,这是一种稀疏编码器 - 解码器模型,在大量推理和生成任务中都实现了 SOTA。在 SuperGLUE 上进行微调时,ST-MoE 的性能优于 PaLM-540B ,同时仅使用约 1/20 的预训练 FLOP 和 1/40 的推理 FLOP。

什么时候使用稀疏模型

一个常见的问题是,如果给你一个固定的计算或 FLOP 预算(例如 100 个 GPU 20 小时),你应该训练什么类型的模型来获得最佳性能?

从根本上说,稀疏模型允许通过增加专家的数量来大幅增加模型中的参数数量,同时保持每个样本的 FLOP 大致恒定。这种做法有好有坏,具体取决于模型的用途。

当你有许多加速器(例如 GPU/TPU)来承载使用稀疏性带来的所有附加参数时,稀疏性是很有利的。

使用稀疏性还需要仔细考虑下游任务。假如你有许多机器来进行预训练,但是用来微调或者服务的机器却很少,那么稀疏度(例如专家的数量)应该根据下游用例中可用的内存量进行调整。

在有些情况下,稀疏模型看起来总是比密集模型差。例如当所有参数都保存在加速器内存中,这种情况稀疏模型就不如密集模型了。当你有能力在多台机器上并行训练或服务,以便托管来自专家的附加模型参数时,稀疏模型就非常合适。

此外,该综述论文还介绍了对稀疏模型训练的改进、可解释性和未来的研究方向等,感兴趣的小伙伴可以查看原论文,了解更多研究内容。

声纹识别:从理论到编程实战

《声纹识别:从理论到编程实战》中文课上线,由谷歌声纹团队负责人王泉博士主讲。目前,课程答疑正在持续更新中。

课程视频内容共 12 小时,着重介绍基于深度学习的声纹识别系统,包括大量学术界与产业界的最新研究成果。

同时课程配有 32 次课后测验、10 次编程练习、10 次大作业,确保课程结束时可以亲自上手从零搭建一个完整的声纹识别系统。

点击阅读原文,了解更多课程内容。

© THE END

转载请联系本公众号获得授权

投稿或寻求报道:content@jiqizhixin.com

往期精彩回顾适合初学者入门人工智能的路线及资料下载(图文+视频)机器学习入门系列下载机器学习及深度学习笔记等资料打印《统计学习方法》的代码复现专辑机器学习交流qq群955171419,加入微信群请扫码

30年历史回顾,Jeff Dean:我们整理了一份「稀疏专家模型」研究综述相关推荐

  1. Jeff Dean:我们写了一份「稀疏模型设计指南」,请查收

    来源:机器之心 本文约1600字,建议阅读5分钟 稀疏模型在深度学习领域发挥着越来越重要的作用. 稀疏模型在深度学习领域发挥着越来越重要的作用.对于给定的 token 或样本,它可以只激活模型的一小部 ...

  2. 整理了一份「生产管理数据分析」方案,解决90%的问题

    干生产管理却不知道怎么做数据分析?开除警告! 钱大把花了,员工也扩招了!别说提高生产效率,赚更多钱了,成本不上升已经是谢天谢地了! 那怎么做生产管理呢?其实不难,帆软君这就来和大家介绍,如何在企业内落 ...

  3. [转] 年终回顾,为你汇总一份「前端技术清单」

    记得年初的时候我给自己制定了一个学习计划,现在回顾来看完成度还不错.但仍有些遗憾,一些技术点没有时间去好好学习. 在学习中我发现,像文章这样的知识往往是碎片化的,而前端涉及到的面很多,如果不将这些知识 ...

  4. 整理了8家「主流NFT 交易平台」:最适合新手玩家的是NFT中国

    NFT来势汹汹,参与者与日俱增,各类各样的NFT交易平台也如同雨后春笋般崛起.如今的NFT市场,热度持续,新老势力混战,对于刚入局的新手和还在围观准备下手的试水者,这些平台如何选择成了难题. 为此,笔 ...

  5. 回顾2021虚拟与增强现实产业年会暨「金V奖」颁奖盛典

    摘要:6月18日,上海市北高新商务中心! 「金V起航,筑梦未来」,备受期待的2021虚拟与增强现实产业年会暨「金V奖」颁奖盛典将于6月18日13:30在上海市北高新商务中心隆重启幕! 2021虚拟与增 ...

  6. 万字长文!Jeff Dean亲笔盘点谷歌AI 2019:纵横16大方向,汇集重要开源算法(附链接)...

    本文经AI新媒体量子位(公众号 ID: QbitAI)授权转载,转载请联系出处 本文约12000字,建议阅读20+分钟 本文是Jeff Dean代表Google AI,盘点过去一年AI大趋势. 又一年 ...

  7. Jeff Dean亲笔盘点谷歌AI 2019:日均2篇论文,纵横16大方向,一文汇集重要开源算法...

    点击上方"深度学习技术前沿",选择星标或置顶,每天给你送干货! 阅读大概需要16分钟 跟随小博主,每天进步一丢丢 又一年,Jeff Dean代表Google AI,总结过去一年AI ...

  8. Google传奇Jeff Dean最新演讲:如何构建未来的机器学习芯片

    本文来自AI新媒体量子位(QbitAI) 如何构建未来的机器学习加速芯片? Google大脑负责人Jeff Dean是最有资格回答这个问题的人之一.昨天,还是在NIPS大会期间,Jeff Dean详细 ...

  9. Jeff Dean谈2020年机器学习趋势:多任务和多模态会有大进展

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 编辑:Sophia 计算机视觉联盟  报道  | 公众号 CVLianMeng 转载于 :量子位 报道 | 公众号 ...

  10. Jeff Dean:深度学习的黄金十年

    撰文|Jeff Dean 编译|机器之心 编辑|杜伟.陈萍 自从计算机诞生之初,人类就梦想着能够创造出会思考的机器.1956 年,在达特茅斯学院组织的一个研讨会上,约翰 · 麦卡锡提出人工智能这个概念 ...

最新文章

  1. [HDOJ4006]The kth great number
  2. UA OPTI544 量子光学11 Maxwell-Bloch方程
  3. 转换背景色 html,html – CSS转换:淡化背景颜色,重置后
  4. Zookeeper概述详细解释(Zookeeper3.6)
  5. OculusQuest2 直接连电脑调试
  6. OS X EI Capitan 安装mysql-5.7.9
  7. setState的参数接收函数
  8. Android IntentService的使用与源码解析
  9. VS2017安装并配置VTK
  10. docker限制cpu、内存使用
  11. android gif 解帧,动图GIF制作
  12. JavaScript实现下雪效果
  13. MATLAB app designer GUI设计
  14. 科技爱好者周刊:第 72 期
  15. 并发知识体系大全:饿了么4面(Java岗)面经分享,干货满满
  16. JPA 链表查询,子查询操作
  17. mybatis-plus设置某个字段可以为空
  18. 网页部分第四次培训——JavaScript
  19. Wins10系统忘记开机密码快速解锁方法(图文教程)
  20. Android 高仿美团外卖详情页

热门文章

  1. 从0写USB摄像头驱动程序
  2. 冬至幻灵怎么修改服务器名字,冬至幻灵如何给自己加元宝
  3. 数据分析之--Mataplotlib入门
  4. 鸿蒙充值卡是不是真的,鸿蒙成仙录红包版
  5. 华为手机安装debug时出现无效安装和与操作系统不兼容问题解决
  6. 指数分布java_终于搞清楚正态分布、指数分布到底是啥了!
  7. 妙用thead封装vue组件
  8. c语言 如何筛选小数点,怎样在表格里筛选有出整数与有小数点的数值
  9. 无源贴片晶振四角引脚_四脚贴片晶振有方向之分吗
  10. Kubernetes crictl管理命令详解