|
| 1 | +# Simple and Effective Noisy Channel Modeling for Neural Machine Translation (Yee et al., 2019) |
| 2 | +This page contains pointers to pre-trained models as well as instructions on how to run the reranking scripts. |
| 3 | + |
| 4 | +## Citation: |
| 5 | +```bibtex |
| 6 | +@inproceedings{yee2018simple, |
| 7 | + title = {Simple and Effective Noisy Channel Modeling for Neural Machine Translation}, |
| 8 | + author = {Kyra Yee and Yann Dauphin and Michael Auli}, |
| 9 | + booktitle = {Conference on Empirical Methods in Natural Language Processing}, |
| 10 | + year = {2019}, |
| 11 | +} |
| 12 | +``` |
| 13 | + |
| 14 | +## Pre-trained Models: |
| 15 | + |
| 16 | +Model | Description | Download |
| 17 | +---|---|--- |
| 18 | +`transformer.noisychannel.de-en` | De->En Forward Model | [download (.tar.gz)](https://dl.fbaipublicfiles.com/fairseq/models/noisychannel/forward_de2en.tar.bz2) |
| 19 | +`transformer.noisychannel.en-de` | En->De Channel Model | [download (.tar.gz)](https://dl.fbaipublicfiles.com/fairseq/models/noisychannel/backward_en2de.tar.bz2) |
| 20 | +`transformer_lm.noisychannel.en` | En Language model | [download (.tar.gz)](https://dl.fbaipublicfiles.com/fairseq/models/noisychannel/reranking_en_lm.tar.bz2) |
| 21 | + |
| 22 | +Test Data: [newstest_wmt17](https://dl.fbaipublicfiles.com/fairseq/models/noisychannel/wmt17test.tar.bz2) |
| 23 | + |
| 24 | +## Example usage |
| 25 | + |
| 26 | +``` |
| 27 | +mkdir rerank_example |
| 28 | +curl https://dl.fbaipublicfiles.com/fairseq/models/noisychannel/forward_de2en.tar.bz2 | tar xvjf - -C rerank_example |
| 29 | +curl https://dl.fbaipublicfiles.com/fairseq/models/noisychannel/backward_en2de.tar.bz2 | tar xvjf - -C rerank_example |
| 30 | +curl https://dl.fbaipublicfiles.com/fairseq/models/noisychannel/reranking_en_lm.tar.bz2 | tar xvjf - -C rerank_example |
| 31 | +curl https://dl.fbaipublicfiles.com/fairseq/models/noisychannel/wmt17test.tar.bz2 | tar xvjf - -C rerank_example |
| 32 | +
|
| 33 | +beam=50 |
| 34 | +num_trials=1000 |
| 35 | +fw_name=fw_model_ex |
| 36 | +bw_name=bw_model_ex |
| 37 | +lm_name=lm_ex |
| 38 | +data_dir=rerank_example/hyphen-splitting-mixed-case-wmt17test-wmt14bpe |
| 39 | +data_dir_name=wmt17 |
| 40 | +lm=rerank_example/lm/checkpoint_best.pt |
| 41 | +lm_bpe_code=rerank_example/lm/bpe32k.code |
| 42 | +lm_dict=rerank_example/lm/dict.txt |
| 43 | +batch_size=32 |
| 44 | +bw=rerank_example/backward_en2de.pt |
| 45 | +fw=rerank_example/forward_de2en.pt |
| 46 | +
|
| 47 | +# reranking with P(T|S) P(S|T) and P(T) |
| 48 | +python examples/noisychannel/rerank_tune.py $data_dir --tune-param lenpen weight1 weight3 \ |
| 49 | + --lower-bound 0 0 0 --upper-bound 3 3 3 --data-dir-name $data_dir_name \ |
| 50 | + --num-trials $num_trials --source-lang de --target-lang en --gen-model $fw \ |
| 51 | + -n $beam --batch-size $batch_size --score-model2 $fw --score-model1 $bw \ |
| 52 | + --backwards1 --weight2 1 \ |
| 53 | + -lm $lm --lm-dict $lm_dict --lm-name en_newscrawl --lm-bpe-code $lm_bpe_code \ |
| 54 | + --model2-name $fw_name --model1-name $bw_name --gen-model-name $fw_name |
| 55 | +
|
| 56 | +# reranking with P(T|S) and P(T) |
| 57 | +python examples/noisychannel/rerank_tune.py $data_dir --tune-param lenpen weight3 \ |
| 58 | + --lower-bound 0 0 --upper-bound 3 3 --data-dir-name $data_dir_name \ |
| 59 | + --num-trials $num_trials --source-lang de --target-lang en --gen-model $fw \ |
| 60 | + -n $beam --batch-size $batch_size --score-model1 $fw \ |
| 61 | + -lm $lm --lm-dict $lm_dict --lm-name en_newscrawl --lm-bpe-code $lm_bpe_code \ |
| 62 | + --model1-name $fw_name --gen-model-name $fw_name |
| 63 | +
|
| 64 | +# to run with a preconfigured set of hyperparameters for the lenpen and model weights, using rerank.py instead. |
| 65 | +python examples/noisychannel/rerank.py $data_dir \ |
| 66 | + --lenpen 0.269 --weight1 1 --weight2 0.929 --weight3 0.831 \ |
| 67 | + --data-dir-name $data_dir_name --source-lang de --target-lang en --gen-model $fw \ |
| 68 | + -n $beam --batch-size $batch_size --score-model2 $fw --score-model1 $bw --backwards1 \ |
| 69 | + -lm $lm --lm-dict $lm_dict --lm-name en_newscrawl --lm-bpe-code $lm_bpe_code \ |
| 70 | + --model2-name $fw_name --model1-name $bw_name --gen-model-name $fw_name |
| 71 | +``` |
| 72 | + |
0 commit comments