5 月 16 日,Facebook 官网公布,推出全新开源软件平台 ParlAI,致力于打造一站式对话研究商店,加快提高聊天机器人的智慧聊天水平。
人工智能的一个长期目标就是希望能制造出可以和人类自然交流的聊天机器人。现在生产出来的机器人虽然有时候可以完成具体的单个任务,但是在理解多个句子或者把多个子任务联合起来形成一个主任务上有很大的困难。像比较复杂的对话,例如,预订酒店或和它聊体育新闻。这就需要它能理解多句意,并且能够推理来进行下一轮谈话。因为人类对话很复杂,在很多有关联的任务中使用的是相同的输入输出格式,却需要不同的知识技能,机器人一定会被这些任务打败。为了达到这个目标,开发一个软件用来整合这些任务,以及可供代理学习是很有必要的。
找到了这个需求后,Facebook 的 AI 研究团队开发了一个新的开源平台,用来一次性跨越多任务,训练和测试对话模型。ParlAI 是一站式对话研究商店,研究员可以在这里提交新任务,对单个对象训练算法,共享储存空间。它和 Mechanical Turk 结合来数据收集、训练和评估,也可以让 ParlAI 中的机器人和人对话。这个计划的目标是将现有对话资料集和学习系统整合,包括人机之间的真实对话。
ParlAI 补充了现有的 Facebook AI 研究团队的文本研究,像 FastText,它是快速和有效的文本分类工具;还有 CommAI,它是用来透过日益复杂的任务来开发通用人工智能的框架。
ParlAI 中的任务
超过 20 个公共资料集包含在此版本中,如下图左边所示:
任务分为 5 类
- 问和答:这是最简单的对话框形式之一,每个说话者只有一轮。问和答这种方式是特别有用的,因为评估比其他形式的对话框简单:如果问题的答案是已知的(即,资料集被标记),那么我们可以快速检查答案是否正确。
- 句子完成(完形填空):在这个测试中,代理器必须在对话框中的下一个语句中填入一个缺失的单词。虽然这是另一个专门的对话框任务,资料集采集很便宜,评估很简单。
- 目标导向的对话:一个更为现实的对话类别涉及到达到一个目标,例如,一个客户和旅行社讨论航班、一个人向另一人推荐电影、两个人约定何时何地一起吃饭等。
- 聊天对话框:有些任务不一定有一个明确的目标,更多的是讨论;例如,两个人谈论体育、电影或一个共同的兴趣。
- 视觉对话:这些任务包含图像和文本。在真实世界中,对话框通常以物理对象为基础。在未来,计划添加其他感官资讯,如音频。
在 ParlAI 选择一个任务和在命令行中指定它一样简单。如果资料集尚未使用,ParlAI 会自动下载它。因为所有的资料集在 ParlAI 都会以相同的方式处理,对话代理可以在它们的训练和测试之间切换。你也可以透过提供一个以逗号分隔的列表,进行一次性多任务指定;例如命令行 -t babi,squad 用了两个资料集,所有的 QA 资料立刻集合 -t #qa;或者 ParlAI 中每个任务立刻集合 -t #all,目的是为了让构建和评估一个丰富的对话模型变得简单。
多重世界;代理;老师
在 ParlAI 主要的概念(类)是多重世界,代理,和老师。世界是说话者所生活的环境,可以从简单的双向对话变化到更复杂的场景,如反应性游戏环境。代理是可以在世界上表演和说话的东西。代理可以是一个学习者,如机器学习的系统,或一个硬编码的机器人,用来与学习者互动,如游戏中的非玩家角色。最后,老师是一种和学习者交流的代理,例如,实现了以前列出的任务。
所有代理使用一个单一的格式─观察 / 操作对象(一个 Python)─交换文本,标签,并与其他代理互相奖励。
代理发送此消息来说话,并透过接收到相同形式的消息,来发现在环境中的其他说话者。这使我们能够解决各种对话问题,从强化学习到完全监督学习,同时保证所有的资料集符合相同的标准。当研究人员建立新的模型,他们可以很容易地应用在许多任务上。
在定义了一个世界和它的代理之后,主回路调用其中的函数 world.parley ( ). 运行用来训练、测试或显示,世界。在左边的面板显示的一个例子,主回路的框架,右边是 parley ( ) 实际代码。
第一版发布的工具栏里包含工具代理,像简单的 IR 基频,同时还有两个完整神经网络案例:一个端到端的储存网络,在 Lua Torch 中执行,还有一个是长短时记忆模型 DrQA,是在 Py Torch 中执行,在 SQuAD 资料集和其他资料集之间有一个强大的效果。我们期待在未来的版本中添加一些新的任务和代理。
Mechanical Turk
制造聊天机器人,人机对话是训练过程中很重要的一部分。这就是为什么 ParlAI 支持和 Mechanical Turk 整合来资料收集、训练和评估。这也使得研究小组的 Turk 实验可以对比,这在以前是困难的。在 ParlAI 中,Human Turkers 也可视为代理。他们可以轻松地与机器人交谈,以帮助训练和评估他们。随后,人─人、人─机或多人和机器人聊天都可以在标准框架内进行交互。在切换所需的角色过程中,代理不用更改代码。这是因为 Turkers 可以透过同一接口的印刷版接收和发送。
- QA 收集器:透过和 Turkers 对话来收集问题和答案,给定上下文建立一个 QA 资料集的代理。
- 模型评估器:利用机器人在给定任务中的性能表现,从 Turkers 中收集评级的代理。
在一个地方可以收集所有重要的对话任务,这还是第一次。ParlAI 为研究人员提供的这个场所不仅使这些任务单独地更容易迭代,也可以轻松地使用所有的资料来训练机器人,并透过那些技能来评估机器人。研究员透过检查存放处的代码,共享他们的 AI 学习代理,直接复制对方的实验结果,来进行彼此工作之上的研究,共同推进这个领域前进。最后,Mechanical Turk 的整合,意味着人类可以很容易地投入到与机器人交谈的循环之中,以帮助训练和评估他们。人类之间的对话对制造可以和人类交谈的机器人也很有必要。
对于 AI 来说,解决对话问题仍然是一个长期的挑战,对于这一目标的任何进展都有可能对我们今天所制造的产品带来短期利益,任何技术的进步都可能对其他行业领域带来好处。ParlAI 是一个平台,希望将做 AI 代理执行对话框的研究人员,聚在一起共同推动对话研究达到世界最先进水平。
- ParlAI: A new software platform for dialog research
(本文由 雷锋网 授权转载;图片来源:Facebook)