创建、训练和部署会话 AI 代理 Plato Research Dialogue System

Apache-2.0
Python HTML/CSS
跨平台
Uber
2019-07-17
xplanet

柏拉图(Plato)研究对话系统是一个灵活的框架,可用于在各种环境中创建、训练和测试会话 AI 代理。它支持通过语音、文本或对话行为进行交互,每个会话代理可以与数据、人类用户或其他会话代理进行交互(在多代理设置中)。每个代理商的每个组成部分都可以在线或离线独立培训,只要遵守 Plato 的界面,Plato 就可以轻松地绕过几乎任何现有的模型。

柏拉图(Plato)研究对话系统如何运作?

从概念上讲,会话代理需要经过各种步骤才能处理它作为输入接收的信息(例如,“今天天气如何?”)并产生适当的输出(“有风但不太冷”。)。与标准体系结构的主要组件(参见图1)相对应的主要步骤是:

  • 语音识别(将语音转录为文本)
  • 语言理解(从该文本中提取意义)
  • 状态跟踪(到目前为止已经说过和完成的内容的汇总信息)
  • API 调用(搜索数据库,查询 API 等)
  • 对话策略(生成代理人回应的抽象含义)
  • 语言生成(将抽象意义转换为文本)
  • 语音合成(将文本转换为语音)

Plato 的设计尽可能模块化和灵活,它支持传统和自定义会话 AI 架构,重要的是,支持多方交互,其中多个代理可能具有不同的角色,可以相互交互,同时训练和解决分布式问题。

下面的图1和图2描述了与人类用户和模拟用户交互时的示例 Plato 对话代理体系结构。与模拟用户交互是研究社区中用于快速开始学习的常见做法(即,在与人类交互之前学习一些基本行为)。每个单独的组件都可以使用任何机器学习库(例如,Ludwig、 TensorFlowPyTorch、用户自己的实现)在线或离线进行培训,因为 Plato 是一个通用框架。Uber 的开源深度学习工具箱 Ludwig 是一个很好的选择,因为它不需要编写代码并且与 Plato 完全兼容。

PlatoRDS,人类图1:Plato 的模块化架构意味着任何组件都可以在线或离线进行培训,可以通过自定义或预先训练的模型进行替换。(此图中的灰色组件不是核心 Plato 组件。)

PlatoRDS模拟器图2:使用模拟用户而不是人类用户,如图1所示,我们可以预先训练 Plato 各种组件的统计模型。然后,这些可以用于创建原型会话代理,该代理可以与人类用户交互以收集更多自然数据,这些数据随后可用于训练更好的统计模型。(此图中的灰色组件不是 Plato 核心组件。)

除了单代理交互之外,Plato 还支持多代理对话,其中多个 Plato 代理可以相互交互并相互学习。具体来说,Plato 将产生会话代理,确保输入和输出(每个代理听到和说出的内容)被适当地传递给每个代理,并跟踪对话。

这种设置可以促进多代理学习的研究,其中代理需要学习如何生成语言以执行任务,以及研究多方交互的子领域(对话状态跟踪,轮流等)。 )。对话原则定义了每个代理可以理解的内容(实体或含义的本体;例如:价格,位置,偏好,烹饪类型等)以及它可以做什么(询问更多信息,提供一些信息,调用 API)等)。代理可以通过语音,文本或结构化信息(对话行为)进行通信,并且每个代理都有自己的配置。下面的图3描述了这种架构,概述了两个代理和各种组件之间的通信:

PlatoRDS,多代理图3:Plato 的架构允许对多个代理进行并发培训,每个代理具有可能不同的角色和目标,并且可以促进多方交互和多代理学习等领域的研究。(此图中的灰色组件不是核心 Plato 组件。)

最后,Plato 通过图4所示的通用代理体系结构支持自定义体系结构(例如,将 NLU 分成多个独立组件)和联合训练的组件(例如,文本到对话状态,文本到文本或任何其他组合)。此模式远离标准会话代理体系结构并支持任何类型的体系结构(例如,使用联合组件,文本到文本或语音到语音组件,或任何其他设置)并允许加载现有或预先训练有素的模型进入 Plato。

PlatoRDS-GenericAgent图4:Plato 的通用代理体系结构支持广泛的自定义,包括联合组件,语音到语音组件和文本到文本组件,所有这些组件都可以串行或并行执行。

用户可以通过简单地提供该类模块的 Python 类名和包路径以及模型的初始化参数来定义自己的体系结构和/或将自己的组件插入到 Plato 中。用户需要做的就是按照应该执行的顺序列出模块,Plato 负责其余部分,包括包装输入/输出,链接模块和处理对话。Plato 支持模块的串行和并行执行。

Plato 还通过组合结构的贝叶斯优化(BOCS)为对话 AI 架构或单个模块参数的贝叶斯优化提供支持。

安装

  1. 克隆此存储库:

    git clone git@github.com:uber-research/plato-research-dialogue-system.git
    
  2. 安装要求:

    对于 MacOS:

    brew install portaudio
    pip install -r requirements.txt
    

    对于 Ubuntu/Debian:

    sudo apt-get install python3-pyaudio
    pip install -r requirements.txt
    

    对于 Windows:

    pip install -r requirements.txt
    
  3. 运行

    有关配置文件以及如何运行第一个 Plato 代理的快速介绍,请参见文档

为了支持语音,有必要安装 PyAudio,它具有许多开发人员机器上可能不存在的依赖项。如果上述步骤不成功, PyAudio 安装错误的这篇文章包含有关如何获取这些依赖项并安装 PyAudio 的说明。

 

的码云指数为
超过 的项目
加载中

评论(0)

暂无评论

Uber 开源研究对话系统 Plato,用于开发和训练会话 AI

“在过去的几十年中,智能会话代理已经发生了显著的变化,从关键字定位交互式语音应答(IVR)系统到正在成为日常生活中不可或缺的一部分的跨平台智能个人助理。随着这种增长,需要直观、灵活...

07/17 08:32

没有更多内容

加载失败,请刷新页面

没有更多内容

暂无问答

win7下mingw使用asio,报错 '::UnregisterWaitEx' has not been declared

D:\share\workspace/plato/externs/boost_1_54_0/boost/asio/detail/impl/win_object_handle_service.ipp: In member function 'void boost::asio::detail::win_object_handle_service::move...

2015/03/25 10:12
14
0
第貳章學題 Lisp 3rd Edition, Winston & Horn

2-1: Each of the following things may be an atom, a list, or neither. Identify each accordingly. ATOM (THIS IS AN ATOM) (THIS IS AN EXPRESSION) ((A B) (C D) 3 (3) (LIST 3) (/ (+...

2012/01/18 13:04
135
0
看过的文献1

Charge of Socrates with impiety Impiety is heresy, not believing in the Gods the State believed in but he was also accused of teaching false gods. One of his arguments was that ...

2014/07/23 23:25
16
0
看过的文献2

Hedonism Aristippus of Cyrene (/ˌærəˈstɪpəs/; Greek: Ἀρίστιππος; c. 435 – c. 356 BCE) was the founder of the Cyrenaic school of Philosophy.[1] He was a pu...

2014/07/24 12:03
9
0
not any after jogging Sore muscle mass

In addition to different trajectories, barefoot and being dressed in shoes while foot force is quite different. By way of peel off stickers in measuring Plantar pressure testers...

2014/06/03 23:09
7
0
minimalist working

Besides different trajectories, barefoot along with being dressed in footwear while feet force is reasonably different. By way of peel off stickers in computing Plantar cheap ni...

2014/06/03 23:18
3
0
传引用与传值

c语言中,什么都是通过传值来实现的,c++继承了这一传统并将它作为默认方式。除非明确指定,函数的形参总是通过“实参的拷贝”来初始化的,函数的调用者得到的也是函数返回值的拷贝。 “通过...

2016/06/20 09:37
3
0
Senior Mobile SW Engineer 30W+ 2013-6月更新

Senior SW Engineer Your key tasks and responsibilities will comprise: Using deep technical expertise to deliver high quality results Contributing to project milestones by avoidi...

2013/03/08 11:31
16
0
快醒醒,一大波最新 AI 论文加开源代码来袭!

ETH-DS3Lab at SemEval-2018 Task 7: Effectively Combining Recurrent and Convolutional Neural Networks for Relation Classification and Extraction@theodoric008 推荐Relation Extrac...

2018/04/23 14:55
40
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部