聚色导航

自慰 白虎 AI Agent实际共享:基于FAQ文档和LLM,从0-1搭建智能问答机器东谈主~


发布日期:2024-10-18 16:45    点击次数:133


自慰 白虎 AI Agent实际共享:基于FAQ文档和LLM,从0-1搭建智能问答机器东谈主~

在东谈主工智能领域,大型话语模子(LLM)正逐步成为构建智能系统的中枢。本文通过两个实际案例,详备论说了如何从零运转自慰 白虎,利用受限的FAQ文档和LLM身手,搭建一个智能问答机器东谈主,供群众学习。

LLM,是通往通用东谈主工智能之路的基础,但凡信得过具有智能的系统也好、器具也罢,其里面一定是集成了好用的LLM(个东谈主不雅点)。

可是,诳言语模子的幻觉(高下文回答水火不容等)、不明任指示、磨练和微调需耗尽多数算力、微调需要专科算法东谈主士、落地ROI等问题,使得诳言语模子的落大地临着各式万般的挑战和问题需要经管。

FunctionCall、RAG、few-shot、SFT、AI Agent平台等这些技能框架和产物的出现,使得世俗东谈主班师使用LLM变得容易了起来~莽撞利用LLM通识身手搭一个“玩物”(比如英语白话陪练、软文写稿众人等)很容易,但要信得过想用好LLM,且用在骨子的业务场景中,并非易事。

那么本文,本东谈主就先以浮浅的case,演示一下:基于贬抑的FAQ文档和LLM,来如何从0-1搭建一个智能问答机器东谈主,以及过程中我遭受的问题及如何经管的。

注:本文FAQ文档,以网页URL体式提供~后续偶然辰,将再共享FAQ是以文档文献体式实际的效用~感兴味的友友,敬请期待!

本文阅读温馨教唆❤:

内容有些长,约7000字,需要一些耐性,主要触及如下内容:

(1)实际case1:基于FAQ文档,利用LLM身手进行回话,条目超出文档界限,回复“不知谈”即可;——case1模拟的业务场景:专科性极强、对回答准确率条目极高的业务场景,比如金融、医疗等行业;

(2)实际case2:优先基于FAQ文档进行智能问答,若用户意图与FAQ关联,则利用LLM&RAG身手进行回复;若与FAQ无关,则利用LLM通识身手&联网身手,为用户推选回答。

(3)客服系统及智能客服的系统架构,以及我对于“基于LLM的「智能客服机器东谈主」”的一些想考~

——case2模拟的是【任务型】机器东谈主为主,同期具备闲聊身手的机器东谈主。

以为有用的宝子,建议储藏码住本文!注重事后找不到~

01 实验一:仅基于贬抑FAQ文档回答问题,超出界限条目LLM回复“不知谈”

1.1 使用的器具、FAQ文档阐扬

使用器具:

扣子(中语版),器具地址:https://www.coze.cn/home

FAQ文档:

使用的是这个URL内容:

https://mp.weixin.qq.com/s/B0FskW3iPypdE9oj3Sfjcg(这是一个对于谷歌创举东谈主之一:谢布林近期的访谈,访谈对于他重回一线写代码,以及他对AI行业的见地、对AI的实际诳骗等内容,还有主抓东谈主与其谈及了谷歌Gemini与openAI的差距等话题);

2.2 实验过程与实验收尾纪录:

1)上手搭建-v0.0.1版:仅能基于贬抑的FAQ文档,回答问题

模拟业务场景:只可基于贬抑的FAQ回答问题,当用户发问超出提纲范围,条目LLM回复“不知谈”。

p.s.本东谈主之是以这么设定,是因为这种设定契合于医疗、医药、金融等行业(与东谈主生命财产关联性较强的行业/业务),即这些专科性比拟强的业务场景,时常条目LLM不知谈不要胡说、瞎掰,如果建议错了反倒影响用户体验~

step1:对Agent进行成就

A、成就LLM教唆词:v0.0.1版

# 变装你是一个专科高效的智能答疑助手,能够准确、快速地依据给定的 FAQ(常见问题解答)回答各式问题,FAQ 体式包括 url 网页贯穿以及外部常识库 API。贬抑的FAQ 文档就用这个:https://mp.weixin.qq.com/s/B0FskW3iPypdE9oj3Sfjcg## 技巧###技巧1:精确搜索 FAQ一朝吸收到用户的问题,随即在已有的 FAQ 中进行全面缜密的搜索;如果找到关联问题及谜底,严格按照以下模样回复:=====**问题**:<用户建议的问题>;**谜底**:<FAQ 中的对应谜底>如果莫得找到关联问题和谜底,就说“不知谈”即可。##限制- 必须严格按依法程模样输出内容,填塞弗成偏离给定的框架条目。

B、成就Agent其它项:大模子、推选问题、大模子所要调用的插件

a)LLM使用了默许的【豆包·function callMox 32k 精确口头】,插件配了“贯穿读取”插件、“图片结伴”、“kimi”~

b)“推选问题”成就

Step2:对配好的Agent进行调试:

在Agent发达发布前,咱们需要对其进行调试(测试),测好了没大问题了,再发布。

在测试过程中,我对Bot进行了正负向测试,同期测试其我方坐蓐的问题可否能回答上;

①正向测试:在提纲中的问题进行测试(比如:“让谢布林感到「WOW」的 AI 应用场景是什么?”、“1998 年,谢布林和谁成立了谷歌?”、“先容谢布林”、“谢布林有莫得用AI来作念数独游戏?”

等),测试机器东谈主能否回答上来,回答是否正确、是否按模样条目等;

②负向(界限情况)测试:不在提纲中的问题,进行测试(比如:“请先容一下奥特曼”、“奥特曼肯定光吗?”等),看其是否按条目回答“不知谈”,如故胡说。

③系统自动生成的关联问题,测试。

调试过程中遭受的问题:

测试大模子时都平时,都能回答上。发布后,相通问题却回答造作。——这大约率是大模子的幻觉问题,不会是平台的BUG(个东谈主认为)(原因后头阐扬注解);它推选的问题,它我方却回答不上。自动推选处界说的教唆词已经阐扬强调:推选其有身手回答的问题。幻觉问题的体现:给大模子配了插件,调试时调用了该插件,调试平时调通了。发布后,却不调用插件回答问题。调试过程中,调试阶段A一会自主调用插件(贯穿读取),一会又不调用该插件(教唆词都是一样的)。发布后,对于团结问题,回答彰着矛盾。如下所示:

问题分析与经管

问题1:测试时,都平时都能回答上。发布后,相通问题,却回答造作。

原因分析:——这大约率是大模子的幻觉问题,不会是平台的BUG(个东谈主认为),因为平台BUG这种非算法类的,工程类的问题惟照旧管了就不会存在。极有可能是大模子幻觉问题,那暂时无解。

问题2:它推选的问题,它我方却回答不上。自动推选处界说的教唆词已经阐扬强调,推选其有身手回答的问题。

意象原因1:它推选的问题可能是基于它基础的【通识身手】+【联网身手】,并莫得贬抑于给它成就的系统教唆词和身份。——但这个意象又不是很合理,平时产物臆度打算一定是系统东谈主设是第一个层级的限制(若是我臆度打算,默许情况,我就会这么臆度打算,等于“and”联系);或者系统东谈主设和自动推选的问题自慰 白虎,默许“and”联系,此外还复旧“or”。

意象原因2:大模子幻觉。如果又是幻觉问题,那如故不好经管。

问题3和问题4原因分析:可能是系统教唆词写的不完善,比如团结个功能的插件配了好几个,又莫得明确和LLM阐扬什么时候用哪个,那么大模子就不错在面对发问时,自主遴选。那当然就可能出现问题3和4。比如这个badcase:

问题3和问题4经管主见:

1)团结功能作用的插件,要么配1个;要么配多个的时候,为幸免引起歧义,在系统教唆词中,加以贬抑:阐扬好什么情况下用这个插件,什么情况下用另外的插件。

这里,我删除了【kimi插件】(后续实验有需要用到kimi联网检索时候,我再加上),收尾如下:

但我又遭受了新的问题:

比如:

①我问它“1998年,谢布林和谁沿途成立了谷歌?”(这个问题它之前能回答,咫尺又弗成回答了…)

②比如它莫得输出践诺过程。

问题原因意象是:URL中FAQ中如实莫得这个问题,而是所有这个词文档有这部老实容。政策:磋商优化教唆词,回答范围不贬抑于FAQ,而是所有这个词URL文献。

好吧。。。即使我优化了教唆词到查找所有这个词URL而非部分FAQ,对于问题1,它仍然是回答不知谈。我需要知谈它是如何践诺的。

对于问题2(不输出践诺过程的问题),后续加多教唆词条目即可。——不外这个也要珍贵,面向末端客户时,有莫得必要输出中间过程,或者是遴选性地输出(产物童鞋需要珍贵);

问题5:发布后,对于团结问题,回答彰着矛盾。原因分析:大模子幻觉问题。——后续磋商加入few-shot,或在对话窗口中进行微调,然后利用大模子的Mememory身手进行优化。

2)v0.0.2:在v0.0.1版基础上,进行优化

v0.0.1版存在上头排列的诸多问题,因此磋商优先优化教唆词,经管一部分容易经管的问题

v0.0.2版成就如下:

v0.0.2在v0.0.1版基础上,主要优化点在于:

1、加多“输出践诺和想考过程”;2、优化检索“FAQ”为“检索全文”;3、去掉容易引起大模子歧义的同等作用的多个插件,仅保留一个。

v0.0.2测试收尾:

v0.0.2调试收尾阐扬:

Bot按指示条目调用【贯穿索取】插件了;√

也按模样条目输出了回答、输出了践诺和想考过程。√

暂时安静了我的业务条目~ 👏🏻

(但仍然存在一些幻觉问题,但由于本东谈主暂无时辰元气心灵和身手去微调,是以该case暂且到这里。底下进行Bot的发布。

3)基于v0.0.2版成就,发布Bot机器东谈主(基于外接FAQ的智能问答)

扣子平台的发布功能,提供了多种遴选:你不错确立Bot的权限为公开、为私有。复旧发布至豆包智能体广场(商店),复旧发布到飞书应用中,复旧发布至抖音中。还复旧发布至三方平台生态中,微信、掘金等;发布体式复旧URL(带界面),复旧发布API体式;

这里,我遴选了发布至字节Bot商店,但由于插件权限确立,即使是公开Bot,也只可我我方使用。

谢布林访谈-Bot在线体验贯穿:https://www.coze.cn/store/bot/7415175444246495243?panel=1&bid=6dqk42qr89g0a(你们不错试试能否翻开,或者能翻开能弗成用)

同期这个Bot机器东谈主为实验性质的、“demo”性质的,距离信得过的贸易化落地还有一定距离。

比如刻下的这个Bot仍然存不才述幻觉问题:

比如问它:“让谢布林感到「WOW」的 AI 应用场景是什么?”它回答的如故不齐全。可在对话过程中,调教它,获得想要获得的谜底~

4)后续的优化场合

线上的【谢布林访谈-FAQ】BOT仍然不是齐全的,还有诸多颓势,比如我在(3)末节建议的幻觉问题。

后续经管决议不错是:few-shot(指示微调)->SFT(基于少许业务数据,对模子进行微调);换LLM(把柄业内东谈主士警告,参数目级越大的LLM,其指示解任身手越强),再行践诺上述过程(Bot成就、Bot调试、Bot发布);

02 实验二:优先基于贬抑的文档回答问题,超出文档界限利用LLM通识身手+联网身手,给出推选回答

该case模拟的骨子业务场景是:【优先基于领域常识】进行回复的任务型机器东谈主,同期具备闲聊身手的机器东谈主。

2.1 v0.0.1 Bot教唆词等成就

2.2 v0.0.1调试和预览

问题1:按照上述教唆词,用户的所有发问,比如“你好”、“请先容你我方”、“请给我讲个故事”等,他都将这些问题视为【有用输入】去检索URL文档~ 比如下图所示那般:

——该版块的问题是:

1、如果用户所有问题,BoT均按照上头模版机械化地回答给用户,会有些蠢、也很机械,用户可能会被逼疯。。。其实对于一些“你好”、“你是谁”等问题,班师回答即可(无须说一大堆有的没的);——问题严重进程P1

2、如果针对 “你好”、“你是谁”等与FAQ无关的意图,也要当作query去检索FAQ文档的话,系统的效用会大打扣头,彰着花消规画资源。——问题严重进程P0。

——是以,一般的作念法是:优先对【用户意图】进行标识和分类。闲聊类的意图,调用【闲聊】模块践诺回复;当合乎【FAQ问答】意图,则调用【FAQ文档问答】身手践诺回复。

处女色电影

底下对v0.0.1版块进行改进,加多“意图分类”逻辑。

2.3 v0.0.1改进:加多“用户意图分类”判断逻辑,并调试、发布

政策阐扬:

1)当用户意图与FAQ文档关联,则参照FAQ进行回答;

2)如果用户意图与之不关联,需调用通识身手+联网检索身手,为用户推选回答。

温馨教唆:骨子最佳的作念法应该是单特有一个LLM,完成【意图识别和分类】任务。另一个LLM只负责【FAQ文档问答】。但是本东谈主为实际效用,这里用一个LLM同期完成这两个任务(偷个懒😛)。

按上头政策对v0.0.1版教唆词进行修改和优化。

同期本东谈主测试了一些问题(与文档关联、与文档不关联的),个东谈主以为效果还不错,如下:

通过调试,认为达到了业务使用条目,发布即可~

03 全文总结与追念

本文以两个小case,利用Coze器具,浮浅实际了一下【基于LLM的智能问答助手】的0-1构建依次,以及构建过程中遭受的问题,以及经管想路和经管前后对比~

1、其中case1,模拟的是专科性极强或回答准确率条目极高的业务场景,比如金融、医疗行业,条目大模子不知谈不要胡说,say no即可~

2、case2,允许大模子优先按照领域常识回答,当领域常识无法安静用户问题时,可允许大模子利用其通识身手和调用其它器具回复用户发问。——这不错映射到早期:【基于常识进行回复】同期具备闲聊身手的机器东谈主,不至于显得“东谈主工智障”。

04 写在后头:我对于「智能客服机器东谈主」的一些实际警告和想考共享~A、对于大模子“幻觉”问题的几点经管警告共享~

1)优先优化系统教唆词、修改大模子温度值参数为0,然后不错恰当地使用few-shot的依次,对大模子进行效果优化;但few-shot的短处也很彰着,占用的tokens太多(因为每次输入、输出,都会把系统教唆词+用户发问当作输入token);

——p.s.tokens越多,越用钱;如果不是外采的,部署的开源的话,tokens越多规画量也会相应变多,费算力,费存储。

2)换一个LLM。把柄警告,参数目越大的模子对指示解任效果越好~(参考小米落地实际),但也要辩证参考~

3)在调试过程中,如果不细则大模子给出的内容,是否是正确的,可磋商在教唆词中加多“援用源”

4)以上都不行,就微调吧。

即使你优化系统教唆词,到已经很好、磋商的很全面了的地步了,但你仍然弗成百分百的消失大模子的幻觉问题,这个差错仍然存在。——这时就要看业务可袭取多大的差错。如果想要赓续镌汰差错,擢升端到端回复准确率的话,那就【微调】吧!

B、对于企业是否基于LLM,从0-1搭建【智能客服】机器东谈主:

我认为,对于那些已经搭建了【智能客服】的企业来说,再基于LLM 搭建一个智能客服机器东谈主,会濒临底下几种遴选:

-决议a:原有智能客服系统+LLM改进,利用LLM进行重构和改进;

-决议b:完全遗弃原有决议,从0-1基于LLM重搞;

-决议c:赓续用本来的客服系统,不引入LLM;

我认为,大多企业会遴选决议 a,即徐徐引入LLM,徐徐重构改进;可能也会有部分企业现阶段遴选决议c:暂时不引入LLM,原因是:有些企业兴奋尝试革命、有些企业则比拟敬重ROI,还有些企业比拟敬重业务运行的安靖性(比如在原有安靖运行的业务系统中,引入LLM,带来了不可控的风险,那干脆不引入,等LLM再发展发展后再说,比如幻觉问题都有了模范的熟谙的决议);还有些公司会遴选决议b。

——那具体如何选,如故各个企业的雇主们说了算的。

对于从来莫得建立过智能客服机器东谈主的企业,或者是新业务的新客服业务,不错磋商基于LLM来开发。惟一照拂好教唆词、配备都全相应的产物/运营、懂微调的算法、和工程化开发的前后端东谈主员就够了~

C、对于「大模子落地到硬件末端」的磋商与必要准备事项~

在LLM最终落地时,还磋商大模子的落地场景,是云霄,如故其它角落端(比如智妙手机、智妙腕表,或是平板、学习机等),因为这些硬件末端,其内存和算力都有限。——那针敌手机等硬件末端,LLM落地时还需要作念的职责是:蒸馏。

——蒸馏的景仰是说,保抓原有模子全体性能效果的前提下,尽量的压缩模子体积(咫尺一个参数目稍许大点的大模子,动不动就大几个GB,10GB的也不在少数,这么的短小精悍算力小的、内存小的劝诱根底带不动~)

D、对于0-1搭建/重构智能客服机器东谈主的必要职责:

细则业务场景->细则机器东谈主类型(任务如故闲聊,如故鸠合)->意图经管、机器东谈主基础范例搭建(常识库经管与成就、技巧树等)->机器东谈主职责经由臆度打算、用户数据监控逻辑臆度打算->测试与上线->把柄响应进行迭代~

客服系统全体架构(含智能客服系统架构),图片绘图by本东谈主(铭刻是画了蛮久…)

好,那在原「客服系统」基础上拿LLM改进,LLM不错作念些什么呢?(岂论是产物如故技能,都是LLM求职口试高频问题哦)

本文的两个实际case,骨子针对「智能客服系统」提供了一些谜底,即:

①利用LLM去作念意图的识别和分类;

②利用LLM,去作念文档的检索;

更多的场景?(常识库的开发?相似问的生成?自动化评估?….)想要了解更多的一又友,接待驳斥区留言,与其它小伙伴探讨~

本文由 @南边碟谈 原创发布于东谈主东谈主都是产物司理。未经许可,谢却转载

题图来自Unsplash,基于CC0条约

该文不雅点仅代表作家本东谈主自慰 白虎,东谈主东谈主都是产物司理平台仅提供信息存储空间做事。