ParlAI 学习记录(一):安装及demo上手

本文介绍Facebook开源的ParlAI框架,一个用于训练和评估对话模型的平台,涵盖主流对话数据集和模型,如Transformer系列。文章提供快速上手指南,包括安装步骤和示例演示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ParlAI 学习记录(一)

1、parl.ai简介

网站地址: https://parl.ai/
github: https://github.com/facebookresearch/ParlAI
doc: https://parl.ai/docs/index.html

相关中文介绍:机器之心新闻报道

ParlAI是 Facebook 开源的一个可用于在多种开放可用的对话数据集上训练和评估人工智能模型的框架。一个统一的分享、训练和评估对话模型的平台,支持各种对话任务。

特色:

  1. 包含所有主流的对话数据集,从开放域闲聊到可视化问答应有尽有;
  2. 一系列现成的模型供你参考使用,从抽取式基线模型到Transformer系列;
  3. 无缝集成了亚马逊的Amazon Mechanical Turk平台,用于数据收集、模型训练和人工评估。

2、快速上手

2.1 安装

parlai使用python3开发的,Linux 环境,安装过程超级简单。

step 1: 将parlai克隆到你的主目录下;

git clone https://github.com/facebookresearch/ParlAI.git ~/ParlAI

step 2: 进入parlai目录,执行安装脚本,需要等待几分钟;

cd ~/ParlAI; python setup.py develop

安装过程就搞定了,so easy 吧。

注意:一些模型需要额外的依赖包,比如说pytorch,需要自行安装。

2.2 跑跑demo熟悉一下

demo1 : 展示 bAbi任务1的一些例子。不要问bAbi任务是什么,干就完事了。

# display examples from bAbI 10k task 1
python examples/display_data.py -t babi:task10k:1

解释:parlai框架都是用这种带参数的命令行方式来训练模型的。-t表示指定task

结果:输出的数据也很简单,就是两个陈述句,A去哪里了,B去哪里了。最后问A或者B在哪。考察机器的记忆能力。

demo2 : train一个模型试试。MemNN即 Memory Network,记忆网络。

# train MemNN using batch size 1 and 4 threads for 5 epochs
python examples/train_model.py -t babi:task10k:1 -mf /tmp/babi_memnn -bs 1 -nt 4 -eps 5 -m memnn --no-cuda

解释:parlai框架都是用这种带参数的命令行方式来训练模型的。-t表示指定task-mf表示model_file-bs表示batch_size-nt表示numthreads-eps表示num-epochs-m表示model,这个参数的值是memnn表示memory network,记忆网络。

结果:训练完成后,出现一堆数据,表示模型在测试集上的性能,我这里的accuracy很低,才0.1990。

demo3 : 用刚才训练好的模型预测一个试试,看看管不管用。

# display predictions for model save at specified file on bAbI task 1
python examples/display_model.py -t babi:task10k:1 -mf /tmp/babi_memnn -ecands vocab

解释:-t-mf意思和之前一样,-ecands表示eval-candidates,即候选词的形式,这个参数也几种选项,分别是’batch’, ‘inline’, ‘fixed’, ‘vocab’, ‘batch-all-cands’。vocab表示从词汇表里选。

结果:由于之前训练得到的模型训练效果比较差,所以预测时也是牛头不对马嘴。eval_labels给的答案是hallway,模型 的预测结果是to,我醉了。如果模型训的好,[eval_labels] 和 [Memnn] 的结果应该是一致的才对。

[babi:task10k:1]: John went to the bedroom.
John travelled to the office.
Where is Daniel?
[label_candidates]: kitchen|office|bedroom|garden|bathroom|... (5 of 6 shown)
[eval_labels]: hallway
   [Memnn]: to

demo4 : 我们自己弄一个句子问问模型,看看它能不能答上来。

# interact with saved model
python examples/interactive.py -mf /tmp/babi_memnn -ecands vocab
...
Enter your message: John went to the hallway.\n Where is John?
[Memnn]: bathroom

解释:这里执行的是交互式问答。

结果:不出所料,模型还是猜错了,应该是hallway,却回答的是bathroom。

Tips: 其实上面训练模型时,epoch的参数是5,如果多训几轮,比如10,accuracy就能达到0.9,效果就会好很多了,不过需要先把tmp目录下的两个模型文件(/tmp/babi_memnn、/tmp/babi_memnn.dict)删除才行。

小伙伴可以自己试一下,下期见。

获取更多深度学习干货,欢迎关注我的公众号:AI分享者。笔芯。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值