卷友们好,我是rumor。

从Jeff Dean去年十月提出Pathways这个架构起,我就开始期待了,前段时间正式放出了Pathways的论文[1],但主要是讲底层的设计和性能。直到前两天,谷歌终于公布了这个架构所训出的第一个大模型:PaLM

PaLM: Scaling Language Modeling with Pathways
https://storage.googleapis.com/pathways-language-model/PaLM-paper.pdf

PaLM是一个5400亿参数的单向语言模型

为啥用单向而不是谷歌经典的T5呢?作者的解释是GPT3这种结构的few-shot会更好,而带有encoder的模型得finetune才能有不错的表现,这样既需要很多数据,又得为每个任务改变模型权重,和Pathways的万能大模型初衷有些背离。

OK,那就用GPT3的结构吧,但怎么效果好这么一大截???

作者没有多做解释,个人猜测数据占大头,GPT3用了近500B token的数据,而PaLM有780B,多了不少。但同时PaLM的模型拟合能力也小了一半,所以真的挺难说。作者的原话也挺有意思:

Interestingly, the PaLM 62B outperforms the GPT-3 175B in both categories

除了在finetune方面pk掉GPT3,还让我注意到的就是推理能力的大幅提升

在7个算术应用题/常识推理数据集上,有4个超越了当前SOTA,而且是以8-shot的PaLM跟精调的SOTA比,很多SOTA的结构都是特殊设计的

这个震撼程度不知传达到没有,以前是一顿魔改调参还干不过大模型直接精调,现在马上就要变成一顿魔改调参却干不过大模型few-shot了

而且这个推理能力,还没到极限,随着参数量从64B到540B,很多错误都被修复了,而参数量再提升一个数量级,我感觉就是今年的事儿,现在最大的模型已经174万亿参数了。

另外除了早就被刷爆的GLUE和SuperGLUE之外,还有一个新的BIG-bench评测,包含150个任务,专为大模型准备。可以看到,PaLM的1-shot已经接近人类平均水平了,不过距离最好水平还马达马达达内。同时,随着参数量的扩大,few-shot模型的效果也展现了更大的提升,但GPT3为什么没展现同样的特性就有点玄学了。

另外在多语言任务上,同样展现了few-shot超越精调SOTA的效果。

那么,上面讲了那么多PaLM的效果,作者除了Pathways还做了啥呢?

模型层面主要有如下改动

  1. 使用SwiGLU激活函数,有研究证明在同等计算量下SwiGLU的效果更好

  2. 把FFN和Attention并行

  • 以前:

  • 现在:

Multi-Query Attention:以往做attention前我们都会把Q和K隐层映射到[head_num, head_size],而PaLM让所有头共享参数矩阵,只映射到[1, head_size],对训练速度和效果没什么影响,但却提升了decode的速度

使用RoPE[2]位置编码:RoPE是苏神的工作,主要利用三角函数的恒等变换来优化相对位置编码

输入和输出共享embedding矩阵

去掉所有的Bias项

使用256K个token的SentencePiece

但每个改动对于PaLM到底有多少提升,并没有消融实验。

总结

其实刚看到PaLM报道的时候,隐隐有些失望,本来以为就是一篇模型很大,训练数据很多,然后干过一批few-shot SOTA的文章,但结果看到居然是直接跟别人精调的SOTA比,还是挺惊喜的。但这其中到底提升都在哪里,因为没有和过往模型完全公平的对比,又变成玄学了,而且是复现不起的玄。

作者在intro中也总结了大模型提升的套路:

  1. 扩大模型深度和宽度

  2. 增加训练的token数目

  3. 更干净和更多源的数据

  4. 利用稀疏计算增加模型容量

虽然大模型已经开往了一条比拼金钱和工程的道路,但看到AI天花板不断被拉高也是一件好事,Pathways架构下的第一个模型,离Jeff Dean去年的构想还有一段距离,希望未来可以给出更好的答案。

另外,国内的我们也要加油吖!

参考资料

Pathways: Asynchronous Distributed Dataflow for ML: https://arxiv.org/abs/2203.12533

[2]

Roformer: Enhanced transformer with rotary position embedding: https://arxiv.org/abs/2104.09864