Rasa:一个开源的对话机器人框架

孔晓泉,机器学习方向-谷歌开发技术专家,TensorFlow 和 TensorFlow Addons contributor。Rasa SuperHero contributor 和 Rasa 中国社区 Founder。曾就职于 Alibaba Group 从事 NLP 算法和框架研发工作。拥有多年的 NLP 算法研发和落地经验。

展开查看详情

1.Rasa 一个开源的对话机器人框架 孔晓泉 ML GDE & Rasa SuperHero

2. 孔晓泉 ● 谷歌开发者机器学习技术专家 (ML GDE) ● Rasa 框架 SuperHero 和 Rasa 中国社区 Founder ● TensorFlow Core 和 TensorFlow Addons contributor ● TensorFlow User Group (TFUG) 上海社区主要组织者 ● 百度黄埔学院( 首席 AI 架构师培养计划)首期班毕业生

3.对话机器人简介 理论和现状

4.对话机器人 当下最前沿的人工智能研究方向之一 其在智能客服、智能语音助手和儿童机器人等方面都有着极其重要的应用。 ... 阿里小蜜 Siri 360儿童机器人 (智能客服) (智能语音助手) (陪伴机器人)

5.人机对话的流程 逻辑黑盒视图

6.自然语言理解 (NLU) 理解用户的话 NLU 要做的三件事: ● (可选)Domain 识别 ● Intent 识别 ● Entity 识别

7.NLU 示例 以查询天气为例

8.对话管理 (DM) 一个尚未良好解决的领域 根据对话的上下文选择合适的动作。

9.DM 对话管理示例 填表式对话管理 $ 用户 > 帮我订一张去上海的机票 # 系统 > 状态:空,NLU 分析结果:{意图:订机票, 实体:{目的地:上海}} # 系统 > 获取订机票的表格:[出发地、目的地、时间、航空公司、舱位] # 系统 > 缺少的实体:[出发地、时间、航空公司、舱位] # 系统 > 选择待澄清的字段「出发地」,获得澄清话术:「从哪里出发呢?」 $ 系统 >从哪里出发呢? $ 用户 > 从广州走 # 系统 > 状态:订机票,NLU 分析结果:{意图:设定出发地, 实体:{出发地:广州}} # 系统 >订机票的表格还缺少的实体:[时间、航空公司、舱位] ……

10.自然语言生成 (NLG) 可以简单的理解成 NLU 的反向过程 NLU:文本转换至语义 「明天的天气如何?」-> {意图:询问天气,实体:{日期:明天}} NLG:语义转换至文本 {意图:询问出发日期,实体:{出发地:广州}} -> 「请问你明天什么时候从广州出发?」

11.自然语言生成 (NLG) 要求和现状 NLG的要求: ● 语义表达通顺合理 ● 千人千面 ○ 播音体:明天广州有大到小雨 ○ 淘宝体:亲,要注意喽,广州明天的天气是有大到小雨呢 任务型对话系统里通常不使用 DNN 驱动的 NLG:成本高、输出质量不佳; 真实情况使用模板渲染:{日期}{地点}的天气为{天气状况}

12.对话机器人工程 理想很美好,但现实...

13.掌握了这些理论知识后, 那么我在工作中能否像 「吴恩达」 那样做一个优雅的科学家了吗?

14.- Caffe作者 TensorFlow 核心开发者 贾扬清博士

15.算力不足 现实很骨感 :( 图片来自网络

16.Rasa 框架 对话机器人工程师的救星

17.“Rasa is the only serious choice for building mission-critical AI assistants.” - https://rasa.com/

18.Rasa 是什么? 一个开源的功能强大的对话机器人框架,提供端到端的,工业级别的任务型+FAQ型对话 机器人的支持。

19.Rasa 是什么? 开源 Apache License, Version 2.0, 可商用

20.Rasa 是什么? 背后的公司 Rasa Technologies GmbH,2020年 获得了 2600万美元的风投,这是它的第二轮融资。

21.Rasa NLU 训练数据 (Markdown 格式) ## intent:goodbye - 拜拜 - 再见 ## intent:greet - 你好 - hello ## intent:weather - [上海](address)啥温度 - [魔都](address)的天气

22.Rasa NLU 同义词转换 (Markdown 格式) ## synonym:今天 - 晚上 - 下午 ## synonym:明天 - 明日 ## synonym:北京 - 首都 ## synonym:上海 - 魔都

23.Rasa NLU 字典信息 (Markdown 格式) ## lookup:cities 纳雍县 table_data/cities.txt 贵州省黔东南苗族侗族自治州三穗县 甘肃省兰州市兰州新区 杭州市余杭区 彭阳 宾阳 云阳县 民乐 上海市普陀区 中卫市 福建省南平市建阳区

24.Rasa NLU FAQ (Markdown 格式) ## intent:chitchat/whoyouare ## 你是谁 - 你是谁啊 * chitchat/whoyouare - 你叫什么名字 - 你好,我是Silly,一个专注天气预报的对话 - 你叫什么名字呢 机器人。 - 介绍一下自己 ## intent:chitchat/whatyoucando ## 你能干嘛 - 你能干啥 * chitchat/whatyoucando - 你能干什么 - 我能帮你查找中国大陆地区城市级别的当 - 你能干什么呢 下和未来两天的天气情况 - 你能干啥呀 - 你能做什么

25.Rasa NLU 组件配置 (YAML格式) language: zh pipeline: - name: HFTransformersNLP model_name: bert model_weights: bert-base-multilingual-uncased - name: LanguageModelTokenizer - name: LanguageModelFeaturizer - name: DIETClassifier - name: ResponseSelector - name: EntitySynonymMapper

26.Rasa Core 训练数据:Story (Markdown 格式) ## greet ## 注释 * greet * 用户说的话 #1 - utter_greet - 系统 Action #1 - Action #1 的副作用 #1 ## form - Action #1 的副作用 #2 * weather - ... - weather_form - 系统 Action #2 - form{"name": "weather_form"} - Action #2 的副作用 #1 - form{"name": null} - Action #2 的副作用 #2 … - ... ## chitchat * 用户说的话 #2 * chitchat - ... - respond_chitchat

27.Rasa Core Domain 数据 (YAML 格式) intents: - goodbye entities: - address slots: address: type: text responses: utter_goodbye: - text: 再见! actions: - utter_ask_address forms: - weather_form

28.Rasa Core 组件配置: Policy (YAML 格式) policies: - name: MemoizationPolicy - name: TEDPolicy - name: MappingPolicy - name: FormPolicy

29.Rasa Core Policy 工作原理

Google Developer Groups 谷歌开发者社区,是谷歌开发者部门发起的全球项目,面向对 Google 和开源技术感兴趣的人群而存在的公益性开发者社区。