今天分享AI系列深度研究报告:AI大规模专题报告:大规模语言模型从理论到实践
报告制作人:光大控股**)。
报告总计:25页。
语言是人类与其他动物之间最重要的区别,人类的多元智能与此密切相关。 逻辑思维是以语言的形式表达的,大量的知识也是以文字的形式记录和传播的。 今天,互联网上有数万亿的网络资源。 其中大部分信息都是用自然语言描述的。 因此,如果人工智能算法想要获得知识,它们必须知道如何理解人类使用的不太精确、可能模棱两可甚至有些令人困惑的语言。 语言模型 (LM) 的目标是对自然语言的概率分布进行建模。 词汇 v 上的语言模型,由函数 p(ww.wm),可以正式构造为词序列 wwwm 的概率分布,表示词序列 ww2....wm 作为 sub 出现的概率。 由于联合概率 p(ww2....wm) 是如此之大,以至于 p(ww2....wm)非常困难7。据《现代汉语词典》(第7版)收录,全文约7万字,句子长度按20个字计算,语言模型参数数达到7个9792 x 109 的天文数字。 书面汉语中超过100个单词的句子并不少见,如果考虑到所有的可能性,语言模型的复杂性将急剧增加,并且无法用目前的计算方法进行存储和计算。
深度神经网络需要以监督的方式使用标注数据进行训练,因此语言模型的训练过程不可避免地需要构建训练语料库。 但是,由于训练目标可以通过无标签文本直接获取,因此模型的训练只需要大规模的无标签文本。 语言模型也成为典型的自监督学习任务习。 互联网的发展使大规模文本变得非常容易访问,因此训练非常大规模的基于神经网络的语言模型成为可能。
受计算机视觉领域预训练范式的影响,利用imagenetlt3]对模型进行预训练,使模型能够充分习学习如何通过海量图像提取特征,然后根据任务目标对模型进行微调,基于预训练语言模型的方法在自然语言处理领域逐渐成为主流。以ELMO3为代表的动态词向量模型为语言模型的预训练打开了大门,随后以GPT14和BERT为代表的基于Transformer模型的大规模预训练语言模型的出现,将自然语言处理带入了预训练微调范式的新时代。 将预训练模型应用于下游任务时,不需要过多了解任务细节,不需要设计特定的神经网络结构,只需要对预训练模型进行“微调”,使用特定于任务的标注数据对预训练语言模型进行监督训练,可以实现显著的性能提升。 这种类型的方法通常被称为预训练语言模型 (PLM)。
虽然大型语言模型的开发只有不到五年的时间,但开发速度相当惊人,截至2024年6月,国内外已经发布了100多个大型模型。 中国人民大学赵昕教授团队根据参考文献181中的时间轴,给出了一个从2024年到2024年5月超过100亿个参数的大规模语言模型,如图1所示显示 2 个。 大规模语言模型的开发大致可以分为以下三个阶段:基础模型、能力探索和突破性发展。
基础模型阶段主要集中在2018-2024年,2024年,Vaswani等人提出了transformerl2]架构,在机器翻译任务上取得了突破。2018 年,Google 和 Open AI 分别提出了 Beti 和 GPT] 模型,开创了预训练语言模型的时代。bert-base 版本参数为 11 亿,bert-large 的参数个数为 34亿,GPT-1 的参数量为 117亿。 当时,参数的数量已经比其他深度神经网络高出一个数量级。 2019 年,Open AI 发布了 GPT-24,拥有 15 亿个参数。 此后,谷歌还发布了参数大小为 110 亿的 T5[19 模型。 2020 年,随着 GPT-3S 的发布,Open AI 将语言模型参数的数量进一步扩大到 1750 亿个。此后,中国推出了一系列大规模语言模型,包括清华大学的Ernie(THU)20、Ernie(百度)21、华为的Pangu-A[22]等。 现阶段的研究主要集中在语言模型本身,包括各种类型的模型结构,如编码器-解码器、仅解码器等。 模型大小与 BERT 相似的算法通常使用预先训练的微调范式来针对不同的下游任务进行微调。 但是,当模型参数数量超过10亿时,由于微调的计算量很大,这类模型的影响并不比当时的BERT模型低多少。
能力探索阶段集中在 2019 年和 2022 年,由于大规模语言模型难以针对特定任务进行微调,研究人员开始探索如何在不对单个任务进行微调的情况下利用大规模语言模型。 2024年,Radford等人利用文献中的GPT-2模型[4]研究了大规模语言模型在零样本情况下的任务处理能力。 在此基础上,Brown等人研究了基于GPT-3S]模型的情境学习习 习少样本学习方法。在待分析的样本之前,将少量不同任务的带注释的实例拼接到语言模型中,并使用语言模型来理解任务并根据示例给出正确的结果。 包括 TriviaQA、WebOS、CoQA 等在内的基准测试已经展示了强大的功能,在某些情况下甚至超过了以前的监督方法。 上述方法不需要修改语言模型的参数,模型在处理不同任务时也不需要花费大量的计算资源进行模型微调。 然而,基于语言模型本身在许多任务上实现监督习性能仍然很困难,因此研究人员提出了一种指令调优方案[23],将大量不同类型的任务统一到生成式自然语言理解框架中,并构建训练语料库进行微调。 大规模语言模型 习 一次学习数千个任务,并在未知任务上表现出良好的泛化能力。 2024年,欧阳等人提出了一种InstructGPT算法,该算法使用监督微调结合强化习,利用少量监督数据使大规模语言模型服从人类指令24]。Nakano等人探索了WebGPT,这是一种结合搜索引擎的问答算法[25]。 这些方法已从直接使用大规模语言模型进行零样本和少样本学习习逐步扩展到使用生成框架对大量任务进行监督微调的方法,从而有效地提高了模型的性能。
根据 OpenAI 联合创始人 Andrej Karpathy 在 Microsoft Build 2023 大会上披露的信息,OpenAI 使用的大规模语言模型构建过程如图 1 所示三、 有四个主要阶段:预训练、监督微调、奖励建模和强化化学习。 这四个阶段中的每一个阶段都需要不同的数据集和不同类型的算法,从而产生不同类型的模型和非常不同的资源。
预训练阶段需要使用海量的训练数据,包括网页、维基百科、书籍、GitHub、Q&A等,构建包含千亿甚至万亿字的多样化内容。 使用由数千个高性能 GPU 和高速网络组成的超级计算机构建基础模型,该网络需要数十天来训练深度神经网络参数。 基础大模型构建长文本的建模能力,使模型具备生成语言的能力,模型可以根据输入提示生成文本补全句。 有研究者认为,语言模型建模的过程也隐含着对世界知识的建构,包括事实知识和常识性知识。 根据文献[46],GPT-3 完成一次训练的总计算量为 3640 pflops,使用 1000 个基于 NVIDIA A100 80G 的 GPU,平均利用率为 50%,需要近一个月的时间才能完成。
Transformer 模型是 Google 在 2017 年提出的一种神经网络模型结构,并首次应用于机器翻译。 机器翻译的目标是从源语言转换为目标语言。 Transformer 结构通过注意力机制完成源语言序列和目标语言序列的全局依赖建模。 目前几乎所有的大型语言模型都基于转换器结构,本节将介绍将基于转换器的编码器和解码器应用于机器翻译的模型。
基于Transformer结构的编码器和解码器结构如图2所示图1所示,左右两侧分别对应编码器和解码器结构。 它们由许多基本的变压器块组成(对应于图中的灰色框)。 这里 n 表示已经制作了 n 个堆栈。 每个 transformer 模块接收一个向量序列 t i=1 作为输入,并输出一个等长向量序列作为输出 t i=1。 这里的 xie 和 yi 对应于文本序列中单词的表示。 Yi 是电流互感器模块在进一步集成其上下文语义后输出到输入习。
受计算机视觉领域习中使用ImageNet预训练模型的范式影响,使模型能够充分学习如何通过海量图像提取特征,然后根据任务目标对模型进行微调,基于预训练语言模型的方法在自然语言处理领域逐渐成为主流。 以ELMO为代表的动态词向量模型为语言模型的预训练打开了大门,以GPT4和BERT为代表的大规模基于transformer的预训练语言模型的出现,将自然语言处理带入了预训练微调范式的新时代。 利用丰富的训练语料库、自监督预训练任务、transformer等深度神经网络结构,预训练语言模型具有通用而强大的自然语言表示能力,可以有效地学习词汇、语法和语义信息习。 将预训练模型应用于下游任务时,不需要过多了解任务细节或设计特定的神经网络结构,只需要对预训练模型进行“微调”,即使用任务特定的标注数据来监督预训练语言模型上的训练,就可以实现显著的性能提升。
OpenAI 在 2018 年提出的生成式预训练语言模型(GPT) 4 是典型的生成式预训练语言模型之一。 GPT模型结构是由多层transformer组成的单向语言模型,主要分为输入层、编码层和输出层三部分。
训练大型语言模型需要数万亿种不同类型的数据。 如何构建海量“高质量”数据,在大型语言模型的训练中起着至关重要的作用。 虽然,截至 2023 年 9 月,对大模型还没有很好的理论分析和解释,也缺乏对语言模型训练数据的严格描述和定义。 然而,大多数研究人员普遍认为,训练数据是影响大型语言模型性能和样本泛化能力的关键因素之一。 从以前的研究中,预训练数据需要涵盖多种类型。 包括网络数据、书籍、百科全书、社交网络,还需要尽可能多地覆盖领域语言、文化和观点,从而提高大型语言模型的泛化能力和适应性。
报告总计:25页。