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)