雷锋网AI科技评论按:5月16号,Facebook官网公布,推出全新开源软件平台ParlAI, 致力于打造一站式对话研究商店,加快提高聊天机器人的智能聊天水平。雷锋网编辑认为这必将会给整个机器人制造业带来新的机遇和革命式的发展。

人工智能的一个长期目标就是希望能制造出可以和人类自然交流的聊天机器人。现在生产出来的机器人虽然有时候可以完成具体的单个任务,但是在理解多个句子或者把多个子任务联合起来形成一个主任务上有很大的困难。像比较复杂的对话,例如,预订酒店或和它聊体育新闻。这就需要它能理解多句意,并且能够推理来进行下一轮谈话。因为人类对话很复杂,在很多有关联的任务中使用的是相同的输入输出格式却需要的是不同的知识技能,机器人一定会被这些任务打败。为了实现这个目标,开发一个软件用来整合这些任务,以及可供代理学习是很有必要的。

找到了这个需求后,Facebook的AI研究团队开发了一个新的开源平台用来一次性跨越多任务,训练和测试对话模型。ParlAI是一站式对话研究商店,研究员可以在这里提交新任务,对单个对象训练算法,共享存储空间。它和Mechanical Turk结合来数据收集,训练,和评估,也可以让ParlAI中的机器人和人对话。这个项目的目标是将现有对话数据集和学习系统整合,包括人机之间的真实对话。

ParlAI补充了现有的Facebook AI研究团队的文本研究。像FastText, 它是快速和有效的文本分类工具。还有CommAI,它是用来通过日益复杂的任务来开发通用人工智能的框架。

ParlAI中的任务

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

任务分为五类

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

    • 句子完成(完形填空):在这个测试中,代理器必须在对话框中的下一个语句中填入一个缺失的单词。虽然这是另一个专门的对话框任务,数据集采集很便宜,评估很简单。

    • 目标导向的对话:一个更为现实的对话类别涉及到达到一个目标,例如,一个客户和旅行社讨论航班,一个人向另一人推荐电影,两个人约定何时何地一起吃饭,等等。

    • 聊天对话框:有些任务不一定有一个明确的目标,更多的是讨论;例如,两个人谈论体育,电影,或一个共同的兴趣。

    • 视觉对话:这些任务包含图像和文本。在真实世界中,对话框通常以物理对象为基础。在未来,我们计划添加其他感官信息,如音频。

在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代理执行对话框的研究人员聚到一起共同推动对话研究达到世界最先进水平。

via Facebook;  雷锋网(公众号:雷锋网)编译

本文作者:杨文

本文转自雷锋网禁止二次转载,原文链接

Facebook推开源软件平台ParlAI,能否解决机器人灵魂缺失问题?相关推荐

  1. 深度解读Facebook刚开源的beringei时序数据库——数据压缩delta of delta+充分利用内存以提高性能...

    转自:https://yq.aliyun.com/topic/58?spm=5176.100239.blogcont69354.9.MLtp4T 摘要: Facebook最近开源了beringei时序 ...

  2. 《安富莱嵌入式周报》第313期:搬运机器人,微软出的C语言手册,开源生物信号采集板,开源SMD回流焊,开源SDR无线电,汽车级机器人评估板

    周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Pow ...

  3. 来客推开源商城与你浅析:B2B2C多商户商城系统

    随着互联网的飞速发展,B2B2C多商户商城系统因为其便捷高效的性能,在这个激烈的市场中始终独树一帜. 那么传统企业在电商互联网的冲击下,想要融合当前市场线上线下的主流渠道,实现自己的利益最大化,又该怎 ...

  4. Facebook这次开源的代码名为“Big Sur”,

    Facebook这次开源的代码名为"Big Sur",是一种易于组装的计算机服务器,可以运行最新的人工智能算法.与一般服务器不同的是,它包含了8个图像处理单元,也就是NVIDIA的 ...

  5. tp5框架实现推送消息到企业微信机器人(从需求分析、方案设计、研发阐述)

    需求 目前需要接入消息推送的模块是任务中心,原因是任务中心是多人协作处理某个特定小组内的所有分析任务,在整个分析的过程中,一个任务的生命周期会经历若干个关键的状态节点, 当分析师或审批人触发了相关动作 ...

  6. facebook最近开源的python图像增强库—Augly

    序言 最近在在github上看到一个很火的仓库:Augly,截止目前已经获得了3600+的标星. Augly是由facebook ai开源的一款用于数据增强的python库,它支持音频.图像.视频.文 ...

  7. 每日一推|开源小程序商城系统推荐!

    1.萤火电商小程序 萤火电商小程序是B2C模式的电子商城,是在Thinkphp5基础上搭建的一个PHP项目,前后端全部开源.Thinkphp5以易学易用著称,同时也方便二次开发,让您快速搭建个性化独立 ...

  8. 来客推开源电商系统部署环境

    官方开发环境:PHP5.6~7.3和Mysql5.5+ 推荐一:宝塔 ( 下载地址 http://www.bt.cn ) 推荐二:phpstudy (下载地址 http://phpstudy.php. ...

  9. 如何利用多传感器融合技术解决机器人可靠定位问题?

    思岚科技CTO黄珏珅认为,要解决机器人的可靠定位,就是要让机器人在未知环境中拥有自主移动的能力. 「在日常生活中,我们对机器人的期望有很多,比如货物搬运.移动销售.购物引导.安保巡逻.家庭清洁--,那 ...

最新文章

  1. 如何在Matlab中获取函数参数的数目?
  2. 软件测试是采用(A)执行软件的活动,测试(Test)测试是一项采用测试用例执行软件的活动,在这.ppt...
  3. (Mark)操作系统原理
  4. 请求的站点不可用或找不到_80%的500强用企业微信,企业越来越找不到拒绝用它的理由...
  5. dart系列之:还在为编码解码而烦恼吗?用dart试试
  6. Ubuntu创始人谈Windows 7、Chrome OS
  7. java.util.Properties
  8. EF Core的一个紧急bug,我这样修改
  9. reg型变量怎么赋值_UiPath变量介绍和使用
  10. 【系统架构设计师】软考高级职称,一次通过,倾尽所有,看完这篇就够了,论软件架构设计的重要性、本篇论文“未通过考试”,供分析参考
  11. Linux学习之用户管理
  12. AsynTask用法
  13. 重走0到100的路,小程序路在何方?
  14. vim编辑时遇到E325: ATTENTION Found a swap file by the name ./.backu.sh.swp错误代码的解决办法
  15. 【Tensorflow2.x】设置GPU(内存自增长、指定GPU)
  16. redis源码编译和调试
  17. 简单实用的数据可视化案例
  18. 推送环境搭建基于开源MPush
  19. 智能家居市场未来发展潜力巨大,未来可期!
  20. 【String-easy】551. Student Attendance Record I 学生迟到和旷课

热门文章

  1. 一个跟jquery serializeArray()一起使用的函数,主要来方便提交表单。
  2. php实现 三角形_PHP使用for循环输出三角形
  3. java队列queue的我觉得很好的使用方式
  4. 点击切换图标方法,jquery bootstrap方法
  5. Mac下Jekyll安装
  6. wpf 客户端【JDAgent桌面助手】开发详解(四) popup控件的win8.0的bug
  7. 控制C++的类只能在堆分配或只能在栈分配
  8. 图像对象paip.Image对象出现“对象当前正在其他地方使用或者GDI+中发生一般性错误的解决...
  9. Kinect深度图像滤波
  10. 一个小时内学习SQLite数据库