2023年3月

摘要

由于研究人员发现模型缩放可以提高性能,他们通过将模型大小增加到更大的大小来进一步研究缩放效应。有趣的是,当参数尺度超过一定水平时,这些放大的语言模型不仅实现了显著的性能改进,而且还显示出一些小规模语言模型(如BERT)中不存在的特殊能力(如上下文学习)。为了区分参数尺度的差异,研究界为显著大小的PLM(例如,包含数百亿或数千亿个参数)创造了“大型语言模型”(LLM)一词。

在本次调查中,我们通过介绍背景、关键发现和主流技术来回顾LLM的最新进展。特别是,我们关注LLM的四个主要方面,即预训练、适应调整、利用和能力评估(pre-training, adaptation tuning, utilization, and capacity evaluation. )

1、INTRODUCTION

1.Technically, language modeling (LM)
2.Neural language models (NLM). word2vec,rnn,cnn
3.Pre-trained language models (PLM). ELMo,LSTM
4. Large language models (LLM).

研究人员发现,扩展PLM(例如,扩展模型大小或数据大小)通常会提高下游任务的模型能力。许多研究已经通过训练越来越大的PLM(例如,175B参数GPT-3和540B参数PaLM)来探索性能极限。尽管缩放主要在模型大小(具有类似的架构和预训练任务)下进行,但这些大型PLM表现出与较小PLM不同的行为(例如,330M参数BERT和1.5B参数GPT-2),并在解决一系列复杂任务时表现出令人惊讶的能力(称为涌现能力[31],called emergent abilities)。

强调LLM和PLM之间的三个主要区别:

(1)首先,LLM显示出一些令人惊讶的涌现能力,这在以前的较小PLM中可能没有观察到。
(2)其次,LLM彻底改变了人类开发和使用人工智能算法的方式。与小型PLM不同,访问LLM的主要方法是通过提示接口(例如GPT-4API)。人类必须了解LLM是如何工作的,并以LLM可以遵循的方式格式化他们的任务。
(3)第三,LLM的发展不再明确区分研究和工程。LLM的训练需要在大规模数据处理和分布式并行训练方面有丰富的实践经验。为了开发有能力的LLM,研究人员必须解决复杂的工程问题,与工程师合作或成为工程师。

挑战
但LLM的基本原则仍然没有得到很好的探索。
(1)首先,为什么新兴能力出现在LLM中,而不是较小的PLM中,这仍然是个谜。
(2)其次,很难为研究界训练有能力的LLM。由于模型预训练的巨大成本,很难对研究界进行重复、消融的研究。
(3)第三,使LLM与人类价值观或偏好保持一致是非常具有挑战性的。尽管有这种能力,LLM也可能产生有毒、虚构或有害的内容。它需要有效和高效的控制方法来消除LLM使用的潜在风险[46]。

2.OVERVIEW(概述)

在本节中,我们将介绍LLM的背景以及关键术语、能力和技术。
Background
通常,大型语言模型(LLM)指的是包含数千亿(或更多)参数的语言模型5
,它们是在海量文本数据[32]上训练的,如GPT-3[55]、PaLM[56]、Galactica[35]和LLaMA[57]。具体而言,LLM建立在Transformer架构[22]的基础上,其中多头注意力层堆叠在非常深入的神经网络中。

Emergent Abilities of LLMs
在文献[31]中,LLM的涌现能力被正式定义为“不存在于小模型中但出现于大模型中的能力”,这是LLM与以前的PLM区别开来的最显著特征之一。当涌现能力出现时,它还引入了一个显著的特征:当规模达到一定水平时,表现显著高于随机。
在这里,我们简要介绍LLM的三种具有代表性的涌现能力,描述如下。
• In-context learning:
GPT-3[55]正式引入了上下文学习能力:假设语言模型已经提供了一个自然语言指令和/或几个任务演示,它可以通过完成输入文本的单词序列来生成测试实例的预期输出,而不需要额外的训练或梯度更新。

• Instruction following.
通过对通过自然语言描述(即指令)格式化的多任务数据集的混合进行微调,LLM在同样以指令形式描述的看不见的任务上表现良好[28,61,62]。有了这种能力,指令调优使LLM能够通过理解任务指令来执行新任务,而无需使用明确的示例,这可以在很大程度上提高泛化能力。

• Step-by-step reasoning.
对于小型语言模型,通常很难解决涉及多个推理步骤的复杂任务,例如数学单词问题。而通过思维链推理策略[33],LLM可以通过利用提示机制来解决这些任务,该机制涉及推导最终答案的中间推理步骤。据推测,这种能力可能是通过对代码进行训练获得的[33,47]。

Key Techniques for LLMs.
• Scaling
• Training
需要分布式训练算法来学习LLM的网络参数,其中经常联合使用各种并行策略。为了支持分布式训练,已经发布了几个优化框架来促进并行算法的实现和部署,如DeepSpeed[64]和Megatron LM[65]。
• Ability eliciting(启发)
思维链提示已被证明通过包括中间推理步骤来解决复杂的推理任务是有用的。此外,我们可以通过自然语言的任务描述进一步对LLM进行指令调整,以提高LLM在看不见的任务上的可推广性。
• Alignment tuning
由于LLM是为了捕捉预训练语料库的数据特征而训练的(包括高质量和低质量的数据),因此它们很可能会对人类产生有毒、有偏见甚至有害的内容。有必要使LLM与人类价值观保持一致,例如有益、诚实和无害。为此,InstructGPT[61]设计了一种有效的调整方法,使LLM能够遵循预期的指令,该方法利用了人类反馈的强化学习技术[61,67]。
它通过精心设计的标签策略将人融入训练循环。ChatGPT确实是在与InstructGPT类似的技术上开发的,它在产生高质量、无害的回答方面表现出强大的协调能力,例如拒绝回答侮辱性问题。
• Tools manipulation(操作)
本质上,LLM被训练为大规模纯文本语料库上的文本生成器,因此在文本中没有最好地形成或表达的任务(例如,数值计算)上执行得不太好。此外,他们的能力也局限于训练前的数据,最近提出的一种技术是使用外部工具来弥补LLM的不足[68,69]。
例如,LLM可以利用计算器进行精确计算[69],并使用搜索引擎检索未知信息[70]。最近,ChatGPT启用了使用外部插件(现有或新创建的应用程序)的机制,这与LLM的“眼睛和耳朵”类似。

3. RESOURCES OF LLMS

在本节中,我们将主要总结开源模型检查点或API、可用的语料库和用于LLM的有用库。

3.1Publicly Available Model Checkpoints or APIs

• Models with Tens of Billions of Parameters
• Models with Hundreds of Billions of Parameters
• Public API of LLMs.

3.2 Commonly Used Corpora

在本节中,我们将简要总结几种广泛用于培训LLM的语料库。根据它们的内容类型,我们将这些语料库分为六组:图书、CommonCrawl、Reddit链接、维基百科、代码和其他。

3.3 Library Resource

在这一部分中,我们简要介绍了一系列可用于开发LLM的库。
Transformers、DeepSpeed、Colossal-AI