英文

FSMT

模型说明

这是一个将 fairseq wmt19 transformer 版本端口到 de-en 的版本。

更多详情请参考 Facebook FAIR's WMT19 News Translation Task Submission

FSMT 是 FairSeqMachineTranslation 的缩写

提供了以下四个模型:

使用和限制

如何使用
from transformers import FSMTForConditionalGeneration, FSMTTokenizer
mname = "facebook/wmt19-de-en"
tokenizer = FSMTTokenizer.from_pretrained(mname)
model = FSMTForConditionalGeneration.from_pretrained(mname)

input = "Maschinelles Lernen ist großartig, oder?"
input_ids = tokenizer.encode(input, return_tensors="pt")
outputs = model.generate(input_ids)
decoded = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(decoded) # Machine learning is great, isn't it?
以及限制和偏差
  • 原始模型(以及此端口模型)似乎无法很好地处理具有重复子短语的输入, content gets truncated

训练数据

预先训练的权重与 fairseq 发布的原始模型保持一致。更多详情,请参考 paper

评估结果

pair fairseq transformers
de-en 12311321 41.35

由于“transformers”目前不支持以下功能,“transformers”实现的得分略低于 fairseq 报告的得分:

  • 模型集合,因此进行了最佳表现的检查点端口( model4.pt )。
  • 重新排序

使用以下代码计算得分:

git clone https://github.com/huggingface/transformers
cd transformers
export PAIR=de-en
export DATA_DIR=data/$PAIR
export SAVE_DIR=data/$PAIR
export BS=8
export NUM_BEAMS=15
mkdir -p $DATA_DIR
sacrebleu -t wmt19 -l $PAIR --echo src > $DATA_DIR/val.source
sacrebleu -t wmt19 -l $PAIR --echo ref > $DATA_DIR/val.target
echo $PAIR
PYTHONPATH="src:examples/seq2seq" python examples/seq2seq/run_eval.py facebook/wmt19-$PAIR $DATA_DIR/val.source $SAVE_DIR/test_translations.txt --reference_path $DATA_DIR/val.target --score_path $SAVE_DIR/test_bleu.json --bs $BS --task translation --num_beams $NUM_BEAMS

注意:fairseq 使用的是 beam=50,所以如果重新运行并带上参数 --num_beams 50 ,得分应该会稍高一些。

数据来源

BibTeX 输入和引用信息

@inproceedings{...,
  year={2020},
  title={Facebook FAIR's WMT19 News Translation Task Submission},
  author={Ng, Nathan and Yee, Kyra and Baevski, Alexei and Ott, Myle and Auli, Michael and Edunov, Sergey},
  booktitle={Proc. of WMT},
}

TODO

  • 端口模型集合(fairseq 使用了4个模型检查点)