fireseq上手——英德机器翻译|使用colab
一步一步跟着来就能够跑通英德机器翻译
1.安装
!git clone .git
cd fairseq
!pip install --editable ./
查看fairseq版本(0.12.2)
!python -c "import fairseq;print(fairseq.__version__)"
fairseq文件夹添加到python路径
import os
os.environ['PYTHONPATH'] += ":/content/fairseq/"
2.数据准备
以交互方式试用shell指令 ,想要退出输入exit即可
!bash
然后在shell指令中输入
cd examples/translation/
这一步是在准备数据,“prepare-iwslt14.sh”是一个下载IWSLT 14 英语和德语的平行数据,并进行分词、BPE等操作的脚本
bash prepare-iwslt14.sh
执行完毕后会在fairseq/examples/translation下出现如下目录结构
最后输入exit退出shell
3. 文本数据转换为二进制的文件
当前默认是在fairseq根目录下,先进入到examples/translation/中,使用如下代码
cd examples/translation/
下面是转换为二进制的命令
!fairseq-preprocess --source-lang de --target-lang en \--trainpref iwslt14.tokenized.de-en/train \--validpref iwslt14.tokenized.de-en/valid \--testpref iwslt14.tokenized.de-en/test
转换完成后再translation下出现data-bin文件夹
4.训练
!fairseq-train data-bin --arch transformer_iwslt_de_en \--max-tokens 4096 --max-update 30000 \--optimizer adam --lr-scheduler inverse_sqrt --lr 0.0007 \--criterion label_smoothed_cross_entropy --label-smoothing 0.1 \--no-progress-bar --save-interval-updates 1000
会自动生成checkpoint文件夹用来保存生成的模型,会有一个“checkpoint_best.pt”这个文件用于后续生成翻译结果。
5.生成翻译结果
!fairseq-generate data-bin --path checkpoints/checkpoint_best.pt --remove-bpe
包含bleu值之类的
参考FaceBook-NLP工具Fairseq漫游指南(1)—命令行工具 - 知乎 (zhihu)
发布评论