来源:中国人民大学 人工智能学院和信息学院
github地址:RUCAIBox/LLMSurvey
论文:A Survey of Large Language Models
时间:2023年3月31日
语言本质上是一个复杂、错综复杂的人类表达系统,受语法规则支配。开发用于理解和掌握语言的有能力的 AI 算法是一项重大挑战。作为一种主要方法,语言建模在过去二十年中被广泛研究用于语言理解和生成,从统计语言模型发展到神经语言模型。
近年来,LLMs的研究得到了学术界和产业界的大力推进,其中一个引人注目的进展是ChatGPT的推出,引起了社会的广泛关注。 LLM 的技术发展对整个 AI 社区产生了重要影响,这将彻底改变我们开发和使用 AI 算法的方式。
在本次调查中,我们通过介绍背景、主要发现和主流技术来回顾 LLM 的最新进展。特别是,我们关注 LLM 的四个主要方面,即预训练、自适应调优、下游使用和能力评估。此外,我们还总结了开发 LLM 的可用资源,并讨论了未来方向的剩余问题。
从NLP的历史开始介绍,SLM,n-gram,rnn,lstm,PLM(Elmo,BERT,GPT,BART),再到PaLM,Chat GPT,GPT4
然后注重介绍了ChatGPT 和 GPT4 卓越能力和表现效果,最后介绍了自己github地址用来收集LLM相关资源。
LLM 的资源 考虑到具有挑战性的技术问题和巨大的计算资源需求,开发或复制LLM 绝非易事。一种可行的方法是从现有的 LLM 中学习经验,并重用公开可用的资源进行增量开发或实验研究。
在本节中,我们将简要总结几种广泛用于训练 LLM 的语料库。根据它们的内容类型,我们将这些语料库分为六组:书籍、CommonCrawl、Reddit 链接、维基百科、代码等。图书。
在这一部分中,我们简要介绍了一系列用于开发 LLM 的可用库。
预训练语料库的规模和质量对于 LLM 获得强大的能力至关重要。此外,为了有效地预训练 LLM,需要精心设计模型架构、加速方法和优化技术。首先在 4.1 节讨论数据收集和处理,然后在 4.2 节介绍常用的模型架构,最后在 4.3 节介绍稳定高效地优化 LLM 的训练技术。
在收集了大量文本数据后,必须对数据进行预处理以构建预训练语料库,尤其是去除噪声、冗余、不相关和潜在有毒数据,这可能会在很大程度上影响容量和 LLM 的表现。
在这一部分中,我们回顾了详细的数据预处理策略,以提高所收集数据的质量。现有工作通常采用两种方法:
(1)基于分类器
基于高质量文本训练选择分类器,并利用它来识别和过滤掉低质量数据。通常,这些方法 使用精心策划的数据(例如维基百科页面)作为正例训练二元分类器,并将候选数据样本作为负例,并预测衡量每个数据质量的分数例子。然而,一些研究 也发现,基于分类器的方法可能会无意中删除方言、口语和社会语言中的高质量文本,这可能会导致预训练语料库出现偏差并降低了语料库的多样性。
(2)基于启发式。
采用基于启发式的方法通过一组精心设计的规则来消除低质量文本,这些规则可以总结如下:
batch_size
批量训练。对于语言模型预训练,现有工作通常将批量大小设置为较大的数字(例如,8,196 个示例或 1.6M 令牌)以提高训练稳定性和吞吐量。对于 GPT-3 和 PaLM 等 LLM,他们引入了一种新策略,可以在训练期间动态增加批量大小,最终达到百万规模。具体来说,GPT-3 的 batch size 从 32K tokens 逐渐增加到 3.2M tokens。实证结果表明,批量大小的动态调度可以有效地稳定 LLM 的训练过程 。
learning_rate
现有的 LLM 通常在预训练期间采用类似的学习率计划以及预热和衰减策略。具体来说,在最初的 0.1% 到 0.5% 的训练步骤中,采用线性预热计划逐渐将学习率增加到最大值,范围从大约 5 × 10-5 到 1 × 10-4(例如, GPT-3 为 6 × 10−5)。然后,在后续步骤中采用余弦衰减策略,逐渐将学习率降低到其最大值的10%左右,直到训练损失收敛.
optimizer
Adam 优化器 和 AdamW 优化器 被广泛用于训练 LLM(例如 GPT-3),它们基于对低阶矩的自适应估计以进行一阶基于梯度的优化。通常,其超参数设置如下:β1 = 0.9,β2 = 0.95 和 = 10−8。同时,Adafactor 优化器也被用于训练 LLM(例如 PaLM 和 T5),这是 Adam 优化器的变体,专门为在训练期间节省 GPU 内存而设计。 Adafactor 优化器的超参数设置为:β1 = 0.9 和 β2 = 1.0 − k−0.8,其中 k 表示训练步数
Stabilizing the Training
在LLMs的预训练过程中,经常会遇到训练不稳定的问题,这可能会导致模型崩溃。为了解决这个问题,权重衰减和梯度裁剪被广泛使用,现有研究通常将梯度裁剪的阈值设置为1.0,权重衰减率设置为0.1。然而,随着 LLM 的缩放,训练损失尖峰也更有可能发生,从而导致训练不稳定。为了缓解这个问题,PaLM和 OPT使用一种简单的策略,即在尖峰出现之前从较早的检查点重新启动训练过程,并跳过可能导致问题的数据。此外,GLM发现嵌入层的异常梯度通常会导致尖峰,并提出收缩嵌入层梯度来缓解它
经过预训练,LLM 可以获得解决各种任务的通用能力。然而,越来越多的研究表明,法学硕士的能力可以根据具体目标进一步调整。在本节中,我们介绍两种主要的方法来调整预训练的 LLM,即指令调优和对齐调优。
指令微调,指令调优后,LLM 可以按照任务描述 很好地泛化到其他未见过的任务。特别是,已经表明指令是 LLM 任务泛化能力的关键因素。通过在标记数据集上微调模型并删除任务描述,它会导致模型性能急剧下降。为了更好地生成用于指令调整的标记实例,一个众包平台 PromptSource被提出来有效地创建、共享和验证不同数据集的任务描述。
RLHF
为了使 LLM 与人类价值观保持一致,人们提出了从人类反馈中强化学习 (RLHF) 以使用收集到的人类反馈数据对 LLM 进行微调,这有助于改进对齐标准。 RLHF 采用强化学习 (RL) 算法通过学习奖励模型使 LLM 适应人类反馈。这种方法将人类纳入训练循环中以开发对齐良好的 LLM。
RLHF 系统。 RLHF 系统主要包括三个关键组件:一个预训练的 LM 要对齐,一个从人类反馈中学习的奖励模型,以及一个 RL 算法。
在本次调查中,我们回顾了大型语言模型 (LLM) 的最新进展,并介绍了理解和利用 LLM 的关键概念、发现和技术。我们专注于大型模型(即尺寸大于 10B),而排除了现有文献中已充分涵盖的早期预训练语言模型(例如 BERT 和 GPT-2)的内容。
要了解 LLM 的底层工作机制,最大的谜团之一就是信息如何通过非常大的深度神经网络进行分发、组织和利用。重要的是要揭示建立 LLM 能力基础的基本原则或要素。特别是,当语言模型的参数规模增加到临界大小(例如 10B)时,一些紧急能力会以意想不到的方式发生,通常在 包括情境学习、指令遵循和逐步推理。这些新兴能力令人着迷但又令人费解。