连载 | 3.6 设计UNIT对话逻辑
欢迎大家来到第三章的第六节,设计UNIT对话逻辑。
我们在上几章已经定义好了对话逻辑,接下来我们看一下怎么用UNIT来做所有的配置和设计。
梳理业务逻辑
首先,根据我们之前学过的内容,第一步要梳理业务逻辑。
先做一些准备工作,磨刀不误砍柴工。
对话Bot其实是在模拟你真实的业务场景,所以梳理业务的逻辑非常重要。
我们需要知道用户通常有哪些目的,这些目的有没有关联,哪些信息是实现目的的关键要素。
还是以火车票的预定为例,这个场景是用户来到了火车票售票大厅,我们基本上可以梳理出他有下面几个目的:
查询车次和时间;
查询余票;
购买火车票;
改签车票;
退票;
进一步去分析会发现,购买火车票的意图先要经过a和b,先查询车次和时间,再查询余票。
我们以查询车票和时间为例,关键的信息有起点的城市、终点的城市。只有有了这些业务逻辑的梳理,才能在下一步中合理的构建出Bot技能的对话意图、词槽等对话系统中的必要信息。
第二步,配置技能的对话意图或问答意图。
配置技能的对话意图或问答意图
UNIT上的技能有预置的技能和自定义技能,整个配置技能目标是把业务逻辑交给对话系统,每一个意图都是由相关的意图组成。
根据我们上一个步骤里,对业务逻辑的拆解完成技能下对每个对话意图、问答意图的具体配置。
这个时候要思考,用户对话的对话意图是什么?
要达成用户的对话意图,需要理解哪些关键信息?
对话系统应该如何回应用户?
有哪些规则是需要遵守的?
这种对话意图的定义,类似于产品设计里的功能需求分析。
同样以订票为例,如图所示,它的对话意图名是BOOK_TICKET,别名是订票。我们要添加相关的词槽,有user_time、user_from、user_to和trainnumber,这是一些词槽别名。
澄清话术就是怎么去问用户信息,“你什么时间出发”“从哪出发”“要到哪”。
配置技能的对话意图或问答意图需要以下五步:
新建对话意图;
添加词槽;
设置Bot的回应;
新建问答意图;
设置预置技能(例如:闲聊、问候、指令等等);
以下是一些补充说明:
后续实操课程会专门讲解新建对话意图。
关于Bot 的回应:
Bot的回应是说当Bot识别到用户的意图,并且已经识别到所有的词槽之后,Bot的下一步的操作,通常有三种Bot操作方式:答复、引导至对话意图、引导至问答意图。
这里有三个注意事项:
实际落地的时候需要在自己的业务代码里判断,当前Bot解析的意图为订票,并且用户提供了系统需要的关键词槽信息,接下来你需要用这三个词槽值你去火车票的系统中找到符合条件的火车票,同时生成一个火车票的例子返回给用户,供用户选择并完成支付。在这个操作的过程中是需要对接外部系统的。
关于引导至对话意图和引导至问答意图:
引导至对话意图:当前对话满足一定条件时,把它引导到另外一个对话意图。也就是说让用户进入到另外一个意图的对话里去。
引导至问答意图:让用户直接在目标问答意图下提问并获取答案,它更像一个Q&A,就是一个我们之前说的问答型的这种。
比如说我问:“什么是经停航班”,然后有一个回答。
这些在后续的实操中都会有讲。
标注对话数据
在效果优化训练数据中尽量多的添加对话模版和对话样板,这样搭建的机器人会更贴近真实的业务场景。对话Bot就像一个儿童,教的越多越聪明。
具体的方法下面简单介绍一下,后续的实操会详细介绍。
第一步,配置对话模版;
举个例子:“明天上午去北京的机票”,在这里把明天上午做成模版,配置好以后,当用户有类似 “明天上午XXXX” 这样的话术出现时,系统会自动匹配。比较适用于样本少,快速识别不同表达方式的用户需求。
第二步,标注对话样本;
在这一阶段,把收集到的对话数据导入到UNIT的平台,依次标注意图、词槽,供后续的学习,让机器人有更好的对话理解泛化能力。
第三步是添加问答对;
在需求分析的阶段,收集整理问答的数据。比如把退款相关的问答对导入到问答集中。
补充说明一下,不是每个场景都需要同时添加上面的三种训练数据,具体场景具体选择即可。
关于如何选择不同的方式:
如果你的场景是任务型,同时缺少对话样本。你就要先去配置对话模版,快速达到一定的效果后,再从日志中筛选出更多的对话样本。
如果一开始你就有大量真实的对话样本,这时你可以把对话模版和对话样本一起上,进而快速达到一个很好的效果。
如果你还有问答对话的时候,你只要添加问答对就可以了。
训练/体验
将对话模版对话样板等配置好后,系统会自动训练生成模型,然后把模型放在沙盒中,就可以与自己定制的对话系统对话了。
UNIT背后的深度学习和对话管理技术会帮你快速训练bot的对话能力。
机器人是一个反复验证、发现问题、优化配置,补充对话样本的一个循环过程,反复优化,逐步升级,机器越来越聪明。
这里为大家展示训练和体验的过程。在UNIT上线后,机器人会用户每句话的动作和意图给识别出来,同时可以在这里继续编辑和查看JSON。
除此之外,还可以进行反问频率、Bot频率等的评级,并重制对话。
因为UNIT体验的工具做的非常完善,在这里建议大家将刚刚搭建的Bot在UNIT的后台先进行训练。
应用调用
UNIT已经和百度的其它AI技术打通了,创建一个应用以后可以方便的调用百度AI的语音图像识别的所有能力。
这是本章的讲解,谢谢大家!