BT

你的观点很重要! 快来参与InfoQ调研吧!

ParlAI:Facebook开源的一个AI对话框架

| 作者 谢丽 关注 3 他的粉丝 发布于 2017年5月19日. 估计阅读时间: 4 分钟 | ArchSummit社交架构图谱:Facebook、Snapchat、Tumblr等背后的核心技术

A note to our readers: As per your request we have developed a set of features that allow you to reduce the noise, while not losing sight of anything that is important. Get email and web notifications by choosing the topics you are interested in.

ParlAI(读作“par-lay”)是一个在各种公开提供的对话数据集上训练和评估AI模型的框架。它是用Python编写的(当前需要Python 3),主要用于对话AI研究,其目标是为研究人员提供以下特性:

  • 一个训练和测试对话模型的统一框架;
  • 一次性在许多数据集上完成多任务训练;
  • 无缝集成Amazon Mechanical Turk,用于数据收集和人工测评。

ParlAI包含三个主要概念:

  • world:定义环境(可以非常简单,只有两个代理相互交谈);
  • agent:环境中的代理,如“学习者(learner)”(可以有多个学习者);
  • teacher:一种和学习者交谈的代理类型,实现其中一种ParlAI任务。

在定义好world和其中的代理后,就可以运行一个主循环进行训练、测试或展示,它会调用world.parley()函数,如下图所示,左侧是main方法的示例框架,右侧是parley()的实际代码:

所有代理(包括teacher)都使用一种格式—— observation/action对象(一个python字典)——进行交谈。讲话(acting)或倾听(observing)都使用相同的对象类型,其中包含如下字段:

从技术上讲,其中每个字段都是可选的。

ParlAI的代码包含如下几个主要的文件夹:

  • core包含框架的主要代码;
  • agents包含可以和不同任务交互的代理;
  • examples包含不同循环的一些基本示例;
  • tasks包含不同任务的代码;
  • mturk包含设置Mechanical Turk的代码及MTurk任务样例。

第一个版本支持20多种任务,其中包括SQuADbAbI tasksMCTestWikiQAWebQuestionsSimpleQuestionsWikiMoviesQACNN & QADailyMailCBTBookTestbAbI Dialog tasksUbuntu DialogOpenSubtitlesCornell MovieVQA-COCO2014等数据集,如下图左侧所示:

在ParlAI中,选择一项任务非常简单,只要在命令行中指定即可,如上图右侧所示。如果指定的数据集以前没有使用过,那么ParlAI会自动下载它。ParlAI把所有的数据集都同等看待,原则上,一个对话代理可以在上述任何数据集之间切换训练及测试。甚至,研究人员还可以一次指定多个任务,例如,通过命令行-t babi,squad使用两个数据集,或者通过命令行-t #qa一次指定所有QA数据集,或者使用-t #all指定ParlAI中的所有任务。总之,ParlAI的目标是让研究人员可以轻松地构建和评估丰富的对话模型。

ParlAI的一个重要特性是无缝集成Mechanical Turk,用于数据收集、训练和评估。在ParlAI中,Human Turkers也被视为代理,因此,人-人、人-机器人或者多个人和机器人都可以在标准框架内交谈,根据需要交换角色,而不需要修改代理的代码。

ParlAI GitHub页面上还提供了使用PyTorchLua Torch训练神经模型的示例,替换成TheanoTensorflow也很简单。ParlAI尚处于早期Beta测试阶段,感兴趣的读者可以下载安装。


感谢陈思对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT