社会焦点

资源 | Facebook开源人工智能框架ParlAI:可轻松训练评估对话模型(3)

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

在 ParlAI 中选择一个任务非常简单,只需要在命令行中指定它既可,如上图(右)所示。如果该数据集之前没有被使用过,那 ParlAI 将会自动下载它。因为在 ParlAI 中,所有的数据集的处理方式都是一样的(使用单个对

  资源 | Facebook开源人工智能框架ParlAI:可轻松训练评估对话模型

在 ParlAI 中选择一个任务非常简单,只需要在命令行中指定它既可,如上图(右)所示。如果该数据集之前没有被使用过,那 ParlAI 将会自动下载它。因为在 ParlAI 中,所有的数据集的处理方式都是一样的(使用单个对话 API),所以原则上一个对话代理可以在这些数据集之间切换训练和测试。还不止于此,你可以简单地通过提供一个逗号分隔的列表来一次性指定许多任务(多任务),比如命令「-t babi,squad」可以使用这两个数据集,甚至还可以使用「-t #qa」命令一次性指定所有的 QA 数据集或使用「-t #all」一次性指定 ParlAI 中的每一个任务。我们的目标是使其可以轻松地创建和评估非常丰富的对话模型。

每个任务文件夹包含:

  • build.py 文件,用于设置任务的数据(下载数据等,仅在第一次请求时完成,如果某个任务从未被使用,那么就不会下载它)。

  • agents.py 文件,包含了默认的或特定的教师(teacher)类别,可被 core.create_task 用来从命令行参数上实例化这些类别(如有需要)。

  • worlds.py 文件,是可选的,可用于需要定义新环境或复杂环境的任务。

  • 要添加你自己的任务:

  • (可选)实现 build.py 以下载任何所需的数据

  • 实现 agents.py,至少包含一个 DefaultTeacher(扩展 Teacher 或它的一个衍生)

  • 如果你的数据是 FB Dialog 格式的,那么属于 FbDialogTeacher 类别

  • 如果不是 FB Dialog 格式:

  • 如果你的数据是基于文本的,你可以使用扩展的 DialogTeacher,并因此要使用 core.data.TextData,在这种情况下,你仅需要编写你自己的 setup_data 函数,其可根据在 core.data 中所描述的格式而在数据之上提供一个 iterable.

  • 如果你的数据使用了其它字段,那么就要编写你自己的 act() 方法,其提供了当你的任务每次被调用时的观察。

  • MTurk

    ParlAI 的一个重要方面是与 Mechanical Turk 的无缝集成,可用于数据收集、训练和评估。在 ParlAI 中,人类 Turker 也被视为代理(agent),因此在一个标准的框架中可以进行人-人、人-bot、多人和多 bot 群聊等形式的对话,也可以按照需求切换角色,而无需对代理的代码进行修改。这是因为 Turker 也可以使用观察/动作(observation/action)词典中的字段来通过同样接口的一个版本进行接收和发送。我们在这第一版中提供了两个示例——收集数据和人类对 bot 的评估。

    转载请注明出处。


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

    相关文章
    • 案例 | 抑郁症、精神分裂,初中生家境优渥,父母为何不让吃药

      案例 | 抑郁症、精神分裂,初中生家境优渥,父母为何不让吃药

    • 实录 |12名女大学生被侵犯,色魔竟然是个老乞丐

      实录 |12名女大学生被侵犯,色魔竟然是个老乞丐

    • 微信群的多人语音和视频聊天功能,你要试试 | 有轻功 #081

      微信群的多人语音和视频聊天功能,你要试试 | 有轻功 #081

    • 为了不让你坐过站,香港人居然做了这款 App | AppWall 精选 #060

      为了不让你坐过站,香港人居然做了这款 App | AppWall 精选 #060