1.4大语言模型对科技发展的影响 术的迅猛发展,人工智能相关研究领域正发生着重要的技术变革,下面以四个典 型的领域进行介绍: ·自然语言处理.在自然语言处理领域,大语言模型可以作为一种通用的语言 任务解决技术,能够通过特定的提示方式解决不同类型的任务,并且能够取得较 为领先的效果。进一步,很多传统任务的研究意义在衰减,甚至有些任务被宣告 “结束”(如摘要任务),研究范式开始全面转向大语言模型技术,研究人员的关注 重点由“解决特定任务”迁移到“如何进一步提升大语言模型的综合能力”。语言 智能开始成为主导人工智能发展方向的重要路径。 ·信息检索.在信息检索领域,传统搜索引擎受到了人工智能信息助手(即 ChatGPT)这一新型信息获取方式的冲击。在基于大语言模型的信息系统中,人们 可以通过自然语言对话的形式获得复杂问题的答案。微软也推出了基于大语言模 型增强的搜索引擎New Bing,将大语言模型与传统搜索引擎进行融合。但是,目 前大语言模型信息系统的精确性与实时性还有待提升,无法完全胜任现有搜索引 擎的角色。鉴于大语言模型与搜索引擎各自的优势,信息检索领域主要关注两个 新兴方向的研究,即检索增强的大语言模型以及大语言模型增强的搜索系统,全 面围绕大语言模型技术展开。 ·计算机视觉.在计算机视觉领域,研究人员为了更好地解决跨模态或多模态 任务,正着力研发类ChatGPT的视觉-语言联合对话模型,GPT4已经能够支持图 文多模态信息的输入。由于开源大语言模型的出现,可以极大地简化多模态模型 的实现难度,通过将图像、视频等模态的信息与文本语义空间相融合,可以通过 计算量相对较少的微调方法来研发多模态大语言模型。进一步,基于下一个词元 预测的思路也可能会带来多模态领域的基础模型架构的转变,例如OpenAI最新 推出的Sor模型就是基于图像块序列建模的思路进行构建的。 ·人工智能赋能的科学研究(A4 Science).近年来,A4 Science受到了学术 界的广泛关注,目前大语言模型技术已经广泛应用于数学、化学、物理、生物等 多个领域,基于其强大的模型能力赋能科学研究。例如,著名数学家陶哲轩曾多 次在社交网络表示,他在数学科研中广泛使用大语言模型,用于辅助提供解题灵 感甚至用于论文的撰写。此外,大语言模型也多次被证明在新材料发现、生物制 药等多个方面都能起到一定的促进作用。随着大语言模型训练数据规模与范围的 扩展,在未来将会在人类科学研究中扮演更为重要的角色, 除了在特定学科领域的应用,大语言模型对于整体的科研范式也正产生着重
1.4 大语言模型对科技发展的影响 术的迅猛发展,人工智能相关研究领域正发生着重要的技术变革,下面以四个典 型的领域进行介绍: • 自然语言处理. 在自然语言处理领域,大语言模型可以作为一种通用的语言 任务解决技术,能够通过特定的提示方式解决不同类型的任务,并且能够取得较 为领先的效果。进一步,很多传统任务的研究意义在衰减,甚至有些任务被宣告 “结束”(如摘要任务),研究范式开始全面转向大语言模型技术,研究人员的关注 重点由“解决特定任务”迁移到“如何进一步提升大语言模型的综合能力”。语言 智能开始成为主导人工智能发展方向的重要路径。 • 信息检索. 在信息检索领域,传统搜索引擎受到了人工智能信息助手(即 ChatGPT)这一新型信息获取方式的冲击。在基于大语言模型的信息系统中,人们 可以通过自然语言对话的形式获得复杂问题的答案。微软也推出了基于大语言模 型增强的搜索引擎 New Bing,将大语言模型与传统搜索引擎进行融合。但是,目 前大语言模型信息系统的精确性与实时性还有待提升,无法完全胜任现有搜索引 擎的角色。鉴于大语言模型与搜索引擎各自的优势,信息检索领域主要关注两个 新兴方向的研究,即检索增强的大语言模型以及大语言模型增强的搜索系统,全 面围绕大语言模型技术展开。 • 计算机视觉. 在计算机视觉领域,研究人员为了更好地解决跨模态或多模态 任务,正着力研发类 ChatGPT 的视觉-语言联合对话模型,GPT-4 已经能够支持图 文多模态信息的输入。由于开源大语言模型的出现,可以极大地简化多模态模型 的实现难度,通过将图像、视频等模态的信息与文本语义空间相融合,可以通过 计算量相对较少的微调方法来研发多模态大语言模型。进一步,基于下一个词元 预测的思路也可能会带来多模态领域的基础模型架构的转变,例如 OpenAI 最新 推出的 Sora 模型就是基于图像块序列建模的思路进行构建的。 • 人工智能赋能的科学研究(AI4Science). 近年来,AI4Science 受到了学术 界的广泛关注,目前大语言模型技术已经广泛应用于数学、化学、物理、生物等 多个领域,基于其强大的模型能力赋能科学研究。例如,著名数学家陶哲轩曾多 次在社交网络表示,他在数学科研中广泛使用大语言模型,用于辅助提供解题灵 感甚至用于论文的撰写。此外,大语言模型也多次被证明在新材料发现、生物制 药等多个方面都能起到一定的促进作用。随着大语言模型训练数据规模与范围的 扩展,在未来将会在人类科学研究中扮演更为重要的角色。 除了在特定学科领域的应用,大语言模型对于整体的科研范式也正产生着重 12
1.5本书的内容组织 要影响。为了有效提升大模型的性能,研究人员需要深入了解大模型相关的工程 技术,对于理论与实践的结合提出了更高的需求。例如,训练大模型具备大规模 数据处理与分布式并行训练方面的实践经验。进一步,大语言模型将改变人类开 发和使用人工智能算法的方式。与小型预训练语言模型不同,访问大语言模型的 主要方法是通过提示接口(Prompting Interface),例如GPT-4API。为了更好地发 挥模型性能,使用者需要了解大语言模型的工作原理,并按照大语言模型能够遵 循的方式来描述需要解决的任务。 此外,大语言模型对于产业应用带来了变革性的技术影响,将会催生一个基 于大语言模型的应用生态系统。例如,微软365(Microsoft365)正利用大语言模 型(即Copilot)来加强自动化办公软件的自动化办公工作;OpenAI也进一步推动 Assistants API和GPTs来推广大模型智能体(Agent)的研发,从而实现特定任务 的求解工具。在未来,将出现更多的以大语言模型为基础技术架构的科技应用产 品,简化原来繁复的功能处理流程,加快软件研发周期,极大地改善用户体验。 1.5本书的内容组织 本书主要面向希望系统学习大语言模型技术的读者,将重点突出核心概念与 算法,并且配以示例与代码(伪代码)帮助读者理解特定算法的实现逻辑。由于大 语言模型技术的快速更迭,本书无法覆盖所有相关内容,旨在梳理最具代表性的 基础知识内容,帮助读者更好地了解大语言模型技术的核心知识点,能够快速上 手相关的科研与工程项目。为了配合本书的阅读与使用,我们创建了一个GitHub 项目网站,该网站收集了关于大语言模型的相关资源,链接为https:/github com/RUCAIBox/LLMSurvey. 本书共设置了五个主要部分,分别是背景与基础知识部分、预训练部分、微 调与对齐部分、大模型使用部分以及评测与应用部分,按照如下的内容组织进行 设置: ·背景与基础知识部分.第2章将首先介绍大语言模型的构建过程,随后介绍 大语言模型相关的背景知识以及重要概念,包括通现能力、扩展定律以及二者之 间的联系与区别;进一步介绍GPT系列模型的发展历程以及各个阶段的重要技术 创新,从而能够更好地了解大语言模型的技术升级历史。第3章将介绍目前大语 言模型相关的资源信息,包括公开可用的模型检查点与API、数据集合以及代码 工具库,为读者梳理与汇总相关资源
1.5 本书的内容组织 要影响。为了有效提升大模型的性能,研究人员需要深入了解大模型相关的工程 技术,对于理论与实践的结合提出了更高的需求。例如,训练大模型具备大规模 数据处理与分布式并行训练方面的实践经验。进一步,大语言模型将改变人类开 发和使用人工智能算法的方式。与小型预训练语言模型不同,访问大语言模型的 主要方法是通过提示接口(Prompting Interface),例如 GPT-4 API。为了更好地发 挥模型性能,使用者需要了解大语言模型的工作原理,并按照大语言模型能够遵 循的方式来描述需要解决的任务。 此外,大语言模型对于产业应用带来了变革性的技术影响,将会催生一个基 于大语言模型的应用生态系统。例如,微软 365(Microsoft 365)正利用大语言模 型(即 Copilot)来加强自动化办公软件的自动化办公工作;OpenAI 也进一步推动 Assistants API 和 GPTs 来推广大模型智能体(Agent)的研发,从而实现特定任务 的求解工具。在未来,将出现更多的以大语言模型为基础技术架构的科技应用产 品,简化原来繁复的功能处理流程,加快软件研发周期,极大地改善用户体验。 1.5 本书的内容组织 本书主要面向希望系统学习大语言模型技术的读者,将重点突出核心概念与 算法,并且配以示例与代码(伪代码)帮助读者理解特定算法的实现逻辑。由于大 语言模型技术的快速更迭,本书无法覆盖所有相关内容,旨在梳理最具代表性的 基础知识内容,帮助读者更好地了解大语言模型技术的核心知识点,能够快速上 手相关的科研与工程项目。为了配合本书的阅读与使用,我们创建了一个 GitHub 项目网站,该网站收集了关于大语言模型的相关资源,链接为 https://github. com/RUCAIBox/LLMSurvey。 本书共设置了五个主要部分,分别是背景与基础知识部分、预训练部分、微 调与对齐部分、大模型使用部分以及评测与应用部分,按照如下的内容组织进行 设置: • 背景与基础知识部分. 第 2 章将首先介绍大语言模型的构建过程,随后介绍 大语言模型相关的背景知识以及重要概念,包括涌现能力、扩展定律以及二者之 间的联系与区别;进一步介绍 GPT 系列模型的发展历程以及各个阶段的重要技术 创新,从而能够更好地了解大语言模型的技术升级历史。第 3 章将介绍目前大语 言模型相关的资源信息,包括公开可用的模型检查点与 API 、数据集合以及代码 工具库,为读者梳理与汇总相关资源。 13
15本书的内容组织 ·预训练部分.第4章将主要介绍预训练数据的准备工作,主要包括数据的收 集、清洗以及词元化方法,随后将介绍数据课程的设计方法。第5章将主要介绍 大语言模型的架构,主要包括Transformer模型、各种组件的详细配置、长文本建 模以及一些新型的模型架构。第6章将主要介绍预训练过程所涉及到的预训练任 务、优化参数设置、可扩展的训练技术以及参数量计算与效率分析方法,并通过 相关实战代码进行讲解。 ·微调与对齐部分.第7章将主要介绍指令微调所涉及的数据构建、优化策 略;进一步将介绍典型的轻量化微调技术,减少模型训练的开销;并且通过实践 示例介绍指令微调的具体流程。第8章将主要介绍大模型的人类对齐技术,将以 RLHF为主要方法进行详细介绍,并且进一步介绍非强化学习的对齐方法,最后 探讨SFT与RLHF之间的关系 ·大模型使用部分.第9章将主要介绍大模型的解码与部署方法,包括解码策 略、解码加速算法、低资源部署策略以及其他模型压缩方法。第10章将主要介绍 面向大语言模型的提示学习技术,包括基础的提示学习设计方法、上下文学习方 法以及思维链方法等。第11章将主要介绍面向复杂任务的规划技术,探索如何将 复杂任务进行有效分解,并通过回溯、反思等关键技术形成有效的解决方案;进 一步,将介绍如何构建基于大语言模型的智能体以及多智能体系统。 ·评测与应用部分.第12章将主要介绍面向大语言模型性能的评测方法,针 对不同的能力维度介绍相关的评测集合、评测指标以及评测方法,并且指出大语 言模型目前存在的问题。第13章将主要介绍大语言模型的应用情况,具体将分别 从代表性的研究领域以及应用领域两个维度展开讨论,我们将以代表性工作为驱 动,使得读者能够了解如何将大语言模型进行领域特化以及任务特化。 最后,第14章将对于全文的内容进行总结,进一步梳理目前每个部分存在的 技术挑战以及研究趋势。 14
1.5 本书的内容组织 • 预训练部分. 第 4 章将主要介绍预训练数据的准备工作,主要包括数据的收 集、清洗以及词元化方法,随后将介绍数据课程的设计方法。第 5 章将主要介绍 大语言模型的架构,主要包括 Transformer 模型、各种组件的详细配置、长文本建 模以及一些新型的模型架构。第 6 章将主要介绍预训练过程所涉及到的预训练任 务、优化参数设置、可扩展的训练技术以及参数量计算与效率分析方法,并通过 相关实战代码进行讲解。 • 微调与对齐部分. 第 7 章将主要介绍指令微调所涉及的数据构建、优化策 略;进一步将介绍典型的轻量化微调技术,减少模型训练的开销;并且通过实践 示例介绍指令微调的具体流程。第 8 章将主要介绍大模型的人类对齐技术,将以 RLHF 为主要方法进行详细介绍,并且进一步介绍非强化学习的对齐方法,最后 探讨 SFT 与 RLHF 之间的关系。 • 大模型使用部分. 第 9 章将主要介绍大模型的解码与部署方法,包括解码策 略、解码加速算法、低资源部署策略以及其他模型压缩方法。第 10 章将主要介绍 面向大语言模型的提示学习技术,包括基础的提示学习设计方法、上下文学习方 法以及思维链方法等。第 11 章将主要介绍面向复杂任务的规划技术,探索如何将 复杂任务进行有效分解,并通过回溯、反思等关键技术形成有效的解决方案;进 一步,将介绍如何构建基于大语言模型的智能体以及多智能体系统。 • 评测与应用部分. 第 12 章将主要介绍面向大语言模型性能的评测方法,针 对不同的能力维度介绍相关的评测集合、评测指标以及评测方法,并且指出大语 言模型目前存在的问题。第 13 章将主要介绍大语言模型的应用情况,具体将分别 从代表性的研究领域以及应用领域两个维度展开讨论,我们将以代表性工作为驱 动,使得读者能够了解如何将大语言模型进行领域特化以及任务特化。 最后,第 14 章将对于全文的内容进行总结,进一步梳理目前每个部分存在的 技术挑战以及研究趋势。 14
第二章基础介绍 大语言模型是指在海量无标注文本数据上进行预训练得到的大型预训练语言 模型,例如GPT-3[23】,PaLM33)和LLaMA[34]。目前大语言模型所需要具有的 最小参数规模还没有一个明确的参考标准,但是大语言模型通常是指参数规模达 到百亿、千亿甚至万亿的模型;也有部分工作认为经过大规模数据预训练(显著 多于传统预训练模型如BE求T所需要的训练数据)的数十亿参数级别的模型也可 以称之为大语言模型(如LLaMA-27B)。对于大语言模型,本书泛指具有超大规 模参数或者经过超大规模数据训练所得到的语言模型。与传统语言模型相比,大 语言模型的构建过程涉及到更为复杂的训练方法,进而展现出了强大的自然语言 理解能力和复杂任务求解能力(通过文本生成的形式)。为了帮助读者了解大语言 模型的工作原理,本部分将介绍大语言模型的构建过程、扩展法则(Scaling Law) 涌现能力(Emergent Abilities),然后将介绍GPT系列模型的研发历程。 2.1大语言模型的构建过程 本部分内容将概要介绍大语言模型的构建过程,为刚进入该领域的读者对于 大语言模型的研发建立一个初步的认识。从机器学习的观点来说,神经网络是 种具有特定模型结构的函数形式,而大语言模型则是一种基于Transformer结构的 神经网络模型。因此,可以将大语言模型看作一种拥有大规模参数的函数,它的 构建过程就是使用训练数据对于模型参数的拟合过程。尽管所采用的训练方法与 传统的机器学习模型(如多元线性回归模型的训练)可能存在不同,但是本质上 都是在做模型参数的优化。大语言模型的优化目标更加泛化,不仅仅是为了解决 某一种或者某一类特定任务,而是希望能够作为通用任务的求解器(如图12)。为 了实现这一宏大的目标,大语言模型的构建过程需要更为复杂、精细的训练方法, 一般来说,这个训练过程可以分为大规模预训练和指令微调与人类对齐两个阶段, 下面将进行具体介绍
第二章 基础介绍 大语言模型是指在海量无标注文本数据上进行预训练得到的大型预训练语言 模型,例如 GPT-3 [23],PaLM [33] 和 LLaMA [34]。目前大语言模型所需要具有的 最小参数规模还没有一个明确的参考标准,但是大语言模型通常是指参数规模达 到百亿、千亿甚至万亿的模型;也有部分工作认为经过大规模数据预训练(显著 多于传统预训练模型如 BERT 所需要的训练数据)的数十亿参数级别的模型也可 以称之为大语言模型(如 LLaMA-2 7B)。对于大语言模型,本书泛指具有超大规 模参数或者经过超大规模数据训练所得到的语言模型。与传统语言模型相比,大 语言模型的构建过程涉及到更为复杂的训练方法,进而展现出了强大的自然语言 理解能力和复杂任务求解能力(通过文本生成的形式)。为了帮助读者了解大语言 模型的工作原理,本部分将介绍大语言模型的构建过程、扩展法则(Scaling Law)、 涌现能力(Emergent Abilities),然后将介绍 GPT 系列模型的研发历程。 2.1 大语言模型的构建过程 本部分内容将概要介绍大语言模型的构建过程,为刚进入该领域的读者对于 大语言模型的研发建立一个初步的认识。从机器学习的观点来说,神经网络是一 种具有特定模型结构的函数形式,而大语言模型则是一种基于 Transformer 结构的 神经网络模型。因此,可以将大语言模型看作一种拥有大规模参数的函数,它的 构建过程就是使用训练数据对于模型参数的拟合过程。尽管所采用的训练方法与 传统的机器学习模型(如多元线性回归模型的训练)可能存在不同,但是本质上 都是在做模型参数的优化。大语言模型的优化目标更加泛化,不仅仅是为了解决 某一种或者某一类特定任务,而是希望能够作为通用任务的求解器(如图 1.2)。为 了实现这一宏大的目标,大语言模型的构建过程需要更为复杂、精细的训练方法。 一般来说,这个训练过程可以分为大规模预训练和指令微调与人类对齐两个阶段, 下面将进行具体介绍
2.1大语言模型的构建过程 2.1.1大规模预训练 一般来说,预训练是指使用与下游任务无关的大规模数据进行模型参数的初 始训练,可以认为是为模型参数找到一个较好的“初值点”。这一思想最早在计算 机视觉领域被广泛使用,通过使用大规模的图像标注数据集合ImageNet用于初始 化视觉模型的参数。在自然语言处理领域,word2vec[8】采用了类似的预训练思想 使用无标注的文本语料训练可通用的词嵌人入模型;后来被ELMo[11]、BERT[I3】 和GPT1[14推广到训练可迁移的自然语言任务架构,逐步成为了研发大语言模 型的核心技术路径。早期的预训练技术还是聚焦于解决下游某一类的特定任务,如 传统的自然语言处理任务。OpenAI在GPT-2[I7刀的论文中,提出通过大规模文本 数据的预训练实现通用任务的求解器(尽管GPT-2论文中所验证的实验还是主要 以自然语言处理任务为主),并且将这一思路在GPT3中推广到了当时最大的千亿 规模。OpenAI前首席科学家Ilya Sutskever在公开采访中指出大规模预训练本质上 是在做一个世界知识的压缩,从而能够学习到一个编码世界知识的参数模型,这 个模型能够通过解压缩所需要的知识来解决真实世界的任务。在BE℉T等传统预 训练模型中,所采用的模型架构以及训练任务还比较多样。由于GPT系列模型的 爆火,“解码器架构+预测下一个词”的有效性得到了充分验证,已经成为现有大 语言模型主要采纳的技术路径。 为了预训练大语言模型,需要准备大规模的文本数据,并且进行严格的清洗 去除掉可能包含有毒有害的内容,最后将清洗后的数据进行词元化(Tokenization) 流,并且切分成批次(Batch),用于大语言模型的预训练。由于大语言模型的能 力基础主要来源于预训练数据,因此数据的收集与清洗对于模型性能具有重要的 影响。收集高质量、多源化的数据以及对于数据进行严格的清洗是构建大语言模 型关键能力的重中之重,需要大模型研发人员的高度关注。目前的开源模型普遍 采用2~3T规模的词元进行预训练,并有趋势进一步扩大这一规模。这一过程对于 算力需求量极高,一般来说训练百亿模型至少需要百卡规模的算力集群(如A100 80G)联合训练数月时间(与具体的算力资源相关);而训练千亿模型则需要千卡 甚至万卡规模的算力集群,对于算力资源的消耗非常惊人。 尽管整体的预训练技术框架非常直观,但是实施过程中涉及到大量需要深入 探索的经验性技术,如数据如何进行配比、如何进行学习率的调整、如何早期发现 模型的异常行为等。预训练过程需要考虑各种实施细节,而这些细节有很多并没 有公开发表的经验可循,需要研发人员具有丰富的训练经验和异常处理能力,避 16
2.1 大语言模型的构建过程 2.1.1 大规模预训练 一般来说,预训练是指使用与下游任务无关的大规模数据进行模型参数的初 始训练,可以认为是为模型参数找到一个较好的“初值点”。这一思想最早在计算 机视觉领域被广泛使用,通过使用大规模的图像标注数据集合 ImageNet 用于初始 化视觉模型的参数。在自然语言处理领域,word2vec [8] 采用了类似的预训练思想, 使用无标注的文本语料训练可通用的词嵌入模型;后来被 ELMo [11]、BERT [13] 和 GPT-1 [14] 推广到训练可迁移的自然语言任务架构,逐步成为了研发大语言模 型的核心技术路径。早期的预训练技术还是聚焦于解决下游某一类的特定任务,如 传统的自然语言处理任务。OpenAI 在 GPT-2 [17] 的论文中,提出通过大规模文本 数据的预训练实现通用任务的求解器(尽管 GPT-2 论文中所验证的实验还是主要 以自然语言处理任务为主),并且将这一思路在 GPT-3 中推广到了当时最大的千亿 规模。OpenAI 前首席科学家 Ilya Sutskever 在公开采访中指出大规模预训练本质上 是在做一个世界知识的压缩,从而能够学习到一个编码世界知识的参数模型,这 个模型能够通过解压缩所需要的知识来解决真实世界的任务。在 BERT 等传统预 训练模型中,所采用的模型架构以及训练任务还比较多样。由于 GPT 系列模型的 爆火,“解码器架构 + 预测下一个词”的有效性得到了充分验证,已经成为现有大 语言模型主要采纳的技术路径。 为了预训练大语言模型,需要准备大规模的文本数据,并且进行严格的清洗, 去除掉可能包含有毒有害的内容,最后将清洗后的数据进行词元化(Tokenization) 流,并且切分成批次(Batch),用于大语言模型的预训练。由于大语言模型的能 力基础主要来源于预训练数据,因此数据的收集与清洗对于模型性能具有重要的 影响。收集高质量、多源化的数据以及对于数据进行严格的清洗是构建大语言模 型关键能力的重中之重,需要大模型研发人员的高度关注。目前的开源模型普遍 采用 2∼3T 规模的词元进行预训练,并有趋势进一步扩大这一规模。这一过程对于 算力需求量极高,一般来说训练百亿模型至少需要百卡规模的算力集群(如 A100 80G)联合训练数月时间(与具体的算力资源相关);而训练千亿模型则需要千卡 甚至万卡规模的算力集群,对于算力资源的消耗非常惊人。 尽管整体的预训练技术框架非常直观,但是实施过程中涉及到大量需要深入 探索的经验性技术,如数据如何进行配比、如何进行学习率的调整、如何早期发现 模型的异常行为等。预训练过程需要考虑各种实施细节,而这些细节有很多并没 有公开发表的经验可循,需要研发人员具有丰富的训练经验和异常处理能力,避 16