您现在的位置是:首页 >其他 >[ICLR 2020] Reducing Transformer Depth on Demand with Structured Dropout网站首页其他

[ICLR 2020] Reducing Transformer Depth on Demand with Structured Dropout

连理o 2023-06-12 12:00:03
简介[ICLR 2020] Reducing Transformer Depth on Demand with Structured Dropout

Introduction

  • 作者提出了一种新的 structural pruning 方法 LayerDrop,通过在训练时随机丢弃 Transformer block 来稳定模型训练过程 (有利于训练更深的模型),并且在推理时直接丢弃掉一些层来加快推理速度,这种推理加速方法无需进行额外的微调,并且不会损失过多的模型精度

Training Transformers with Random Structured Pruning

在这里插入图片描述

Randomly Dropping Structures at Training Time

  • 作者提出在训练时使用 LayerDrop (类似于 dropout) 随机丢弃 Transformer block. 这可以看作是一种正则化方法,提高模型泛化性,并且还使得推理时可以随机裁剪掉一些层来加速推理速度

Pruning at Inference Time

  • Selecting Layers to Prune. 使用 LayerDrop 进行训练可以让模型在推理时对以 Transformer block 为单位的结构化剪枝更加鲁棒,下面作者给出了 3 种推理时的结构化剪枝策略,即直接丢弃掉一些层而无需进行额外的微调。实验表明,Every Other strategy 就可以在许多任务和设置下取得不错的效果,而 Search on Valid 和 Data Driven Pruning 只能带来 marginal gains.
    • Every Other: 等间隔裁剪。假如裁剪率为 p p p,则裁剪所有深度为 d d d ( d  mod  ⌊ 1 p ⌋ = 0 d ext{ mod }lfloorfrac{1}{p} floor=0 d mod p1=0) 的层
    • Search on Valid: 把要裁剪的层当作超参,用验证集去搜索最佳裁剪策略,但这种方法计算量很大并且容易对验证集过拟合
    • Data Driven Pruning: 直接在训练时学得每个 block 的 drop rate. 具体而言,作者将 block 输出的激活值经过非线性函数和 softmax 后得到 p d p_d pd,并且约束所有层的 p d p_d pd 均值为预设的裁剪率 p p p. 推理时选择 top-k highest scoring layers 进行前向传播即可
  • Setting the drop rate for optimal pruning. 假如想裁剪 r r r 层,则训练时的最优 drop rate p p p (类似于 dropout 里的 dropout ratio) 为
    在这里插入图片描述作者在实验中设置 p = 0.2 p = 0.2 p=0.2,并且当推理速度要求特别高时作者推荐使用 p = 0.5 p = 0.5 p=0.5

Experiments

Main Results

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述


Ablation Study

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

References

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。