行业专题报告|计算机 AI+应用走向落地:私有数据和向量数据受益 AI行业专题 核心结论 证券研究报告 2023年05月08日 行业评级超配 前次评级超配 应用中添加ChatGPT等生成式AI将成为行业发展的关键点。1)目前随着Open 评级变动维持 AI推出的ChatGPT3.5以及4.0的应用,大大促进了AIGC行业的发展,我国 国内各公司也开始争相设计与发布属于自己的生成式AI大模型,未来在AIGC时代下,各类产品应用中添加ChatGPT等生成式AI将成为行业发展的关键点。2)目前生成式AI的训练原理,以ChatGPT为例,假设我们的输入提示为 近一年行业走势 计算机沪深300 50% Promp(t 假设为“我爱你,我的祖国”,则这段文字首先会被转化成一系列Token 40% 30% 然后Token再被送入大语言模型(神经网络模型)中,得到输出Token,输出 Token再重新被映射成文字,最终完成输入文字和输出文字对应的结果。 行业知识学习具有3种常见方法。1)Fine-tuning微调适合数据集较小的情况。微调(finetune)是深度学习领域一个很常用的操作,就是模型的再次训练。是指在预先训练好的模型基础之上使用特定的数据集进行微调。可以将新的数据集加入到预先训练好的模型中,用新的数据集重新训练模型,以提高模型在特定任务上的表现。通过finetune可以小幅度改变大模型的参数,使大模型聚焦于特定场景的知识(即私有数据知识)。2)retrieve-then-generate先嵌入Embeddings 搜索-再Pormpt+数据+问题输入ChatGPT生成。简版工作流:chunk->index->retrieve搜索->constructinput->LLM生成。3)基于检索的提示补充来增强结果准确性。GPT系列的大语言模型都有一个共同的原理,是基于上下文学习 (ContextLearning)能力进行训练和结果生成。因为历史的数据表示,我“疼了就会“生病”,所以模型通过数据抽象总结出了这个因果关系,并根据“脚疼”推理出“生病”。当数据足够多、足够丰富,模型能够预测的结果也就越丰富,越随机。上下文学习中输入被称为提示(Prompt),提示越准确、包含的信息越多,模型所能准确推理出更准确的结果。4)ChatGPT+向量数据库+提示打破知识库有限的限制。由于其知识库有限而受到限制,有时当被问及不熟悉的话题时,会产生幻觉的答案。引入新的AI堆栈,ChatGPT+向量数据库+提示即代码,或CVP堆栈,以克服这个约束。ChatGPT非常擅长回答自然语言查询,当与链接用户的查询和检索到的文本的提示符相结合时,ChatGPT将生成一个相关的和准确的响应。这种方法可以减轻ChatGPT提供的“幻觉答案”。 投资建议:AI+应用:明确提出私有数据应用:推荐:福昕软件、捷安高科、金山办公,建议关注:万兴科技;向量数据库:建议关注:星环科技、拓尔思。 风险提示:AI技术发展不及预期;应用端需求不及预期。 20% 10% 0% -10% 2022-052022-092023-01 相对表现 1个月 3个月 12个月 计算机 -12.90 7.21 39.12 沪深300 -2.58 -1.45 2.76 分析师 邢开允S0800519070001 13072123839 xingkaiyun@research.xbmail.com.cn 赵宇阳S0800522090002 19534078860 zhaoyuyang@research.xbmail.com.cn 相关研究 计算机:坚守AI、拥抱数据、看好信创—2023 年计算机中期策略2023-05-05 计算机:福昕软件推出foxitPDFEditorPro +,开启类copilotAI进程—福昕海外PDF上线AI功能点评2023-04-27 计算机:Meta发布SAM,看好多模态解决方案产业链—Meta发布SAM点评2023-04-09 索引 内容目录 一、应用中添加ChatGPT等生成式AI将成为行业发展的关键点3 1.1工作原理为文字转token,再由token映射为文字的过程3 1.2行业知识学习具有3种常见方法4 1.2.1Fine-tuning微调适合数据集较小的情况4 1.2.2retrieve-then-generate先嵌入Embeddings搜索-再Pormpt+数据+问题输入ChatGPT生成4 1.2.3基于检索的提示补充来增强结果准确性5 1.2.4ChatGPT+向量数据库+提示打破知识库有限的限制6 二、建议关注7 三、风险提示7 图表目录 图1:ChatGPT等大语言模型原理3 图2:OpenAI的fine-tuning4 图3:ChatGPT提供的finetuneAPI介绍4 图4:使用大型语言模型进行信息检索的数据增强5 图5:模型历史数据学习举例5 图6:OpenAI的chatgpt-retrieval-plugin6 图7:HuggingFace的Llama-index6 图8:Zilliz建立的OSS聊天程序原理6 图9:Zilliz合作伙伴6 一、应用中添加ChatGPT等生成式AI将成为行业发展的关键点 目前随着OpenAI推出的ChatGPT3.5以及4.0的应用,大大促进了AIGC行业的发展,我国国内各公司也开始争相设计与发布属于自己的生成式AI大模型,未来在AIGC时代下,各类产品应用中添加ChatGPT等生成式AI将成为行业发展的关键点。 用类似ChatGPT的AI加入到各类产品应用中,即需要让AI添加行业知识支撑行业应用,通过向量数据库要素不断进行学习。通过将自己行业的数据灌给ChatGPT,让ChatGPT 根据自己的数据来进行作答,这也是所见到的ChatPDF、ChatDOC、WebChatGPT所谓Chrome联网插件,可访问互联网的ChatGPT等工具的原理。 1.1工作原理为文字转token,再由token映射为文字的过程 目前生成式AI的训练原理,以ChatGPT为例,如图所示,假设我们的输入提示为Prompt (假设为“我爱你,我的祖国”,则这段文字首先会被转化成一系列Token,然后Token再被送入大语言模型(神经网络模型)中,得到输出Token,输出Token再重新被映射成文字,最终完成输入文字和输出文字对应的结果。 图1:ChatGPT等大语言模型原理 资料来源:openai官网、西部证券研发中心 Token的出现是大语言模型的设计特点导致的。自然语言模型使用Token的主要原因是为了将原始文本数据转换为模型可以处理的形式,Token的本质是独一无二的数据表示, 比如1,2,3甚至无穷大。如上图,当将自然语言转化为Token时:我=1;爱=2;你=3;,=4;的=5;祖国=6;因为1,2,3都是数字,都可以进行数学运算,因此模型能够进行处理。用独一无二的Token代替文字,这样模型能够对文字进行处理了。当然,Token和文字并不是一一对应的,这取决于需要的任务和分词的方法,所以不同的模型(比如ChatGPT和文心一言)可能就有不同的Token映射方法。值得注意的点,大语言模型的输入长度的限制是以Token为粒度的,比如ChatGPT限制为4k(k=1024)个Token,GPT-4是32k个。 但模型的Token是有限制的。因为输入长度的限制,当我们有一个长度1w甚至10w的文档《我的祖国.txt》时,则无法直接喂入ChatGPT。如果我们需要基于此文档进行提问,一个很直白的方式是:将文档拆分成多个ChatGPT可以接受的长度更短的文本块(Text Chunk);找到我们需要的文本Chunk,与我们的原始问题组成上下文,一起喂入ChatGPT来让它学到私有知识;ChatGPT基于这些额外的知识,对我们的问题解决解答并返回。那么如何使得ChatGPT更好的学习额外知识与行业知识呢,接下来我们进行方法介绍。 1.2行业知识学习具有3种常见方法 1.2.1Fine-tuning微调适合数据集较小的情况 微调(finetune)是深度学习领域一个很常用的操作,就是模型的再次训练。是指在预先训练好的模型基础之上使用特定的数据集进行微调。可以将新的数据集加入到预先训练好的模型中,用新的数据集重新训练模型,以提高模型在特定任务上的表现。通过finetune可以小幅度改变大模型的参数,使大模型聚焦于特定场景的知识(即私有数据知识)。finetune需要大量的GPU资源进行模型训练,同时需要一定的深度算法基础保证模型能 够按自己需求把私有数据的知识学习到。目前Fine-tuning微调只能基于GPT3预训练模 型去训练,比如davinci、ada等等,适合很久知识都不变且数据集较小的情况。 图2:OpenAI的fine-tuning图3:ChatGPT提供的finetuneAPI介绍 资料来源:OpenAI官网、西部证券研发中心资料来源:OpenAI官网、西部证券研发中心 1.2.2retrieve-then-generate先嵌入Embeddings搜索-再Pormpt+数据+问题输入 ChatGPT生成 简版工作流:chunk->index->retrieve搜索->constructinput->LLM生成 先搜索:根据输入query检索本地文件/私有数据库/文档中的文档片段/互联网(检索可以是文本检索es[基于字面语义]或者基于向量检索embedding)作为扩充的上下文信息数据 context。 embedding存储:把本地文件/私有数据库/长文档的文档片段每段话-都送去ChatGPT生成一个特征向量,把这个特征向量作为key这段话原文作为value存储本地。注:通过 文本检索es或基于向量检索embedding的方式构造上下文信息均可,只是embedding效率更高也更符合自然语言的语义匹配。查询的时候会把问题送去ChatGPT生成问题特征向量,然后【基于特征向量相似度计算】在之前存储的特征向量里面-选取topN个相似的原文数据。 再生成:通过将自己的预设Pormpt-template+topN原文数据+问题==拼接组合成一个完 整的输入(打包当作一整段话)输入发送给ChatGPT,让ChatGPT根据这个预设的Prompt 和灌给的数据再加问题做回答-调用模型生成response。该方法无需训练模型,适合数据量超大且实时更新的一些数据。该方法可能更适合大多数场景一些,ChatPDF、ChatDoc等也都是这种方式。 图4:使用大型语言模型进行信息检索的数据增强 资料来源:InPars论文、西部证券研发中心 1.2.3基于检索的提示补充来增强结果准确性 模型通过学习历史数据,能对当前的输入进行预测。GPT系列的大语言模型都有一个共同的原理,是基于上下文学习(ContextLearning)能力进行训练和结果生成。因为历史的数据表示,我“疼”了就会“生病”,所以模型通过数据抽象总结出了这个因果关系,并根据“脚疼”推理出“生病”。当数据足够多、足够丰富,模型能够预测的结果也就越 丰富,越随机。上下文学习中输入被称为提示(Prompt),提示越准确、包含的信息越多,模型所能准确推理出更准确的结果。 图5:模型历史数据学习举例 资料来源:ChatGPT、西部证券研发中心 如何让GPT学到额外的私有信息,就是尽可能构建出包含有用的、包含私有知识更多的提示,从而使GPT根据上下文能力学到额外的信息。但因为算法本身原因,大模型都有输入的限制,要求输入不能超过某一长度,因此无法通过无限制的增大长度来增大信息。 基于检索的提示补充核心思路是:根据输入信息1检索本地私有数据库/文档中的内容,得到额外的信息2;将信2和输入信息1安装特定的提示模版(Prompttemplate)组合成 一个包含信息更多的新输入信息3;再将信息3作