Switch Transformer 可以理解成一种如何在训练基于MOE (Mixture of Experts) 的巨模型时“偷工减料”的技巧,但这种“偷工减料”却蕴含了一些新的洞察(insights)。
在一般情况下,基于MoE,一个样例进来,会被好几个子网络(expert)处理,这几个子网络的处理结果可以加权求和,每个子网络的权重是通过一个叫router的模块计算出来的(如下图所示)。MoE可以理解成一种模型的集成 (ensemble),根据top k 激活一部分子网络。按照我们对模型集成的经验,一般来说,集成的结果应该要比每一个子网络单独的效果好 (这一点很重要,后文还会提到)。当然,这也让MoE的不足之处展现出来,每个子网络都需要进行计算,总计算量是所有子网络计算量之和。不过,MoE 使用所有子网络不一定就比只使用一个网络好,sparsity 可以让每个子网络更“聚焦”,分工更明确,带来的优势还需进一步观察。
Switch Transformer 的发现是什么?如下图所示,每一个样例进来不需要被所有的子网络处理,只被router模块权重最大的子网络处理,这个子网络的结果再乘以这个权重就可以了,计算量一下子变成了MoE的四分之一。