收藏 分销(赏)

玩转AIGC与应用部署.pdf

上传人:Stan****Shan 文档编号:1240825 上传时间:2024-04-19 格式:PDF 页数:92 大小:5.90MB
下载 相关 举报
玩转AIGC与应用部署.pdf_第1页
第1页 / 共92页
玩转AIGC与应用部署.pdf_第2页
第2页 / 共92页
玩转AIGC与应用部署.pdf_第3页
第3页 / 共92页
玩转AIGC与应用部署.pdf_第4页
第4页 / 共92页
玩转AIGC与应用部署.pdf_第5页
第5页 / 共92页
点击查看更多>>
资源描述

1、卷首语我们身处在智能时代的 21 世纪,日常生活中无处不见 AI 的应用,人工智能与传媒业的融合发展也成为内容生产行业的发展趋势。AIGC 作为当前新型的内容生产方式,被广泛应用于传媒、电商、影视等行业,帮助提高内容的生产效率和多样性。本书收纳来自张亦驰(怀潜)、丁小虎(脑斧)两位阿里资深工程师和阿里云AnalyticDB、函数计算 FC、阿里云大数据 AI 技术三个技术团队的五篇优秀技术文章,内容涵盖基于大模型的 AIGC 应用及技术要点和 AIGC 实际应用案例。通过本书,不仅可以深度体验 AIGC 在实际应用场景的具体落地能力,手把手教学云产品部署,开启云上实践。还可以了解在大模型的加持

2、下 AIGC 的多种可能性,帮助内容生产跨越新时代。如果你刚接触 AIGC,那么本书为你详细介绍 AIGC 大模型的意义。如果你已经对 AIGC 有一定的了解,本书将为你展示大模型云上实践,例如 Hologres+大模型、向量数据库+LLM(大语言模型)等。更有模型在线服务 PAI-EAS、函数计算 FC 云产品免费试用,一起来玩转 AIGC 吧!目录页Hologres+大模型初探!让 ChatGPT 回答商家问题.5AnalyticDB(ADB)+LLM:构建 AIGC 时代下企业专属 Chatbot.25人类生产力的解放?揭晓从大模型到 AIGC 的新魔法.37玩转 AIGC,5 分钟函数

3、计算 FC 部署 Stable Diffustion 服务.67玩转 AIGC,5 分钟使用 PAI 一键部署 Stable Diffusion AI 绘画应用.84Hologres+大模型初探!让 ChatGPT 回答商家问题5Hologres+大模型初探!让 ChatGPT 回答商家问题作者:张亦驰(怀潜)阿里巴巴商家服务团队旨在为商家提供智能化的解决方案,致力于帮助商家自助解决问题。主要的产品包括:商家服务大厅:主要通过搜索的方式为商家提供服务,包含了工具、短视频、知识、服务专区等特色内容。同时商家服务大厅以多种形态通过不同渠道为商家提供千人千面的服务。PC?版服务大厅:功能最全的 PC

4、 主站服务大厅,为商家提供多元化的智能解决方案。Hologres+大模型初探!让 ChatGPT 回答商家问题6钉钉商家服务大厅:通过钉钉的方式,为商家提供更加方便、灵活易用的自助服务!千牛服务大厅:在商家千牛工作台上为商家随时随地提供客服服务。Hologres+大模型初探!让 ChatGPT 回答商家问题7场景版服务大厅:通过悬浮小球的方式内嵌在商家常用的页面,例如申诉中心,服务触手可达万象:智能问答机器人,以问答的模式帮助商家解决问题。如果商家仍未能解决,可以进一步联系人工,通过在、热线的方式联系客服小二帮助解决问题。Hologres+大模型初探!让 ChatGPT 回答商家问题8总体来说

5、,阿里巴巴商家服务团队的主要工作就是围绕“智能”和“服务”这两个关键词展开,为各个商家提供更加自助的解决问题能力,以此提高对商家的自助服务能力,同时也降低平台服务商家的客服人工成本。在智能服务方面我们团队做了比较多的前沿探索,目前势不可挡的大模型凭借出色的自然语言理解能力,似乎在智能服务这方面大有可为,便萌生了让大模型帮助商家解决问题的想法。我们团队利用 ChatGPT 在智能答疑机器人场景做了初步的探索,下面是一些实践分享,希望通过这些分享为大家在商家服务、智能客服等场景提供更多的经验和思路。一、基于 Fine-tuning 的初次探索那么如何让大模型能够回答商家的问题?第一想法就是基于 F

6、ine-tuning,通过训练微调的方式提升模型垂直领域的能力,让其掌握一些商家服务领域的知识,以具备回答商家问题的能力。Hologres+大模型初探!让 ChatGPT 回答商家问题91.准备数据在知识库中筛选了一些知识并将它们的内容格式化后,整理成如下格式(json line):prompt:淘宝商家服务大厅,completion:2021 年 10 月商家服务大厅升级,新增活动大促专题 xxxxxprompt:单品宝是什么,completion:单品宝是原限时打折的升级工具,可支持xxxxprompt:宝贝详情页可以添加多少个视频,completion:在发布宝贝页一个宝贝在详情页中只能

7、添加一个视频 xxxxprompt:店铺经营主体变更需要先还清淘宝贷款吗,completion:需要还清贷款,因为店铺 xxxprompt:天猫活动商品价格力严重溢价是什么意思,completion:溢价是指预计普惠成交价高于最低成交价严重溢价的意思是指 xxxxprompt:买家退货单号虚假、没有物流信息怎么办,completion:1.建议您先联系买家,确认下是否存在填错运单号等情况。2.若无法联系上买家,您可 xxxxprompt:淘管家,completion:淘管家是 1688 专业的分销订货平台,在淘管家xxxxprompt:手淘中猜你喜欢频道如何加入,completion:手淘首页

8、展示的猜你喜欢频道目前无法主动入驻是 xxxxxprompt:买家删除了中评/差评,店铺评分(DSR)也会删除吗,completion:若买家自行删除中差评或修改中差评为好评 xxxxprompt:淘宝开店收费吗,completion:淘宝开店都是免费,但为 xxxx.在上述数据中,prompt 字段为商家问题,completion 为答案。用这些数据训练后,发现这种简单的一问一答的数据训练效果并不理想,向模型提问时,需要使问题和训练时的prompt 保持高度相似时,模型才能够勉强给出较为正确的答案。既然我们需要通过训练的方式提升模型垂直领域的能力,那么这些知识是否集中于某个领域,或者说大模型

9、是否知道它们是否集中于某个领域呢?于是将原来的 prompt 按照如下方式进行了改写:Hologres+大模型初探!让 ChatGPT 回答商家问题10明确 AI 在回答问题时的身份为“淘宝商家智能客服”,在回答问题时需要保持友善的态度,并且明确其目标为帮助商家解决问题;额外给出一个问答样例(one-shot)。按照这样的方式,最终的训练数据如下:prompt:你是淘宝商家智能客服,你聪明、友善,能够帮助商家解决问题。nnCustomer:你是谁?nAI:您好,我是淘宝商家智能客服,请问有什么可以帮助你吗?nCustomer:淘宝商家服务大厅nAI:,completion:2021 年 10

10、月商家服务大厅升级,新增活动大促专题xxxxprompt:你是淘宝商家智能客服,你聪明、友善,能够帮助商家解决问题。nnCustomer:你是谁?nAI:您好,我是淘宝商家智能客服,请问有什么可以帮助你吗?nCustomer:单品宝是什么nAI:,completion:单品宝是原限时打折的升级工具,可支持 xxxprompt:你是淘宝商家智能客服,你聪明、友善,能够帮助商家解决问题。nnCustomer:你是谁?nAI:您好,我是淘宝商家智能客服,请问有什么可以帮助你吗?nCustomer:宝贝详情页可以添加多少个视频nAI:,completion:在发布宝贝页一个宝贝在详情页中只能添加一个视

11、频,若您想 xxxprompt:你是淘宝商家智能客服,你聪明、友善,能够帮助商家解决问题。nnCustomer:你是谁?nAI:您好,我是淘宝商家智能客服,请问有什么可以帮助你吗?nCustomer:店铺经营Hologres+大模型初探!让 ChatGPT 回答商家问题11主体变更需要先还清淘宝贷款吗nAI:,completion:需要还清贷款。因为店铺经营主体变更流程中 xxxxprompt:你是淘宝商家智能客服,你聪明、友善,能够帮助商家解决问题。nnCustomer:你是谁?nAI:您好,我是淘宝商家智能客服,请问有什么可以帮助你吗?nCustomer:天猫活动商品价格力严重溢价是什么意

12、思nAI:,completion:溢价是指预计普惠成交价高于最低成交价,严重溢价的意思是指 xxxx.2.训练在 OpenAI 目前的模型中只有 davinci、curie、babbage 和 ada,这些 GPT-3.0 版本的模型可以 Fine-tuning 适配,但再往后的版本暂不支持。训练的价格如下:可以看到使用训练后的 Davinci 模型的价格竟然高达 0.12 美元/1K tokens。再对比一下最新的 GPT-4 和 GPT-3.5 模型就知道它有多贵了:Hologres+大模型初探!让 ChatGPT 回答商家问题12准备好数据、选择好模型后,便可以开始 Fine-tunin

13、g 了。方法很简单,只需要将文件上传至 OpenAI 后,再指定文件 id 和模型后即可对该模型进行训练了,具体的过程可以参照OpenAI 官方文档。3.训练结果使用训练的模型进行测试,Prompt 同样采取如下格式:你是淘宝商家智能客服,你聪明、友善,能够帮助商家解决问题。Customer:你是谁?AI:您好,我是淘宝商家智能客服,请问有什么可以帮助你吗?Customer:大概效果如下:Hologres+大模型初探!让 ChatGPT 回答商家问题134.训练效果总结Fine-tuning 是真的贵啊,加上一开始几次无效的尝试,很快就把免费的 18 美元的额度花完了,后面只能自己花钱充值了。

14、作为一个纯正的穷哥们,虽然很难受,但也算为自己的兴趣交学费了。上述基于 Fine-tuning 的方式效果并不理想,总结了如下几个原因:训练数据太少。本次训练只提供了 100 多条数据,对于大模型来说算是九牛一毛了,大模型的训练还需更多优质的数据。训练方式问题。由于在这方面不够专业,在使用 OpenAI 提供的 Fine-tuning 接口时,只上传了一个文件,采用默认参数就完成了训练。如果能够使用更加专业的训练方式,比如 RLHF(依据人类反馈的强化学习),那么效果会更好。训练基于 GPT-3 模型,使用新的模型能有更好的效果。Prompt 真的很重要。给出一个好的提示,哪怕大模型不知道这个

15、问题的答案,也能根据提示给出一个乍一看很像模像样的答案。基于 Fine-tuning 的方式存在另外一个很重要的问题:在商家服务领域,很多知识需要不断更新,时效性较强,需要及时修正大模型中过时的内容,就需要耗费比较多的人力,这又变成了另一个难题。二、基于 Embedding 的实践在基于 Fine-tuning 的方式失败后,找到了基于 Embeddings 的实践方案。首先用一句概括一下这个方法的原理:根据输入问题先通过搜索的方式检索出一些相关信息(Embedding),再将这些信息作为上下文辅助大模型回答这个问题(Chat)。更简单地说,就是一种先搜再问的方式,下面便通过搜(Embeddi

16、ng)和问(Chat)这两个部分来介绍具体过程。Hologres+大模型初探!让 ChatGPT 回答商家问题141.基于 Embedding 的流程介绍Embedding(嵌入),以我这个小白的理解就是将自然语言转化为机器语言,即将我们说的一段话转化为一堆浮点数(向量),这个向量中包含了模型对自然语言含义和特征的理解。对于两个向量,可以用“距离”来衡量它们的相似度,离的越近的两个向量它们的相似度越高,对应的自然语言文本相似度也就越高。那么我们只需要简单的两步即可:将商家服务知识库中的知识向量化后存入向量引擎;将问题向量化后到向量引擎中进行检索,即可得到和问题相关的内容。整体流程如下图所示:2

17、.训练步骤1 1)内容格式化内容格式化商家服务大厅中的内容包含如下几类,我们需要关注的是有哪些部分可以参与 Embedding。短视频:包含标题、相似问和描述等文本内容。工具:商家服务特色操作类解决方案,如发起投诉、申诉、报备等。包含标题、相似问Hologres+大模型初探!让 ChatGPT 回答商家问题15等文本内容。专区:一类业务解决方案的集合。包含标题、相似问、描述等文本内容。知识:最常用的解决方案,分两类文本知识(FAQ):文本知识,包含标题、相似问、知识内容等文本内容。SOP:操作类知识,通过 SOP 流程驱动帮助商家解决问题。包含标题、相似问等文本内容。在上面这些内容中,最终选择

18、了知识进行向量化,考虑到以下两点:知识绝大部分内容都是文本,可将其最大程度向量化,为后续的向量检索服务;知识在商家服务中所有内容的数量占比超过 90%,并且也是评价解决率最高的内容类型。格式化的步骤如下:第一步:知识的内容为 html 富文本或 markdown,将其处理为纯文本格式,会造成一些内容(如超链)丢失;第二步:对于过长的知识进行人工筛选,如果需要向量化,则将其以每 500 字符为一段的方式分为多个 chunk,每个 chunk 的内容如下:title:知识标题;tags:相似问 1 相似问 2;content:知识正文内容2 2)数据向量化数据向量化通 过 OpenAI 的 Emb

19、edding 接 口 对 格 式 化 后 的 文 本 进 行 向 量 化,选 择 最 新 的text-embedding-ada-002 模型,它支持的最大输入为 8191 个 token:Hologres+大模型初探!让 ChatGPT 回答商家问题16它的输出是一个长度为 1536 的向量(1536 个浮点数):同时它的得分也更高:当然了,OpenAI Embedding API 的价格也很美好,只需要 0.0004 美元/1000 tokens!3 3)基于基于 HologresHologres 的向量存储的向量存储得到向量后需要进行存储和检索。因为我们在实际业务中有使用 Hologre

20、s,而 Hologres本身也集成了达摩院向量检索引擎 Proxima,于是我们基于 Hologres 做了实践,下面是操作步骤:第一步:创建表(详细请参考 Hologres 向量计算 Proxima)Hologres+大模型初探!让 ChatGPT 回答商家问题17-hologresbegin;create table sellerservice_content_tb(-主键id BIGINT,-内容 idcontent_id VARCHAR,-内容类型type INTEGER,-向量(维度 1,长度 1536)contentFLOAT4check(ARRAY_NDIMS(content)=

21、1andarray_length(content,1)=1536),-chunk 索引(标记本条数据是该知识的第几个 chunk)idx INTEGER,-原始文本内容row_content TEXT,-租户 idbu_id INTEGER);-因为测试的数据量较少,所以设置表的分片数量为 1call set_table_property(sellerservice_content_tb,shard_count,1);-为 content 字段添加 proxima 索引,采用“平方欧式距离”,数据量达到 1000 行后构建索引callset_table_property(sellerservi

22、ce_content_tb,proxima_vectors,content:algorithm:Graph,distance_method:SquaredEuclidean,builder_params:min_flush_proxima_row_count:1000);commit;第二步:将数据导入至该表:INSERT INTOsellerservice_content_tb(content_id,type,content,row_content,idx,bu_id)VALUESHologres+大模型初探!让 ChatGPT 回答商家问题18(123456789,0,array0.1,0

23、.2,0.3,0.4,.:float4,title:xxxxx;tags:xxxxxx;content:xxxxxxxx,0,3);将知识向量化后,就可以开始进行问答了,整个流程如下图:4 4)QueryQuery 向量化向量化用户输入问题后,首先需要对 Query 进行向量化。Query 的向量化和上面知识的向量化方法一致,只需要将 Query 作为入参调用 OpenAI 的 Embedding 接口即可。需要注意的是向量化 Query 时使用的模型需要和向量化知识时的保持一致,这样才能使向量的维度保持一致,否则无法进行向量检索。Hologres+大模型初探!让 ChatGPT 回答商家问题

24、195 5)向量检索向量检索得到了 Query 的向量后即可在 Hologres 中检索相关知识。Hologres 支持 JDBC 客户端链接,需要使用 42.2.25 及以上版本的 Postgres JDBC Driver:org.postgresqlpostgresql42.2.25.jre6然后配置 Hologresss 数据源:Bean(name=hologressDataSource,initMethod=init,destroyMethod=close)public DruidDataSource dataSource()DruidDataSource druidDataSourc

25、e=new DruidDataSource();druidDataSource.setDriverClassName(org.postgresql.Driver);druidDataSource.setUrl(jdbc:postgresql:/:/hologres_poc?reWriteBatchedInserts=true&tcpKeepAlive=true);druidDataSource.setUsername(xxxxxxxx);druidDataSource.setPassword(xxxxxxxx);return druidDataSource;配置完成后即可进行向量检索:-根据向

26、量检索淘宝 Top10 最相关的内容SELECTpm_approx_squared_euclidean_distance(content,0.1,0.2,0.3,0.4,.)AS distancecontent_id,type,idxFROMsellerservice_content_tbHologres+大模型初探!让 ChatGPT 回答商家问题20WHEREbu_id=3ORDER BYdistance ASCLIMIT 10;更多 Hologres 的向量检索查询请参考官网文档向量计算 Proxima。向量检索结果测试:Hologres+大模型初探!让 ChatGPT 回答商家问题21

27、6 6)PromptPrompt 构造构造得到了 Query 相关的知识,最后一步就是构造 Prompt 了:role:user,content:你是谁?role:assistant,content:亲您好,我是淘宝商家智能客服,请问有什么可以帮您吗?role:system,content:你是淘宝商家智能客服,你聪明、友善,可以帮助商家解决问题,请根据下面几段材料回答商家这个问题。请注意,你需要根据商家的问题从下面的材料中尽可能地提取相关信息,然后对该问题做出回答,答案需要语句通顺、表达完整、格式优美,并且需要给出具体、详细的说明或解决方案。如果下面的材料和问题无关,或者商家和你闲聊,或询问

28、与淘宝商家无关的问题时,请尝试自己回答这个问题。当你无法给出正确答案时请回答:抱歉,我无法回答您这个问题。请再次注意你是淘宝商家智能客服,请站在商家的视角帮助他们解决问题,并时刻记住你的身份。下面是相关材料,每段材料中 title 是材料的标题(主题),content 是材料的具体内容,这几段材料通过n 进行分隔:ntitle:标题 1;content:内容 1ntitle:标题 2;content:内容 2ntitle:标题 3;content:内容 3ntitle:标题 4;content:内容4role:user,content:买家骂人怎么办?构造完成后即可通过 OpenAI 的 Ch

29、at 接口进行对话了。7 7)训练结果训练结果采用 gpt-3.5-turbo 模型进行问答,temperature 参数设置为 0.5,效果如下:Hologres+大模型初探!让 ChatGPT 回答商家问题223.训练效率总结通过测试来看,训练效果还是可以的,这里总结一下基于 Embedding 的方式的优缺点:优点知识外化:通过利用上下文提供知识替代用知识训练模型的方式,不存在知识实时性的问题;Hologres+大模型初探!让 ChatGPT 回答商家问题23可扩展性:由于知识的检索可以通过工程手段实现,可扩展性、可控性相较于训练的方式更强;易用性强:向量检索可以通过标准 SQL 表达,

30、上手成本低缺点上下文变长:由于需要在上下文中提供知识,造成了上下文变得比较长,虽然 GPT-4已支持 32K 个 token 的上下文,但是成本会变高。模型能力:这种方式相当于为大模型提供了一个有力的外部工具,而模型本身并没有得到训练,模型能力没有得到提升。但这是否算是缺点,还需要打个问号。对面上面的方案,还有可以进一步探索的地方:检索的能力可以进一步增强,具体可以采用如下方法:对 Embedding 模型进行训练,增强其对阿里巴巴商家服务和电商领域相关文本语义的理解;除了语义匹配外,还可以引入其他模块(如文本匹配模块、query 改写模块等)提升检索的准确性。自动化检索。对于商家的问题,并不

31、是所有的问题都需要先进行向量检索,比如“你是谁”、“你能帮我解决什么问题”这类问题。因此可以对商家的问题进一步分类,以减少一些不必要的向量检索过程。可以丰富检索内容的类型,增强答案的交互性。在本次实践中仅仅引入了知识类型,并且由于格式化问题导致文本中的超链丢失。Prompt 可以进一步优化,temperature 参数也可以进行调整,同时将最后的问答模型升级为 GPT-4 也许会有更好的效果。Hologres+大模型初探!让 ChatGPT 回答商家问题24以上是我们团队基于 ChatGPT 以及结合 Hologres 向量检索能力在商家自助服务场景的探索实践,后续我们也将继续基于 ChatG

32、PT 做更多探索,并尝试应用在生产中,我们希望通过大模型丰富的能力为阿里巴巴千万商家提供最优质的服务!了解 Hologres:https:/ AIGC 时代下企业专属 Chatbot25AnalyticDB(ADB)+LLM:构建AIGC时代下企业专属Chatbot作者:阿里云 AnalyticDB一、为什么 Chatbot 需要大语言模型+向量数据库?这个春天,最让人震感的科技产品莫过于 ChatGPT 的横空出世,通过大语言模型(LLM)让人们看到了生成式 AI 能实现到和人类语言高度相仿的语言表达能力,AI 不再遥不可及而已经可以走进人类的工作和生活,这使得沉寂一段时间的 AI 领域重新

33、焕发了能量,无数的从业者正趋之若鹜地投身于下一个改变时代的机会。据不完全统计,在短短的 4 个月时间内,美国已经完成了超 4000 笔的生成式 AI 的行业融资。生成式 AI 已经成为了资本和企业都无法忽视的下一代的技术密码,而其对于底层的基础设施能力提供了更高的要求。大模型能够回答较为普世的问题,但是若要服务于垂直专业领域,会存在知识深度和时效性不足的问题,那么企业如何抓住机会并构建垂直领域服务?目前有两种模式:第一种是基于大模型之上做垂直领域模型的 Fine Tune,这个综合投入成本较大,更新的频率也较低,并不适用于所有的企业;第二种就是在向量数据库中构建企业自有的知识资产,通过大模型+

34、向量数据库来搭建垂直领域的深度服务,本质是使用数据库进行提示工程(Prompt Engineering)。以法律行业为例,基于垂直类目的法律条文和判例,企业可以构建垂直领域的法律科技服务。如法律科技公司 Harvey,正在构建“律师的副驾驶”(Copilot for Lawyer)以提高法律条文的起草和研究服务。将企业知识库文档和实时信息通过向量特征提取然后存储到向量数据库,结合 LLM 大语言模型可以让 Chatbot(聊天机器人)的回答更具专业性和时效性,构建企业专属 Chatbot。AnalyticDB(ADB)+LLM:构建 AIGC 时代下企业专属 Chatbot26点击原文,观看视

35、频,了解基于大语言模型+AnalyticDB for PostgreSQL(以下简称ADB-PG,内置向量数据库能力)让 Chatbot 更好地回答时事问题 Demo:本文接下来将重点介绍基于大语言模型(LLM)+向量数据库打造企业专属 Chatbot 的原理和流程,以及 ADB-PG 构建该场景的核心能力。AnalyticDB PostgreSQL 支持向量数据检索能力,可以支持企业用户一站式搭建 Chatbot专属知识库。目前开放 1 个月【免费试用】规格,点击领取,即刻开启体验!二、什么是向量数据库?在现实世界中,绝大多数的数据都是以非结构化数据的形式存在的,如图片,音频,视频,文本等。

36、这些非结构化的数据随着智慧城市,短视频,商品个性化推荐,视觉商品搜索等应用的出现而爆发式增长。为了能够处理这些非结构化的数据,我们通常会使用人工智能技术提取这些非结构化数据的特征,并将其转化为特征向量,再对这些特征向量进行分析和检索以实现对非结构化数据的处理。AnalyticDB(ADB)+LLM:构建 AIGC 时代下企业专属 Chatbot27因此,我们把这种能存储,分析和检索特征向量的数据库称之为向量数据库。向量数据库对于特征向量的快速检索,一般会采用构建向量索引的技术手段,我们通常说的向量索引都属于 ANNS(Approximate Nearest Neighbors Search,近

37、似最近邻搜索),它的核心思想是不再局限于只返回最精确的结果项,而是仅搜索可能是近邻的数据项,也就是通过牺牲可接受范围内的一点精确度来换取检索效率的提高。这也是向量数据库与传统数据库最大的差别。为了将 ANNS 向量索引更加方便的应用到实际的生产环境中,目前业界主要有两种实践方式。一种是单独将 ANNS 向量索引服务化,以提供向量索引创建和检索的能力,从而形成一种专有的向量数据库;另一种是将 ANNS 向量索引融合到传统结构化数据库中,形成一种具有向量检索功能的 DBMS。在实际的业务场景中,专有的向量数据库往往都需要和其他传统数据库配合起来一起使用,这样会造成一些比较常见的问题,如数据冗余、数

38、据迁移过多、数据一致性问题等,与真正的 DBMS 相比,专有的向量数据库需要额外的专业人员维护、额外的成本,以及非常有限的查询语言能力、可编程性、可扩展性和工具集成。而融合了向量检索功能的 DBMS 则不同,它首先是一个非常完备的现代数据库平台,能满足应用程序开发人员的数据库功能需求;然后它集成的向量检索能力一样也可以实现专有的向量数据库的功能,并且使向量存储和检索继承了 DBMS 的优秀能力,如易用性(直接使用 SQL 的方式处理向量)、事务、高可用性、高可扩展性等等。本文介绍的 ADB-PG 即是具有向量检索功能的 DBMS,在包含向量检索功能的同时,还具备一站式的数据库能力。在介绍 AD

39、B-PG 的具体能力之前,我们先来看一下 Demo 视频中Chatbot 的创建流程和相关原理。三、LLM 大语言模型+ADB-PG:打造企业专属 Chatbot案例案例-本地知识问答系统本地知识问答系统对于前面 Demo 视频结合大语言模型 LLM 和 ADB-PG 进行时事新闻点评解答的例子,让AnalyticDB(ADB)+LLM:构建 AIGC 时代下企业专属 Chatbot28LLM 回答通义千问是什么。可以看到,如果我们让 LLM 直接回答,得到的答案没有意义,因为 LLM 的训练数据集里并不包含相关的内容。而当我们使用向量数据库作为本地知识存储,让 LLM 自动提取相关的知识之后

40、,其正确地回答了通义千问是什么。同样地,这种方式可以应用于处理文档,PDF,邮件,网络资讯等等尚未被 LLM 训练数据集覆盖到的内容。比如:结合最新的航班信息和最新的网红打卡地点等旅游攻略资源,打造旅游助手。比如回答下周最适合去哪里旅游,如何最经济实惠的问题。体育赛事点评,时事热点新闻点评,总结。今天谁是 NBA 比赛的 MVP。教育行业,最新的教育热点解读,比如,告诉我什么是 AIGC,什么是 Stable Diffusion以及如何使用等等。金融领域,快速分析各行业领域金融财报,打造金融咨询助手。专业领域的客服机器人.实现原理实现原理本地知识问答系统(Local QA System)主要是

41、通过结合了大语言模型的推理能力和向量数AnalyticDB(ADB)+LLM:构建 AIGC 时代下企业专属 Chatbot29据库的存储和检索能力。来实现通过向量检索到最相关的语义片段,然后让大语言模型结合相关片段上下文来进行正确的推理得到结论。在这个过程中主要有两个流程:后端数据处理和存储流程前端问答流程同时其底层主要依赖两个模块:基于大语言模型的推理模块基于向量数据库的向量数据管理模块后端数据处理和存储流程后端数据处理和存储流程上图黑色的部分为后端的数据处理流程,主要是将我们的原始数据求解 embedding,并和原始数据一起存入到向量数据库 ADB-PG 中。这里你只需要关注上图的蓝色

42、虚线框部分。AnalyticDB(ADB)+LLM:构建 AIGC 时代下企业专属 Chatbot30黑色的处理模块和 ADB-PG 向量数据库。Step1:先将原始文档中的文本内容全部提取出来。然后根据语义切块,切成多个 chunk,可以理解为可以完整表达一段意思的文本段落。在这个过程中还可以额外做一些元数据抽取,敏感信息检测等行为。Step2:将这些 Chunk 都丢给 embedding 模型,来求取这些 chunk 的 embedding。Step3:将 embedding 和原始 chunk 一起存入到向量数据库中。前端问答流程前端问答流程在这个过程中主要分为三个部分 1.问题提炼部

43、分 2.向量检索提取最相关知识 3.推理求解部分。在这里我们需要关注橙色部分。单单说原理可能比较晦涩,我们还是用上面的例子来说明。Part1Part1 问题提炼问题提炼这个部分是可选的,之所以存在是因为有些问题是需要依赖于上下文的。因为用户问的新问题可能没办法让 LLM 理解这个用户的意图。比如用户的新问题是它能做什么。LLM 并AnalyticDB(ADB)+LLM:构建 AIGC 时代下企业专属 Chatbot31不知道它指的是谁,需要结合之前的聊天历史,比如通义千问是什么来推理出用户需要求解答案的独立问题通义千问能做什么。LLM 没法正确回答它有什么用这样的模糊问题,但是能正确回答通义千

44、问有什么用这样的独立问题。如果你的问题本身就是独立的,则不需要这个部分。得到独立问题后,我们可以基于这个独立问题,来求取这个独立问题的 embedding。然后去向量数据库中搜索最相似的向量,找到最相关的内容。这个行为在 Part2 RetrievalPlugin 的功能中。Part2Part2 向量检索向量检索独立问题求取 embedding 这个功能会在 text2vec 模型中进行。在获得 embedding 之后就可以通过这个 embedding 来搜索已经事先存储在向量数据库中的数据了。比如我们已经在 ADB-PG 中存储了下面内容。我们就可以通过求取的向量来获得最相近的内容或者知识

45、,比如第一条和第三条。通义千问是.,通义千问可以帮助我们 xxx。Part3Part3 推理求解推理求解在获得最相关的知识之后,我们就可以就可以让 LLM 基于最相关的知识和独立问题来进行求解推理,得到最终的答案了。这里就是结合“通义千问是.”,“通义千问可以帮助我们xxx”等等最有效的信息来回答“通义千问有什么用”这个问题了。最终让 GPT 的推理求解大致是这样:AnalyticDB(ADB)+LLM:构建 AIGC 时代下企业专属 Chatbot32基于以下已知信息,简洁和专业的来回答用户的问题。如果无法从中得到答案,请说根据已知信息无法回答该问题或没有提供足够的相关信息,不允许在答案中添

46、加编造成分,答案请使用中文。已知内容:阿里巴巴“通义千问”大模型 4 月 11 日也亮相云峰会.通义千问可以帮助我们 xxx问题:通义千问有什么用四、ADB-PG:内置向量检索+全文检索的一站式企业知识数据库为什么 ADB-PG 适合作为 Chatbot 的知识数据库?ADB-PG 是一款具备大规模并行处理能力的云原生数据仓库。它支持行存储和列存储模式,既可以提供高性能的离线数据处理,也可以支持高并发的海量数据在线分析查询。因此,我们可以说 ADB-PG 是一个支持分布式事务、混合负载的数据仓库平台,同时也支持处理多种非结构化和半结构化数据源。如通过向量检索插件实现了对图片、语言、视频、文本等

47、非结构化数据的高性能向量检索分析,对 JSON 等半结构化数据的全文检索分析。因此在 AIGC 场景下,ADB-PG 既可以作为一款向量数据库满足其对向量存储和检索的需求,也可以满足其他结构化数据的存储和查询,同时也可以提供全文检索的能力,为 AIGC 场景下的业务应用提供一站式的解决方案。下面我们将对 ADB-PG 的向量检索、融合检索和全文检索这三方面的能力进行详细介绍。ADB-PG 向量检索和融合检索功能于 2020 年首次在公有云上线,目前已经在人脸识别领域得到了非常广泛的应用。ADB-PG 的向量数据库继承自数据仓库平台,因此它几乎拥有DBMS 的所有好处,如 ANSISQL、ACI

48、D 事务、高可用性、故障恢复、时间点恢复、可编程性、可扩展性等。同时它支持了点积距离、汉明距离和欧氏距离的向量和向量的相似度搜索。这些功能目前在人脸识别、商品识别和基于文本的语义搜索中得到了广泛应用。随着 AIGC 的爆炸式增长,这些功能为基于文本的 Chatbot 奠定了坚实的基础。AnalyticDB(ADB)+LLM:构建 AIGC 时代下企业专属 Chatbot33另外,ADB-PG 向量检索引擎也使用 Intel SIMD 指令极其有效地实现了向量相似性匹配。下面我们用一个具体的例子来说明 ADB-PG 的向量检索和融合检索如何使用。假设有一个文本知识库,它是将一批文章分割成 chu

49、nk 再转换为 embedding 向量后入库的,其中chunks 表包含以下字段:字段类型说明idserial编号chunkvarchar(1024)文章切块后的文本 chunkintimetimestamp文章的入库时间urlvarchar(1024)文本 chunk 所属文章的链接featurereal文本 chunk embedding 向量那么对应的建表 DDL 如下:CREATE TABLE chunks(id serial primary key,chunk varchar(1024),intime timestamp,url varchar(1024),feature real

50、AnalyticDB(ADB)+LLM:构建 AIGC 时代下企业专属 Chatbot34);为了对向量检索进行加速,我们还需要建立一个向量索引:CREATE INDEX ON chunks USING ann(feature)WITH(dim=1536);同时为了对向量结构化融合查询提供加速,我们还需要为常用的结构化列建立索引:CREATE INDEX ON chunks(intime);在进行数据插入的时候,我们可以直接使用 SQL 中的 insert 语法:SELECT id,chunk,intime,url FROM chunksORDER BYfeature array10,2.0,

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 研究报告 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服