当前NLP主流的预训练模式都是在一个固定长度(比如512)上进行,然后直接将预训练好的模型用于不同长度的任务中。大家似乎也没有对这种模式有过怀疑,仿佛模型可以自动泛化到不同长度是一个“理所应当”的能力。笔者做了Base版的GAU实验后才发现GAU的长度泛化能力并不如想象中好。
我们可以总结出GAU的三个解决方案:
- 一是预训练和微调都用同一个固定的n;
- 二是依然使用动态的样本长度n,但是预训练时需要用不同长度的样本来混合训练,不能只使用单一长度的样本;
- 三就是像Softmax那样补充上一个归一化因子,让模型自己去学。以下转载自 https://kexue.fm/archives/9019