BT

您是否属于早期采用者或者创新人士?InfoQ正在努力为您设计更多新功能。了解更多

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

| 作者 谢丽 关注 1 他的粉丝 发布于 2017年5月19日. 估计阅读时间: 不到一分钟 | 硅谷人工智能、机器学习、互联网金融、未来移动技术架构 ,尽在QCon上海2017

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