ParlAI - 用于在各种公开可用的对话数据集上训练和评估 AI 模型的框架

Created at: 2017-04-25 01:10:44
Language: Python
License: MIT

CircleCI CircleCI 覆盖 GitHub 贡献者 唽


ParlAI(发音为“par-lay”)是一个python框架,用于共享,训练和测试对话模型,从开放域chitchat到面向任务的对话,再到视觉问答。

其目标是为研究人员提供:

ParlAI在以下论文中进行了描述:“ParlAI:A Dialog Research Software Platform”,arXiv:1705.06476或查看这些更新的幻灯片

Twitter上关注我们,查看我们的发行说明,以查看有关新功能和更新的最新信息,以及网站 http://parl.ai 以获取更多文档。有关更新的存档列表,请查看 NEWS.md

互动教程

对于那些现在想开始使用ParlAI的人,你可以尝试我们的Colab教程

安装 ParlAI

ParlAI目前需要Python3.8 +和Pytorch 1.6或更高版本。核心模块的依赖项在要求.txt中列出。包含的某些模型(在 parlai/代理中)有其他要求。我们强烈建议你在 venvconda 环境中安装 ParlAI。

我们目前不支持Windows,但许多用户报告使用Python 3.8在Windows上取得了成功,并且Python 3.9存在问题。我们很高兴接受改进 Windows 支持的修补程序。

标准安装

如果你想在不进行任何修改的情况下使用ParlAI,则可以通过以下方式安装它:

pip install parlai

开发安装

许多用户希望修改ParlAI的某些部分。要设置开发环境,请运行以下命令克隆存储库并安装 ParlAI:

git clone https://github.com/facebookresearch/ParlAI.git ~/ParlAI
cd ~/ParlAI; python setup.py develop

所有需要的数据都将下载到 。如果你需要清除这些文件使用的空间,则可以安全地删除这些目录,并且将再次下载所需的任何文件。

~/ParlAI/data

文档

例子

parlai/scripts 中可以找到大量脚本。以下是其中的一些。注意:如果这些示例中的任何一个失败,请检查安装部分以查看是否遗漏了某些内容。

显示 SQuAD 任务中的 10 个随机示例

parlai display_data -t squad

在 Personachat 任务的验证集上评估 IR 基线模型:

parlai eval_model -m ir_baseline -t personachat -dt valid

在PersonaChat上训练单层转换器(需要pytorch和torch文本)。详细信息:嵌入大小 300,4 个注意力头,2 个使用 batchsize 64 的 epoch,使用 fasttext 初始化单词向量,批处理的其他元素在训练期间用作负数。

parlai train_model -t personachat -m transformer/ranker -mf /tmp/model_tr6 --n-layers 1 --embedding-size 300 --ffn-size 600 --n-heads 4 --num-epochs 2 -veps 0.25 -bs 64 -lr 0.001 --dropout 0.1 --embedding-type fasttext_cc --candidates batch

代码组织

该代码被设置成几个主目录:

  • core:包含框架的主要代码
  • 代理:包含可以与不同任务交互的代理(例如机器学习模型)
  • 脚本:包含许多有用的脚本,如训练,评估,交互式聊天,...
  • 任务:包含 ParlAI 中可用的不同任务的代码
  • mturk:包含用于设置 Mechanical Turk 的代码,以及 MTurk 任务示例
  • 信使:包含用于与Facebook Messenger接口的代码
  • 实用程序:包含大量常用的实用程序方法
  • 众包:包含用于运行众包任务的代码,例如在 Amazon Mechanical Turk 上
  • chat_service:包含用于与 Facebook Messenger 等服务接口的代码
  • zoo:包含从我们的模型 zoo 直接下载和使用预训练模型的代码

支持

如果你有任何疑问,错误报告或功能请求,请随时在我们的Github问题页面上发布。你可能还有兴趣查看我们的常见问题解答和我们的提示和技巧

请记得遵守我们的行为准则

贡献

我们欢迎来自社区的公关!

你可以在我们的贡献文档中找到有关向ParlAI做出贡献的信息。

团队

ParlAI目前由Moya Chen,Emily Dinan,Dexter Ju,Mojtaba Komeili,Spencer Poff,Pratik Ringshia,Stephen Roller,Kurt Shuster,Eric Michael Smith,Megan Ung,Jack Urbanek,Jason Weston,Mary Williamson和Jing Xu维护。Kurt Shuster是现任技术主管。

前主要贡献者和维护者包括Alexander H. Miller,Margaret Li,Will Feng,Adam Fisch,Jiasen Lu,Antoine Bordes,Devi Parikh,Dhruv Batra,Filipe de Avila Belbute Peres,Chao Pan和Vedant Puri。

引文

如果你在工作中使用ParlAI,请引用arXiv论文

@article{miller2017parlai,
  title={ParlAI: A Dialog Research Software Platform},
  author={{Miller}, A.~H. and {Feng}, W. and {Fisch}, A. and {Lu}, J. and {Batra}, D. and {Bordes}, A. and {Parikh}, D. and {Weston}, J.},
  journal={arXiv preprint arXiv:{1705.06476}},
  year={2017}
}

许可证

ParlAI已获得 MIT 的许可。有关详细信息,请参阅许可证文件。