论文信息
A Survey on Dynamic Neural Networks for Natural Language Processing
发表单位:University of California, San Diego
作者:Canwen Xu, Julian McAuley
发表会议: EACL 2023
论文地址:http://arxiv.org/abs/2202.07101
发布时间:2022.2.15(v1) 2023.2.24 (v2)
ABs
掌握主要内容
-
有效缩小大型Transformer模型是自然语言处理最新进展的主要趋势;
-
动态神经网络作为一个新兴的研究方向,能够通过根据输入动态调整其计算路径,在计算和时间上以亚线性增加的方式缩小神经网络。动态神经网络可能是预训练语言模型参数数量不断增长的有前途的解决方法,既允许使用数万亿个参数进行模型预训练,又可以在移动设备上更快地推理。
-
本综述总结了NLP三种动态神经网络的类型:skimming, mixture of experts, early exit,列举当前面临的挑战以及未来研究的方向。
1. INTRO
研究背景
1)NLP模型不断增大的计算复杂度和内存消耗,难以用于训练和使用;
2)不需要所有输入案例分配相同的计算资源。
主流的动态神经网络方法
动态调整对于输入的计算,通过绕过大型神经网络中不必要的模块来节省计算。
1)Skimming(时间维度):在RNN有广泛研究,根据输入token将计算资源动态分配到不同的时间步长,从而达到时间维度的节约计算。另外,最近Transformer的Skimming工作跳过层之间的token。
由于RNN模型反复处理输入串行,因此它允许略读模型实现大幅加速,尤其是在串行较长的情况下(Li 等人,2019)。
Xiangsheng Li, Jiaxin Mao, Chao Wang, Yiqun Liu, Min Zhang, and Shaoping Ma. 2019. Teach machine how to read: Reading behavior inspired relevance estimation. In SIGIR, pages 795–804. ACM.
2)Mixture of Experts(网络宽度):MoE将前馈网络分成多个子网,推理时只激活部分以此节省网络宽度的计算量。
3)Early Exit(网络深度):通过添加一系列的轻量分类器在早期的网络层停止推理,不耗尽全部的计算资源以节省网络深度的计算量。
动态vs静态
与静态模型加速(模型压缩)的不同点:考虑输入的动态调整
最近的工作表明静态和动态方法可以结合起来,实现更快的推理和更好的性能。
Roy Schwartz, Gabriel Stanovsky, Swabha Swayamdipta, Jesse Dodge, and Noah A. Smith. 2020. The right tool for the job: Matching model and instance complexities. In ACL, pages 66406651. Association for Computational Linguistics.
Weijie Liu, Peng Zhou, Zhiruo Wang, Zhe Zhao, Haotang Deng, and Qi Ju. 2020. Fastbert: a selfdistilling BERT with adaptive inference time. In ACL, pages 6035–6044. Association for Computational Linguistics.
Wei Zhu. 2021. Leebert: Learned early exit for BERT with cross-level optimization. In ACL-IJCNLP, pages 2968–2980. Association for Computational Linguistics.
2. Skimming
定义:跳过一些时间步长或者给不同时间步长分配不同的计算资源。
直观上来看,Skimming与人类如何有效地阅读文本并从中提取信息相似(Li 等人,2019)。
Xiangsheng Li, Jiaxin Mao, Chao Wang, Yiqun Liu, Min Zhang, and Shaoping Ma. 2019. Teach machine how to read: Reading behavior inspired relevance estimation. In SIGIR, pages 795–804. ACM.
Skimming 分类如上表所示:
-
skipping and early stopping:跳过不重要的输入
-
computation reduction:给不重要的输入分配更少计算资源
-
dynamic hierachical RNN:增加重要输入的计算资源
Skipping and Early Stopping
定义:通过跳过一些token或提前停止读取来提高长序列的计算效率。
Li 等人(2019)使用眼动追踪设备,并证实当人类阅读文本时,跳过和提前停止是很常见的。
LSTM和RNN的发展 主要是单/多步长跳过,双向跳过;token级别/seq级别的停止读取,后续加入结构信息(即符号 ,; or .!?)作为停止读取的判断。跳过几步token以及停止读取时机通过计算当前状态jumping softmax/binary gate决定,
Transformer发展 通过丢弃或忽略较高层的token来减少计算量,计算attention scores决定或者其他策略丢弃(或忽略)的token数量,通过soft mask层的稀疏性和原始的损失函数优化丢弃(或忽略)的token数量。
新进展:
Learned Token Pruning for Transformers
Key idea: 为每个Transformer层训练阈值,而不是遵循预定的时间表(丢弃/忽略的token数量),丢弃注意力分数低于学习阈值的token。
Result: FLOPs相较于其他token剪枝方法提高~2.5%,1.9xCPU端加速,2.0x端GPU加速。
论文地址:[2107.00910] Learned Token Pruning for Transformers (arxiv.org)
开源:https://github.com/kssteven418/ltp
Transkimmer: Transformer Learns to Layer-wise Skim
Key idea: 在学习做skimming决策的每个层之前添加一个参数化预测器,如果需要跳过,则将hidden层的skimmed token直接向前传播到最后一层输出。
Result: BERT-base 加速10.97x,准确率损失1%以内
论文地址: 2205.07324.pdf (arxiv.org)
开源:https://github.com/chandlerguan/transkimmer
Computation Reduction
定义:缩减在某些时间步长内应用的计算工作负载,而不是完全跳过。
VCRNN: 通过策略决定每个时间步长使用的计算量的比例,将按比例使用权重矩阵更新隐藏状态,其他权重矩阵将被mask成零。
SkimRNN: 在每个时间步,模型根据最后一个时间步长的隐藏状态和输入token决定是否要读取,使用大的RNN网络进行隐藏状态全面更新,小的网络更新小部分隐藏状态。
Dynamic Hierarchical RNN
定义:增加更上层RNN的计算量
具体进展看论文,写的很细致
3. Mixture of Experts
在大型模型中,一个层通常包含多个子网(即“专家”)。在推理过程中,每个输入样本只会激活这些专家中的一小部分。以实现参数减少且不成比例增加计算量。MoE方法的核心就是路由(routing)机制,该机制必须轻量不能让模型更慢。
专家混合的方法分如上表所示:
- learned routing:需一些负载均衡机制,保证所有专家通过充足的样本训练。
- unlearned routing
这部分的知识不太懂。。需要补充知识之后再补充
💡4. Early Exit
定义:终止早期层的推理来减少计算量,通过在中间层添加一系列分类器来实现,选择退出推理的标准和中间分类器的训练是该方法研究的重点。
早退的优点是可以根据退出阈值的设置来调整速度准确度的权衡,无需重新训练模型。但是,因为根据输入样本动态调整计算的复杂度,因此为了追求加速比最大化,通常使用batch=1,难以并行化。
早退分类及相关方法如上表所示:(图上展示的很清楚,不做赘述)
-
Confidence-based Early Exit 使用某个分类器的阈值来决定是否退出推理
-
Ensemble-based Early Exit 通过多个分类器来考虑退出推理的时机
-
Learning-based Early Exit 通过学习确定早退的标准
-
Cascading 模型级别的动态早退,利用不同层数的完整模型进行级联。从小到大执行,在模型输出达到置信度的时候停止
5. Challenges and Future Directions
评估方法
评估动态神经网络无法预先定义在完全相同的计算量或时间内比较不同的方法,ELUE score 通过考虑计算和性能,描绘了Pareto前沿,来评估动态神经网络。
**不同的作品有不同的加速比计算。**例如,一些工作使用参与计算的层比例来估计加速比。但是,内部分类器会引入额外的计算成本,尤其是在引入更复杂的机制时。此外,MoE模型的报告速度在不同的硬件和分布设置上有很大差异,这使得很难进行不同论文的比较。
数据并行性
动态神经网络的一个缺点是在数据并行性上的低效率。MoE方法为动态路由引入了额外的通信成本,并且可能成为效率的瓶颈。skimming和提前退出方法通常采用“在线推理”设置,其中批量大小固定为1,以实现最大的加速。然而,对于批量推理,这些方法的效率会急剧下降,因为已经退出的实例将不得不等待所有实例退出,这导致了低并行性和低GPU利用率。
优化的运行时间
大多数硬件和库并没有针对这些动态神经网络模型进行很好的优化。例如,MoE中的稀疏矩阵乘法需要专门的硬件和软件支持来实现其理论效率。
理论的分析和支持
动态网络的理论分析不够充分。例如,PABEE中的理论分析是基于内部分类器相互独立的假设,这是不现实的。应该对动态神经网络的数据分布的优化和影响角度进行更多的研究。文章来源:https://www.toymoban.com/news/detail-435262.html
可解释性
动态神经网络的决策过程对于解释模型预测,甚至理解机器学习中更基本的研究问题,包括标度律和泛化,可能是重要的。可以用skimming来解释序列分类吗?这是否符合基于注意的解释?MoE的每个专家都学些什么,是什么让它们不同?为什么一个较低的内部分类器与一个较高的分类器作出不同的预测,尽管用相同的目标进行了同样的训练?这些问题需要从数据和模型的角度进行进一步的探索。文章来源地址https://www.toymoban.com/news/detail-435262.html
到了这里,关于【论文阅读】A Survey on Dynamic Neural Networks for Natural Language Processing的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!