BitFit:基于Transformer的掩码语言模型的简单参数高效微调.

对于预训练语言模型,虽然对每个任务进行全量微调(微调所有参数)非常有效,但它也会为每个预训练任务生成一个独特的大型模型,特别是随着任务数量的增加,部署和维护的成本也会增大。

理想状况的高效微调方法应满足:

本文作者提出了一种参数量更小的稀疏的微调方法BitFit (Bias-terms Fine-tuning),它训练时只更新bias参数与特定任务的输出层参数。

对于Transformer模型而言,涉及到的bias参数有attention模块中计算query,key,value跟合并多个attention结果时涉及到的biasMLP层中的biasLayerNorm层的bias参数。

Bert-Base/Bert-Large这种模型里,bias参数仅占模型全部参数量的$0.08\%~0.09\%$。但是通过在Bert-Large模型上基于GLUE数据集进行了 BitFitAdapterDiff-Pruning的效果对比发现,BitFit在参数量远小于AdapterDiff-Pruning的情况下,效果与AdapterDiff-Pruning相当,甚至在某些任务更优。

同时,通过实验结果还可以看出,BitFit微调结果相对全量参数微调而言, 只更新极少量参数的情况下,在多个数据集上都达到了不错的效果。虽不及全量参数微调,但是远超固定全部模型参数的Frozen方式。

同时,通过对比BitFit训练前后的参数,发现很多bias参数并没有太多变化(例如计算key所涉及到的bias参数)。发现计算query和将特征维度从N放大到4NFFN层(intermediate)的bias参数变化最为明显,只更新这两类bias参数也能达到不错的效果,反之,固定其中任何一者,模型的效果都有较大损失。