1.2.2.长短期记忆网络-LSTM与门控循环单元-GRU
1.2.2.1.长短期记忆网络-LSTM
1.2.2.2.门控循环单元-GRU
相比于LSTM,门控循环单元(GRU)是一个稍微简化的变体。通常,GRU能够提供与LSTM同等的效果,且收敛的速度更快。
1.2.3.编码器-解码器架构
将输入序列转换成输出序列的序列转换模型(sequencetransduction)在各类现代人工智能应用中发挥着至关重要的作用。机器翻译是序列转换模型的一个核心问题,也是语言模型最常用和最成功的基准测试。机器翻译的数据集是由源语言和目标语言的文本序列对组成,其输入和输出都是长度可变的序列。编码器-解码器(encoder-decoder)架构正是为了处理这种类型的输入和输出而设计的,是形成不同序列转换模型的基础,对语言模型的后续发展也起到了重要的作用。
1.3.注意力机制
2015年DzmitryBahdanau等人在论文《Neuralmachinetranslationbyjointlylearningtoalignandtranslate》中提出的注意力机制(AttentionMechanism),用于对输入信息的不同部分赋予不同的权重,使语言模型可以学习到词和词之间更深层次的依赖关系,从而更好地理解和生成语句。引入注意力机制后,语言模型的性能得到了大幅度的提升。2017年Vaswani等人发表了《Attentionisallyouneed》,提出了基于自注意力机制(self-attentionmechanism)的,消除了传统RNN循环结构的Transformer结构。Transformer结构提高了模型的并行性,带来了显著的性能提升。同时,随着机器学习算力的发展,Transformer在大规模文本语料库上进行预训练并对特定下游任务进行微调,引领了后续的BERT、GPT等预训练模型和大语言模型的发展。总之,Transformer模型的出现标志着自然语言处理领域的一次革命,它的成功还扩展到了计算机视觉等其他领域,为多模态任务提供了新的可能性。
1.3.1.注意力机制
1.3.2.Transformer架构
1.3.2.1.自注意力机制
1.3.2.2.Transformer的整体架构
2017年Vaswani等人发表了《Attentionisallyouneed》,提出了基于自注意力机制(self-attentionmechanism)的,消除了传统RNN循环结构的Transformer结构,极大程度地提高了模型计算的并行性,带来了非常显著的性能提升。下面会对Transformer模型结构进行简要的介绍。
1.3.2.3.多头注意力机制
除了前面介绍的自注意力机制,Vaswani等人还提出了多头注意力(multi-headattention)机制并将其应用在Transformer块中。多头注意力机制旨在让模型能够通过对相同的query、key和value,基于相同的注意力机制学习到不同的行为,并根据不同行为的组合捕捉序列内各种范围的依赖关系。具体的实现方法是,通过对输入数据进行独立学习,获得query、key和value的多组线性投影(linearprojections),再将每一组投影后的query、key和value送入各自独立的注意力层中。最后将所有注意力层的输出连接后,进行一次总体的线性投影,产生最终的输出结果。每一组的投影变换和注意力层都是互相独立和并行的,这样的每一个注意力层都被称作一个头(head),因此这种方法被称作多头注意力机制。
1.3.2.4.残差连接
残差连接(ResidualConnection)是构建深度神经网络的重要工具,对深度神经网络的训练和性能具有诸多方面的好处,其概念最初来自何恺明等人提出的残差网络(ResNet)。ResNet在2015年的ImageNet大规模机器视觉识别挑战赛夺冠,并深刻地影响了后来的深度网络的设计。
这两者看似差别不大,而在实践中,残差映射拥有许多优势。在深度神经网络中,当梯度反向传播时,它需要经过多个层次的权重矩阵。这些权重矩阵通常包含非线性激活函数,如ReLU,sigmoid等。这些激活函数可能导致梯度消失,使得梯度减小到接近零,从而阻碍了信息的传递。残差连接通过直接将输入信息与输出信息相加,将原始输入作为跳跃连接传递给后续层次,从而绕过了大部分的权重矩阵和激活函数。这种直接传递保持了梯度的相对大小,减少了梯度消失的风险。残差连接降低了梯度消失问题的影响,同时残差映射的拟合相比于直接映射更容易优化,训练难度更低,这就代表着能够设计层次更深、更复杂的网络,进而提高模型的性能。残差连接能够使深度神经网络模型具有一定程度的可恢复性。即使一个残差块中的权重没有成功学到有用的特征,残差连接仍然可以传递原始输入信息,因为它们直接相加。这种恢复性使得模型更具容错性,即使某些部分的网络没有学到有效的表示,仍然可以在后续层次中修正错误。与传统NLP“宽而浅”的模型结构不同,Transformer是基于block的堆叠结构,属于“窄而深”的网络结构,可以充分利用残差连接来达到优化网络的目的。
1.3.2.5.词嵌入和位置编码
NLP技术中的词嵌入用来将文本序列的基本单元“词”映射为机器能够理解的“词向量”。最简单的词向量表示方法是独热向量(one-hotvector)。假设词典中不同词的数量(词典大小)为N,每个词对应一个从0到N-1的不同整数(索引)。词之间的相似度。
1.3.2.6.基于位置的前馈神经网络
除了注意力层之外,Transformer的编码器和解码器中的每个block都包含一个全连接前馈网络层,被命名为称为基于位置的前馈神经网络(position-wisefeed-forwardnetwork)。这个基于位置的前馈网络的关键在于,在处理序列数据时,它为每个位置的元素分别应用相同的变换,而不是将所有位置的元素视为相同。这意味着它能够捕获不同位置的不同特征和局部信息。序列元素的位置信息通过上一小节中介绍的位置编码来引入。从网络结构上看,基于位置的前馈神经网络就是一个全连接网络,每个FFN层中包括两次线性变换,两次变换之间有一个非线性函数ReLU进行激活。虽然线性变换在不同位置上是相同的,但它们在每一层之间使用不同的参数。
1.4.预训练语言模型
1.4.1.预训练词嵌入模型
Frozen训练相当于将预训练的embedding层当成一个字典,用于直接地将独热向量转化为带有语义关系的词向量。这与一些词库的作用是类似的,区别在于词库直接存储词元文本到词向量的映射关系,Frozen的embedding则更有利于批量数据的并行计算。Fine-Tuning训练则相当于提供了一组相当不错的权重初始化参数值,能够有效地降低模型训练的成本,对于下游任务的模型效果也有一定的帮助。
1.4.2.上下文有关的预训练词嵌入模型
word2vec和GloVe都简单地给同一个词分配一个预训练词向量,而不考虑词的上下文。然而,自然语言中存在相当多的一次多义现象,在不同的上下文语境中,词的含义可能大不相同。因此,上下文无关的词向量表示具有明显的局限性。
1.4.3.通用预训练模型:GPT
尽管ELMo显著改进了各种自然语言处理任务的解决方案,但每个解决方案仍然依赖于一个特定于任务的架构。然而,为每一个自然语言处理任务设计一个特定的架构实际上并不是一件容易的事。GPT(GenerativePreTraining,生成式预训练)模型为上下文有关的词表示设计了任务无关的通用模型。GPT建立在Transformer解码器的基础上,预训练了一个用于表示文本序列的自回归语言模型。当将GPT应用于下游任务时,语言模型的输出将被送到一个附加的线性输出层,以预测任务的标签。与ELMo冻结预训练模型的参数不同,GPT在下游任务的监督学习过程中对预训练Transformer解码器中的所有参数进行微调。
GPT模型与ELMo模型的工作过程类似,也分成两个阶段:1.利用语言模型进行无监督预训练;2.通过有监督的微调(Fine-tuning)解决下游任务。GPT使用Transformer模型的解码器块作为特征抽取器,其特点在与遮蔽的自注意力层具有的自回归特性,只提取上下文中的“上文”信息作为特征。对于不同的下游任务如分类、包涵判断、相似判断、多选等。之后统一进入Transformer块进行特征提取,最后根据任务类型通过线性层设计完成结果输出。同为预训练,GPT的Fine-tuning模式与ELMo的Feature-basedPre-Training模式区别在于:ELMo模型是一种词嵌入模型,它的目的在于生成词的上下文有关表示,而不执行特定的任务。应用于下游任务时,需要设计一个处理该任务的模型来使用ELMo生成的词向量。训练下游任务时,锁定ELMo的双向LSTM模型的参数进行训练。而GPT模型是一种自回归语言模型,其本身就是一个能够处理文本生成任务的模型。应用于其他下游任务时,需要根据任务特点对GPT模型的结构进行改造(较小的改动),使用预训练的GPT模型进行参数初始化后,对整个模型进行不锁参的微调训练,以适应具体的任务特点。
1.4.4.预训练模型集大成者:BERT
ELMo与GPT两者各有优势。ELMo模型的优势在于其双向架构能够同时提取到目标词元上下文两个方向上的特征,而GPT只能提取到顺序的特征;GPT模型的优势在于其通用性,对于不同的下游任务只需要对原本的模型进行相当小的结构调整,而ELMo则需要设计处理下游任务的模型结构。2018年Google的Devlin等人提出的BERT(BidirectionalEncoderRepresentationsfromTransformers)则集合了两种方法之长,得到了比前两者更优秀的表现。
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.不微调的预训练语言模型
虽然GPT-2的性能距离其提出的目标还有很大的差距,但在OpenAI团队的实验中,随着规模的增大,模型在阅读理解、翻译、问答等NLP任务中的表现仍在以一个接近对数增长的趋势增加。这表明通过增大模型规模还能继续提升模型的性能,模型参数数量级的跨越式增长也成了后续几代GPT的必备特征。
1.5.2.提示学习-Prompt
提示学习的关键在于找到有效的提示,这些提示能够激活预训练模型中的知识,使其能够更好地执行下游任务。例如,在一个情感分析任务中,而不是直接问模型一个句子的情感,我们可能会添加一个提示:“这段话的态度是[MASK]的。”,然后让模型预测填充在[MASK]处的词,比如“积极”或“消极”。与其说提示学习是一种训练方法,不如说是在人工智能的理解能力还不完善的阶段中探索如何与模型沟通的过程,本质是给任务找到一个让模型能够更准确理解的表达方式。最初的提示学习采用人工提示(ManualPrompts),需要研究人员根据任务和模型知识构造有效的提示。这种方法的优点是可以利用人类的直觉和专业知识来引导模型,但缺点是耗时且可能无法找到最优提示。随着研究的进展,出现了自动生成提示(AutomaticPrompts)的方法。这些方法使用搜索算法、强化学习或者梯度下降等技术来自动寻找或优化提示,以提高模型在特定任务上的表现。
1.5.3.大语言模型的智能涌现——GPT-3.5和ChatGPT
人工智能领域对于涌现能力(EmergentAbilities)的定义为,如果模型的某种能力仅在大模型上表现,而不能在小模型中表现出来,即称为“涌现能力”。换言之,涌现能力是模型规模超过某一阈值时才能拥有的特性,也就是人们常说的“量变产生质变”。这种现象通常出现在如GPT-3或更大规模的语言模型中,当模型的参数数量大幅增加,使得模型能够学习到更加复杂和抽象的模式。在模型规模变大的过程中,某些能力的提升并不是线性的。即在特定的规模阈值之前,模型的能力提升相对平缓;一旦超过这个阈值,能力会突然大幅提升。涌现往往意味着质的变化,模型不仅在量上做了扩展,还可能获得了原本没有的新功能,例如更好的推理能力、更准确的翻译能力,甚至是创造力和幽默感的展现。涌现能力的出现通常是不可预测的,研究者无法准确预知哪种能力会在何时何种规模的模型中出现。
1.5.3.1.代码训练和指令微调
在GPT-3进化到GPT-3.5的过程中,OpenAI主要在两个方向上的探索取得了成果:在代码上训练(Trainingoncode)和指令微调(InstructionTuning)。Codex是OpenAI为了扩展GPT-3的代码能力训练的一个大语言模型,最初的目标功能为代码补全。最初的Codex模型使用了GitHub上的大量开源代码作为数据集对120亿参数的小规模GPT-3进行了微调训练,但最终得到的模型效果并不算太好,这个模型后面演变成了OpenAIAPI中的“code-cushman-001”模型。在另一个方向上,OpenAI为了让大语言模型能够更好地理解人类发布的任务,对GPT-3进行了指令微调(InstructionTuning)训练。传统的语言模型通常是通过大量文本数据进行预训练,从而学习语言的基础结构和知识。然而,它们不总是能够理解和执行复杂的用户指令。指令微调通过对模型进行额外的训练,使其更好地遵循用户的指令来完成特定任务。OpenAI雇佣一批标注人员对训练集中的数据标注了指令,标注后的数据集中的每一个样本包括“输入”、“指令”、“标签”三个部分。用这个训练集对GPT-3模型进行有监督微调得到了初始版本的InstructGPT模型,在OpenAIAPI中的代号为“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具有更多的“涌现”能力:
泛化到没有见过的任务:当用于调整模型的指令数量超过一定的规模时,模型就可以在从没见过的新指令上也能生成有效的回答。相当于解锁了模型在zero-shot场景上的能力,这种泛化能力指令的规模达到一定程度的时候自动出现的,与模型规模导致的“涌现”有类似的特征。
使用思维链(Chain-of-Thought)进行复杂推理:思维链推理能力相当重要,被学术界认为是大语言模型“涌现”能力的代表。而使用思维链进行复杂推理的能力并非来自指令微调,而是很可能来自在大量代码数据集上的训练。这也有一定的解释空间:面向过程的编程类似于人类逐步解决问题,面向对象的编程类似于人类将问题分解。
思维链的基本概念是模仿人类解决问题时的思维过程。在处理复杂问题时,人们通常会一步步推导出结果。这些步骤包括构建问题的中间表征、进行逻辑推理、计算或回忆知识点等。这个过程为模型提供了一个更加清晰的路径来解决问题,并有助于它更好地理解问题的结构和所需的解决方案。在应用思维链的技术时,模型被训练以生成详细的解释或描述它是如何一步步达到最终答案的。例如,当问到一个数学问题时,模型不仅会给出最终的答案,还会展示出得到这个答案的具体步骤。这使得最终的答案更可信,也更容易被用户理解和验证。思维链作为大模型“涌现”的重要代表,具有以下几个优势:(1)可解释性:通过生成一系列推理步骤,思维链增强了模型的可解释性。用户可以看到模型是如何逐步得出答案的,这在教育或需要解释的场合尤其有用。(2)准确性:推理过程有助于模型集中注意力于任务的关键部分,可能提高模型在解决复杂任务上的准确率。(3)学习和调试:展示中间步骤也方便开发者和研究人员理解模型的行为,从而对模型进行调整和改进。
1.5.3.2.基于人类反馈的强化学习
InstructGPT中,基于人类反馈的强化学习的训练过程主要分为三个阶段:(1)有监督的微调(SupervisedFine-Tuning)在这一步中,OpenAI人工收集了1.3万条prompts用于训练,这些prompts一部分是从用户向GPT-3提问中(GPT-3的API)筛选出来的,另一部分是由雇佣的标签员写出来的。再由标签员将prompts的答案也写出来,作为标签,放到GPT-3模型里做有监督的微调,得到一个微调后的模型(下面简称为“SFT”)。(2)人工对模型输出进行标注,训练强化学习奖励模型(RewardModel)使用另外3.3万条prompts作为SFT的输入,得到一批输出(这些prompts也包括从GPT-3的API筛选以及标签员人工生成)。再由标签员对SFT多次生成的输出进行排序。使用prompts与人工排序后的答案作为训练集,训练一个奖励模型。该奖励模型的作用是对prompts输入SFT后得到的输出进行打分,这些得分需要符合标签员做出的排序。
对于采用不同的训练方法调整GPT-3模型所引发的这些新的“涌现”能力,到底是这些方法给模型“注入”了新的能力,还是预训练模型本身就具备了这些能力的潜力,只是被调整后“解锁”了对于锁定模型参数的调整,比如提示学习,这个问题的答案显然是“解锁”。而对于不锁参的调整,这其实主要取决于训练样本的数据量。举个例子,在GPT-3进化到GPT-3.5的过程中,采用在代码上训练的方式给模型“注入”了代码生成能力和思维链复杂推理能力,这两个能力实际上是通过代码训练注入的。因为其代码训练集的规模达到了与文本语料库相近的量级,后几代模型的训练集也都包括相当一部分比例的代码。因此,代码训练可以视为一种偏逻辑的自然语言对预训练语料库的补充。
而在GPT-3.5调教到ChatGPT的过程中使用的基于人类反馈的强化学习方法,则应该别认定为“解锁”了模型本来就具备的能力(多轮对话、安全中立表达等)。因为在InstructGPT论文中披露的训练数据,prompts的量级只有10万以内,这与预训练模型本身的训练集规模相差甚远,微调对权重的改变并不能起到“注入”知识的效果。此外,经过RLHF调教的ChatGPT实际上在“解锁”了新的能力的同时,也“隐藏”了一部分原有能力的表现。这实际上也表明,小数据规模的微调训练对于大语言模型来说,只能改变其原有能力的侧重点。如果想要继续发展大模型的“涌现”能力,应该怎么做?在通过微调无法“解锁”模型的更多能力时(或者“解锁”了新能力但无法兼顾原有能力的性能),只能够更大的语料库训练更深的预训练模型。
2.大语言模型的应用与展望
在当今的人工智能领域,大语言模型的兴起无疑是其中的一颗璀璨明珠。它们不仅重新定义了机器理解和生成语言的能力,而且其应用范围的广泛性正在触及社会的每一个角落。本章旨在探讨大语言模型的应用,它们如何成功适配于特定领域的需求,以及多模态大模型在未来的应用前景和潜在的发展方向。首先,我们将探讨大语言模型的实际应用。这些模型以其卓越的文本生成和理解能力,已经在文学创作、编程、法律咨询等多个领域展现出了其价值。通过自然语言处理技术,它们能够从大规模数据中提炼信息,为决策提供支持,甚至在某些情况下,替代专业人士进行工作。
2.1.大语言模型的应用
对于企业来说,语言模型正变得不可或缺,它们能够处理大量的客户数据,提供个性化的服务,同时优化操作流程,减少成本。在教育领域,这些模型不仅为学生提供定制化学习内容,而且还能评估学习成果,甚至帮助教师设计课程。在媒体和娱乐行业,内容的创作和改写变得更加多元和富有创意,使得个性化的内容推荐成为可能。本节将探讨大型语言模型的这些核心功能以及它们的实际应用案例,从而揭示它们如何影响并改善我们的工作和生活。随着技术的进步和应用的深入,我们的工作效率能够在人工智能的推动下不断提高。本节中的各种功能仍有无数的应用有待发掘,本文旨在提供一些灵感。
大语言模型(LargeLanguageModal,LLM)的核心能力大致分为:生成(Generate)、总结(Summarize)、聚类(Cluster)、提取(Extract)、分类(Classify)、检索(Search)与改写(Rewrite)七部分。本节将介绍这些能力并列举一些应用,同时对部分能力在ChatGPT上尝试并附带了实际响应结果。
1、生成(Generate)
2、总结(Summarize)
3、提取(Extract)
4、分类(Classify)
分类旨在通过LLM对文本类别划分。大模型对文本内容分类的优势在于强语义理解能力与小样本学习能力。也就是说其不需要样本或需要少量样本学习即可具备强文本分类能力。而这与通过大量语料训练的垂域模型相比,在开发成本与性能上更具优势。比如,互联网社交媒体每天产生大量文本数据,商家通过分析文本数据评估对于公众对于产品的反馈,政府通过分析平台数据评估公众对于政策、事件的态度。语言模型能够将文本归类到预先定义的类别中,这基于对文本内容的深层语义理解。这些模型可以被训练来识别文本的主题、情感倾向,甚至是作者的意图。应用场景:在企业中,模型可以用于自动对客户查询进行分类,以便将其分派给最合适的服务代表。在网络安全领域,它们可以分类电子邮件以识别垃圾邮件和网络钓鱼尝试。教育技术领域可以利用分类功能来评估学生的开放式回答和作文。
5、聚类(Cluster)
通过对大量文本数据进行语义分析,大型语言模型可以将主题或内容相似的文本分组在一起。这种聚类能力使得它们可以识别模式和关联,甚至在没有明确标签的情况下也能进行。应用:在客户服务领域,聚类技术可以帮助企业对顾客反馈进行分类,以便更有效地响应并解决问题。在内容管理系统中,它可以帮助自动整理和归档文档。而在社交媒体分析中,聚类可以用来追踪特定话题的趋势或者公众情绪的变化。上一个新闻分类样例中,ChatGPT按照任务要求的条件(新闻情绪)将这些新闻进行了聚类。
6、检索(Search)
7、改写(Rewrite)
2.2.大模型的领域适配
2.3.多模态大模型
论文《MultimodalMachineLearning:ASurveyandTaxonomy》列举了多模态学习中的五个主要的研究方向:(1)表征(Representation):如何表示和总结多模态数据,以利用不同模态的互补性和冗余性。由于多模态数据的异质性,构建这样的表征是具有挑战性的,主要分为两类表征方法:联合表征(JointRepresentations)和协同表征(CoordinatedRepresentation)。联合表征将多种模态的表示融合映射到一个统一的向量空间中;协同表征则是将不同模态映射到不同的向量空间,但映射后的向量之间满足一定的约束关系。
(2)翻译/映射(Translation/Mapping):如何将数据从一种模态转换(映射)到另一种模态,比如将文字描述“猫”转化为图像。这个过程经常是开放的或主观的,因为不同模态之间的关系往往是多元的,“猫”的文本对应的图像有千万个正确答案,自然界中不同品种的猫、动画中的二次元猫(甚至路由器的光猫)都能够算作正确的转换。
(4)融合(Fusion):将来自两种或更多模态的信息结合起来进行预测。不同模态提供的信息可能具有不同的预测力和噪声拓扑,并可能至少在一种模态中缺失数据。按照融合的层次,可以将多模态融合分为pixellevel,featurelevel和decisionlevel三类,分别对应对原始数据进行融合、对抽象的特征进行融合和对决策结果进行融合。
(5)协同学习(Co-learning):在模态之间、它们的表示和预测模型之间转移知识。协同学习探索了从一个数据资源丰富的模态中学到的知识如何帮助训练在另一个数据资源相对贫瘠的模态上的计算模型。
多模态任务在许多现实领域中有广泛的应用场景,涵盖了从健康医疗到教育、娱乐和安全等多个方面。以下是一些应用的领域和具体场景:(1)医疗:a)医学影像分析:结合医学图像(如MRI、CT扫描)和患者的电子健康记录来提高诊断的准确性和效率。b)患者监测:使用传感器收集的数据(如心率、运动数据)监测健康状况。(2)交通:a)自动驾驶汽车:结合来自摄像头、雷达和其他传感器的数据来实现安全的车辆导航和决策。b)交通监控:使用摄像头和声音传感器来监控和管理交通流量。(3)娱乐:a)增强现实(AR)和虚拟现实(VR):结合视觉、听觉和触觉反馈,为用户提供沉浸式的体验。b)电影和游戏制作:使用多模态数据来创造更逼真和互动的视觉效果。(4)安全:a)监控系统:结合视频监控和音频数据来提高安全监控的效能。b)欺诈检测:分析交易记录、用户行为和通信内容,以识别和防范欺诈活动。(5)服务:a)智能助手:结合语音、文本和图像处理来提供更加全面和个性化的用户体验。b)用户分析:通过分析用户的语音、文字和情感反应来提供更有效的客户支持。
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.文本类金融数据
这些数据对于金融分析、投资决策和市场研究非常重要。之前国内外已有使用语言模型对文本数据进行情绪分析、另类因子构造等方面的研究,本文不再详细介绍。
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.代码注释
3.3.3.代码纠错与debug
ChatGPT具有文本纠错的功能,这在代码上也同样适用。然而纠错并不是常用的做法,在实际场景中更加常见的情形是发生了代码运行出错的情况。ChatGPT对于debug也能够提供相当优秀的建议,可以直接将报错信息复制(或截图)上传,ChatGPT会给出响应的回答。Debug需要模型已知错误代码的上下文,因此在提问时,需要将发生运行错误的代码段作为上下文提示一并输入,才能够得到更加具体和准确的建议。
3.4.未来发展方向
用户可以通过Create界面使用自然语言描述出自己想要定制的GPTs,或者通过在Configure界面配置GPTs的各种功能,也可以在Create中完成描述后根据具体情况修改配置,最终得到一个专属的人工智能问答助手。
以ChatGPT为代表的多模态大模型的各种应用正在向各行各业快速地发展。本团队将继续跟踪大模型技术的技术与应用发展情况,继续跟踪和探索ChatGPT等产品在金融和量化投资领域的应用与前景。