SAVRN
Search Contact SAVRN

Open-weight model

m2m100_1.2B

by AI at Meta facebook/m2m100_1.2B

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.

Parameters
Context1,024
Weights9.9 GB
Licensemit
AccessOpen weights
Monthly Downloads144.3k

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.

Weights2 files · 9.9 GB
Configuration3 files · 2.3 KB
Tokenizer2 files · 3.7 MB
Documentation1 file · 4.6 KB
Other1 file · 2.4 MB
Repository1 file · 690 B
Every file
FileTypeSizeSHA-256
pytorch_model.binWeights5.0 GB a58ef8f42362
rust_model.otWeights5.0 GB a469969f13ba
config.jsonConfiguration909 B
generation_config.jsonConfiguration233 B
special_tokens_map.jsonConfiguration1.1 KB
README.mdDocumentation4.6 KB
sentencepiece.bpe.modelOther2.4 MB d8f7c76ed2a5
.gitattributesRepository690 B
tokenizer_config.jsonTokenizer271 B
vocab.jsonTokenizer3.7 MB

License and Download

License
mit
Access
Open weights, no gate
Download size
9.9 GB
Download from AI at Meta

Released by AI at Meta through its official repository on Hugging Face. Read the license.

Built From

Memory Requirements

PrecisionWeights in memory
As published9.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.