我们可以无损放大一个transformer吗
“无损放大”的含义就是:
是否可以通过某种变换,把一个小模型直接变换成一个大模型,并且输出完全不改变?
1 结论:可以放大
‘
对于BERT来说,
如果非线性激活函数用ReLU,那么BERT是可以直接无损放大的,
如果非线性激活函数不是ReLU,那么可以实现MLM准确率无损的放大(事实上经过更精细的调整,也可以实现完全无损放大,但每个层的变换有点不统一了,不够优雅);
对于GPT、T5等模型来说,不管激活函数用啥(包括mT5用的GLU激活,也可以定制适当),其实都可以实现无损放大。
如果是其他略有不同的模型,那么就模仿前面的思想进行类似的分析即可。
如果是RoPE,那么将重复的方案改为式(15)就好;
如果是扩大k倍,那么将表格中的多数2换为k就好。
简单来说,如果Attention没有尺度缩放,以及FeedForward的激活函数是ReLU(或者LeakyReLU),那么放大k倍的变换就最简单的,将权重的每一维都执行“重复k次并除以√”k就好了。
2 尝试:
#仅仅扩大隐层向量的维度,并不改变模型的层数,也不改变多头注意力机制的头数
Embedding