卷友们好,我是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还做了啥呢?
模型层面主要有如下改动:
使用SwiGLU激活函数,有研究证明在同等计算量下SwiGLU的效果更好
把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中也总结了大模型提升的套路:
扩大模型深度和宽度
增加训练的token数目
更干净和更多源的数据
利用稀疏计算增加模型容量
虽然大模型已经开往了一条比拼金钱和工程的道路,但看到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
热门跟贴