A Survey of Large Language Models


A Survey of Large Language Models

1 引言

语言是人类表达和交流的突出能力。让机器掌握类似人类的语言理解和沟通能力,一直是人工智能(AI)领域长久以来的研究挑战。语言建模 (Language modeling, LM) 是推动机器语言智能发展的主要方法之一。它旨在对词序列的生成概率进行建模,以预测未来(或缺失)的 token。

语言建模的发展大致可分为四个主要阶段,这四个阶段也体现了其解决任务能力的演进:

Refer to caption

Refer to caption (a) 查询=”Language Model”

Refer to caption (b) 查询=”Large Language Model”

从“语言建模”到“任务解决”,是理解语言模型发展史的关键。LLM 的发展正对整个 AI 社区产生重要影响,并可能革新我们开发和使用 AI 算法的方式。

本文认为 LLM 与 PLM 存在三个主要区别:

  1. 涌现能力:LLM 展现出小模型所没有的惊人能力,这是其在复杂任务上表现出色的关键。
  2. 新范式:LLM 改变了 AI 算法的开发和使用方式。用户主要通过提示接口 (prompting interface) 与 LLM 交互,需要理解其工作原理并相应地格式化任务。
  3. 研产结合:LLM 的发展模糊了研究与工程的界限,其训练需要大规模数据处理和分布式并行训练的丰富实践经验。

尽管 LLM 取得了巨大进展,但其底层原理仍有待探索,面临三大挑战:

  1. 涌现能力的来源:LLM 为何会产生涌现能力,其背后的关键因素是什么,这仍然是一个谜。
  2. 训练成本高昂:巨大的计算资源需求使得重复、消融性的研究变得非常昂贵,许多训练细节也未公开,阻碍了学术界的研究。
  3. 对齐挑战:LLM 可能会生成有毒、虚假或有害的内容,如何使其与人类的价值观或偏好对齐,是一个严峻的挑战。

2 概述

本节概述了 LLM 的背景知识,并总结了 GPT 系列模型的技术演进。

2.1 LLM 背景知识

通常,大语言模型(LLM)指包含数千亿(或更多)参数的 Transformer 语言模型,它们在海量文本数据上进行训练。LLM 展现出强大的自然语言理解和通过文本生成解决复杂任务的能力。

缩放法则 (Scaling Laws)

LLM 建立在 Transformer 架构之上,并通过显著增加模型大小、数据大小和总计算量来提升性能。缩放法则旨在量化地描述这种规模效应。

关于缩放法则的讨论

LLM 的涌现能力

涌现能力被定义为“小模型中不存在、但在大模型中出现的能力”,这是 LLM 与以往 PLM 最显著的区别之一。这些能力通常在模型规模达到某个临界点时,性能会突然显著高于随机水平,类似于物理学中的“相变 (phase transition)”现象。

三种典型的涌 ઉ 能力:

LLM 的关键技术

LLM 的成功归功于一系列关键技术的进步。

Refer to caption

下表总结了近年来发布的一些主要 LLM 的统计信息。

TABLE I: 近年来大语言模型(本文中指规模大于10B)的统计数据,包括能力评估、预训练数据规模(token 数量或存储大小)和硬件资源成本。本表仅包含已发布技术细节论文的LLM。 “发布时间”指相应论文正式发布的日期。”公开可用”指模型检查点可公开访问,”闭源”则相反。 “适配”指模型是否经过后续微调:IT代表指令调优,RLHF代表基于人类反馈的强化学习。 “评估”指模型是否在其原始论文中评估了相应能力:ICL代表上下文学习,CoT代表思维链。”*“表示可公开获得的最大版本。

  模型 发布时间 大小 (B) 基础模型 适配   预训练数据规模 最新数据时间戳 硬件 (GPUs / TPUs) 训练时间 评估  
          IT RLHF         ICL CoT
公开可用 T5 [82] 2019-10 11 - - - 1T tokens 2019-04 1024 TPU v3 - $\checkmark$ -
  mT5 [83] 2020-10 13 - - - 1T tokens - - - $\checkmark$ -
  PanGu-$\alpha$ [84] 2021-04 13* - - - 1.1TB - 2048 Ascend 910 - $\checkmark$ -
  CPM-2 [85] 2021-06 198 - - - 2.6TB - - - - -
  T0 [28] 2021-10 11 T5 $\checkmark$ - - - 512 TPU v3 27 h $\checkmark$ -
  CodeGen [86] 2022-03 16 - - - 577B tokens - - - $\checkmark$ -
  GPT-NeoX-20B [87] 2022-04 20 - - - 825GB - 96 40G A100 - $\checkmark$ -
  Tk-Instruct [88] 2022-04 11 T5 $\checkmark$ - - - 256 TPU v3 4 h $\checkmark$ -
  UL2 [89] 2022-05 20 - - - 1T tokens 2019-04 512 TPU v4 - $\checkmark$ $\checkmark$
  OPT [90] 2022-05 175 - - - 180B tokens - 992 80G A100 - $\checkmark$ -
  NLLB [91] 2022-07 54.5 - - - - - - - $\checkmark$ -
  CodeGeeX [92] 2022-09 13 - - - 850B tokens - 1536 Ascend 910 60 d $\checkmark$ -
  GLM [93] 2022-10 130 - - - 400B tokens - 768 40G A100 60 d $\checkmark$ -
  Flan-T5 [69] 2022-10 11 T5 $\checkmark$ - - - - - $\checkmark$ $\checkmark$
  BLOOM [78] 2022-11 176 - - - 366B tokens - 384 80G A100 105 d $\checkmark$ -
  mT0 [94] 2022-11 13 mT5 $\checkmark$ - - - - - $\checkmark$ -
  Galactica [35] 2022-11 120 - - - 106B tokens - - - $\checkmark$ $\checkmark$
  BLOOMZ [94] 2022-11 176 BLOOM $\checkmark$ - - - - - $\checkmark$ -
  OPT-IML [95] 2022-12 175 OPT $\checkmark$ - - - 128 40G A100 - $\checkmark$ $\checkmark$
  LLaMA [57] 2023-02 65 - - - 1.4T tokens - 2048 80G A100 21 d $\checkmark$ -
  Pythia [96] 2023-04 12 - - - 300B tokens - 256 40G A100 - $\checkmark$ -
  CodeGen2 [97] 2023-05 16 - - - 400B tokens - - - $\checkmark$ -
  StarCoder [98] 2023-05 15.5 - - - 1T tokens - 512 40G A100 - $\checkmark$ $\checkmark$
  LLaMA2 [99] 2023-07 70 - $\checkmark$ $\checkmark$ 2T tokens - 2000 80G A100 - $\checkmark$ -
  Baichuan2 [100] 2023-09 13 - $\checkmark$ $\checkmark$ 2.6T tokens - 1024 A800 - $\checkmark$ -
  QWEN [101] 2023-09 14 - $\checkmark$ $\checkmark$ 3T tokens - - - $\checkmark$ -
  FLM [102] 2023-09 101 - $\checkmark$ - 311B tokens - 192 A800 22 d $\checkmark$ -
  Skywork [103] 2023-10 13 - - - 3.2T tokens - 512 80G A800 - $\checkmark$ -
闭源 GPT-3 [55] 2020-05 175 - - - 300B tokens - - - $\checkmark$ -
  GShard [104] 2020-06 600 - - - 1T tokens - 2048 TPU v3 4 d - -
  Codex [105] 2021-07 12 GPT-3 - - 100B tokens 2020-05 - - $\checkmark$ -
  ERNIE 3.0 [106] 2021-07 10 - - - 375B tokens - 384 V100 - $\checkmark$ -
  Jurassic-1 [107] 2021-08 178 - - - 300B tokens - 800 GPU - $\checkmark$ -
  HyperCLOVA [108] 2021-09 82 - - - 300B tokens - 1024 A100 13.4 d $\checkmark$ -
  FLAN [67] 2021-09 137 LaMDA-PT $\checkmark$ - - - 128 TPU v3 60 h $\checkmark$ -
  Yuan 1.0 [109] 2021-10 245 - - - 180B tokens - 2128 GPU - $\checkmark$ -
  Anthropic [110] 2021-12 52 - - - 400B tokens - - - $\checkmark$ -
  WebGPT [81] 2021-12 175 GPT-3 - $\checkmark$ - - - - $\checkmark$ -
  Gopher [64] 2021-12 280 - - - 300B tokens - 4096 TPU v3 920 h $\checkmark$ -
  ERNIE 3.0 Titan [111] 2021-12 260 - - - - - - - $\checkmark$ -
  GLaM [112] 2021-12 1200 - - - 280B tokens - 1024 TPU v4 574 h $\checkmark$ -
  LaMDA [68] 2022-01 137 - - - 768B tokens - 1024 TPU v3 57.7 d - -
  MT-NLG [113] 2022-01 530 - - - 270B tokens - 4480 80G A100 - $\checkmark$ -
  AlphaCode [114] 2022-02 41 - - - 967B tokens 2021-07 - - - -
  InstructGPT [66] 2022-03 175 GPT-3 $\checkmark$ $\checkmark$ - - - - $\checkmark$ -
  Chinchilla [34] 2022-03 70 - - - 1.4T tokens - - - $\checkmark$ -
  PaLM [56] 2022-04 540 - - - 780B tokens - 6144 TPU v4 - $\checkmark$ $\checkmark$
  AlexaTM [115] 2022-08 20 - - - 1.3T tokens - 128 A100 120 d $\checkmark$ $\checkmark$
  Sparrow [116] 2022-09 70 - - $\checkmark$ - - 64 TPU v3 - $\checkmark$ -
  WeLM [117] 2022-09 10 - - - 300B tokens - 128 A100 40G 24 d $\checkmark$ -
  U-PaLM [118] 2022-10 540 PaLM - - - - 512 TPU v4 5 d $\checkmark$ $\checkmark$
  Flan-PaLM [69] 2022-10 540 PaLM $\checkmark$ - - - 512 TPU v4 37 h $\checkmark$ $\checkmark$
  Flan-U-PaLM [69] 2022-10 540 U-PaLM $\checkmark$ - - - - - $\checkmark$ $\checkmark$
  GPT-4 [46] 2023-03 - - $\checkmark$ $\checkmark$ - - - - $\checkmark$ $\checkmark$
  PanGu-$\Sigma$ [119] 2023-03 1085 PanGu-$\alpha$ - - 329B tokens - 512 Ascend 910 100 d $\checkmark$ -
  PaLM2 [120] 2023-05 16 - $\checkmark$ - 100B tokens - - - $\checkmark$ $\checkmark$

2.2 GPT 系列模型的技术演进

ChatGPT 的巨大成功激发了社区对 GPT 系列模型的浓厚兴趣。GPT 模型的基本原理是通过语言建模任务,将世界知识压缩到一个仅包含解码器 (decoder-only) 的 Transformer 模型中,使其能够恢复或记忆世界知识的语义,从而成为一个通用的任务解决器。其成功的两个关键点是:(I) 训练能够准确预测下一个词的 decoder-only Transformer 语言模型,以及 (II) 扩大语言模型的规模

Refer to caption

OpenAI 在 LLM 上的研究大致可分为以下几个阶段:

早期探索 根据 OpenAI 联合创始人 Ilya Sutskever 的访谈,OpenAI 早期就已探索用语言模型来构建智能系统,当时尝试的是循环神经网络(RNN)。随着 Transformer 的出现,OpenAI 开发了最初的两代 GPT 模型:GPT-1 和 GPT-2,它们为后续更强大的 GPT-3 和 GPT-4 奠定了基础。