今年3月末,我们在 arXiv 网站发布了英文版大语言模型综述文章《A Survey of Large Language Models》,该综述文章系统性地梳理了大语言模型的研究进展与核心技术,讨论了大量的相关工作。今年 6 月底,为了提升该综述的质量,我们进行了大规模修订,目前版本号目前迭代到 V11。
同时,为了促进大模型知识在中文社区的传播,推动中文大模型研究,我们对英文版进行了翻译校对,推出了首个中文版大语言模型综述,目前已经对应更新到了 V10 版本(共 60 页),并将持续更新。
中文版大语言模型综述 * 中文版链接******:https://github.com/RUCAIBox/LLMSurvey/blob/main/assets/LLM_Survey_Chinese.pdf******
英文版链接:https://arxiv.org/abs/2303.18223
GitHub项目链接:https://github.com/RUCAIBox/LLMSurvey
自从 20 世纪 50 年代图灵测试被提出以来,人类一直在探索如何用机器掌握语言智能。语言本质上是一种由语法规则支配的复杂 的人类表达系统。开发有能力理解和掌握一门语言的人工智能(AI)算法是一个重大挑战。作为一种主要的语言理解和生成方法,语言 建模在过去的二十年中得到了广泛的研究,并从统计语言模型逐步发展为神经语言模型。近年来,通过在大规模语料库上对 Transformer 模型进行预训练,人们提出了预训练语言模型(Pre-training Language Model, PLM),其在解决各种自然语言处理(Natural Language Processing, NLP)任务方面表现出强大的能力。由于研究人员发现扩展模型规模可以提高模型能力,因此他们通过将参数增加到更大的 尺寸来进一步研究该效应。有趣的是,当参数规模超过一定水平时,这些规模更大的语言模型的性能不仅得到了显著提升,而且还表现出 一些小规模语言模型(例如 BERT)所不具备的特殊能力(例如上下文学习)。为了区分不同参数规模下的语言模型,研究界创造了术语 ——大语言模型(Large Language Model, LLM)代指大型的 PLM(如包含数百亿或数千亿个参数)。近年来,学术界和工业界极大地 推进了针对 LLM 的研究,其中一个显著的进展是推出了 ChatGPT(一种基于 LLM 开发的强大 AI 聊天机器人),它引起了社会的广泛 关注。LLM 的技术发展对整个 AI 界产生了重要影响,这将彻底改变我们开发和使用 AI 算法的方式。考虑到这一快速的技术进步,在本 篇综述中,我们通过介绍 LLM 的背景、主要发现和主流技术来回顾近年来的进展。我们特别关注 LLM 的四个主要方面,即预训练、适 配微调、使用和能力评估。此外,我们还总结了开发 LLM 的可用资源,并讨论了 LLM 现有的问题和未来的发展方向。本文提供了关于 LLM 的最新文献综述,期望能为研究人员和工程师提供帮助。 语言是人类表达和交流的突出能力,它在儿童早期发展 并在一生中不断演变 [1, 2]。然而,机器除非配备了强大的人 工智能算法,否则不能自然地掌握以人类语言形式理解和交 流的能力。实现让机器像人类一样阅读、写作和交流的目标, 一直是一个长期的研究挑战 [3]。 从技术上讲,语言建模(LM)是提高机器语言智能的主 要方法之一。一般来说,LM 旨在对词序列的生成概率进行建 模,以预测未来(或缺失)tokens 的概率。语言建模的研究在 文献中受到了广泛关注,可以分为四个主要发展阶段:
• 统计语言模型 (SLM): SLMs [4–7] 基于统计学习方法 开发,并在 20 世纪 90 年代兴起。其基本思想是基于马尔可夫 假设建立词预测模型,例如根据最近的上下文预测下一个词。 具有固定上下文长度 n 的 SLM 也称为 n 元语言模型,例如 bigram 和 trigram 语言模型。SLM 已被广泛应用于提高信息 检索(IR) [8, 9] 和自然语言处理(NLP) [10–12] 的任务性 能。然而,它们通常受到维数灾难的困扰:由于需要估计指数级数量的转换概率。 因此很难准确估计高阶语言模型。因此, 专门设计的平滑策略,如回退估计 [13] 和古德图灵估计 [14] 已被引入以缓解数据稀疏问题。
• 神经语言模型 (NLM): NLM [15–17] 通过神经网络, 如循环神经网络(RNN),来描述单词序列的概率。作为一个 显著贡献,[15] 的工作引入了词的分布式表示这一概念,并在 聚合上下文特征(即分布式词向量)的条件下构建词预测函数。通过扩展学习词或句子有效特征的想法,已有研究开发 了一种通用神经网络方法来为各种 NLP 任务构建统一解决 方案 [18]。此外,word2vec [19, 20] 提出了构建一个简化的浅 层神经网络来学习分布式单词表示的方法,这些表示在各种 NLP 任务中被证明非常有效。这些研究开创了将语言模型用 于表示学习(超越词序列建模)的应用,对 NLP 领域产生了 重要影响。
• 预训练语言模型 (PLM):作为早期尝试,ELMo [21] 被 提出来通过预训练一个双向 LSTM(biLSTM)网络(而不是 学习固定的词表示)来捕捉上下文感知的词表示,然后根据 特定的下游任务微调 biLSTM 网络。进一步,基于自注意力 机制的高度并行化 Transformer 架构 [22],BERT [23] 作为双 向语言模型,在大规模无标签语料库上使用专门设计的预训 练任务。这些预训练的上下文感知词表示作为通用语义特征 非常有效,其极大地提高了 NLP 任务的性能。这项研究激发 了大量后续工作,确立了“预训练和微调”学习范式。遵循这一范式,已经建立了大量关于 PLM 的研究,这些研究引入 了不同的架构 [24, 25](例如 GPT-2 [26] 和 BART [24])或者 改进的预训练策略 [27–29]。在这个范式中,通常需要对 PLM 进行微调以适配不同的下游任务。
• 大语言模型 (LLM):研究人员发现,扩展 PLM(例如 扩展模型大小或数据大小)通常会提高下游任务的模型性能 (即遵循扩展法则 [30])。许多研究通过训练越来越大的 PLM (例如 1750 亿参数的 GPT-3 和 5400 亿参数的 PaLM)来探 索性能极限。尽管扩展主要在模型大小方面进行(使用类似 的架构和预训练任务),但这些大规模的 PLM 与较小的 PLM (例如 3.3 亿参数的 BERT 和 15 亿参数的 GPT-2)表现出不 同的行为,并在解决一系列复杂任务中展示了惊人的能力(称 为涌现能力)。例如,GPT-3 可以通过上下文学习(in-context learning, ICL)来解决小样本任务,而 GPT-2 则表现不佳。因 此,研究界将这些大规模的 PLM 命名为“大语言模型”1 [31– 34]。作为 LLM 的一个出色应用,ChatGPT2将 GPT 系列的 LLM 应用于对话,展现出惊人的与人类对话的能力。
在现有文献中,PLM 已经得到了广泛的讨论和调研 [35– 38],而很少有研究对 LLM 以系统的方式进行回顾。为了激发 我们的调研,我们首先强调 LLM 和 PLM 之间的三个主要区 别。首先,LLM 表现出一些令人惊讶的涌现能力,这些能力 可能在以前较小的 PLM 中没有观察到。这些能力是 LM 在 复杂任务上表现的关键,它使得人工智能算法具有前所未有 的强大和有效性。其次,LLM 将彻底改变人类开发和使用人 工智能算法的方式。与小型 PLM 不同,访问 LLM 的主要方 法是通过提示接口(例如 GPT-4 API)。人们必须了解 LLM 的工作原理,并以 LLM 能够遵循的方式形式化他们的任务。 第三,LLM 的发展不再明确区分研究和工程。训练 LLM 需 要在大规模数据处理和分布式并行训练方面具有丰富的实践 经验。为了开发出有能力的 LLM,研究人员必须解决复杂的 工程问题,他们需要与工程师合作或成为工程师。
如今,LLM 对 AI 社区产生了重大影响,ChatGPT 和 GPT-4 的出现促使人们重新思考通用人工智能(AGI)的可 能性。OpenAI 已经发布了一篇名为“Planning for AGI and beyond”的技术文章,讨论了实现 AGI 的短期和长期计划 [39], 而一篇更近期的论文认为 GPT-4 可能被视为 AGI 系统的早 期版本 [40]。AI 研究领域正因 LLM 的迅速发展而发生革命 性变革。在 NLP 领域,LLM 可以在一定程度上作为通用语 言任务解决器,研究范式已经转向使用 LLM。在 IR 领域,传 统搜索引擎正受到通过 AI 聊天机器人(即 ChatGPT)搜索 新信息的挑战,而 New Bing3展示了一个初步的基于 LLM 增 强搜索结果的研究尝试。在计算机视觉(CV)领域,研究人 员试图开发类似 ChatGPT 的视觉-语言模型,以更好地为多模态对话提供服务 [41–44],GPT-4 [45] 已经通过整合视觉信 息来支持多模态输入。这一新技术浪潮可能会带来一个基于 LLM 的实际应用的繁荣生态系统。例如,Microsoft 365 正在 利用 LLM(即 Copilot)来自动化办公工作,而 OpenAI 支持 在 ChatGPT 中使用插件来实现特殊功能。LLM 尽管取得了进步并产生影响,但其基本原理尚未得 到充分探索。首先,为什么涌现能力会出现在 LLM 中,而 不是较小的 PLM 中,仍然是难以解释的。并且,一个更普 遍的问题是研究界缺乏对 LLM 优越能力的关键因素进行深 入、详细的研究调查。因此,研究 LLM 何时以及如何获得这 些能力非常重要 [46]。尽管对这个问题已有一些有意义的讨 论 [46, 47],但仍需要更多原则性的研究来揭示 LLM 的“秘 密”。其次,研究界很难训练出有能力的 LLM。由于计算资 源的巨大需求,为了研究训练 LLM 的各种策略的效果,进行 重复、消融研究的成本非常高。实际上,LLM 主要由工业界 训练,许多重要的训练细节(如数据收集和清理)并未向公 众透露。第三,将 LLM 与人类价值观或偏好保持一致是具有 挑战性的。LLM 尽管具有出色的能力,但是其也可能生成有 害、虚构或具有负面影响的内容。因此,需要有效和高效的控 制方法来消除使用 LLM 的潜在风险。 [45]。
面对机遇和挑战,我们需要更多关注 LLM 的研究和发展。 为了向读者提供对 LLM 的基础认识,本综述从四个主要方面 对 LLM 的最近进展进行文献综述,包括预训练(如何预训练 出一个有能力的 LLM)、适配微调(如何从有效性和安全性两 个角度有效地微调预训练的 LLM)、使用(如何利用 LLM 解 决各种下游任务)以及能力评估(如何评估 LLM 的能力和现 有的经验性发现)。我们彻底梳理了文献,总结了 LLM 的关键 发现、技术和方法。对于这篇综述,我们还创建了一个 GitHub 项目网站,该网站收集了关于 LLM 的支持资源,链接为 https: //github.com/RUCAIBox/LLMurvey。我们也了解到了一些 关于 PLM 或 LLM 的相关综述文章 [31, 35, 37, 38, 42, 48–54]。 这些论文要么讨论 PLM,要么讨论 LLM 的某些特定(或通 用)方面。与它们相比,我们关注开发和使用 LLM 的技术和 方法,并为 LLM 的重要方面提供相对全面的参考。
本综述的其余部分安排如下:第 2 章介绍 LLM 的背景, 包括术语、设置、资源和组织结构,接着在第 3 章总结开发 LLM 的可用资源。第 4、5、6 和 7 章分别从预训练、适配微 调、使用和能力评估四个方面回顾和总结了最近的进展。最 后,在第 8 章中,我们通过总结目前的主要发现以及讨论未 来工作的剩余问题来结束这次综述。
现有 LLM 预训练数据中各种数据来源的比率
一个典型的预处理预训练数据的流程图 近年来 LLM(指规模大于 100 亿的模型)的统计数据,包括评估、预训练数据规模(以 token 数量或存储大小表示)和硬件