MultiTaskTeacher:它创造了一个基于「任务字符串」的 teacher 集,该集可以传递给 Teacher。在其中它创建了多个 teacher 并且在它们之间交替轮换。 create_task_teacher:它从一段给定的任务字符串中实例化了一个 teacher(比如「babi:task:1」或「squad」)。 build_data.py:用于设置任务数据的基本功能。如果你的文件系统需要不同的功能,你可以覆盖它。 dialog_teacher.py:包含了用于和固定交谈(chat)日志进行对话(dialog)的一个基本 teacher 类,同时它也包含了一个用于储存数据的数据类(data class)。 dict.py:包含了从观察中构建一般 NLP 风格字典的代码。 DictionaryAgent:在一个字典中跟踪索引和词频的 agent,可以将一个句子解析成它字典或 back 中的指数(indice)。 fbdialog_teacher.py:包含了一个 teacher 类,该类实现了一个 setup_data 函数,这个函数用 Facebook 的 Dialog 数据格式来解析数据。 metrics.py:计算对话的评价量度,比如对排名的量度等。 params.py:用 argparse 来为 ParlAI 解释命令行 argument。 thread_utils.py:用于 Hogwild 多线程(多重处理)的工具类/函数。 SharedTable:提供一个锁保护、记忆分享、类字典的用于追踪度量的的界面。 worlds.py:包含了一套用于内部开展任务的基本 world。 World:所有 world 的基本类,实现了 parley,shutdown,__enter__,和__exit__。 DialogPartnerWorld:用于双 agent 回合交流的默认 world。 MultiAgentDialogWorld:用于两到多个 agent 的循环(round-robin)回合 agent 交流。 HogwildWorld:当使用多线程(多重处理)时。这是用于设置一个对每个线程而言分别独立的 world 的默认 world。 Agents 目录 agents 目录包含了已被认可进入 ParlAI 框架用于分享的 agent。目前有这些可用的目录: drqa:这是一个很周全的 LSTM 模型,它叫「DrQA」(问答博士,论文地址:https://arxiv.org/abs/1704.00051)。它用 PyTorch 框架实现,在 SQuAD 数据集上,j2直播,它得到的结果相比其它模型更具竞争力。 memnn:它是在 Lua Torch 中用于端到端记忆网络的代码。 remote_agent:连接 ZMQ 的任意 agent 的基本类(memnn_luatorch_cpu 就使用这个)。 ir_baseline:简单的信息检索基准(baseline),它用 TFIDF-权重匹配为候选者的反馈评分。 repeat_label:仅重复(repeating)发送给它的所有数据的基本类(如连接(piping)到一个文件、调试)。 实例 这个目录包含了部分基本循环的具体例子。 base_train.py:一个非常简单的例子,展示了一个使用默认 Agent 亲本类的训练/验证循环的轮廓。 display_data.py:使用 agent.repeat_label 来显示来命令行给出的特定任务的数据。 display_model.py:显示对一个给定模型在命令行给出的特定任务之上的预测。 eval_model.py:使用命名后的 agent 来计算一个命令行给出的特定任务的评价量度(evaluation metric)数据。 build_dict.py:使用 core.dict.DictionaryAgent 建立一个来自命令行给出的特定任务的 dictionary。 memnn_luatorch_cpu:展示了一些在几个数据集上训练端到端记忆网络的例子。 drqa:展示了如何在 SQuAD 训练集上训练一个周全的 LSTM「DrQA」模型(论文地址:https://arxiv.org/abs/1704.00051)。 任务 这个第一版本支持超过 20 种任务,包括 SQuAD、bAbI tasks、MCTest、WikiQA、WebQuestions、SimpleQuestions、WikiMovies、QACNN、QADailyMail、CBT、BookTest、bAbI Dialog tasks、Ubuntu、OpenSubtitles、Cornell Movie 和 VQA-COCO2014 等流行的数据集。 我们的第一版包含以下数据集,见下图左栏;获取它们也非常简单,只需在命令行的选项中指定对应任务的名称即可,如右栏的数据集展示实用程序所示。查阅当前完整任务列表请访问:https://github.com/facebookresearch/ParlAI/blob/master/parlai/tasks/task_list.py (责任编辑:本港台直播) |