从RNN到ChatGPT,大模型的发展与应用

2023-11-17 18:43:20   来源:新浪VR

  (报告出品方/作者:东北证券,王琦)

  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. 大语言模型的应用与展望

  在当今的人工智能领域,大语言模型的兴起无疑是其中的一颗璀璨明珠。它们不仅重新定义了机器理解和生成语言的能力,而且其应用范围的广泛性正在触及社会的每一个角落。本章旨在探讨大语言模型的应用,它们如何成功适配于特定领域的需求,以及多模态大模型在未来的应用前景和潜在的发展方向。

  首先,我们将探讨大语言模型的实际应用。这些模型以其卓越的文本生成和理解能力,已经在文学创作、编程、法律咨询等多个领域展现出了其价值。通过自然语言处理技术,它们能够从大规模数据中提炼信息,为决策提供支持,甚至在某些情况下,替代专业人士进行工作。

  其次,文章将分析大语言模型如何根据不同领域的特定需求进行调整和适配。在医疗、金融、教育等领域,模型不仅要理解专业术语,还要适应特定的应用场景和数据处理需求。我们会看到,通过微调和定制化训练,这些模型如何更精确地服务于特定的行业。

  最后,我们将讨论多模态大模型的应用与展望。随着技术的发展,单一模态的输入已无法满足日益复杂的需求。多模态模型通过整合文本、图像、声音等多种信息来源,为我们提供了一个更为丰富和综合的世界理解。从增强现实到自动驾驶汽车,多模态模型正开辟着人工智能的新天地。

  通过本章,我们将了解大语言模型和多模态模型在现实世界中的应用,探索它们在各个领域的适配过程,以及它们将如何继续推动技术的边界,影响未来的发展趋势。

  2.1. 大语言模型的应用

  在当今信息化社会的蓬勃发展中,大型语言模型的崛起标志着人工智能领域的一次重大突破。它们不仅仅是简单的技术产品,更是人类语言理解和创造能力的一个显著跃进。大型语言模型如 GPT 和 BERT 等,凭借其强大的自然语言处理能力,正在重新定义多个行业的工作方式,为人类活动开辟了新的道路。这些模型通过分析和学习互联网上海量级的文本数据,已经掌握了生成、总结、提取、聚类、分类、检索和改写等多种复杂的语言处理功能。在这个基础上,大 型语言模型已经被应用于各种场景,如创作高质量文章、提供法律和医疗文档的咨询、自动化客户服务回复,甚至辅助编程和数据分析。它们的出现,使得从繁复的文本中提取信息、生成新内容以及对现有内容进行再加工变得前所未有地高效和精准。

  对于企业来说,语言模型正变得不可或缺,它们能够处理大量的客户数据,提供个性化的服务,同时优化操作流程,减少成本。在教育领域,这些模型不仅为学生提供定制化学习内容,而且还能评估学习成果,甚至帮助教师设计课程。在媒体和娱乐行业,内容的创作和改写变得更加多元和富有创意,使得个性化的内容推荐成为可能。本节将探讨大型语言模型的这些核心功能以及它们的实际应用案例,从而揭示它们如何影响并改善我们的工作和生活。随着技术的进步和应用的深入,我们的工作效率能够在人工智能的推动下不断提高。本节中的各种功能仍有无数的应用有待发掘,本文旨在提供一些灵感。

  大语言模型(Large Language Modal,LLM)的核心能力大致分为:生成(Generate)、总结(Summarize)、聚类(Cluster)、提取(Extract)、分类(Classify)、检索(Search)与改写(Rewrite)七部分。本节将介绍这些能力并列举一些应用,同时对部分能力在 ChatGPT 上尝试并附带了实际响应结果。

  1、生成(Generate)

  生成是 LLM 最核心的能力。当谈论到 LLM 时,首先可能想到的是其能够生成原始且连贯的文本内容。其能力的建立来源于对大量的文本进行训练,并捕捉了语言的内在联系与人类的使用模式。充分利用模型的生成能力可以完成对话式(chat)&生成式(completion)应用。对于对话式应用,典型应用为聊天机器人,用户输入问题,LLM 对问题进行响应回答。对于生成式应用,典型应用为文章续写、摘要生成。比如,我们在写一段营销文案时,我们写一部分上下文,LLM 可以在此基础上对文案进行续写,直至完成整个段落或整片文章。大型语言模型在文本生成方面的能力是它们最为人称道的特性之一。它们不仅可以生成高质量的自然语言文本,而且还能在一定程度上模拟特定风格或作者的写作方式。此外,它们能够生成结构化的输出,比如编写可执行的编程代码或者格式化良好的报告。

  应用场景:在内容创作领域,比如自动撰写新闻稿、博客文章或社交媒体帖子,大型语言模型可以大幅度提高效率。对于程序员来说,这些模型可以辅助编写代码,提供代码补全或者整段代码生成。在创意写作方面,它们可以帮助作家克服创作障碍,提供灵感,甚至生成完整的诗歌或小说草稿。在没有提供更多信息的情况下,让 ChatGPT 生成一篇关于气候变化影响的文章,模型仅用了十几秒就完成了任务。

  2、总结(Summarize)

  总结是 LLM 的重要能力。通过 Prompt Engineering,LLM 可对用户输入的文本提炼总结。在工作中我们每天会处理大量会议、报告、文章、邮件等文本内容,LLM 总结能力有助于快速获取关键信息,提升工作效率。利用其总结提炼能力可以产生许多有价值应用。比如,每次参加线上或线下会议,会后需形成会议记录,并总结会议重要观点与执行计划。LLM 利用完备的语音记录可完成会议内容与重要观点的总结。大型语言模型的文本总结能力允许它们处理大量信息,并从中提取关键点。这些模型通过理解文本的整体内容和上下文关系,可以生成简洁的摘要,这对于那些需要快速获取信息精华的人非常有用。

  应用场景:在企业环境中,模型可以用来生成会议记录的摘要,或者将长篇报告压缩成高层管理者的简报。在学术研究中,自动生成文献综述或研究报告摘要可以节省研究人员大量的时间。新闻机构可以使用这些模型来提供新闻故事的快速摘要,供忙碌的读者阅读。提供一篇研究报告,让 ChatGPT 总结内容给出摘要,用时不超过一分钟。

  3、提取(Extract)

  文本提取是通过 LLM提取文本中的关键信息。比如命名实体提取,利用 LLM 提取文本中的时间、地点、人物等信息,旨在将文本关键信息进行结构化表示。除此之外,还可用于提取摘录合同、法律条款中的关键信息。语言模型在信息提取方面的应用基于其能够识别和解析文本中的特定数据点。它们可以精确地从无结构数据中识别出人名、地点、日期等实体,并且能够从复杂的文本中提取关键的事实和数字。

  应用场景:在法律行业,这些模型可以从复杂的合同文档中提取关键条款和条件。在医疗领域,模型可以从病人的临床笔记中提取关键的健康信息,辅助医生和护士快速获取病人的关键数据。对于商业情报,模型能够从各种报告和新闻文章中提取市场数据和竞争情报。提供一家公司的招股说明书,让 ChatGPT 回答文档中的相关信息,用时两分钟以 内。从结果上来看,模型能够准确回答一些字段匹配度高的问题,但对于 PDF 文件中的表格信息,读取的完整度并不高(只列出了四家客户)。同时,对于任务要求中“完整年度”的理解并不正确。将问题改为“该公司最近一个完整年度,产品销售的前三大客户是哪些公司?”,甚至无法定位到相关表格。说明 ChatGPT 对于一个大文档(大于 5MB)的信息读取,能够做到“提取”信息,但并不能足够精确地“理解”所有信息。

  4、分类(Classify)

  分类旨在通过 LLM 对文本类别划分。大模型对文本内容分类的优势在于强语义理解能力与小样本学习能力。也就是说其不需要样本或需要少量样本学习即可具备强文本分类能力。而这与通过大量语料训练的垂域模型相比,在开发成本与性能上更具优势。比如,互联网社交媒体每天产生大量文本数据,商家通过分析文本数据评估对于公众对于产品的反馈,政府通过分析平台数据评估公众对于政策、事件的态度。语言模型能够将文本归类到预先定义的类别中,这基于对文本内容的深层语义理解。这些模型可以被训练来识别文本的主题、情感倾向,甚至是作者的意图。

  应用场景:在企业中,模型可以用于自动对客户查询进行分类,以便将其分派给最合适的服务代表。在网络安全领域,它们可以分类电子邮件以识别垃圾邮件和网络钓鱼尝试。教育技术领域可以利用分类功能来评估学生的开放式回答和作文。

  5、聚类(Cluster)

  通过对大量文本数据进行语义分析,大型语言模型可以将主题或内容相似的文本分组在一起。这种聚类能力使得它们可以识别模式和关联,甚至在没有明确标签的情况下也能进行。

  应用:在客户服务领域,聚类技术可以帮助企业对顾客反馈进行分类,以便更有效地响应并解决问题。在内容管理系统中,它可以帮助自动整理和归档文档。而在社交媒体分析中,聚类可以用来追踪特定话题的趋势或者公众情绪的变化。上一个新闻分类样例中,ChatGPT 按照任务要求的条件(新闻情绪)将这些新闻进行了聚类。

  6、检索(Search)

  文本检索是根据给定文本在目标文档中检索出相似文本。最常用的是搜索引擎,我们希望搜索引擎根据输入返回高度相关的内容或链接。而传统方式采用关键词匹配,只有全部或部分关键词在检索文档中命中返回目标文档。这对于检索质量是不利的,原因是对于关键词未匹配但语义高度相关的内容没有召回。在检索应用中,LLM 的优势在于能够实现语义级别匹配。大型语言模型可以理解自然语言查询,从而检索和返回相关信息。它们能够解析查询的语义,搜索大规模的文本数据集,并找到与查询意图最匹配的结果。

  应用:在线搜索引擎可以利用这些模型提供更准确的搜索结果。企业可以使用这些工具从内部文档库中检索特定的商业文档。而图书馆和档案馆可以使用语言模型来帮助研究人员和公众找到特定的历史记录或文档。检索与前面的提取有一部分类似之处,区别在于被检索数据库的规模,由于数据规模的限制不在此处展示样例。

  7、改写(Rewrite)

  文本改写是通过 LLM 对输入文本按照要求进行润色、纠错。常见的应用为文本纠错,例如,在稿件撰写、编辑时可能出现词语拼写错误、句子语法错误,利用通过 LLM 与提示词工程(Prompt Engineering)自动对文本内容纠错。此外,还可用其对文章进行润色处理,使文章在表述上更加清晰流畅。同时,可以还可 LLM 进行文本翻译。改写是指将文本转换为具有不同风格或结构的新版本,同时保持原有信息的功能。语言模型能够理解原文的意图和语义,然后以新的方式重新表达相同的信息。

  应用场景:在出版和媒体行业,模型可以帮助编辑改写文章,以适应不同的读者群体或出版标准。教育领域中,可以将复杂的学术材料改写为更易理解的语言,使之适合更广泛的受众。对于多语言内容制作者,语言模型可以将一种风格或方言的文本转换成另一种,以适应不同地区的语言习惯。在编程开发中可以使用改写功能将某种编程语言编写的程序代码改写成另一种。我让 ChatGPT 使用鲁迅的风格改写前面的样例中生成的关于气候变化的文章。模型用了极短的时间将文章改写成了文言文,效果非常惊艳。但我追加了对鲁迅写作风格提示并要求 ChatGPT 改写为白话文后,效果并不好。

  2.2. 大模型的领域适配

  大型通用语言模型通过使用广泛的数据源进行训练,在许多通用任务上表现出色。然而,这些模型可能不足以处理特定行业或专业领域(如医学、法律或工程)中常用的专业术语和复杂概念。通过领域适配,模型可以减少对专业术语的误解或错误解释,避免误导和信息不准确的问题,更准确地理解和生成这些领域特有的语言,增强信息的相关性和准确性,从而为用户提供更相关和精确的回答。此外,针对特定领域的用户,他们对信息的准确性和深度有更高的要求,领域适配可以为他们提供更定制化、更符合其特定需求的服务。在某些领域,如医疗和金融,遵守行业规范和法律合规性尤为重要,领域适配在这方面起着关键作用。

  领域适配主要包括以下几个过程:

  (1)数据收集和筛选:这是领域适配的第一步。收集与特定行业或专业领域 (如医学、法律、金融等)相关的数据。这些数据可能包括专业文章、行业报告、技术文档、专业论坛的讨论等。重点是获得涵盖领域内专业术语和特定语境的高质量数据。

  (2)数据预处理和清洗:获得数据后,需要对其进行预处理和清洗,以确保数据的质量。这可能包括去除无关信息、标准化术语、更正错误等。这一步骤对于提高模型学习的效率和准确性至关重要。

  (3)微调或迁移学习:接下来,使用特定领域的数据对现有的大型语言模型进行微调。这个过程涉及在特定领域数据上继续训练模型,以便模型更好地理解和生成与该领域相关的语言和信息。

  (4)验证和评估:微调后,需要评估模型在领域特定任务上的性能。这可能包括使用专业的测试集来检查模型对专业术语的理解、回答领域相关问题的准确性等。根据评估结果,可能需要进行进一步的调整和优化。

  (5)持续迭代和更新:领域知识和专业术语可能会随时间发展和变化。因此,领域适配是一个持续的过程,需要定期更新模型,以包含最新的领域知识和数据。

  (6)合规性和伦理考量:在某些领域,尤其是医疗和法律,还需要考虑合规性和伦理问题,确保模型的输出不违反行业规范和法律规定。

  通过上述领域适配的过程,大型通用语言模型能够更有效地服务于特定行业和专业领域。这不仅提高了模型在处理专业术语和复杂概念时的准确性和效率,还确保了信息的相关性和深度,满足了特定用户群体的高标准要求。同时,考虑到合规性和伦理的重要性,尤其在敏感领域如医疗和法律,这种适配过程也保证了模型输出的安全性和合法性。因此,领域适配不仅是提升模型性能的技术手段,也是确保其广泛适用性和可靠性的关键步骤。

  2.3. 多模态大模型

  ChatGPT 于近期开放了其多模态接口,以 GPT-4 为代表的多模态大模型再次成为前沿热点。多模态大模型不仅打破了仅限于单一感官输入的束缚,还赋予了机器对世界的感知能力,一个更接近人类的多维视角。通过整合视觉、听觉、文本等多种信息来源,多模态模型在理解复杂的环境和人类行为上展现出无与伦比的潜力。

  本节将探讨常见的多模态任务,以及多模态模型在各个行业中的应用。随着技术的不断进步,多模态模型不仅正在改变我们与机器交流的方式,更是在重塑我们对世界的理解和互动。考虑到篇幅与理解难度,本文仅对多模态学习的原理做简要介绍。

  多模态学习(Multimodal Machine Learning,MML)是指利用来自多种不同数据源或类型的信息进行学习的过程。在这种学习方法中,不同模态的数据被综合考虑,以更全面地理解和分析问题。多模态学习的关键是探索和利用不同模态数据之间的关系,以提高预测准确性、数据理解和决策质量。

  论文《Multimodal Machine Learning:A Survey and Taxonomy》列举了多模态学习中的五个主要的研究方向:

  (1)表征(Representation):如何表示和总结多模态数据,以利用不同模态的互补性和冗余性。由于多模态数据的异质性,构建这样的表征是具有挑战性的,主要分为两类表征方法:联合表征(Joint Representations)和协同表征(Coordinated Representation)。联合表征将多种模态的表示融合映射到一个统一的向量空间中;协同表征则是将不同模态映射到不同的向量空间,但映射后的向量之间满足一定的约束关系。

  (2)翻译/映射(Translation/Mapping):如何将数据从一种模态转换(映射)到另一种模态,比如将文字描述“猫”转化为图像。这个过程经常是开放的或主观的,因为不同模态之间的关系往往是多元的,“猫”的文本对应的图 像有千万个正确答案,自然界中不同品种的猫、动画中的二次元猫(甚至路由器的光猫)都能够算作正确的转换。

  (3)对齐(Alignment):对来自同一个实例的不同模态信息的子分支/元素寻找对应关系,包括时间序列对齐、视觉词汇对齐等。这需要测量不同模态之间的相似性并处理可能的长期依赖性和模糊性。

  (4)融合(Fusion):将来自两种或更多模态的信息结合起来进行预测。不同模态提供的信息可能具有不同的预测力和噪声拓扑,并可能至少在一种模态中缺失数据。按照融合的层次,可以将多模态融合分为 pixel level、feature level 和 decision level 三类,分别对应对原始数据进行融合、对抽象的特征进行融合和对决策结果进行融合。

  (5)协同学习(Co-learning):在模态之间、它们的表示和预测模型之间转移知识。协同学习探索了从一个数据资源丰富的模态中学到的知识如何帮助训练在另一个数据资源相对贫瘠的模态上的计算模型。

  多模态任务在许多现实领域中有广泛的应用场景,涵盖了从健康医疗到教育、娱乐和安全等多个方面。以下是一些应用的领域和具体场景:

  (1)医疗:a)医学影像分析:结合医学图像(如 MRI、CT 扫描)和患者的电子健康记录来提高诊断的准确性和效率。b)患者监测:使用传感器收集的数据(如心率、运动数据)监测健康状况。

  (2)交通:a)自动驾驶汽车:结合来自摄像头、雷达和其他传感器的数据来实现安全的车辆导航和决策。b)交通监控:使用摄像头和声音传感器来监控和管理交通流量。

  (3)娱乐:a)增强现实(AR)和虚拟现实(VR):结合视觉、听觉和触觉反馈,为用户提供沉浸式的体验。b)电影和游戏制作:使用多模态数据来创造更逼真和互动的视觉效果。

  (4)安全:a)监控系统:结合视频监控和音频数据来提高安全监控的效能。b)欺诈检测:分析交易记录、用户行为和通信内容,以识别和防范欺诈活动。

  (5)服务:a)智能助手:结合语音、文本和图像处理来提供更加全面和个性化的用户体验。b)用户分析:通过分析用户的语音、文字和情感反应来提供更有效的客户支持。

  OpenAI 在最新发布的技术报告《The Dawn of LMMs:Preliminary Explorations with GPT-4V(ision)》中提供了 GPT-4V 这个大型多模态模型的全面分析,涵盖了其处理不同输入模式的能力,与人类互动的方法,以及在多种智力和情感测试中的表现。GPT-4V 能够处理单文本输入、单一“图像-文本”对输入以及交错的图像-文本输入等多种模式的输入。在性能方面,GPT-4V 具有不俗的“视觉-语言”、时间和视频理解、抽象视觉推理以及情绪识别能力。在应用方面,报告列举出了一系列 GPT-4V 的应用场景,包括差异发现、工业、医疗、汽车保险、定制字幕、图像生成、GUI 导航等等。

  GPT 系列模型 GPT-1/2/3/4 仅接受文本输入-文本输出,在第四代已经展现出了非常强大的文本理解和生成能力。到 GPT-4V 能够接受“图片-文字”混合输入-文本输出,也展现出了强大的图像理解能力,后续“图文交错”的输出能力就成为了很自然的发展方向。以及,结合其他诸如视频、音频和其他传感器数据模态的输入/输出,将继续扩展大语言模型的能力。

  向更远处展望,人类的感官除了视觉、听觉,还包括嗅觉、触觉、味觉等等。因此,人类能够感知的模态除了文本、图像、声音,还包括气味、触感、味觉感受等。当多模态大模型发展到能够涵盖人类能够感知的所有模态,从而模拟和理解人类的全面感知体验时,我们可能就距离实现真正高等级的人工智能仅一步之遥。这种全方位的感知能力将极大地推动人工智能在理解复杂世界、情感智能和更自然人机交互等方面的进步。

  3. 大语言模型在量化投资领域的应用与前景

  在过去的几十年里,量化投资作为金融领域的一大创新,不仅改变了市场的操作方式,也重新定义了投资决策过程。随着人工智能和大数据技术的迅猛发展,尤其是大语言模型的出现,这一领域是否能够迎来新的变革?这些模型不仅能够处理和分析传统的数值数据,还能深入挖掘新闻报道、社交媒体帖子、公司财报等文本信息中的宝贵情报。在这一章中,我们将探讨大语言模型如何在量化投资中被用于数据整理和分析、市场情绪分析、风险预测、投资策略的生成和优化,以及这一技术如何作为投资者的辅助带来效率的提升。

  3.1. 强大的信息提取与总结能力

  在当今信息爆炸的时代,我们每天都要处理大量的数据和信息,其中包括文本文档、表格、音频和视频文件。这些信息的管理和处理不仅耗时,而且往往需要高度的集中注意力和组织能力。ChatGPT 等大模型作为先进的语言处理工具,不仅能够理解和生成自然语言文本,还能够对各种文件类型进行分析和总结。无论是将长篇的报告精炼成简明的摘要,还是从复杂的表格中提取关键数据,甚至是从音视频内容中抓取重要信息,ChatGPT 都能够以其独特的智能处理方式,大大减轻工作负担。本节将介绍如何利用 ChatGPT 来高效地处理各种类型的文件,实现信息的快速提取和整理。

  3.1.1. 文档内容读取

  ChatGPT 已经于近日为 Plus 用户开放了文件上传功能,处理 PDF 等文本文档的工作得到了极大的简化。过去想要使用 ChatGPT 读取 PDF 文档,需要用户自己编程将 PDF 文件中的文字提取成 text 数据,进行分词、根据LMM接口 token 上限分块、调用词嵌入进行向量化等预处理后,将上下文(context)和问题(question)输入 LLM,才能得到答案,构建过程相当繁琐。现在仅需在网页版 ChatGPT4 问答输入栏中上传 DPF 附件,并附上提问即可,操作非常简便。

  3.1.2. 音视频内容读取

  ChatGPT4 向用户提供了上传音视频文件的功能,但也许是因为今日开放的新功能较多导致用户流量增长过大,迫于维护的压力,OpenAI 关闭了 ChatGPT4 的网络接口。因此其无法通过谷歌语音识别服务接口进行音视频的语音识别,导致无法直接通过上传音视频文件进行分析总结。通过 ChatGPT 的回答也可以得知,其对于音视频文件的分析也是先通过语音识别将文件转换为文本,再进行文本信息的分析和处理的。这是因为当前版本的 GPT-4V 模型无法接受音频模态的输入。

  此外,通过提供视频链接给 ChatGPT 让其对视频内容分析也因为网络接口的关闭暂时无法进行,这个任务在 GPT-4V 模型开放之初是能够完成的。对于音视频处理,在 ChatGPT 开放多模态功能之前,也需要编写代码并借助 langchain 等 LLM 应用开发框架,通过语音识别或字幕生成等处理后,再将文本投 入 LLM 模型中完成任务。如今这个过程被 OpenAI 并入了 ChatGPT 功能之中。

  3.1.3. 表格信息整理

  对于表格类型的数据分析,只要提问准确,ChatGPT 的分析速度和准确程度都非常高。对于表格中不存在的数据,ChatGPT 也会给出“无法回答”的响应。如果我补充条件“公司名称所在的地点一般就是公司的注册地”,则模型会返回将表格中名称带有“深圳”的公司名单。

  3.2. 强大的文本分析与分类能力

  在金融领域,存在大量的文本类金融数据,其中包含着海量信息。投资研究者需要对这些信息进行检索、筛选、分析,最终得出投资建议或决策。对于这些文本类数据的处理是相当耗时耗力的,从中提取有用信息的效率并不高。大语言模型具有强大的文本分析与分类能力,以及人类所不具备的自动化、大批量处理数据的优势。那么用语言模型进行文本类金融数据的分析,是大语言模型的一个很自然的应用方向。

  3.2.1. 文本类金融数据

  文本类金融数据主要包括以下几种:(1)公司财务报告:这包括年报、季度报告、利润表、资产负债表和现金流量表等。这些报告提供了公司的财务状况、经营成果和财务健康状况的详细信息。(2)新闻和新闻稿:金融市场新闻、公司新闻稿以及与经济、政治事件相关的新闻都会对金融市场产生影响。这些信息通常用于情绪分析和市场预测。(3)市场分析报告:这些报告由分析师或研究机构发布,提供对特定行业、市场或公司的深入分析。(4)社交媒体内容:投资者和消费者在社交媒体上的讨论和意见也被视为重要的文本数据源,各大社交平台上的帖子和评论可以用来衡量公众对某个公 司或市场的看法。(5)监管文件:政府或监管机构发布的文件,包括公司的注册声明、年度报告、重大事件报告等。(6)公司通讯和演讲:公司领导的公开演讲、新闻发布会、投资者日活动和电话会议记录等。

  这些数据对于金融分析、投资决策和市场研究非常重要。之前国内外已有使用语言模型对文本数据进行情绪分析、另类因子构造等方面的研究,本文不再详细介绍。

  3.2.2. 文本数据的批量分析处理

  针对文本类金融数据,LLM 的应用包括但不限于以下几个方面:(1)情感分析:LLM 可以分析公司财报、新闻稿、社交媒体内容等,以识别其中的情感倾向,如积极、消极或中性。情感得分可以帮助量化投资者评估市场情绪,预测股价变动。(2)趋势识别和预测:通过分析历史数据和市场新闻,LLM 可以识别潜在的市场趋势和模式。这些信息可以用于预测市场动态和制定投资策略。(3)风险评估:分析公司的财务报告和新闻发布,以评估潜在的风险因素。例如,利用 LLM 分析财报中的隐藏信息,如非标准会计处理,可能揭示潜在的财务问题。

  相比于人类,LLM 的主要优势在于分析数据的数量和处理任务的速度。LLM 能够以人类无法达到的速度将海量信息提取、分类,快速地统计出投资者所需要的指标。使用 LLM 对文本数据进行批量处理需要针对特定任务进行编程,可以借助 langchain 等应用框架调取所需要的接口,更方便地调用 LLM 的模型完成所需要的任务。LangChain 是一个开源的 Python 框架,旨在帮助开发者更容易、更快速地构建和部署基于 LLM 的应用程序。它提供了一系列工具和组件,使开发者可以更加便捷地利用 LLM 的能力。关于 langchain 框架的使用,在其中文官网上有详细的快速入门指南,结合下面即将介绍的 ChatGPT 的代码辅助功能,更加易于上手。

  3.3. 强大的代码生成与修改能力

  3.3.1. 代码生成

  GPT4 作为生成式模型,其最强大的功能自然为生成。在经过大量代码数据的预训练以及后续调教后,ChatGPT 的代码生成能力也相当强。我以一名量化分析师的身份要求 ChatGPT 帮我生成一份 Python 代码,使用 RNN 模型来根据股票过去的股价走势预测未来的股价,以下是 ChatGPT 的回答。

  ChatGPT 很快提供了构建模型的流程,并提供了一个基本的代码框架(因为我提供的需求并不够具体),甚至在最后加上了风险提示。代码生成功能能够给量化研究者带来极大的便利(尤其是针对缺少经验的行业新人)。由于具体任务的任务需求、数据结构、接口等等方面的多样性,ChatGPT 难以生成完全适配任务并且能够直接正确运行的代码,因此目前很难直接代替研究员完成工作。

  3.3.2. 代码注释

  量化研究员的行业和岗位性质,导致多数人无法也不会选择将精力过多地投入到编写程序的相关技术栈上。计算机技术、编程语言种类繁多,即使是一个专业的算法/软件开发工程师,也无法精通所有编程技术。而实际工作中的任务有各种各样的需求,想要完成诸如前后端开发、数据库维护、网页爬虫等子任务需要较高的学习成本。计算机作为高度开源的行业,有大量开发者在开源平台、论坛上共享其过去完成的工作。但这些工作多数需要有扎实的相关知识储备才能够理解甚至复现,ChatGPT 几乎消除了这个门槛。

  当需要快速完成一项不属于自己技术栈的任务时,可以通过检索与任务目标类似的开源项目代码,交由 ChatGPT 做逐行注释,能够大幅度减少学习和理解的成本,结合公开文档能够快速修改源代码并应用于自己的任务中。我要求 ChatGPT 对上一小节生成的代码进行逐行注释,以下是部分回答结果。

  ChatGPT 相当详尽乃至繁琐地对代码的每一部分做了注释,解释了每段代码的功能、变量的含义以及参数的作用等等。这对于使用不熟悉的编程语言进行编程的场景相当友好,能够节省大量的时间。此外,也可以要求 ChatGPT 直接将注释添加在代码段中(方便复制)。

  3.3.3. 代码纠错与debug

  ChatGPT 具有文本纠错的功能,这在代码上也同样适用。然而纠错并不是常用的做法,在实际场景中更加常见的情形是发生了代码运行出错的情况。ChatGPT 对于 debug 也能够提供相当优秀的建议,可以直接将报错信息复制(或截图)上传,ChatGPT 会给出响应的回答。Debug 需要模型已知错误代码的上下文,因此在提问时,需要将发生运行错误的代码段作为上下文提示一并输入,才能够得到更加具体和准确的建议。

  3.4. 未来发展方向

  OpenAI 在北美时间 2023 年 11 月 6 日的首届开发者大会上,向所有 Plus 用户发布 了 GPTs 项目,这将会引发 LLM 应用的井喷式发展。GPTs 是针对特定目的定制的 ChatGPT,OpenAI 将允许所有人通过指令词、额外的知识、动作这三种能力去定制自己的 GPTs,制作完成后作者还可以发布上线,允许所有人使用。最关键的是,制作一个 GPTs 看起来是个再简单不过的事了,不需要任何的代码知识,只需要用对话形式表达需求就可以完成一个定制的 GPT 应用。

  用户可以通过 Create 界面使用自然语言描述出自己想要定制的 GPTs,或者通过在 Configure 界面配置 GPTs 的各种功能,也可以在 Create 中完成描述后根据具体情况修改配置,最终得到一个专属的人工智能问答助手。

  以 ChatGPT 为代表的多模态大模型的各种应用正在向各行各业快速地发展。本团队将继续跟踪大模型技术的技术与应用发展情况,继续跟踪和探索 ChatGPT 等产品在金融和量化投资领域的应用与前景。

  来源:未来智库

大巡礼
新浪声明:新浪网登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述

微博

HOT RECOMMEND

关于新浪VR | 论坛社区

Copyright © 1996-2015 SINA Corporation, All Rights Reserved 京ICP证000007  京网文【2017】10231-1157号

北京幻世新科网络科技有限公司 版权所有