AnalyticDB(ADB)+LLM:构建AIGC时代下企业专属Chatbot-世界快看

2023-05-17 09:14:27来源:阿里开发者

点击链接阅读原文,获取更多技术内容:

如何基于向量数据库+LLM(大语言模型),打造更懂你的企业专属Chatbot?


(资料图)

作者 | 阿里云AnalyticDB

来源 | 阿里开发者公众号

为什么Chatbot需要大语言模型+向量数据库?

这个春天,最让人震感的科技产品莫过于ChatGPT的横空出世,通过大语言模型(LLM)让人们看到了生成式AI能实现到和人类语言高度相仿的语言表达能力,AI不再遥不可及而已经可以走进人类的工作和生活,这使得沉寂一段时间的AI领域重新焕发了能量,无数的从业者正趋之若鹜地投身于下一个改变时代的机会;据不完全统计,在短短的4个月时间内,美国已经完成了超4000笔的生成式AI的行业融资。生成式AI已经成为了资本和企业都无法忽视的下一代的技术密码,而其对于底层的基础设施能力提供了更高的要求。

大模型能够回答较为普世的问题,但是若要服务于垂直专业领域,会存在知识深度和时效性不足的问题,那么企业如何抓住机会并构建垂直领域服务?目前有两种模式,第一种是基于大模型之上做垂直领域模型的Fine Tune,这个综合投入成本较大,更新的频率也较低,并不适用于所有的企业;第二种就是在向量数据库中构建企业自有的知识资产,通过大模型+向量数据库来搭建垂直领域的深度服务,本质是使用数据库进行提示工程(Prompt Engineering)。以法律行业为例,基于垂直类目的法律条文和判例,企业可以构建垂直领域的法律科技服务。如法律科技公司Harvey,正在构建“律师的副驾驶”(Copilot for Lawyer)以提高法律条文的起草和研究服务。

将企业知识库文档和实时信息通过向量特征提取然后存储到向量数据库,结合LLM大语言模型可以让Chatbot(聊天机器人)的回答更具专业性和时效性,构建企业专属Chatbot。下面视频是一个 基于大语言模型+AnalyticDB for PostgreSQL(以下简称ADB-PG,内置向量数据库能力) 让Chatbot更好地回答时事问题Demo:

视频加载中...

AnalyticDB PostgreSQL支持向量数据检索能力,可以支持企业用户一站式搭建Chatbot专属知识库。目前开放1个月【免费试用】规格,点击领取: ,即刻开启体验!

本文接下来将重点介绍基于大语言模型(LLM)+向量数据库打造企业专属Chatbot的原理和流程,以及ADB-PG构建该场景的核心能力。

什么是向量数据库?

在现实世界中,绝大多数的数据都是以非结构化数据的形式存在的,如图片,音频,视频,文本等。这些非结构化的数据随着智慧城市,短视频,商品个性化推荐,视觉商品搜索等应用的出现而爆发式增长。为了能够处理这些非结构化的数据,我们通常会使用人工智能技术提取这些非结构化数据的特征,并将其转化为特征向量,再对这些特征向量进行分析和检索以实现对非结构化数据的处理。因此,我们把这种能存储,分析和检索特征向量的数据库称之为向量数据库。

向量数据库对于特征向量的快速检索,一般会采用构建向量索引的技术手段,我们通常说的向量索引都属于ANNS(Approximate Nearest Neighbors Search,近似最近邻搜索),它的核心思想是不再局限于只返回最精确的结果项,而是仅搜索可能是近邻的数据项,也就是通过牺牲可接受范围内的一点精确度来换取检索效率的提高。这也是向量数据库与传统数据库最大的差别。

为了将ANNS向量索引更加方便的应用到实际的生产环境中,目前业界主要有两种实践方式。一种是单独将ANNS向量索引服务化,以提供向量索引创建和检索的能力,从而形成一种专有的向量数据库;另一种是将ANNS向量索引融合到传统结构化数据库中,形成一种具有向量检索功能的DBMS。

在实际的业务场景中,专有的向量数据库往往都需要和其他传统数据库配合起来一起使用,这样会造成一些比较常见的问题,如数据冗余、数据迁移过多、数据一致性问题等,与真正的DBMS相比,专有的向量数据库需要额外的专业人员维护、额外的成本,以及非常有限的查询语言能力、可编程性、可扩展性和工具集成。而融合了向量检索功能的DBMS则不同,它首先是一个非常完备的现代数据库平台,能满足应用程序开发人员的数据库功能需求;然后它集成的向量检索能力一样也可以实现专有的向量数据库的功能,并且使向量存储和检索继承了DBMS的优秀能力,如易用性(直接使用SQL的方式处理向量)、事务、高可用性、高可扩展性等等。

本文介绍的ADB-PG即是具有向量检索功能的DBMS,在包含向量检索功能的同时,还具备一站式的数据库能力。在介绍ADB-PG的具体能力之前,我们先来看一下Demo视频中Chatbot的创建流程和相关原理。

LLM大语言模型+ADB-PG:打造企业专属Chatbot

案例-本地知识问答系统

对于前面Demo视频结合大语言模型LLM和ADB-PG进行时事新闻点评解答的例子,让LLM回答\"通义千问是什么\"。可以看到,如果我们让LLM直接回答,得到的答案没有意义,因为LLM的训练数据集里并不包含相关的内容。而当我们使用向量数据库作为本地知识存储,让LLM自动提取相关的知识之后,其正确地回答了\"通义千问是什么\"。

同样地,这种方式可以应用于处理文档,PDF,邮件,网络资讯等等尚未被LLM训练数据集覆盖到的内容。比如:

1.结合最新的航班信息和最新的网红打卡地点等旅游攻略资源,打造旅游助手。比如回答下周最适合去哪里旅游,如何最经济实惠的问题。

2.体育赛事点评,时事热点新闻点评,总结。今天谁是NBA比赛的MVP。

3.教育行业,最新的教育热点解读,比如,告诉我什么是AIGC,什么是Stable Diffusion以及如何使用等等。

4.金融领域,快速分析各行业领域金融财报,打造金融咨询助手。

5.专业领域的客服机器人...

实现原理

本地知识问答系统(Local QA System)主要是通过结合了大语言模型的推理能力和向量数据库的存储和检索能力。来实现通过向量检索到最相关的语义片段,然后让大语言模型结合相关片段上下文来进行正确的推理得到结论。在这个过程中主要有两个流程:

a.后端数据处理和存储流程

b.前端问答流程

同时其底层主要依赖两个模块:

1.基于大语言模型的推理模块

2.基于向量数据库的向量数据管理模块

后端数据处理和存储流程

上图黑色的部分为后端的数据处理流程,主要是将我们的原始数据求解embedding,并和原始数据一起存入到向量数据库ADB-PG中。这里你只需要关注上图的蓝色虚线框部分。黑色的处理模块和ADB-PG向量数据库。

Step1:先将原始文档中的文本内容全部提取出来。然后根据语义切块,切成多个chunk,可以理解为可以完整表达一段意思的文本段落。在这个过程中还可以额外做一些元数据抽取,敏感信息检测等行为。 Step2:将这些Chunk都丢给embedding模型,来求取这些chunk的embedding。 Step3:将embedding和原始chunk一起存入到向量数据库中。

阿里云开发者社区,千万开发者的选择。百万精品技术内容、千节免费系统课程、丰富的体验场景、活跃的社群活动、行业专家分享交流,尽在:

关键词:

责任编辑:孙知兵

免责声明:本文仅代表作者个人观点,与太平洋财富网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
如有问题,请联系我们!

关于我们 - 联系方式 - 版权声明 - 招聘信息 - 友链交换 - 网站统计
 

太平洋财富主办 版权所有:太平洋财富网

中国互联网违法和不良信息举报中心中国互联网违法和不良信息举报中心

Copyright© 2012-2020 太平洋财富网(www.pcfortune.com.cn) All rights reserved.

未经过本站允许 请勿将本站内容传播或复制 业务QQ:3 31 986 683