首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >详解ParlAI:为了让机器人更会聊天,Facebook开源了新平台

详解ParlAI:为了让机器人更会聊天,Facebook开源了新平台

作者头像
量子位
发布2018-03-30 11:13:58
1.1K0
发布2018-03-30 11:13:58
举报
文章被收录于专栏:量子位量子位量子位
陈桦 问耕 编译整理 量子位 报道 | 公众号 QbitAI

对话,多么简单的一件事。

但说真的,如果想让机器做好这件事,你就会发现对话时多么的复杂。诸如回答问题、完成句子甚至完成一小段交流等等,都不是一件易事。

包括上述提及的诸多细分领域,都有很多人在独立展开研究,现在有人尝试把这些整合在一起,用以更好的创建一个对话AI。

Facebook AI Research (FAIR)旗下的实验室,如今发布了一项被称为“一站式对话研究”的新工具:ParlAI。

ParlAI为AI程序员提供了一个简单的框架,来训练和测试聊天机器人,并提供样本对话数据集,还无缝集成了亚马逊的Mechanical Turk“人工”智能服务。据说,在ParlAI的帮助下,往工作流里拉入一个数据集,就像写命令行一样简单。

在形式上,ParlAI和其他训练和测试方案很类似,例如OpenAI的Gym或者DeepMind的Lab。不同之处在于,Gym和Lab主要面向强化学习进行了优化,而ParlAI专注在对话领域。

和微软的chatbot框架不同,ParlAI是一个针对前沿AI研究社区的工具包。ParlAI不是用于搭建一个实际的聊天机器人,而是提供了一个更好的训练场所。

在对话领域常见的监督学习,可能不如强化学习那么时髦有趣,但同样是机器学习领域重要的组成部分。

Facebook人工智能研究主管Yann LeCun表示,进步已经发生,用户将看到各种聊天机器人的持续进步。

他举例说,能够处理类似Wikipedia这样大型数据集,进行挖掘并能在其上回答问题的系统,现在还不存在。但这种技术预计很快会出现,而这可能是未来Facebook人工智能平台的关键所在,LeCun表示。

“我们的最终目标之一,是让你拥有自己的数字朋友,一个为你量身定制的虚拟助理”,LeCun表示这个AI虚拟助理,将帮助你更好的与世界互动,更好的与他人交流,更好的了解海量信息,总之会让生活更美好。

FAIR将采用ParlAI开展研究。Facebook在对话领域有很多探索,比方说推出不久的人力+AI驱动的虚拟助理“M”。

最终类似M这样的产品,会在跟人类的交流中学到如何展开对话,就像婴儿和幼儿一样。然而实现这个梦想的重要一步,就是打破人工智能的孤岛,集中力量办大事。这正是ParlAI发布的意义。

ParlAI幕后团队

详解ParlAI

关于ParlAI,Facebook官方还提供了详细的解释。

Facebook人工智能研究(FAIR)团队开发了新的开源平台,用于同时在多项任务中训练及测试对话模型。

ParlAI是一站式对话研究平台,研究人员可以向单一、共享的资源库提交新任务,训练算法。通过在数据收集、训练和评价方面与Mechanical Turk的整合,ParlAI中的机器人可以与人类对话。

Facebook这项工作的最终目标是将现有的对话数据集与包含真实人机对话的学习系统统一起来。

ParlAI将成为FAIR与文本处理相关的其他工作的补充。其中包括快速高效的文本分类工具FastText,以及基于复杂任务的通用人工智能开发框架CommAI。

ParlAI中的任务

此次发布的版本中包含20多个公共数据集。

任务分为5类:

问题回答:这是最简单的对话形式,每位发言者占一个回合。问题回答非常有用,因为相对于其他对话形式,评价方式要更简单:如果问题的答案是已知的(例如,数据集已打上标签),那么我们可以迅速检查答案是否正确。

语句完成(完形填空):在这项测试中,agent需要填写对话中缺失的某个表达。这是另一种专门的对话任务,但数据集的制作成本很低,而评价方式也很简单。

以目标为导向的对话:在现实中更常见的一类对话需要实现某个目标。例如,顾客和旅行代理会讨论某个航班信息,对话中的一方向另一方推荐某部电影,以及对话双方就何时去哪里用餐达成一致等。

闲聊对话:某些任务没有明确目标,而更多的只是讨论。例如,对话双方讨论体育赛事、电影,或是共同感兴趣的话题。

可视对话:这些任务中除了文字之外还包含图片。在现实世界,对话常常基于实体对象。未来,我们还计划加入其他感知信息,例如声音。

在ParlAI中选择一项任务很简单,只要在命令行中进行指定即可。如果数据集尚未被使用过,那么ParlAI将会自动下载。由于ParlAI对所有数据集都采用同样的处理方式(利用单一的对话API),对话agent可以在所有数据集中进行训练和测试的切换。通过提供由逗号分隔的列表,例如命令行-t babi, squad,你可以同时指定多个任务(多任务)。通过命令行-t #qa,你可以指定所有问答数据集。通过命令行-t #all,你可以指定ParlAI中的所有任务。目标是帮助用户方便地建立及评价丰富对话模型。

world、agent和teacher

ParlAI中最主要的概念(类)包括world、agent和teacher。world的定义是对话者存在的环境,其中包括简单的双向对话和更复杂的场景,例如互动性的游戏环境。agent是在世界中活动、对话的主体。agent可以是学习者,例如机器学习系统,或是可以与学习者互动、固定代码的机器人,例如游戏中的NPC。teacher也是一类agent,可以与学习者进行对话。

所有agent都采用同样的形式,即观察/行动对象(一个Python字典),与其他agent交换文本、标签和反馈。

agent发送这些消息去说话,并以同样的形式接收消息,观察环境中其他的对话者。这使我们可以解决各种对话问题,包括强制学习和完全受监督学习,同时确保所有数据集遵从同样的标准。当研究者建立新模型时,他们可以方便地将模型应用于多个任务。

在定义了world和其中的agent之后,可以调用函数world.parley()去运行主循环,进行训练、测试和展示。

工具包的首个版本包含了已经配置好的agent,例如简单的IR baseline,以及两个完整的神经网络范例:一个在Lua Torch中配置的端到端记忆网络,以及一个在PyTorch中配置的LSTM模型DrQA。我们计划在未来的版本中加入更多新任务和agent。

Mechanical Turk

在开发聊天机器人时,与人类的对话是训练中的重要部分。因此,ParlAI与Mechanical Turk进行了集成,进行数据收集、训练和评价。这也意味着,研究机构可以对Turk试验进行比较,而以往这很困难。

在ParlAI中,人类Turker也被视为agent。他们可以很方便地与机器人对话,协助对机器人的训练和评价。因此,人类之间、人机之间,以及多人/多机器群聊都可以在标准框架下实现。你可以按需调整角色,而不需要修改关于agent的代码。这是由于,Turker的消息收发通过统一界面,利用了观察/行动字典中的域。

我们在首个版本中提供了两个范例:

1.qa_controller:这种agent可以与Turker对话,在上下文片段中收集问答对,建立问答数据集。

2.model_evaluator:关于机器人在某项任务中的表现,这种agent可以收集来自Turker的评价。

结语

ParlAI首次向研究者提供了统一平台,用于收集所有重要的对话任务。这不仅帮助这些个体任务更方便地迭代,利用所有这些任务去训练机器人也变得更简单(最终这将带来更好的机器人),同时可以对机器人的所有能力进行评价。

通过这一平台,研究人员可以在资源库中提交代码,从而分享人工智能学习agent。这意味着,研究人员可以重现同行的研究结果,并在他人的成果之上进行开发。

最后,对Mechanical Turk的集成意味着人类可以很容易地进入循环,与机器人对话,协助对机器人的训练和评价。最终,在开发能与人类对话的聊天机器人的过程中,与人类的对话训练非常必要。

解决对话问题是人工智能领域的长期挑战,朝着该目标的任何进展都有可能在短期内给产品带来帮助,或是协助其他领域的技术开发。我们希望,ParlAL平台能聚集人工智能对话agent的研究社区,继续推动对话研究的发展。

视频内容

代码和网址

ParlAI主页:

http://parl.ai

代码:

https://github.com/facebookresearch/ParlAI

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-05-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 量子位 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 详解ParlAI
  • ParlAI中的任务
    • 任务分为5类:
      • world、agent和teacher
        • Mechanical Turk
          • 结语
          • 代码和网址
          相关产品与服务
          腾讯智能对话平台
          腾讯智能对话平台(Tencent Bot Platform,TBP)专注于“对话即服务”的愿景,全面开放腾讯对话系统核心技术,为大型企业客户、开发者和生态合作伙伴提供开发平台和机器人中间件能力,实现便捷、低成本构建人机对话体验和高效、多样化赋能行业。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档