导读:预训练语言模型正变得越来越大,在惊讶于其强大能力的同时,人们也不禁要问:语言模型的规模在未来会持续增长吗?
Meta AI西雅图研究负责人,华盛顿大学计算机科学与工程学院Paul G. Allen教授Luke Zettlemoyer发表了题为“Large Language Models: Will they keep getting bigger? And, how will we use them if they do?”的主旨演讲,介绍了团队在大规模语言模型上的相关工作。Zettlemoyer教授围绕以下三个问题展开了讨论:
1)语言模型的规模是否会持续增长
2)如何最好的利用语言模型
3)其它模型预训练的监督方式
整理:胡雪瑜、熊宇轩
编辑:李梦佳
随着语言模型的规模不断增大,「语言模型的规模是否会持续增长」、「如何利用语言模型」成为了研究者们重点关注的问题。下图展示了预训练语言模型的参数规模与时间的关系,x轴代表时间,y轴代表参数规模,模型正在变得越来越大。
语言模型蕴含了语句的分布,当人们拥有语言模型后,就可以利用模型根据当前已有的单词预测之后可能出现的单词。尽管存在诸如BERT那样的双向语言模型,本文只讨论从左至右处理单词的语言模型。
以Open AI的GPT系列模型为例,零样本学习的能力让该语言模型可以处理任何自然语言处理(NLP)任务。该模型将 NLP任务转换为序列到序列的任务。例如,输入一段关于任务的描述文字,模型依据之前学习到的知识对文本进行分类。
语言模型的规模是否会持续增长
如下图所示,语言模型的参数量正接近一万亿,人们同时训练所有参数的难度越来越大。由于没有足够的数据或者算力作为支撑,模型难以得到充分的训练。近期,如PaLM、Chinchilla等模型尝试用较少的参数量、更多的数据和算力训练模型,控制了模型规模。
Zettlemoyer教授指出,如果人们真的想要将模型变得更大,最终不得不做出一些妥协:不再选择使用大型稠密的神经网络,而是采用稀疏化思想,使用模型的不同部分处理不同输入(例如,谷歌的 Switch模型)。即使采用最先进的GPU集群,算力需求仍然在接近计算设备的极限,必须在顶层架构上实现创新。
训练稠密模型时,任何输入都会被扔进整个模型,每一个参数都会参与计算。研究者们提出了数据并行、模型并行和流水线并行来加快计算,这些计算被部署到GPU集群的不同节点上。尽管如此,对于每一个输入,模型仍然要进行大量的计算,尤其是对那些大规模的模型。Zettlemoyer教授指出,采用稀疏模型进行条件计算可以仅使用模型的部分参数参与计算,节约大量计算资源。
Transformer结构包含自注意力层和全连接层,输入在自注意力层中完成计算后输入到全连接层中,当语言模型规模扩大时,超过95%的参数都来自全连接层,Zettlemoyer 教授团队尝试将全连接层稀疏化。