【花师小哲】当代炼金术(神经网络)前沿(30)——华为MoE模型PanGu-Σ
好像很少讲国内AI的一些技术,这次来讲一下华为的盘古-Σ。当然,具体性能什么的我还没实际体验过,但这个模型的架构真的惊艳到我了,所以来讲一讲


1.硬件限制
众所周知,现在大模型的发展其实很受硬件条件的限制,所以GPT-3之所以是175B(1750亿)是因为这个规模已经接近当时模型参数的上限。当然,后面谷歌等通过硬件结构的优化成功搞出了540B的PaLM,但是似乎也是到了极限。
一个问题是,这些模型的底层架构都是Transformer,主要还是参数量和一些小细节(激活函数等)上的区别。当然,有些论文指出大模型其实有更好的训练方法,但这不属于这里的讨论范围了。
那么我们怎么把模型做的更大了,要同时运行所有参数是不太可能了,一个很基本的思路就是稀疏,于是,一个二十年历史的老方法再次被搬上台面——MoE

2.MoE
MoE(Mixture-of-Experts)可以翻译成混合专家系统、多专家混合等,之后我就叫MoE了。
比较早用MoE做大模型的是GaLM:

思路其实很简单,我们训练64个专家,但是并不是所有专家都要参与进来,每次运行我只选择2个专家。这样虽然模型的参数量可以扩大了(GaLM是1.2T,或1200B),但实际运行的参数只有1.2T的1/32。
大家可能会问,这样不是参数变少了吗?实际上每个专家都可以更加专业化,擅长的领域是不同的,这样的效果并不会明显变差,甚至更好。
这里需要注意的是,MoE既可以在整体模型架构上做,也可以在每一层上做,即一个个MoE层。
当然,其实MoE可以看做是谷歌对GPT-3的反抗,或者说找其他的大模型出路,MoE就是这样一批研究中比较成功的一个产物。
通过MoE,模型参数可以突破1T的大关了,不过目前MoE架构的参数最大好像也没有超过2T,并且大部分是极度稀疏的。

3.盘古-Σ架构
盘古-Σ一个很重要的贡献就是发展了MoE,整体架构如下:

底层是密集的Transformer层(一般架构),高层是MoE层(RRE是专家选择策略)。
盘古-Σ的选择策略是RRE(随机路由专家),即先将专家分组(这个分组是人工来分的,不是像之前那样通过训练自动来分的),每个组又有几个专家。对于输入我们首先根据其确定的分组选择合适的专家组,然后随机选择专家组的专家:

其实就像医院看病,你先找到合适的科室,然后随机找一个此科室的医生看病。
参数为1.085T,还是挺大的。

4.模块化
一个很惊艳的点在于,这套架构模块化程度是很高的。RM人对模块化还是很敏感的
(1)可以直接用老模型进行初始化。如图:

这就是用之前的大模型盘古-α对盘古-Σ进行初始化。既可以初始化密集层,也可以初始化每个专家。
(2)可以相对自由增加专家组和专家。
之前的MoE都是训练一个门控网络来选择专家,每个专家的领域区别是训练出来的。
这种方法由于是随机选择专家,所以每个组的专家可以随时添加或修改,也可以人工增加分组。

5.结语
整体上来说,是对MoE的一次不错的探索延伸,展示出了MoE的强大潜力。