如今,大型语言模型和基于LLM的聊天机器人(如ChatGPT和GPT-4)已经很好地融入到我们的日常生活中。
然而,在LLM应用成为主流之前,解码器仅自回归变压器模型在生成性自然语言处理应用中被广泛使用。了解它们在训练过程中的演变以及随着规模的扩大其性能如何变化可能是有帮助的。
Eleuther AI的项目Pythia是一个由16个大型语言模型组成的套件,用于提供研究、分析和进一步研究的可重现性。本文是对Pythia的介绍。
Pythia套件提供了什么?
如前所述,Pythia是一个包含16个大型语言模型(解码器仅自回归变压器模型)的套件,这些模型是在公开可用的数据集上训练的。该套件中的模型参数范围从70M到12B。
- 整个套件的训练过程采用相同的数据和相同的顺序进行。这有助于训练过程的可重现性。因此,我们不仅可以复制训练流程,还可以对语言模型进行分析,并深入研究其行为。
- 它还提供了下载训练数据加载器以及每个16个语言模型的154个模型检查点的功能。
训练数据和训练过程
现在让我们深入了解Pythia LLM套件的细节。
训练数据集
Pythia LLM套件是在以下数据集上训练的:
- 拥有300B个令牌的Pile数据集
- 拥有207B个令牌的去重复Pile数据集
共有8种不同的模型大小,最小和最大模型分别有70M和12B个参数。其他模型大小包括160M、410M、1B、1.4B、2.8B和6.9B。
这些模型中的每一个都是在Pile和重复Pile数据集上进行训练的,总共有16个模型。下表显示了模型大小和一些超参数的子集。
有关使用的超参数的完整详细信息,请阅读《Pythia:跨训练和扩展分析大型语言模型的套件》。
训练过程
下面是架构和训练过程的概述:
- 所有模型都具有完全密集层,并使用闪存注意力。
- 为了更容易解释性,使用了非绑定嵌入矩阵。
- 使用批量大小为1024和序列长度为2048。这种较大的批量大小大大减少了墙钟训练时间。
- 训练过程还利用了数据和张量并行等优化技术。
在训练过程中,使用了由Eleuther AI开发的GPT-Neo-X库(包含DeepSpeed库的功能)。
模型检查点
每个模型有154个检查点。每1000次迭代有一个检查点。此外,在训练过程的早期还有以对数间隔为间隔的检查点:1、2、4、8、16、32、64、128、256和512。
Pythia与其他语言模型相比如何?
Pythia LLM套件已经针对可用的语言建模基准进行了评估,包括OpenAI的LAMBADA变体。结果发现,Pythia的性能与OPT和BLOOM语言模型相当。
优势和限制
Pythia LLM套件的关键优势是可复现性。数据集是公开可用的,预分词的数据加载器和154个模型检查点也是公开可用的。完整的超参数列表也已经发布。这使得复制模型训练和分析变得更简单。
在[1]中,作者解释了他们选择英语语料库而不是多语言文本语料库的理由。但是对于多语言大型语言模型,具有可复制的训练流程可能会有所帮助。特别是鼓励更多关于多语言大型语言模型动态的研究和学习。
案例研究概述
该研究还提供了利用Pythia套件中大型语言模型训练过程的可复现性的有趣案例研究。
性别偏见
所有大型语言模型都容易受到偏见和错误信息的影响。该研究侧重于通过修改预训练数据,使得特定性别的代词占一定比例来减轻性别偏见。这种预训练也是可复制的。
记忆
大型语言模型中的记忆也是一个被广泛研究的领域。序列记忆被建模为泊松点过程。该研究旨在了解特定序列在训练数据集中的位置是否影响记忆。观察到位置不会影响记忆。
预训练词频的影响
对于参数为2.8B及以上的语言模型,发现在预训练语料库中出现特定任务相关术语可以提高模型在问答等任务上的性能。
模型大小与涉及更复杂任务(如算术和数学推理)的性能之间也存在相关性。
总结和下一步
让我们总结一下我们讨论的关键点。
- Eleuther AI的Pythia是一个由公开可用的Pile和去重Pile数据集训练的16个LLM套件。
- LLM的大小范围从70M到12B个参数。
- 训练数据和模型检查点是开源的,并且可以重建完全相同的训练数据加载器。因此,LLM套件可以帮助更好地理解大型语言模型的训练动态。
作为下一步,您可以在Hugging Face Hub上探索Pythia套件的模型和模型检查点。
参考
[1] Pythia:跨训练和扩展分析大型语言模型的套件,arXiv,2023 Bala Priya C是来自印度的开发人员和技术作家。她喜欢在数学、编程、数据科学和内容创作的交叉点工作。她感兴趣和擅长的领域包括DevOps、数据科学和自然语言处理。她喜欢阅读、写作、编码和咖啡!目前,她正在通过撰写教程、指南、观点文章等来学习和与开发者社区分享自己的知识。