查看原文
其他

人工智能行业专题报告:从RNN到ChatGPT,大模型的发展与应用

(报告出品:东北证券)

1. 语言模型的原理和技术发展

1.1. 引言——从 RNN 到 ChatGPT

自然语言处理(Natural Language Processing,NLP)是计算机科学、人工智能和语 言学领域的一个交叉学科,主要研究如何让计算机能够理解、处理、生成和模拟 人类语言的能力,从而实现与人类进行自然对话的能力。通过自然语言处理技术, 可以实现机器翻译、问答系统、情感分析、文本摘要等多种应用。随着深度学习 技术的发展,人工神经网络和其他机器学习方法已经在自然语言处理领域取得了 重要的进展。自然语言处理的发展可追溯到 20 世纪 50 年代,当时计算机科学家开始尝试通过计 算机程序来实现对自然语言的理解和生成。早期研究主要关注规则和基于知识的 方法,如编写语法规则和词典来进行句子分析。20 世纪 80 年代,随着计算能力的 提高和大量语料库的出现,统计方法在自然语言处理领域逐渐占据主导地位。这 一时期,许多基于统计的机器翻译、分词、词性标注等方法相继出现。进入 21 世 纪,尤其是近十几年,深度学习技术的发展极大地推动了自然语言处理的进步。

从 2010 年,Tomas Mikolov 及其合作者提出了基于循环神经网络(RNN)的语言模 型开始,自然语言处理进入了高速发展时期。2015 年 Dzmitry Bahdanau 等人在论 文《Neural machine translation by jointly learning to align and translate》中提出的注意 力机制,使语言模型可以学习到词和词之间更深层次的依赖关系,从而更好地理 解和生成语句。著名的 Transformer 结构就广泛采用了注意力机制,引领了后续自 然语言处理技术的发展。以谷歌在2018年提出的BERT为代表的预训练语言模型, 再次将自然语言处理的发展推进到了一个新的阶段。预训练语言模型利用无监督 学习在大规模语料库上进行预训练,生成一个通用的语言模型,然后在特定任务 上进行微调,在数据利用、任务泛化、模型性能方面都有显著提升。OpenAI 发布 的 GPT-3 模型,参数量达到 1750 亿,其智能涌现能力标志着人工智能模型的自然 语言处理能力进入了下一个阶段。最新发布的 GPT-4.0 版本,参数规模达到了万亿 以上,由单纯的语言模型进一步发展为可以处理来自不同模态(图像、语音、文 本等)信息的多模态大模型。本章将按时间顺序介绍语言模型的各发展阶段,以及各阶段具有代表性的技术原 理。

1.2. 自回归语言模型

1.2.1. 循环神经网络-RNN

1.2.1.1. 循环神经网络

循环神经网络(RNN)于 2010 年被首次应用于语言模型的训练,其基本结构即为 基本的隐变量自回归模型。RNN 模型在每一个时间步都进行隐变量计算,并基于 计算得到的隐变量对本时间步的输出进行预测。对于每一个时间步,RNN 的隐变 量与上一个时间步使用相同的定义,结合当前时间步的输入信息循环地计算新的 隐变量。于是基于循环计算的隐状态神经网络被命名为循环神经网络。

1.2.2. 长短期记忆网络-LSTM 与门控循环单元-GRU

为了解决循环神经网络模型存在的长期依赖问题,研究人员先后提出了长短期记 忆网络(long short-term memory,LSTM)以及其简化的变体——门控循环单元 (gated recurrent unit,GRU)。相较于前文所介绍的循环神经网络,LSTM 与 GRU 对于长序列问题的处理效果更佳,并在在自然语言处理、语音识别、时间序列预 测等领域得到了更加广泛地应用。

1.2.2.1. 长短期记忆网络-LSTM

LSTM 是一种改进的 RNN,旨在有效地处理和捕捉长期依赖关系的序列数据,它 的核心思想是引入一种特殊的内部状态机制,以更好地处理长序列,并避免梯度 消失问题。LSTM 引入了记忆单元(memory cell)来管理隐状态中记录的信息,通 过几个门结构对其进行控制:输出门(output gate)用来从单元中输出条目;输入 门(input gate)用于控制数据的读入;遗忘门(forget gate)用于重置记忆单元的 内容。这三种门结构相配合的机制可以决定什么时候该对隐状态输入的信息作记忆,什么时候忽略。同为隐藏层的输出,记忆单元仅用于网络内部信息的维护, 隐状态则会传递到输出层用于预测当前时间步的输出结果。

1.2.2.2. 门控循环单元-GRU

相比于 LSTM,门控循环单元(GRU)是一个稍微简化的变体。通常,GRU 能够 提供与 LSTM 同等的效果,且收敛的速度更快。

1.2.3. 编码器-解码器架构

将输入序列转换成输出序列的序列转换模型(sequence transduction)在各类现代人 工智能应用中发挥着至关重要的作用。机器翻译是序列转换模型的一个核心问题, 也是语言模型最常用和最成功的基准测试。机器翻译的数据集是由源语言和目标 语言的文本序列对组成,其输入和输出都是长度可变的序列。编码器-解码器 (encoder-decoder)架构正是为了处理这种类型的输入和输出而设计的,是形成不 同序列转换模型的基础,对语言模型的后续发展也起到了重要的作用。

编码器-解码器架构主要由编码器(encoder)和解码器(decoder)两个组件组成。编码器将长度可变的输入序列转换为具有固定长度的中间状态(通常被称为上下 文向量或编码向量)。输入序列中的每个元素经过编码器的神经网络层进行处理, 逐步地讲信息传递到隐状态中,最终构建出上下文向量。编码器的隐藏状态则被 用作解码器的初始状态。解码器则接受编码器生成的上下文向量以及目标序列的起始标记,按时间步逐步 地生成目标序列的元素,直至生成完整的目标序列。通常,由解码器生成的当前 时间步的输出元素,会作为其下一个时间步的输入传递到解码器中,以继续生成 序列的下一个元素。编码器-解码器架构的主要应用包括机器翻译、文本摘要、对话生成和语音识别等。它的核心思想是将不定长的输入序列映射到固定长度的上下文向量,再从上下文 向量生成不定长的输出序列,这使得它适用于多种序列到序列的任务。这一架构 的发展对于自动化生成任务和自然语言理解任务的进展产生了深远的影响。

1.3. 注意力机制

虽然使用 LSTM、GRU 等结构的语言模型能通过隐藏的记忆单元捕捉序列的时序 信息,但依然存在一些问题。将输入序列的所有信息都压缩到一个固定长度的隐 状态中,会造成信息的缺失,当输入句子长度很长时,模型的性能急剧下降。另 外,在解码器生成目标序列的过程中,编码器对其初始化的信息会随着生成过程 逐渐被“遗忘”。有研究者为了解决此类问题提出了增加上下文信息的 RNN序列模 型,在解码器的每一个时间步都将编码器压缩的整个句子信息与解码当前的 token 一起输入解码器中,防止源端的上下文信息随着目标序列的增长而衰减。但是这 样依旧存在一个问题:序列到序列模型解码端不同时间步的 token 应该得到同样的 上下文信息吗?答案显然是不。以语言翻译为例:目标语句翻译过程中,当前词 元与源语句不同位置上的词元的相关程度明显不同,而由编码器压缩得到的上下 文信息无法提供这些信息。在这样的背景下,注意力机制就应运而生了。

2015 年 Dzmitry Bahdanau 等人在论文《Neural machine translation by jointly learning to align and translate》中提出的注意力机制(Attention Mechanism),用于对输入信 息的不同部分赋予不同的权重,使语言模型可以学习到词和词之间更深层次的依 赖关系,从而更好地理解和生成语句。引入注意力机制后,语言模型的性能得到了大幅度的提升。2017 年 Vaswani 等人发 表 了 《Attention is all you need》, 提 出 了 基 于 自 注 意 力 机 制 (self-attention mechanism)的,消除了传统 RNN 循环结构的 Transformer 结构。Transformer 结构 提高了模型的并行性,带来了显著的性能提升。同时,随着机器学习算力的发展, Transformer 在大规模文本语料库上进行预训练并对特定下游任务进行微调,引领 了后续的 BERT、GPT 等预训练模型和大语言模型的发展。总之,Transformer 模型 的出现标志着自然语言处理领域的一次革命,它的成功还扩展到了计算机视觉等 其他领域,为多模态任务提供了新的可能性。

1.3.1. 注意力机制

对于人类来说,从各种感官系统接收到的信息远远超过了大脑能够完全处理的水 平。“注意力”代表了大脑当前处理信息的倾向性,将更多的时间和资源用于处理 某一部分信息。自然环境中的物体给人的各种感官带来的信息都不相同。在非自 主的情况下,人们通常将注意力集中在具有突出性的感官信息中,比如某些具有 鲜艳突出颜色、发出刺耳噪音或产生奇特的香/臭味的物体。这些对人造成非自主性的注意力提示的物品,对人来说不一定有价值。为了完成 当前的任务要求,人们会通过自主性的意志提示,将注意力集中于与任务相关的 目标上,控制大脑处理信息的资源投入以更好地完成任务。人工智能领域中的注 意力机制从本质上来讲,与人类的自主性注意力机制相似,核心是通过基于任务 的提示,将注意力集中于小部分重要信息,忽略大部分干扰信息。深度学习中的注意力机制本质上是一个查询的过程,主要包括三个概念:查询 (query)、键(key)和值(value),key和 value是成对存在的。如果用文献检索作 为例子解释它们的作用,那么所有 key-value 对的集合就相当于整个资料库,key 相 当于每份资料的关键字和摘要,value 相当于每份资料的具体内容,query 则相当于 查询者对目标资料的描述。在检索时,将 query 与所有 key 进行匹配和比较,找到 相关性高的 key 对应的 value 作为查询的结果。实际上,注意力机制中 query、key 和 value的概念更加抽象,最终的输出结果是以 key与 query的依赖关系为权重的, 个 key 所对应的 value 的加权和。

1.3.2. Transformer 架构

1.3.2.1. 自注意力机制

注意力机制用于将一个元素(query)与其他元素(key-value)进行匹配,以生成 一个加权的汇总信息。以机器翻译问题为例,引入注意力机制可以将解码器每一 个时间步的输出作为 query,与编码器的每一个时间步的隐状态进行匹配,获得一 个以与 query 的相关性为权重的加权隐状态作为上下文信息,作为编码器的补充输 入进行下一个时间步的输出预测,提高翻译任务的准确度。这意味着解码器需要 在每一个时间步都对输入序列的所有位置进行全局的权重计算,这在长的输入序 列上会产生较高的计算复杂度,导致模型训练和推理的效率下降。因此,通常会 采用固定窗口等限制方法来控制每个位置与其他位置的相关性,这就导致了与传 统语言模型类似的长距离依赖问题,模型很难准确捕捉到远距离位置之间的依赖 关系。

自注意力机制(self-attention mechanism)将输入序列中的每个元素视为 query、key 和 value,计算输入序列中的每个元素与其他元素的相关性,可以有效地捕捉序列 内部不同元素之间的依赖关系和相关性。在计算注意力权重时,每个位置的注意力都是相互独立的,这使得自注意力机制能够充分利用现代硬件(如 GPU 或 TPU) 的并行计算能力。这种并行计算的优势在处理长序列时尤为重要,因为它极大地 提高了计算效率,使得模型能够更快速地进行训练和推理。

1.3.2.2. Transformer 的整体架构

2017 年 Vaswani 等人发表了《Attention is all you need》,提出了基于自注意力机制 (self-attention mechanism)的,消除了传统 RNN 循环结构的 Transformer 结构,极 大程度地提高了模型计算的并行性,带来了非常显著的性能提升。下面会对 Transformer 模型结构进行简要的介绍。

1.3.2.3. 多头注意力机制

除了前面介绍的自注意力机制,Vaswani 等人还提出了多头注意力(multi-head attention)机制并将其应用在 Transformer 块中。多头注意力机制旨在让模型能够通 过对相同的 query、key 和 value,基于相同的注意力机制学习到不同的行为,并根 据不同行为的组合捕捉序列内各种范围的依赖关系。具体的实现方法是,通过对 输入数据进行独立学习,获得 query、key 和 value 的多组线性投影(linear projections),再将每一组投影后的 query、key 和 value 送入各自独立的注意力层中。最后将所有注意力层的输出连接后,进行一次总体的线性投影,产生最终的输出 结果。每一组的投影变换和注意力层都是互相独立和并行的,这样的每一个注意 力层都被称作一个头(head),因此这种方法被称作多头注意力机制。

1.3.2.4. 残差连接

残差连接(Residual Connection)是构建深度神经网络的重要工具,对深度神经网 络的训练和性能具有诸多方面的好处,其概念最初来自何恺明等人提出的残差网络(ResNet)。ResNet 在 2015 年的 ImageNet 大规模机器视觉识别挑战赛夺冠,并 深刻地影响了后来的深度网络的设计。

这两者看似差别不大,而在实践中,残差映射拥有许多优势。在深度神经网络中, 当梯度反向传播时,它需要经过多个层次的权重矩阵。这些权重矩阵通常包含非 线性激活函数,如ReLU,sigmoid等。这些激活函数可能导致梯度消失,使得梯度 减小到接近零,从而阻碍了信息的传递。残差连接通过直接将输入信息与输出信 息相加,将原始输入作为跳跃连接传递给后续层次,从而绕过了大部分的权重矩 阵和激活函数。这种直接传递保持了梯度的相对大小,减少了梯度消失的风险。残差连接降低了梯度消失问题的影响,同时残差映射的拟合相比于直接映射更容 易优化,训练难度更低,这就代表着能够设计层次更深、更复杂的网络,进而提 高模型的性能。残差连接能够使深度神经网络模型具有一定程度的可恢复性。即使一个残差块中 的权重没有成功学到有用的特征,残差连接仍然可以传递原始输入信息,因为它 们直接相加。这种恢复性使得模型更具容错性,即使某些部分的网络没有学到有 效的表示,仍然可以在后续层次中修正错误。与传统 NLP“宽而浅”的模型结构不同,Transformer 是基于 block 的堆叠结构,属 于“窄而深”的网络结构,可以充分利用残差连接来达到优化网络的目的。

1.3.2.5. 词嵌入和位置编码

NLP 技术中的词嵌入用来将文本序列的基本单元“词”映射为机器能够理解的 “词向量”。最简单的词向量表示方法是独热向量(one-hot vector)。假设词典中不同词的数量 (词典大小)为 N,每个词对应一个从 0 到 N-1 的不同整数(索引)。词之间的相似度。

1.3.2.6. 基于位置的前馈神经网络

除了注意力层之外,Transformer 的编码器和解码器中的每个 block 都包含一个全连 接前馈网络层,被命名为称为基于位置的前馈神经网络(position-wise feed-forward network)。这个基于位置的前馈网络的关键在于,在处理序列数据时,它为每个位 置的元素分别应用相同的变换,而不是将所有位置的元素视为相同。这意味着它能够捕获不同位置的不同特征和局部信息。序列元素的位置信息通过上一小节中 介绍的位置编码来引入。从网络结构上看,基于位置的前馈神经网络就是一个全 连接网络,每个 FFN 层中包括两次线性变换,两次变换之间有一个非线性函数 ReLU 进行激活。虽然线性变换在不同位置上是相同的,但它们在每一层之间使用 不同的参数。

1.4. 预训练语言模型

1.4.1. 预训练词嵌入模型

上一节简单介绍过词嵌入的概念,简单概括就是使用一个词嵌入矩阵,将词典中 所有词元的独热向量表示映射为固定维度且能计算不同词元相似性的向量表示, 其重点在于如何获得一个有效的投影矩阵。针对一个词典训练一个有效的词嵌入 矩阵需要不小的算力和时间成本。因此没有必要对于每一个新模型都重新对词嵌 入模块进行训练,只需要预先训练一个有效的词嵌入矩阵(word embedding),直 接应用在新模型中就可以达到不错的效果,这就是最初的预训练模型。比如 word2vec 模型和 GloVe(Global Vectors,全局向量)模型,都是预训练词嵌入模型。将训练好的 word embedding 应用到下游任务的过程,相当于使用该词嵌入矩阵对 被训练的网络的第一层进行权重初始化。后续训练模型主要有两种方式,区别在 于是否锁定 embedding 层的权重参数。采用冻结参数的方法(Frozen)训练时,顾 名思义将 embedding 层的参数锁定,训练过程中映射矩阵不发生更新。采用微调法 (Fine-Tuning)训练时,不锁定 embedding 层的参数,训练时根据目标任务的数据 集更新权重。

Frozen 训练相当于将预训练的 embedding 层当成一个字典,用于直接地将独热向量 转化为带有语义关系的词向量。这与一些词库的作用是类似的,区别在于词库直 接存储词元文本到词向量的映射关系,Frozen 的 embedding 则更有利于批量数据的 并行计算。Fine-Tuning 训练则相当于提供了一组相当不错的权重初始化参数值, 能够有效地降低模型训练的成本,对于下游任务的模型效果也有一定的帮助。

1.4.2. 上下文有关的预训练词嵌入模型

word2vec和 GloVe都简单地给同一个词分配一个预训练词向量,而不考虑词的上下 文。然而,自然语言中存在相当多的一次多义现象,在不同的上下文语境中,词 的含义可能大不相同。因此,上下文无关的词向量表示具有明显的局限性。

1.4.3. 通用预训练模型:GPT

尽管 ELMo显著改进了各种自然语言处理任务的解决方案,但每个解决方案仍然依 赖于一个特定于任务的架构。然而,为每一个自然语言处理任务设计一个特定的 架构实际上并不是一件容易的事。GPT(Generative Pre Training,生成式预训练) 模型为上下文有关的词表示设计了任务无关的通用模型。GPT 建立在 Transformer 解码器的基础上,预训练了一个用于表示文本序列的自回归语言模型。当将 GPT 应用于下游任务时,语言模型的输出将被送到一个附加的线性输出层,以预测任 务的标签。与 ELMo冻结预训练模型的参数不同,GPT在下游任务的监督学习过程 中对预训练 Transformer 解码器中的所有参数进行微调。

GPT 模型与 ELMo 模型的工作过程类似,也分成两个阶段:1.利用语言模型进行无 监督预训练;2.通过有监督的微调(Fine-tuning)解决下游任务。GPT 使用 Transformer 模型的解码 器块作为特征抽取器,其特点在与遮蔽的自注意力层具有的自回归特性,只提取 上下文中的“上文”信息作为特征。对于不同的下游任务如分类、包涵判断、相 似判断、多选等。之后统一进入 Transformer 块进行特征提取,最后根据任务类型通过线性层设计完成结果输出。同为预训练,GPT 的 Fine-tuning 模式与 ELMo 的 Feature-based Pre-Training 模式区 别在于:ELMo 模型是一种词嵌入模型,它的目的在于生成词的上下文有关表示, 而不执行特定的任务。应用于下游任务时,需要设计一个处理该任务的模型来使 用 ELMo生成的词向量。训练下游任务时,锁定 ELMo的双向 LSTM模型的参数进 行训练。而 GPT 模型是一种自回归语言模型,其本身就是一个能够处理文本生成 任务的模型。应用于其他下游任务时,需要根据任务特点对 GPT 模型的结构进行 改造(较小的改动),使用预训练的 GPT 模型进行参数初始化后,对整个模型进行 不锁参的微调训练,以适应具体的任务特点。

1.4.4. 预训练模型集大成者:BERT

ELMo 与 GPT 两者各有优势。ELMo 模型的优势在于其双向架构能够同时提取到目 标词元上下文两个方向上的特征,而 GPT 只能提取到顺序的特征;GPT 模型的优 势在于其通用性,对于不同的下游任务只需要对原本的模型进行相当小的结构调整,而 ELMo 则需要设计处理下游任务的模型结构。2018 年 Google 的 Devlin 等人 提出的 BERT(Bidirectional Encoder Representations from Transformers)则集合了两 种方法之长,得到了比前两者更优秀的表现。

1.5. 大语言模型:智能涌现

在 2018 年推出了 GPT 模型之后,OpenAI 又沿着原本的技术路线于 2019、2020 年 推出了后两代的 GPT 模型。GPT-2 相比于 GPT,在结构上基本没有变化,仍旧使 用 Transformer 解码器来深入挖掘语言模型的潜力。为了挖掘语言模型的通用性, GPT-2 在训练模式上放弃了下游任务的微调,而是采用纯无监督学习进行预训练。在完成下游任务时,不再根据人物特点对输入的数据进行改造,而是让模型自己 识别任务的目标。GPT-2 试图实现 zero-shot 的效果,这是相当具有新意度的目标, 但实现起来也是相当困难。GPT-2 将参数量增大到了 15 亿仍没有达到性能提升的 瓶颈,这激励了 OpenAI 团队继续做大 GPT 模型的规模。到了 GPT-3 模型问世,参 数量达到 1750 亿,终于展现出了相当炸裂的效果,其智能涌现能力标志着人工智 能模型的自然语言处理能力进入了下一个阶段。

1.5.1. 不微调的预训练语言模型

对于 OpenAI 团队来说,GPT 模型在公布的短短 4 个月时间就被 Google 的团队在更 大的训练集上训练出来的更大规模的 BERT 模型击败。这让他们意识到通过增大规 模挖掘语言模型的性能仍有很大的空间,因此他们堆积了更多的 Transformer 块, 训练了一个拥有 15 亿参数的模型。然而,仅仅增加模型的规模不足以作为一项有 新意的研究。因此,OpenAI 在训练方式上做出了改变,并且对模型提出了更具有 新意的目标——实现一个 zero-shot 的模型。Zero shot 指语言模型要达到这样的一个效果:对于一个自然语言处理任务,仅使用 自然语言对任务进行描述,不提供任何样例,更不针对该类任务进行任何监督训 练或微调,让模型自己理解任务的描述并完成任务。GPT-2 的核心观点也体现在其 论文的标题中“Language Models are Unsupervised Multitask Learners”,一个优秀的 语言模型是不需要经过监督学习就可以完成多种任务的。这样的语言模型已经非 常接近于人们观念中的强人工智能了,可惜这个目标对于当时的技术来说过于超 前,以 GPT-2 模型的规模还远未达到能够完成 zero-shot 的程度。

虽然 GPT-2 的性能距离其提出的目标还有很大的差距,但在 OpenAI 团队的实验中, 随着规模的增大,模型在阅读理解、翻译、问答等 NLP 任务中的表现仍在以一个 接近对数增长的趋势增加。这表明通过增大模型规模还能继续提升模型的性能, 模型参数数量级的跨越式增长也成了后续几代 GPT 的必备特征。

1.5.2. 提示学习-Prompt

GPT-2 在探索模型 zero-shot 能力的时候,采用了在输入上添加任务相关提示词的方 式。回过头看,GPT-2 此时的做法不小心推开了提示学习的大门,启发了自然语言 处理继“传统机器学习模型范式”、“神经网络范式”、“‘预训练+微调’范式”之 后的“第四范式”——“‘预训练+提示+预测’范式”的发展。2020 年,OpenAI 在论文《Language Models are Few-Shot Learners》,也就是 GPT-3 的论文带领了提示学习(prompt learning)的发展——提示学习的核心思想是通过 构造一种“提示”(prompt)来引导预训练模型在特定任务上给出正确的输出。这 与直接提供标准问题格式的训练数据不同,提示学习试图以更自然的方式利用模 型预训练时学到的知识和技能。

提示学习的关键在于找到有效的提示,这些提示能够激活预训练模型中的知识, 使其能够更好地执行下游任务。例如,在一个情感分析任务中,而不是直接问模 型一个句子的情感,我们可能会添加一个提示:“这段话的态度是[MASK]的。”, 然后让模型预测填充在[MASK]处的词,比如“积极”或“消极”。与其说提示学习是一种训练方法,不如说是在人工智能的理解能力还不完善的阶 段中探索如何与模型沟通的过程,本质是给任务找到一个让模型能够更准确理解 的表达方式。最初的提示学习采用人工提示(Manual Prompts),需要研究人员根 据任务和模型知识构造有效的提示。这种方法的优点是可以利用人类的直觉和专 业知识来引导模型,但缺点是耗时且可能无法找到最优提示。随着研究的进展, 出现了自动生成提示(Automatic Prompts)的方法。这些方法使用搜索算法、强化 学习或者梯度下降等技术来自动寻找或优化提示,以提高模型在特定任务上的表 现。

1.5.3. 大语言模型的智能涌现——GPT-3.5 和 ChatGPT

人工智能领域对于涌现能力(Emergent Abilities)的定义为,如果模型的某种能力 仅在大模型上表现,而不能在小模型中表现出来,即称为“涌现能力”。换言之, 涌现能力是模型规模超过某一阈值时才能拥有的特性,也就是人们常说的“量变 产生质变”。这种现象通常出现在如 GPT-3或更大规模的语言模型中,当模型的参数数量大幅增 加,使得模型能够学习到更加复杂和抽象的模式。在模型规模变大的过程中,某 些能力的提升并不是线性的。即在特定的规模阈值之前,模型的能力提升相对平 缓;一旦超过这个阈值,能力会突然大幅提升。涌现往往意味着质的变化,模型 不仅在量上做了扩展,还可能获得了原本没有的新功能,例如更好的推理能力、 更准确的翻译能力,甚至是创造力和幽默感的展现。涌现能力的出现通常是不可 预测的,研究者无法准确预知哪种能力会在何时何种规模的模型中出现。

比如上一小节提到的 GPT-3 的上下文学习能力,当模型的参 数规模增大到 1750 亿时,模型突然展现出了该能力。上下文学习的能力来源及为什么上下文学习可以泛化,仍然难以溯源。实际上,初代的 GPT-3的功能并没有后 面的 ChatGPT 展现出来的这么强,但后来的实验证明,初代 GPT-3 有着非常强的 潜力。这些潜力后来被代码训练、指令微调(instruction tuning)和基于人类反馈的强化学习(reinforcement learning with human feedback, RLHF)解锁,最终体的 ChatGPT 展示出极为强大的涌现能力。

1.5.3.1. 代码训练和指令微调

在GPT-3进化到GPT-3.5的过程中,OpenAI主要在两个方向上的探索取得了成果:在代码上训练(Training on code)和指令微调(Instruction Tuning)。Codex 是 OpenAI 为了扩展 GPT-3 的代码能力训练的一个大语言模型,最初的目标 功能为代码补全。最初的 Codex 模型使用了 GitHub 上的大量开源代码作为数据集 对 120 亿参数的小规模 GPT-3 进行了微调训练,但最终得到的模型效果并不算太 好,这个模型后面演变成了 OpenAI API 中的“code-cushman-001”模型。在另一个方向上,OpenAI 为了让大语言模型能够更好地理解人类发布的任务,对 GPT-3 进行了指令微调(Instruction Tuning)训练。传统的语言模型通常是通过大 量文本数据进行预训练,从而学习语言的基础结构和知识。然而,它们不总是能 够理解和执行复杂的用户指令。指令微调通过对模型进行额外的训练,使其更好 地遵循用户的指令来完成特定任务。OpenAI 雇佣一批标注人员对训练集中的数据 标注了指令,标注后的数据集中的每一个样本包括“输入”、“指令”、“标签”三 个部分。用这个训练集对GPT-3模型进行有监督微调得到了初始版本的InstructGPT 模型,在 OpenAI API 中的代号为“Instruct-davinvi-beta”和“text-davinci-001”两个 模型接口。

从 2020 年 7 月到 2022 年 4 月,OpenAI 投入了大量的资源从代码训练和指令微调两 个方向来增强 GPT-3的性能,直到完成了代号为“code-davinci-002”的 Codex模型版本。虽然此版本模型被用做 Codex产品,但其针对自然语言的性能已经达到了下 一个水平,从这个版本开始,GPT 产品进入了 GPT-3.5 阶段。“code-davinci-002”和“text-davinci-002”是 GPT-3.5 模型的初始版本,其中 “text-davinci-002”是由“code-davinci-002”经过有监督指令微调得到的(更符合 人类的表达习惯),这两个模型分别用于代码和文本。除了代码生成与理解能力以 外,它们比初代 GPT-3 具有更多的“涌现”能力:

响应人类指令:GPT-3 模型的输出主要是训练集中常见的句子。GPT-3.5 模型会针对指令 或提示词生成更合理的答案(而不是相关但无用的句子)。这种能力是指令微 调的直接产物。

泛化到没有见过的任务:当用于调整模型的指令数量超过一定的规模时,模型就可以在从没见过 的新指令上也能生成有效的回答。相当于解锁了模型在 zero-shot 场景上的能 力,这种泛化能力指令的规模达到一定程度的时候自动出现的,与模型规模 导致的“涌现”有类似的特征。

使用思维链(Chain-of-Thought)进行复杂推理:思维链推理能力相当重要,被学术界认为是大语言模型“涌现”能力的 代表。而使用思维链进行复杂推理的能力并非来自指令微调,而是很可能来 自在大量代码数据集上的训练。这也有一定的解释空间:面向过程的编程类 似于人类逐步解决问题,面向对象的编程类似于人类将问题分解。

思维链的基本概念是模仿人类解决问题时的思维过程。在处理复杂问题时,人们 通常会一步步推导出结果。这些步骤包括构建问题的中间表征、进行逻辑推理、 计算或回忆知识点等。这个过程为模型提供了一个更加清晰的路径来解决问题, 并有助于它更好地理解问题的结构和所需的解决方案。在应用思维链的技术时, 模型被训练以生成详细的解释或描述它是如何一步步达到最终答案的。例如,当 问到一个数学问题时,模型不仅会给出最终的答案,还会展示出得到这个答案的 具体步骤。这使得最终的答案更可信,也更容易被用户理解和验证。思维链作为大模型“涌现”的重要代表,具有以下几个优势:(1)可解释性:通 过生成一系列推理步骤,思维链增强了模型的可解释性。用户可以看到模型是如 何逐步得出答案的,这在教育或需要解释的场合尤其有用。(2)准确性:推理过 程有助于模型集中注意力于任务的关键部分,可能提高模型在解决复杂任务上的 准确率。(3)学习和调试:展示中间步骤也方便开发者和研究人员理解模型的行 为,从而对模型进行调整和改进。

1.5.3.2. 基于人类反馈的强化学习

“text-davinci-002”版本的 GPT-3.5 模型虽然已经具有非常出众的性能,但要作为 公开发布的产品还具有诸多隐患,历史上因为模型输出具有争议性的响应导致产 品下架的例子有很多。通过语料库训练出来的大语言模型对于现代社会的敏感话 题并没有特别的认知,OpenAI 在《Training language models to follow instructions with human feedback》文章中提出了基于人类反馈的强化学习(Reinforcement Learning with Human Feedback,RLHF)来应对这个问题。实际上这是 InstructGPT 相对于 GPT-3 的研究,OpenAI 将其应用到 GPT-3.5 上得到了 ChatGPT。

InstructGPT 中,基于人类反馈的强化学习的训练过程主要分为三个阶段:(1) 有监督的微调(Supervised Fine-Tuning) 在这一步中,OpenAI 人工收集了 1.3 万条 prompts 用于训练,这些 prompts 一部分是从用户向 GPT-3提问中(GPT-3的 API)筛选出来的,另一部分是 由雇佣的标签员写出来的。再由标签员将prompts的答案也写出来,作为标 签,放到 GPT-3 模型里做有监督的微调,得到一个微调后的模型(下面简 称为“SFT”)。(2) 人工对模型输出进行标注,训练强化学习奖励模型(Reward Model) 使用另外 3.3 万条 prompts 作为 SFT 的输入,得到一批输出(这些 prompts 也包括从 GPT-3的 API筛选以及标签员人工生成)。再由标签员对 SFT多次 生成的输出进行排序。使用 prompts 与人 工排序后的答案作为训练集,训练一个奖励模型。该奖励模型的作用是对 prompts输入 SFT后得到的输出进行打分,这些得分需要符合标签员做出的 排序。

1.5.4. 大模型智能涌现能力的来源

上文提到了关于大语言模型的“涌现”能力,是模型规模超过一定阈值后才能够 拥有的。学术界目前还没有对大模型产生“涌现”现象的原因做出解释和论证, 只有基于测试和比较的分析结果。本小结将解答一部分关于“涌现”能力的疑问。模型需要多大规模才会出现“涌现”? Yao Fu 等人在文章《How does GPT Obtain its Ability? Tracing Emergent Abilities of Language Models to their Sources》给出了两个数字:620 亿和 1750 亿。以思维链作 为判断模型出现“涌现”能力的标准:(1)模型至少需要 620 亿,思维链的效果才 能大于标准的提示词方法。(2)模型至少需要 1750 亿(GPT3 的规模),思维链的 效果才能大于精调小模型的效果。

代码训练、指令微调、RLHF 等调整对模型做了什么,产生了不同的“涌现”能力? 在文章《How does GPT Obtain its Ability? Tracing Emergent Abilities of Language Models to their Sources》中,作者仔细检查了 GPT-3.5 系列的能力范围,并追溯了 它们所有突现能力的来源。初代 GPT-3模型通过预训练获得生成能力、世界知识和 上下文学习能力。然后通过指令微调的模型分支获得了遵循指令和能泛化到没有 见过的任务的能力。经过代码训练的分支模型则获得了代码理解的能力,作为代 码训练的副产品,模型同时潜在地获得了复杂推理的能力。结合这两个分支, “code-davinci-002”似乎是具有所有强大能力的最强 GPT-3.5 模型。接下来通过有 监督的指令微调和 RLHF 通过牺牲模型能力换取与人类对齐,即对齐税。RLHF 使 模型能够生成更翔实和公正的答案,同时拒绝其知识范围之外的问题。

对于采用不同的训练方法调整 GPT-3模型所引发的这些新的“涌现”能力,到底是 这些方法给模型“注入”了新的能力,还是预训练模型本身就具备了这些能力的 潜力,只是被调整后“解锁”了? 对于锁定模型参数的调整,比如提示学习,这个问题的答案显然是“解锁”。而对 于不锁参的调整,这其实主要取决于训练样本的数据量。举个例子,在 GPT-3 进化到 GPT-3.5 的过程中,采用在代码上训练的方式给模型 “注入”了代码生成能力和思维链复杂推理能力,这两个能力实际上是通过代码 训练注入的。因为其代码训练集的规模达到了与文本语料库相近的量级,后几代 模型的训练集也都包括相当一部分比例的代码。因此,代码训练可以视为一种偏 逻辑的自然语言对预训练语料库的补充。

而在 GPT-3.5 调教到 ChatGPT 的过程中使用的基于人类反馈的强化学习方法,则应 该别认定为“解锁”了模型本来就具备的能力(多轮对话、安全中立表达等)。因 为在 InstructGPT 论文中披露的训练数据,prompts 的量级只有 10 万以内,这与预 训练模型本身的训练集规模相差甚远,微调对权重的改变并不能起到“注入”知 识的效果。此外,经过 RLHF 调教的 ChatGPT 实际上在“解锁”了新的能力的同 时,也“隐藏”了一部分原有能力的表现。这实际上也表明,小数据规模的微调 训练对于大语言模型来说,只能改变其原有能力的侧重点。如果想要继续发展大模型的“涌现”能力,应该怎么做?在通过微调无法“解锁”模型的更多能力时(或者“解锁”了新能力但无法兼顾 原有能力的性能),只能够更大的语料库训练更深的预训练模型。

2. 大语言模型的应用与展望


文琳编辑

免责声明:转载内容仅供读者参考,观点仅代表作者本人,不构成投资意见,也不代表本平台立场。若文章涉及版权问题,敬请原作者添加 wenlin-swl  微信联系删除。

为便于研究人员查找相关行业研究报告,特将2018年以来各期文章汇总。欢迎点击下面红色字体查阅!

文琳行业研究 2018年—2023年11月文章汇总

▼长按2秒识别二维码关注我们

今日导读:点击下面链接可查阅

公众号 :文琳行业研究

  1. 2023婴幼儿食品行业分析报告

  2. 2023中国健康生活趋势洞察报告

  3. 2023抖音电商滋补品行业洞察报告

  4. 重组胶原蛋白行业研究:商业化提速,中国成分踏入“黄金时代”

  5. 手术机器人行业深度报告:中国市场即将扬帆起航

  6. 医疗器械数据安全白皮书(2023年)

  7. 基因测序行业专题分析:测序应用百花齐放,技术迭代引领龙头价值

  8. 2023年药物研发自动化实验室行业发展报告

《文琳资讯》

提供每日最新财经资讯,判断经济形势,做有价值的传播者。欢迎关注

▼长按2秒识别二维码关注我们

今日导读:点击链接可查阅
  1. 刚刚,国务院印发!这个一线城市,迎重大利好

  2. 信息量巨大!刚刚,国务院重磅发布!新加坡大消息,机票搜索量暴增90%

  3. 突发!刀郎宣布停更,名下公司全部注销

  4. 中国居民退休准备指数发布!

  5. 王健林为何卖卖卖?

  6. “安徽省南京市”!广东法院把南京“判”给安徽?官方通报


公众号 :就业与创业
点击下方可看
  1. 稻盛和夫:人的成长,始于三次觉醒

  2. 考研降,考公升,传递了什么信号?

  3. 未开票收入报税被罚!税务局明确!申报表中“未开票收入”,都要按这个来!

  4. 健康码“卷土重来”?假的!

  5. 97年公务员有话说:无欲无求,哪还会有什么不开心?



继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存