WMT 21 X-En 是一个 47 亿参数的多语言编码器 - 解码器(序列到序列)模型,专为一对多多语言翻译任务训练而成。 该模型在这篇论文中被首次提出,并在此代码库中首次发布。
该模型能够直接将以下 7 种语言的文本翻译成英语:豪萨语(ha)、冰岛语(is)、日语(ja)、捷克语(cs)、俄语(ru)、中文(zh)、德语(de)。
要将文本翻译成目标语言,需将目标语言 id 强制设为生成的第一个 token。
若要将目标语言 id 强制设为生成的第一个 token,请在 generate 方法中传入 forced_bos_token_id 参数。
注意:M2M100Tokenizer 依赖于 sentencepiece,因此在运行示例前请确保已安装它。
安装 sentencepiece 请运行 pip install sentencepiece
由于该模型是使用领域标签进行训练的,因此您也应该在输入文本前添加这些标签。
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
model = AutoModelForSeq2SeqLM.from_pretrained("facebook/wmt21-dense-24-wide-x-en")
tokenizer = AutoTokenizer.from_pretrained("facebook/wmt21-dense-24-wide-x-en")
# translate German to English
tokenizer.src_lang = "de"
inputs = tokenizer("wmtdata newsdomain Ein Modell für viele Sprachen", return_tensors="pt")
generated_tokens = model.generate(**inputs)
tokenizer.batch_decode(generated_tokens, skip_special_tokens=True)
# => "A model for many languages"
# translate Icelandic to English
tokenizer.src_lang = "is"
inputs = tokenizer("wmtdata newsdomain Ein fyrirmynd fyrir mörg tungumál", return_tensors="pt")
generated_tokens = model.generate(**inputs)
tokenizer.batch_decode(generated_tokens, skip_special_tokens=True)
# => "One model for many languages"请参阅 模型中心 以查找更多微调版本。
英语(en)、豪萨语(ha)、冰岛语(is)、日语(ja)、捷克语(cs)、俄语(ru)、中文(zh)、德语(de)
@inproceedings{tran2021facebook
title={Facebook AI’s WMT21 News Translation Task Submission},
author={Chau Tran and Shruti Bhosale and James Cross and Philipp Koehn and Sergey Edunov and Angela Fan},
booktitle={Proc. of WMT},
year={2021},
}