M2M100 是一个多语言编码器-解码器(序列到序列)模型,专为多对多语言翻译任务训练。 该模型在这篇论文中被首次提出,并在此代码库中首次发布。
该模型能够直接在 100 种语言的 9,900 个翻译方向之间进行转换。
要将文本翻译成目标语言,需将目标语言 id 强制设为生成的第一个 token。
若要将目标语言 id 强制设为生成的第一个 token,请在 generate 方法中传入 forced_bos_token_id 参数。
注意:M2M100Tokenizer 依赖于 sentencepiece,因此在运行示例前请确保已安装该库。
安装 sentencepiece 请运行 pip install sentencepiece
from transformers import M2M100ForConditionalGeneration, M2M100Tokenizer
hi_text = "जीवन एक चॉकलेट बॉक्स की तरह है।"
chinese_text = "生活就像一盒巧克力。"
model = M2M100ForConditionalGeneration.from_pretrained("facebook/m2m100-12B-last-ckpt")
tokenizer = M2M100Tokenizer.from_pretrained("facebook/m2m100-12B-last-ckpt")
# translate Hindi to French
tokenizer.src_lang = "hi"
encoded_hi = tokenizer(hi_text, return_tensors="pt")
generated_tokens = model.generate(**encoded_hi, forced_bos_token_id=tokenizer.get_lang_id("fr"))
tokenizer.batch_decode(generated_tokens, skip_special_tokens=True)
# => "La vie est comme une boîte de chocolat."
# translate Chinese to English
tokenizer.src_lang = "zh"
encoded_zh = tokenizer(chinese_text, return_tensors="pt")
generated_tokens = model.generate(**encoded_zh, forced_bos_token_id=tokenizer.get_lang_id("en"))
tokenizer.batch_decode(generated_tokens, skip_special_tokens=True)
# => "Life is like a box of chocolate."请查看 模型中心 以获取更多微调版本。
南非荷兰语(af)、阿姆哈拉语(am)、阿拉伯语(ar)、阿斯图里亚斯语(ast)、阿塞拜疆语(az)、巴什基尔语(ba)、白俄罗斯语(be)、保加利亚语(bg)、孟加拉语(bn)、布列塔尼语(br)、波斯尼亚语(bs)、加泰罗尼亚语;巴伦西亚语(ca)、宿务语(ceb)、捷克语(cs)、威尔士语(cy)、丹麦语(da)、德语(de)、希腊语(el)、英语(en)、西班牙语(es)、爱沙尼亚语(et)、波斯语(fa)、富拉语(ff)、芬兰语(fi)、法语(fr)、西弗里斯语(fy)、爱尔兰语(ga)、盖尔语;苏格兰盖尔语(gd)、加利西亚语(gl)、古吉拉特语(gu)、豪萨语(ha)、希伯来语(he)、印地语(hi)、克罗地亚语(hr)、海地语;海地克里奥尔语(ht)、匈牙利语(hu)、亚美尼亚语(hy)、印度尼西亚语(id)、伊博语(ig)、伊洛卡诺语(ilo)、冰岛语(is)、意大利语(it)、日语(ja)、爪哇语(jv)、格鲁吉亚语(ka)、哈萨克语(kk)、高棉语(km)、卡纳达语(kn)、韩语(ko)、卢森堡语(lb)、干达语(lg)、林加拉语(ln)、老挝语(lo)、立陶宛语(lt)、拉脱维亚语(lv)、马达加斯加语(mg)、马其顿语(mk)、马拉雅拉姆语(ml)、蒙古语(mn)、马拉地语(mr)、马来语(ms)、缅甸语(my)、尼泊尔语(ne)、荷兰语;弗拉芒语(nl)、挪威语(no)、北索托语(ns)、奥克语(1500年后)(oc)、奥里亚语(or)、旁遮普语(pa)、波兰语(pl)、普什图语(ps)、葡萄牙语(pt)、罗马尼亚语;摩尔达维亚语;摩尔多瓦语(ro)、俄语(ru)、信德语(sd)、僧伽罗语(si)、斯洛伐克语(sk)、斯洛文尼亚语(sl)、索马里语(so)、阿尔巴尼亚语(sq)、塞尔维亚语(sr)、斯威士语(ss)、巽他语(su)、瑞典语(sv)、斯瓦希里语(sw)、泰米尔语(ta)、泰语(th)、他加禄语(tl)、茨瓦纳语(tn)、土耳其语(tr)、乌克兰语(uk)、乌尔都语(ur)、乌兹别克语(uz)、越南语(vi)、沃洛夫语(wo)、科萨语(xh)、意第绪语(yi)、约鲁巴语(yo)、中文(zh)、祖鲁语(zu)
@misc{fan2020englishcentric,
title={Beyond English-Centric Multilingual Machine Translation},
author={Angela Fan and Shruti Bhosale and Holger Schwenk and Zhiyi Ma and Ahmed El-Kishky and Siddharth Goyal and Mandeep Baines and Onur Celebi and Guillaume Wenzek and Vishrav Chaudhary and Naman Goyal and Tom Birch and Vitaliy Liptchinsky and Sergey Edunov and Edouard Grave and Michael Auli and Armand Joulin},
year={2020},
eprint={2010.11125},
archivePrefix={arXiv},
primaryClass={cs.CL}
}