基於上下文的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文件的目錄如圖所示