M2M100 is a multilingual encoder-decoder (seq-to-seq) model trained for Many-to-Many multilingual translation. It was introduced in this paper and first released in this repository.
Model Card
By AI at Meta, published under mit, revision 7b3618418052.
M2M100 is a multilingual encoder-decoder (seq-to-seq) model trained for Many-to-Many multilingual translation. It was introduced in this paper and first released in this repository. The model that can directly translate between the 9,900 directions of 100 languages. To translate into a target language, the target language id is forced as the first generated token. To force the target language id as the first generated token, pass the forcedbostokenid parameter to the generate method. Note: M2M100Tokenizer depends on sentencepiece, so make sure to install it before running the example. To install sentencepiece run pip install sentencepiece See the model hub to look for more fine-tuned…
Read AI at Meta's full model card
M2M100 is a multilingual encoder-decoder (seq-to-seq) model trained for Many-to-Many multilingual translation. It was introduced in this paper and first released in this repository.
The model that can directly translate between the 9,900 directions of 100 languages.
To translate into a target language, the target language id is forced as the first generated token.
To force the target language id as the first generated token, pass the forced_bos_token_id parameter to the generate method.
Note: M2M100Tokenizer depends on sentencepiece, so make sure to install it before running the example.
To install sentencepiece run pip install sentencepiece
from transformers import M2M100ForConditionalGeneration, M2M100Tokenizer
hi_text = "जीवन एक चॉकलेट बॉक्स की तरह है।"
chinese_text = "生活就像一盒巧克力。"
model = M2M100ForConditionalGeneration.from_pretrained("facebook/m2m100_1.2B")
tokenizer = M2M100Tokenizer.from_pretrained("facebook/m2m100_1.2B")
# 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."
See the model hub to look for more fine-tuned versions.
Languages covered
Afrikaans (af), Amharic (am), Arabic (ar), Asturian (ast), Azerbaijani (az), Bashkir (ba), Belarusian (be), Bulgarian (bg), Bengali (bn), Breton (br), Bosnian (bs), Catalan; Valencian (ca), Cebuano (ceb), Czech (cs), Welsh (cy), Danish (da), German (de), Greeek (el), English (en), Spanish (es), Estonian (et), Persian (fa), Fulah (ff), Finnish (fi), French (fr), Western Frisian (fy), Irish (ga), Gaelic; Scottish Gaelic (gd), Galician (gl), Gujarati (gu), Hausa (ha), Hebrew (he), Hindi (hi), Croatian (hr), Haitian; Haitian Creole (ht), Hungarian (hu), Armenian (hy), Indonesian (id), Igbo (ig), Iloko (ilo), Icelandic (is), Italian (it), Japanese (ja), Javanese (jv), Georgian (ka), Kazakh (kk), Central Khmer (km), Kannada (kn), Korean (ko), Luxembourgish; Letzeburgesch (lb), Ganda (lg), Lingala (ln), Lao (lo), Lithuanian (lt), Latvian (lv), Malagasy (mg), Macedonian (mk), Malayalam (ml), Mongolian (mn), Marathi (mr), Malay (ms), Burmese (my), Nepali (ne), Dutch; Flemish (nl), Norwegian (no), Northern Sotho (ns), Occitan (post 1500) (oc), Oriya (or), Panjabi; Punjabi (pa), Polish (pl), Pushto; Pashto (ps), Portuguese (pt), Romanian; Moldavian; Moldovan (ro), Russian (ru), Sindhi (sd), Sinhala; Sinhalese (si), Slovak (sk), Slovenian (sl), Somali (so), Albanian (sq), Serbian (sr), Swati (ss), Sundanese (su), Swedish (sv), Swahili (sw), Tamil (ta), Thai (th), Tagalog (tl), Tswana (tn), Turkish (tr), Ukrainian (uk), Urdu (ur), Uzbek (uz), Vietnamese (vi), Wolof (wo), Xhosa (xh), Yiddish (yi), Yoruba (yo), Chinese (zh), Zulu (zu)
BibTeX entry and citation info
@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}
}
Configuration
- Architecture
- M2M100ForConditionalGeneration
- Context length (tokens)
- 1,024
- Layers
- 24
- Vocabulary size
- 128,112
- Model type
- m2m_100
Identity and Version
- Repository
- facebook/m2m100_1.2B
- Publisher
- AI at Meta
- Task
- Not stated by the source
- Modality
- Other
- Library
- transformers
- Parameters
- Not stated by the source
- Languages
- af, am, ar, ast, az, ba, be, bg
- Revision
- 7b36184180524c1a1bbfa37f120a608046250b98
- First published
- 2022-03-02
- Last updated
- 2023-11-16
Files and Weights
10 files, 9.9 GB in total. The weights are 2 files totalling 9.9 GB in bin, ot.
Every file
| File | Type | Size | SHA-256 |
|---|---|---|---|
| pytorch_model.bin | Weights | 5.0 GB | a58ef8f42362 |
| rust_model.ot | Weights | 5.0 GB | a469969f13ba |
| config.json | Configuration | 909 B | — |
| generation_config.json | Configuration | 233 B | — |
| special_tokens_map.json | Configuration | 1.1 KB | — |
| README.md | Documentation | 4.6 KB | — |
| sentencepiece.bpe.model | Other | 2.4 MB | d8f7c76ed2a5 |
| .gitattributes | Repository | 690 B | — |
| tokenizer_config.json | Tokenizer | 271 B | — |
| vocab.json | Tokenizer | 3.7 MB | — |
License and Download
- License
- mit
- Access
- Open weights, no gate
- Download size
- 9.9 GB
Released by AI at Meta through its official repository on Hugging Face. Read the license.
Built From
- Described by arXiv:2010.11125
Memory Requirements
| Precision | Weights in memory |
|---|---|
| As published | 9.9 GB |
Weights only, from the published parameter count; the key-value cache and runtime add to this.
Questions About m2m100_1.2B
Can I use m2m100_1.2B commercially?
Yes. m2m100_1.2B is released under MIT License. The MIT License is a short permissive license. It permits commercial use, modification and redistribution, provided the copyright notice and permission notice are included.
What is m2m100_1.2B's context length?
1,024 tokens, from the maximum position embeddings in its published configuration.