社会焦点

Facebook重磅发布ParlAI,重塑机器对话新格局

字号+ 作者: 来源: 2017-05-16

Facebook重磅发布ParlAI,重塑机器对话新格局,朝无意与美国对话,数据集标注工具,对话机器人时代来了,英语对话短文两人,机器人对话是什么

Facebook重磅发布ParlAI,重塑机器对话新格局

Facebook重磅发布ParlAI,重塑机器对话新格局

  数小时前,Facebook AI实验室(FAIR)的三位研究人员Jason Weston、Alexander Miller、Will Feng(冯彦斌)发不了一则重磅消息,他们发布了一个全新的软件平台,可用于对话系统、chatbots,以及问题回答系统,并在github上开源了代码。机器人圈将Facebook Engineering内容编译如下,并附上github代码链接。

  AI的长期目标之一是开发智能聊天机器人,可以以自然的方式与人交谈。现有的聊天机器人有时可以完成特定的独立任务,但是无法理解多于单个句子或链接子任务来完成更大的任务。更复杂的对话,如预订餐厅或聊天运动或新闻,需要了解多个句子的能力,然后对这些句子进行说明,以提供下一部分对话。由于人类对话是如此多样化,聊天机器人必须熟练的许多相关任务都需要不同的专业知识,但使用相同的输入和输出格式。为了实现这些目标,有必要构建统一这些任务的软件,以及可以从中学习的agent。

  认识到这一需求,Facebook AI Research(FAIR)团队已经建立了一个新的开源平台,用于一次性对多个任务进行训练和测试对话模型。ParlAI(发音为“par-lay”)是对话研究的一站式商店,研究人员可以向单个共享存储库提交新任务和训练算法。与Mechanical Turk进行数据收集,训练和评估的整合也使得ParlAI的机器人可以与人交谈。这样做的目标是将现有的对话数据集与包含人与机器人之间真正对话的学习系统统一起来。

  ParlAI补充了现有的FAIR文本研究工作,如FastText,快速高效的文本分类工具,以及CommAI,我们通过日益复杂的任务开发通用人工智能的框架。

  ParlAI的任务

  此版本中包含超过20个公共数据集,如下图左侧所示。

Facebook重磅发布ParlAI,重塑机器对话新格局

  任务分为五类:

  ★问题回答:这是最简单的对话形式之一,每位演讲者只有一轮。问答是特别有用的,因为评估比其他形式的对话更简单:如果问题的答案是已知的(即数据集被标记),那么我们可以快速检查答案是否正确。

  ★句子完成(cloze test):在这个测试中,agent必须在对话中的下一个话语中填写一个缺失的单词。虽然这是另一个专门的对话任务,但数据集很便宜,评估起来很简单。

  ★面向目标的对话:一个更逼真的对话级别应包括实现目标。例如,客户和旅行社讨论航班,一位发言者向另一位发言者推荐电影,两位发言者同意在何时何地一起吃饭等等。

  ★聊天对话:一些任务不一定有明确的目标,但更多的是讨论。例如,两位发言者讨论运动、电影或共同兴趣。

  ★视觉对话:这些是包括图像和文本的任务。在现实世界中,对话通常基于物理对象。将来,我们计划添加其他感官信息,如音频。

Facebook重磅发布ParlAI,重塑机器对话新格局

  在ParlAI中选择一个任务,与在命令行中指定一样简单。如果数据集尚未使用,ParlAI将自动下载。由于所有数据集在ParlAI(使用单个对话API)中都是以相同的方式进行处理的,因此对话agent可以在任何训练和测试之间切换。你还可以通过提供逗号分隔的列表来一次指定多个任务(多任务),例如命令行-t babi,使用这两个数据集——所有QA数据集为-t #qa,或者ParlAI中的每个任务-t #all。目的是使其容易构建并评估复杂的对话模型。

  世界、agent和教者

  ParlAI的主要概念(类)是世界、agent和教者(teacher)。世界是指说话者居住的环境,并且可以从简单的双向通话到诸如反应游戏环境等复杂场景变化。agent可以在世界上行事和说话。agent可以是学习者,例如机器学习系统,或者设计为与学习者交互的硬编码的机器人,例如游戏中的非玩家角色。最后,教者是一种与学习者交谈的agent,例如,实施之前列出的任务。

  所有agent使用单一格式—观察/操作对象(Python dict)—与其他agent交换文本,标签和奖励。

Facebook重磅发布ParlAI,重塑机器对话新格局

  agents发送此消息发言,并以相同的形式接收消息以观察环境中的其他发言者。 这样就可以解决从强化学习到全监督学习的各种对话问题,同时保证所有数据集都符合相同的标准。当研究人员建立新的模型时,他们可以轻松地将它们应用于许多任务。

  在定义了一个世界和其中的agent之后,可以运行一个主循环,用于训练、测试或显示,这称为函数world.parley()。下面的左图显示了一个示例主循环的框架,右边是parley()的实际代码。

  该工具箱的第一个版本包含实现的agent,如简单的IR基线,以及两个完整的神经网络示例:在Lua Torch中实现的端到端内存网络、在PyTorch中实现的注意力强大的LSTM模型DrQA、 SQUAD数据集等。我们期待在将来的版本中添加新的任务和agent。

  Mechanical Turk

  与人类的对话是构建聊天室的训练过程的重要组成部分。这就是为什么ParlAI支持与Mechanical Turk进行数据收集、训练和评估的集成。这也使研究组的实验得以比较,这在历史上是困难的。

  使用Mechanical Turk的人类(human turkers)也被视为ParlAI的agent。他们可以轻松地与机器人交谈,以帮助他们训练和评估。随后,群体聊天中的个人、个人机器人或多个人和机器人可以在标准框架内进行交流,根据需要切换角色,agent没有代码改动。这是因为turkers使用观察/行动的字段,通过一个漂亮的版本的同一界面接收和发送。

  我们在第一版中提供了两个例子:

  qa_collector:一名agent,与turkers谈判,收集问答答对,给出上下文段落以构建质量检查数据集。

转载请注明出处。


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • Facebook重磅发布ParlAI,重塑机器对话新格局(附源代码链接)

    Facebook重磅发布ParlAI,重塑机器对话新格局(附源代码链接)