Gavin老师Transformer直播课感悟 - Rasa对话机器人项目实战之教育领域Education Bot调试Debugging过程全生命周期实战解密(六十一)

84 篇文章 16 订阅

   本文继续围绕工业级业务对话平台和框架Rasa,对Rasa对话机器人项目实战之教育领域Education Bot调试Debugging过程进行解析。通过调试信息详细了解pipeline中定义的各个NLU组件是如何协同完成从用户输入信息到输出intents和entities的整个NLU处理流程。

一、Rasa对话机器人项目实战之教育领域Education Bot调试Debugging过程解析

  1. 教育领域Education Bot调试Rasa Debugging启动Modules分析

使用Rasa server的debug模式不仅可以展示数据流,也可以帮助我们了解框架内部的细节。

运行命令rasa shell –debug启动调试模式,UserWarning提示从3.0开始,Rasa移除了自动填充slots的机制,因为这种机制在业务流程比较复杂的情况下容易造成slot状态管理的bug,譬如slot不该填充时被错误自动填充等,Rasa的对话policies是根据状态来进行预测的,如果状态出现问题,就会导致对话机器人发生不是预期的行为。另外可以看到加载了很多modules,包括Python层面的和系统框架层面的,这里面有些比较重要,譬如rasa_sdk,asyncio等:

 2.  教育领域Education Bot调试Rasa Debugging中NLU Pipeline组件启动详解

用户输入首先需要进行处理,然后再调用WhitespaceTokenizer进行分词处理:

在config.yml的pipeline中定义了以下NLU组件:

加载DIETClassifier:

通过load方法从storage中加载组件并实例化后返回:

下面的warning信息可以忽略,在Rasa 之前的版本中也会出现:

加载DucklingEntityExtractor:

在pipeline中的配置如下,用于提取dimensions中的实体信息:

加载EntitySynonymMapper和ResponseSelector:

Pipeline配置如下:

加载FallbackClassifier:

Pipeline配置如下:

 3.  教育领域Education Bot调试Rasa Debugging中Policies组件启动详解

加载RulePolicy组件:

加载AugmenentedMemoizationPolicy组件,这个policy具有“遗忘机制”,可以通过忽略历史对话中的一些内容来与stories中的训练数据进行匹配,从而提供更大的灵活性和匹配成功率:

加载TEDPolicy组件,这个policy是基于机器学习模型TED来进行预测的:

下面是config.yml文件中配置的policies:

加载policy ensemble组件:

启用Python coroutine调试:

 4.  教育领域Education Bot调试Rasa Debugging中用户信息进入Agent过程详解

输入信息,这时会进行用户身份识别,并启动一个新的对话,可以看到当前slots的信息都为空:

使用一个dask runner来运行组件:

DaskGraphRunner只是Rasa GraphRunner的一个实现:

而GraphRunner用于运行一个graph schema(定义了DAG中的各个graph component):

接下来依次运行这些组件的process方法来处理用户输入信息:

下面是处理用户输入信息后获取的intent及entities信息:

在tracker中记录相关event,执行默认action提取slots信息,并进行验证:

 5.  Education Bot Debugging对用户Message处理的整个NLU生命周期详解

首先看一下Rasa官网提供的这幅关于组件生命周期的图:

下面的图是针对Rasa 2.X的版本(对于3.X的版本是采用DAG graph,组件之间是可以并行运行的),各个组件在图中是有相互依赖关系的。每个组件都会执行加载和初始化的操作,然后依次进行训练,完成之后再通过持久化操作来保存训练好的模型,并产生模型相关的元数据(Model Metadata)。

下面的信息显示了定义在pipeline中的各个NLU组件依次对用户输入信息进行处理来完成整个NLU的过程:

 6.  Education Bot Debugging的Dialogue Management中Policies并行处理详解

从下面的输出信息中可以看到几种policies是在并行处理的:

使用rule policy和AugmenentedMemoizationPolicy进行预测:

也会使用TEDPolicy进行预测:

最后由policy ensemble组件结合各个policies的预测来决定最终的预测结果,可以看到是选择了AugmenentedMemoizationPolicy的预测结果:

下面是对话机器人给出的信息:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值