当前位置:首页|资讯|人工智能|ChatGPT|深度学习

人工智能报告:从RNN到ChatGPT,大模型的发展与应用(附下载)

作者:超爱跑步发布时间:2023-11-23

原标题:人工智能报告:从RNN到ChatGPT,大模型的发展与应用(附下载)

今天分享的是人工智能系列深度研究报告:《人工智能报告:从RNN到ChatGPT,大模型的发展与应用》。

(报告出品方:东北证券)

报告共计:58页

海量/完整电子版/报告下载方式:公众号《人工智能学派》

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

1.1.引言一一从 RNN到 ChatGPT

自然语言处理 (Natural Language Processing,NLP) 是计算机科学、人工智能和语言学领域的一个交叉学科,主要研究如何让计算机能够理解、处理、生成和模拟人类语言的能力,从而实现与人类进行自然对话的能力。通过自然语言处理技术可以实现机需翻译、问答系统、情感分析、文本摘要等多种应用。随着深度学习技术的发展,人工种经网络和其他机器学习方法已经在自然语言处理领域取得了重要的进展。

自然语言处理的发展可追溯到 20 世纪 50年代,当时计算机科学家开始尝试通过计算机程序来实现对自然语言的理解和生成。早期研究主要关注规则和基于知识的方法,如编写语法规则和词典来进行句子分析。20 世纪 80 年代,随着计算能力的提高和大量语料库的出现,统计方法在自然语言处理领域逐渐占据主导地位。这一时期,许多基于统计的机器翻译、分词、词性标注等方法相继出现。进入 21 世纪,尤其是近十几年,深度学习技术的发展极大地推动了自然语言处理的进步。

从2010年,TomasMikolov 及其合作者提出了基于循环神经网络 (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. 自回归语言模型

自回归模型能够解决序列后续的预测问题,循环神经网络 (recurrent neural networkRNN) 以及其不同的实现方式门控循环单元 (gated recurrent units,GRU)、长短期记忆网络 (long short-term memory,LSTM) 都是典型的自回归模型。

语言模型的另一个重要任务是序列转换,机器翻译是序列转换模型的一个核心问题,其输入和输出都是长度可变的序列。为了解决如机器翻译的序列到序列(sequence to sequence,seq2seq) 类的学习任务,研究人员提出了编码器-解码器encoder-decoder) 架构。

本节将介绍典型的自回归语言模型算法 RNN、LSTM、GRU 以及用于序列导序列转化问题的编码器-解码器架构。

1.2.1. 循环种经网络-RNN

1.2.1.1. 循环神经网络

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

1.2.1.2. 沿时间反向传播算法

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 同等的效果,且收敛的速度更快。

GRU 相比于 LSTM 更简单,因为它合并了 LSTM 的输入门和道忘门,减少了参数数量,同时不具有显式的记忆单元状态,而是将记忆功能并入隐状态中,这意味着 GRU的结构更简单,计算收敛的速度更快。但在某些复杂序列数据上,GRU的表现可能不如 LSTM 出色。因此,这两种 RNN 类结构的选择,取决于任务的要求以及可用的计算资源。然而,由于序列的长距离依赖性,训练 LSTM和 GRU 等序列模型的成本都是相当高的。此阶段的序列模型由于算法和算力等限制,距离用于机器翻译等任务的商用还有一定距离。

1.2.3.编码器-解码器架构

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

编码器-解码器架构主要由编码器 (encoder) 和解码器 (decoder) 两个组件组成。编码器将长度可变的输入序列转换为具有固定长度的中间状态 (通常被称为上下文向量或编码向量)。输入序列中的每个元素经过编码器的神经网络层进行处理,逐步地讲信息传递到隐状态中,最终构建出上下文向量。编码器的隐藏状态则被用作解码器的初始状态。

解码器则接受编码器生成的上下文向量以及目标序列的起始标记,按时间步逐步地生成目标序列的元素,直至生成究整的目标序列。道常,由解码器生成的当前时间步的输出元素,会作为其下一个时间步的输入传递到解码器中,以继续生成序列的下一个元素。

编码器-解码器架构的主要应用包括机器翻译、文本摘要、对话生成和语音识别等它的核心思想是将不定长的输入序列映射到固定长度的上下文向量,再从上下文向量生成不定长的输出序列,这使得它适用于多种序列到序列的任务。这一架构的发展对于自动化生成任务和自然语言理解任务的进展产生了深远的影响。

1.3.注意力机制

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

2015年 Dzmitry Bahdanau 等人在论文《Neural machine translation by jointly learningto align and translate》中提出的注意力机制 (Attention Mechanism),用于对输入信息的不同部分赋予不同的权重,使语言模型可以学习到词和词之间更深层次的依赖关系,从而更好地理解和生成语句。

引入注意力机制后,语言模型的性能得到了大幅度的提升。2017年 Vaswani等人发表了《Attention is all you need》,提出了基于自注意力机制 (self-attentionmechanism)的,消除了传统 RNN 循环结构的 Transformer 结构。Transformer 结构提高了模型的并行性,带来了显著的性能提升。同时,随着机器学习算力的发展Transformer 在大规模文本语料库上进行预训练并对特定下游任务进行微调,引领了后续的 BERT、GPT 等预训练模型和大语言模型的发展。总之,Transformer 模型的出现标志着自然语言处理领域的一次革命,它的成功还扩展到了计算机视觉等其他领域,为多模态任务提供了新的可能性。

1.3.1. 注意力机制

对于人类来说,从各种感官系统接收到的信息远远超过了大脑能够完全处理的水平。“注意力”代表了大脑当前处理信息的倾向性,将更多的时间和资源用于处理某一部分信息。自然环境中的物体给人的各种感官带来的信息都不相同。在非自主的情况下,人们通常将注意力集中在具有突出性的感官信息中,比如某些具有鲜艳突出颜色、发出刺耳噪音或产生奇特的香/臭味的物体。

1.3.2Transformer 架构

1.3.2.1.自注意力机制

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

1.3.2.2. Transforier 的整体架构

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

1.3.2.3. 多头注意力机制

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

对比来说,普道的神经网络块与残差块的区别在于: 假设网络的原始输入为 x,希望神经网络学习到的理想映射为H(x),普道块要通过权重学习的过程直接拟合出理想映射H(x),而残差决则是拟合出残差映射F(x) = H(x)-x。

1.4.预训练语言模型

1.4.1. 预训练词嵌入模型

上一节简单介绍过词嵌入的概念,简单概括就是使用一个词嵌入矩阵,将河典中所有词元的独热向量表示映射为固定维度且能计算不同词元相似性的向量表示,其重点在于如何获得一个有效的授影矩阵。针对一个词典训练一个有效的词嵌入矩阵需要不小的算力和时间成本。因此没有必要对于每一个新模型都重新对词嵌入模块进行训练,只需要预先训练一个有效的词嵌入矩阵 (word embedding),直接应用在新模型中就可以达到不错的效案,这就是最初的预训练模型。比如word2vec 模型和 GloVe (Global Vectors,全局向量) 模型,都是预训练词嵌入模型。

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

ELMo 通过一个简洁的方案解决了词向量的一词多义问题。ELMo 在大规模文本语 料库上预训练了一个双向深度 LSTM 网络,预训练时的目标任务是“完形填空”, 即根据单词的上下文来预测该单词。预训练完成后,输入一个新的句子,就能够 得到句子中的每个词元两个方向的词嵌入序列。融合这两个词嵌入序列,最终就 可以得到该词元的一个带有输入句子上下文信息的词嵌入表示向量。ELMo 网络的 结构如下图所示。

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

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

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

对于 OpenAI团队来说,GPT模型在公布的短短4个月时间就被 Google 的团队在大的训练集上训练出来的更大规模的 BERT 模型击败。这让他们意识到通过增大规模挖据语言模型的性能仍有很大的空间,因此他们堆积了更多的 Transforimer 块,训练了一个拥有 15 亿参数的模型。然而,仅仅增加模型的规模不足以作为一项有新意的研究。因此,OpenAI 在训练方式上做出了改变,并且对模型提出了更具有新意的目标一一实现一个 zero-shot 的模型。

Zero shot 指语言模型要达到这样的一个效果: 对于一个自然语言处理任务,仅使用自然语言对任务进行描述,不提供任何样例,更不针对该类任务进行任何监督训练或薇调,让模型自己理解任务的描述并完成任务。GPT-2 的核心观点也体现在其论文的标题中“Language Models are Unsupervised Multitask Learners”,一个优秀的海言模型是不需要经过监督学习就可以完成多种任务的。这样的语言模型已经非常接近于人们观念中的强人工智能了,可惜这个目标对于当时的技术来说过于超前,以 GPT-2 模型的规模还远未达到能够究成 zero-shot 的程度。

1.5.2. 提示学习-Prompt

GPT-2在探索模型 zcro-shot 能力的时候,采用了在输入上添加任务相关提示词的方式。回过头看,GPT-2 此时的做法不小心推开了提示学习的大门,启发了自然语言处理继“传统机器学习模型范式”、“神经网络范式”、““预训练+微调’范式”之后的“第四范式”-“预训练+提示+预测’范式”的发展。

2020年,OpenAl在论文《Language Models are Few-Shot Learners》,也就是 GPT-3的论文带领了提示学习 (prompt learming) 的发展一一提示学习的核心思想是通过构造一种“提示”(prompt) 来引导预训练模型在特定任务上给出正确的输出。这与直接提供标准问题格式的训练数据不同,提示学习该图以更自然的方式利用模型预训练时学到的知识和技能。

GPT-3 在上一篇论文提出的 zero-shot 场景的基础上,增强 prompts 提出了上下文学习 (In-ContentLearning) 的概念,包括 one-shot 和 few-shot 两种方案,并通过举例说明了其与微调训练的工作过程的差别,如下图所示。

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

人工智能领域对于酒现能力 (Emergent Abilities)的定义为,如果模型的某种能力仅在大模型上表现,而不能在小模型中表现出来,即称为“涌现能力”。换言之,酒现能力是模型规模超过某一阔值时才能拥有的特性,也就是人们常说的“量变产生质变”。

报告共计:58页

海量/完整电子版/报告下载方式:公众号《人工智能学派》


Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1