今天分享的AI系列深度研究报告:《AI大规模专题报告:大规模语言模型从理论到实践》。
(报告出品方:光大证券)
报告共计:25页
大规模语言模型基本概念
语言是人类与其他动物最重要的区别,而人类的多种智能也与此密切相关。逻辑思维以语言的形式表达,大量的知识也以文字的形式记录和传播。如今,互联网上已经拥有数万亿网页资源.其中大部分信息都是用自然语言描述。因此,如果人工智能算法想要获取知识,就必须懂得如何理解人类所使用的不太精确、可能有歧义并且甚至有些混乱的语言。语言模型 (Language Model, LM)目标就是建模自然语言的概率分布。词汇表V 上的语言模型,由函数 P(ww..wm)表示,可以形式化地构建为词序列 wwwm 的概率分布,表示词序列 ww2...wm 作为一个子出现的可能性大小。由于联合概率 P(ww2...wm) 的参数量十分巨大,直接计算 P(ww2...wm) 非常困难7。按照《现代汉语词典 (第七版)》包含约 7 万单词,句子长度按照 20 个词计算,语言模型参数量达到 7.9792 x 109 的天文数字。中文的书面语中,超过 100 个单词的句子也并不罕见,如果要将所有可能性都纳入考虑,语言模型的复杂度还会进一步急剧增加,以目前的计算手段无法进行存储和运算。
深度神经网络需要采用有监督方法,使用标注数据进行训练,因此,语言模型的训练过程也不可避免需要构造训练语料。但是由于训练目标可以通过无标注文本直接获得,从而使得模型的训练仅需要大规模无标注文本即可。语言模型也成为了典型的自监督学习 (Self-supervised Learning任务。互联网的发展,使得大规模文本非常容易获取,因此训练超大规模的基于神经网络的语言模型也成为了可能。
受到计算机视觉领域采用 ImageNetlt3] 对模型进行一次预训练,使得模型可以通过海量图像充分学习如何提取特征,然后再根据任务目标进行模型精调的预训练范式影响,自然语言处理领域基于预训练语言模型的方法也逐渐成为主流。以 ELMo3] 为代表的动态词向量模型开启了语言模型预训练的大门,此后以 GPT14 和 BERT 为代表的基于 Transformer 模型] 的大规模预训练语言模型的出现,使得自然语言处理全面进入了预训练微调范式新时代。将预训练模型应用于下游任务时,不需要了解太多的任务细节,不需要设计特定的神经网络结构,只需要“微调”预训练模型,使用具体任务的标注数据在预训练语言模型上进行监督训练,就可以取得显著的性能提升。这类方法通常称为预训练语言模型 (Pre-trained Language Models,PLM)。
大规模语言模型发展历程
大规模语言模型的发展历程虽然只有短短不到五年的时间,但是发展速度相当惊人,截止 2023年 6月,国内外有超过百种大模型相继发布。中国人民大学赵鑫教授团队在文献181按照时间线给出 2019 年至 2023 年 5 月比较有影响力并且模型参数量超过 100 亿的大规模语言模型,如图1.2所示。大规模语言模型的发展可以粗略的分为如下三个阶段:基础模型、能力探索、突破发展。
基础模型阶段主要集中于 2018 年至 2021 年,2017 年 Vaswani 等人提出了 Transformerl2] 架构,在机器翻译任务上取得了突破性进展。2018 年 Google 和 Open AI分别提出了 BERTI和GPT]间 模型,开启了预训练语言模型时代。BERT-Base 版本参数量为 1.1 亿,BERT-Large 的参数量为 3.4 亿,GPT-1 的参数量 1.17 亿。这在当时,相比其它深度神经网络的参数量已经是有数量级上提升。2019 年 Open AI 又发布了 GPT-24),其参数量达到了 15 亿。此后,Google 也发布了参数规模为 110 亿的 T5[19 模型。2020 年 Open AI 进一步将语言模型参数量扩展到 1750 亿,发布了GPT-3S]。此后,国内也相继推出了一系列的大规模语言模型,包括清华大学 ERNIE(THU)20百度 ERNIE(Baidu)21]、华为盘古-a[22] 等。这个阶段研究主要集中语言模型本身,包括仅编码器Encoder Only)、编码器-解码器 (Encoder-Decoder)、仅解码器(Decoder Only) 等各种类型的模型结构都有相应的研究。模型大小与 BERT 相类似的算法,通常采用预训练微调范式,针对不同下游任务进行微调。但是模型参数量在 10 亿以上时,由于微调的计算量很高,这类模型的影响力在当时相较 BERT 类模型有不小的差距。
能力探索阶段集中于 2019 年至 2022 年,由于大规模语言模型很难针对特定任务进行微调研究人员们开始探索在不针对单一任务进行微调的情况下如何能够发挥大规模语言模型的能力.2019 年 Radford 等人在文献[4] 就使用 GPT-2 模型究了大规模语言模型在零样本情况下的任务处理能力。在此基础上,Brown 等人在 GPT-3S] 模型上研究了通过语境学习(In-Context Learning进行少样本学习的方法。将不同任务的少量有标注的实例拼接到待分析的样本之前输入语言模型使用语言模型根据实例理解任务并给出正确结果。在包括 TriviaQA、WebOS、CoQA 等评测集台都展示出了非常强的能力,在有些任务中甚至超过了此前的有监督方法。上述方法不需要修改语言模型的参数,模型在处理不同任务时无需花费的大量计算资源进行模型微调。但是仅依赖基于语言模型本身,其性能在很多任务上仍然很难达到有监督学习效果,因此研究人员们提出了指令微调(Instruction Tuning)[23] 方案,将大量各类型任务,统一为生成式自然语言理解框架,并构造训练语料进行微调。大规模语言模型一次性学习数千种任务,并在未知任务上展现出了很好的泛化能力。2022 年 Ouyang 等人提出了使用有监督微调再结合强化学习方法,使用少量数据有监督就可以使得大规模语言模型服从人类指令的 InstructGPT 算法24]。Nakano 等人则探索了结合搜索引擎的问题回答算法 WebGPT[25 。这些方法从直接利用大规模语言模型进行零样本和少样本学习的基础上,逐渐扩展到利用生成式框架针对大量任务进行有监督微调的方法,有效提升了模型的性能。
大规模语言模型构建流程
根据 OpenAI 联合创始人 Andrej Karpathy 在微软 Build 2023 大会上所公开的信息,OpenAI 所 使用的大规模语言模型构建流程如图1.3所示。主要包含四个阶段:预训练、有监督微调、奖励建 模、强化学习。这四个阶段都需要不同规模数据集合以及不同类型的算法,会产出不同类型的模 型,同时所需要的资源也有非常大的差别。
预训练(Pretraining)阶段需要利用海量的训练数据,包括互联网网页、维基百科、书籍、GitHub、 论文、问答网站等,构建包含数千亿甚至数万亿单词的具有多样性的内容。利用由数千块高性能 GPU 和高速网络组成超级计算机,花费数十天完成深度神经网络参数训练,构建基础语言模型 (Base Model)。基础大模型构建了长文本的建模能力,使得模型具有语言生成能力,根据输入的 提示词(Prompt),模型可以生成文本补全句子。也有部分研究人员认为,语言模型建模过程中 也隐含的构建了包括事实性知识(Factual Knowledge)和常识知识(Commonsense)在内的世界知 识(World Knowledge)。根据文献 [46] 介绍,GPT-3 完成一次训练的总计算量是 3640PFlops,按照 NVIDIA A100 80G 和平均利用率达到 50% 计算,需要花费近一个月时间使用 1000 块 GPU 完成。
Transformer 模型
Transformer 模型是由谷歌在 2017 年提出并首先应用于机器翻译的神经网络模型结构。机 器翻译的目标是从源语言(Source Language)转换到目标语言(Target Language)。Transformer 结 构完全通过注意力机制完成对源语言序列和目标语言序列全局依赖的建模。当前几乎全部大语言 模型都是基于 Transformer 结构,本节以应用于机器翻译的基于 Transformer 的编码器和解码器介绍该模型。
基于 Transformer 结构的编码器和解码器结构如图2.1所示,左侧和右侧分别对应着编码器(Encoder)和解码器(Decoder)结构。它们均由若干个基本的 Transformer 块(Block)组成(对应着图 中的灰色框)。这里 N× 表示进行了 N 次堆叠。每个 Transformer 块都接收一个向量序列 {xi} t i=1 作为输入,并输出一个等长的向量序列作为输出 {yi} t i=1。这里的 xi 和 yi 分别对应着文本序列 中的一个单词的表示。而 yi 是当前 Transformer 块对输入 xi 进一步整合其上下文语义后对应的输 出。
生成式预训练语言模型 GPT
受到计算机视觉领域采用 ImageNet对模型进行一次预训练,使得模型可以通过海量图像充分学习如何提取特征,然后再根据任务目标进行模型微调的范式影响,自然语言处理领域基于预训练语言模型的方法也逐渐成为主流。以 ELMo] 为代表的动态词向量模型开启了语言模型预训练的大门,此后以 GPT4 和 BERT 为代表的基于 Transformer 的大规模预训练语言模型的出现,使得自然语言处理全面进入了预训练微调范式新时代。利用丰富的训练语料、自监督的预训练任务以及 Transformer 等深度神经网络结构,预训练语言模型具备了通用且强大的自然语言表示能力,能够有效地学习到词汇、语法和语义信息。将预训练模型应用于下游任务时,不需要了解太多的任务细节,不需要设计特定的神经网络结构,只需要“微调”预训练模型,即使用具体任务的标注数据在预训练语言模型上进行监督训练,就可以取得显著的性能提升。
OpenAI公司在 2018 年提出的生成式预训练语言模型(Generative Pre-Training,GPT) 4 是典型的生成式预训练语言模型之一。GPT 模型结构由多层 Transformer 组成的单向语言模型,主要分为输入层,编码层和输出层三部分。
语言模型训练数据
大语言模型训练需要数万亿的各类型数据。如何构造海量“高质量”数据对于大语言模型的训练具有至关重要的作用。虽然,截止到 2023 年9 月为止,还没有非常好的大模型的理论分析和解释,也缺乏对语言模型训练数据的严格说明和定义。但是,大多数研究人员都普遍认为训练数据是影响大语言模型效果以及样本泛化能力的关键因素之一。从此前的研究来看,预训练数据需要涵盖各种类型。包括网络数据、图书、论文、百科和社交媒体等,还需要覆盖尽可能多的领域语言、文化和视角,从而提高大语言模型的泛化能力和适应性。
报告共计:25页