Github: https://github.com/artetxem/undreamt
UNdreaMT:教師なし学習機械翻訳
これは、以下の論文で説明されている、教師なしの神経機械翻訳システムのオープンソースの実装です。
Mikel Artetxe、Gorka Labaka、Eneko Agirre、およびCho Kyunghun。 教師なしの神経機械翻訳 。 第6回国際学習表現会議の議事録(ICLR2018) 。
このソフトウェアを学術研究に使用する場合は、問題の論文を引用してください:
@inproceedings{artetxe2018iclr,
author = {Artetxe, Mikel and Labaka, Gorka and Agirre, Eneko and Cho, Kyunghyun},
title = {Unsupervised neural machine translation},
booktitle = {Proceedings of the Sixth International Conference on Learning Representations},
month = {April},
year = {2018}
}
要件
- Python 3
- PyTorch(v0.3でテスト済み)
使用法
次のコマンドは、紙で説明されているのとまったく同じ設定を使用して、単一言語のコーパスから監督されていないNMTシステムを訓練します。
python3 train.py --src SRC.MONO.TXT --trg TRG.MONO.TXT --src_embeddings SRC.EMB.TXT --trg_embeddings TRG.EMB.TXT --save MODEL_PREFIX --cuda
上記のコマンドのデータは、次のように指定する必要があります。
-
SRC.MONO.TXT
およびTRG.MONO.TXT
は、ソースおよびターゲット言語の単一言語コーパスです。 両方とも、あらかじめ処理されていなければならないので、原子記号(トークンまたはBPE単位のいずれか)は空白で区切られます。 そのために、BPEを使用する場合は、 Mosesを使用してコーパスをトークン化およびトリケートし、必要に応じてSubword-NMTを使用することをお勧めします。 -
SRC.EMB.TXT
およびTRG.EMB.TXT
は、ソースおよびターゲット言語のクロスリンガルの埋め込みです。 これらを得るには、上のコーパスにword2vecまたはfasttextのいずれかを使用して単一言語の埋め込みを訓練し、 VecMapを使用してそれらを共有スペースにマップすることをお勧めします。 埋め込みをマッピングする前に、必要に応じてボキャブラリを切り捨ててください。 -
MODEL_PREFIX
は、出力モデルの接頭辞です。
上記の設定を使用すると、トレーニングは1台のTitan XPで約3日間かかります。 トレーニングが完了したら、結果のモデルを次のように使用することができます。
python3 translate.py MODEL_PREFIX.final.src2trg.pth < INPUT.TXT > OUTPUT.TXT
詳細と追加オプションについては、上記のスクリプトを--help
フラグとともに実行してください。
よくある質問
あなたは、監督されていないNMTシステムが単言語コーパスだけで訓練されていると主張しますが、バイリンガルの埋め込みも必要です…それは不正ではありませんか?
実際には、単言語コーパスのみからのバイリンガルの埋め込みも学ぶからです。 コンパニオンツールVecMapを使用しています。
パラレルコーパス上の通常のNMTシステムをトレーニングするためにこのソフトウェアを使用できますか?
はい! UNdreaMTを通常のNMTシステムのように動作させるには、次の引数を使用できます。
python3 train.py --src2trg SRC.PARALLEL.TXT TRG.PARALLEL.TXT --src_vocabulary SRC.VOCAB.TXT --trg_vocabulary TRG.VOCAB.TXT --embedding_size 300 --learn_encoder_embeddings --disable_denoising --save MODEL_PREFIX --cuda
ライセンス
Copyright(C)2018、Mikel Artetxe
GNU一般公衆利用許諾契約書の条件に基づいて、バージョン3または(あなたの選択により)それ以降のバージョンのいずれかでライセンスされます。 ライセンスの完全コピーは、LICENSE.txtにあります。