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

来源: 投稿
作者: xplanet
2019-07-17 08:32:00

“在过去的几十年中,智能会话代理已经发生了显著的变化,从关键字定位交互式语音应答(IVR)系统到正在成为日常生活中不可或缺的一部分的跨平台智能个人助理。随着这种增长,需要直观、灵活和全面的研究和开发平台,可以作为开放的测试平台,帮助评估新算法,快速创建原型,并可靠地部署会话代理。 ”

在这种背景下,Uber AI(Uber 的人工智能研究部门)开发并且开源了柏拉图( Plato )研究对话系统。Plato 旨在构建、训练和部署会话 AI 代理,使数据科学家和业余爱好者能够从原型和演示系统中收集数据。它提供干净且易于理解的设计,并与现有的深度学习和贝叶斯优化框架(用于调整模型)集成,可减少编写代码的需要。

目前,Plato 支持通过语音、文本或结构化信息(换句话说,对话行为)进行交互,并且每个会话代理可以与人类用户、其他会话代理(在多代理设置中)或数据进行交互。最重要的是,Plato 可以为会话代理的每个组件包裹现有的预训练模型,并且每个组件都可以在线(在交互期间)或离线(从数据)进行训练。

Plato 通过模块化设计实现了这一目标,将数据处理分为七个步骤:

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

每个单独的组件都可以使用任何机器学习库(例如,LudwigTensorFlow 或 PyTorch)进行在线或离线训练,因为 Plato 是一个通用框架。

▲Plato 的架构允许对多个代理进行并发训练

为了证明其可扩展性,Plato 用户可以通过提供该类模块的 Python 类名和包路径以及模型的初始化参数来定义自己的体系结构或插入自己的组件。只要模块按照它们应该执行的顺序列出,Plato 就会处理其余部分,包括包装输入和输出,链接和执行模块(串行或并行),以及促进对话。

在数据记录方面,Plato 会在名为 Dialogue Episode Recorder 的结构中跟踪事件,该结构包含有关先前对话状态、所采取的操作、当前对话状态等信息。还包括一个自定义字段可用于跟踪不属于定义类别的任何内容。

Uber AI 的研究人员在最后表示:“我们相信,Plato 能够在和其他开源的深度学习框架中更加无缝地训练会话代理,从而改善学术和行业应用中的对话 AI 技术,随着时间的推移,他们的谈话会变得越来越自然。”

博客原文:https://eng.uber.com/plato-research-dialogue-system/

展开阅读全文
点击加入讨论🔥(2) 发布并加入讨论🔥
2 评论
31 收藏
分享
返回顶部
顶部