基于上下文的transformer入门实战
这篇文章大概就是类似于 THUNLP-MT/Document-Transformer 的用户手册吧。
跑一个英->中的模型。
目录:
- 语料库下载:http://data.statmt.org/wmt18/translation-task/training-parallel-nc-v13.tgz
- BPE编码
- 利用句子级平行语料及文档级平行语料训练得到了基本的transformer模型;这里我使用的是之前训练好的t2t里面的transformer。
- 使用文档级平行语料训练一个虚拟的context_transformer模型;
- 将第一步得到的基本transformer模型merge到第二步的虚拟模型中,以初始化context模型;
- 训练context模型。
2,BPE编码
下载BPE工具包:https://github.com/rsennrich/subword-nmt.git ,进入subword_nmt目录,创建data文件夹,把语料库放入data文件夹,执行以下命令
python learn_joint_bpe_and_vocab.py --input data/train.en data/train.zh -s 32000 -o bpe32k --write-vocabulary data/vocab.en data/vocab.zh
python subword-nmt/apply_bpe.py --vocabulary data/vocab.en --vocabulary-threshold 50 -c bpe32k < data/train.en > data/corpus.32k.en
python subword-nmt/apply_bpe.py --vocabulary data/vocab.zh --vocabulary-threshold 50 -c bpe32k < data/train.zh > corpus.32k.zh
最后data文件的目录如图所示