1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > Gavin老师Transformer直播课感悟 - 图解Rasa对话机器人项目实战之教育领域Education

Gavin老师Transformer直播课感悟 - 图解Rasa对话机器人项目实战之教育领域Education

时间:2022-03-29 19:22:15

相关推荐

Gavin老师Transformer直播课感悟 - 图解Rasa对话机器人项目实战之教育领域Education

本文继续围绕工业级业务对话平台和框架Rasa,对Rasa对话机器人项目实战之教育领域Education Bot项目的架构进行分析,并通过debug模式演示与分析Rasa Agent如何与核心组件NLU Pipeline和Dialogue Policies进行交互以完成对用户输入的语言理解与预测,以及微服务调用等。

一、图解Rasa对话机器人项目实战之教育领域Education Bot项目及综合调试Debugging实战解密

通过Rasa Architecture图解对话机器人项目实战之教育领域Education Bot项目

运行命令rasa shell启动Rasa Server(Agent),会加载训练好的模型,包括NLU Pipeline和Dialogue Polices两部分使用的模型:

运行命令rasa run actions,会启动rasa action server并注册微服务actions:

Agent相当于 对话机器人的控制中心,而业务处理如访问数据库或者调用第三方API等是通过Action Server来处理的。从架构图中可以看到,核心路径是用户与Agent交互及Action Server与Agent进行交互。项目中的nlu部分与NLU Pipelines相关:

而rules和stories部分与Dialogue Polices相关:

Actions部分就是定义和配置了运行在Action Sever之上的微服务:

Config.yml定义了在NLU Pipeline中使用的各个graph components,包括意图分类和实体提取组件:

Config.yml也定义了在架构图中Dialogue Policies部分使用的各个policies组件:

2. 通过Graph Architecture图解对话机器人项目实战之教育领域Education Bot项目

本文开头展示的Rasa graph architecture图显示了各个graph 组件之间的依赖关系,从而构成有向无环图(缩写为DAG)。Rasa框架通过把各个组件抽象为graph component的方式来模糊NLU Pipeline中的组件和Dialogue Policies中的组件之间的差别,所以以一个DAG图的方式统一了所有组件。从图中可以看到,各个组件之间并不完全是顺序执行的方式,组件与组件之间可以并行运行,从而带来了高效率。另外,从DAG图中可以看到,Rasa也提供了end-to-end learning的方式,即Dialogue Policies部分可以直接依赖于Featurizers组件的输出来进行处理,而不需要依赖DIETClassifier的输出结果。Policy Ensemble组件会根据各个policies组件的预测结果给出最佳的关于next action的预测结果。

3. 通过Training Flow图解对话机器人项目实战之教育领域Education Bot项目

在下面这个流程图中,首先把domain配置信息和训练数据(nlu,rules,stories等)加载进来,训练各个组件并进行持久化操作。Policies会根据stories的数据提取features并更新自己模型的参数。

4. Rasa Server NLU启动过程Debugging及图解

在Rasa server启动过程中,可以看到有报错信息,这是因为没有启动ducking server,而在NLU pipeline配置里使用了DuckllingEntityExtractor:

进入debug模式:

会加载很多库,包括Rasa SDK相关的库,redis相关的,tensor flow相关的等等:

启动基于Sanic框架构建的Rasa server:

这里使用了开发模式常用的InMemoryTrackerStore:

加载各个NLU pipeline的组件:

5. Rasa Server Policies启动过程Debugging及图解

在Rasa server启动过程中也会加载Dialogue Policies中的各个组件,如RulePolicy,AugmentedMoizationPolicy,TEDPolicy等:

启动Rasa server完成:

6. 通过Debugging的模式解析用户输入Message完整的NLU处理过程

输入信息:

首先从Lock Store中获取lock,启动一个新的session,并执行action_session_start:

这是当前tracker中slots的状态信息,都是None的状态:

然后依次调用NLU pipeline的各个组件对输入信息进行处理:

运行ResponseSelector,添加各个分类的key,如果用户输入识别的intent符合这些分类就会进行相应的处理:

这是对用户输入消息处理后输出的intent和entities信息:

对话机器人通过微服务检索信息后返回:

在微服务的run方法中通过调用API执行搜索:

这是discourse API定义的query方法:

提取并验证slots信息:

7. 通过Debugging的模式解析用户输入Message完整的Policies处理过程

运行RulePolicy和TEDPolicy预测next action:

通过Policy Ensemble组件对各个policy预测结果进行选择,最后选择了RulePolicy的预测结果,并调用微服务action执行搜索:

执行搜索完成后,会再次调用各个policy进行预测下一个action,可以看到最后预测的action是”action_listen”(系统默认行为),即进入等待用户输入下一条消息的状态:

欢迎订阅Rasa系列课程:

========================================================================

Rasa 3.x 源码高手之路:系统架构、内核算法、源码实现详解:

https://appz0c1mshy7438./v1/auth?redirect_url=https%3A%2F%2Fappz0c1mshy7438.%2Fv1%2Fgoods%2Fgoods_detail%2Fp_62353091e4b0beaee43652c9%3Fentry%3D2%26entry_type%3D2001%26share_type%3D5%26share_user_id%3Du_621b7b85b8dc5_3yDAYnFXeM%26type%3D3

Rasa 3.x 源码高手之路:基于Transformer的对话机器人RasaPolice:

https://appz0c1mshy7438./v1/auth?redirect_url=https%3A%2F%2Fappz0c1mshy7438.%2Fv1%2Fgoods%2Fgoods_detail%2Fp_62353421e4b04d7e2fd83665%3Fentry%3D2%26entry_type%3D2001%26share_type%3D5%26share_user_id%3Du_621b7b85b8dc5_3yDAYnFXeM%26type%3D3

星空NLP对话机器人论文班:NLP领域10篇最高质量的对话机器人经典论文解密:

https://appz0c1mshy7438./v1/goods/goods_detail/p_623874b7e4b04e8d90256da1?type=3&share_type=5&share_user_id=u_621b7b85b8dc5_3yDAYnFXeM&entry=2&entry_type=2001

Rasa 3.X 智能对话机器人案例开发硬核实战高手之路 (7大项目Expert版本):

https://appz0c1mshy7438./v1/goods/goods_detail/p_62276dd8e4b0beaee431c848?type=3&share_type=5&share_user_id=u_621b7b85b8dc5_3yDAYnFXeM&entry=2&entry_type=2001

Advanced Python硬核实力高手实战之路:架构、算法、源码、案例(81讲):

https://appz0c1mshy7438./v1/goods/goods_detail/p_6227e564e4b0beaee431ce2a?type=3&share_type=5&share_user_id=u_621b7b85b8dc5_3yDAYnFXeM&entry=2&entry_type=2001

NLP on Transformers 高手之路137课Pro版:

https://appz0c1mshy7438./v1/goods/goods_detail/p_621c0289e4b04d7e2fd0365a?type=3&share_type=5&share_user_id=u_621b7b85b8dc5_3yDAYnFXeM&entry=2&entry_type=2001

Gavin老师Transformer直播课感悟 - 图解Rasa对话机器人项目实战之教育领域Education Bot项目及综合调试Debugging实战解密(七十七)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。