mGPT
多语言生成式预训练转换器
我们推出了mGPT,这是GPT-3的多语言变体,使用维基百科和C4语料库在来自25个语系的61种语言上进行了预训练。我们详细介绍了设计和预训练过程。模型经过内在和外在评估:所有语言的语言建模、33种语言的跨语言自然语言理解数据集和基准测试的下游评估,以及23种语言的世界知识探测。其上下文学习能力与同期的语言模型相当,同时涵盖了更多语言,包括独立国家联合体和俄罗斯少数民族的代表性不足和资源匮乏的语言。源代码和语言模型在MIT许可证下可用。
[论文] [Habr(俄语)] [HugginFace mGPT-1.3B 模型卡片] [HugginFace mGPT-13B 模型卡片] [Papers With Code]
设置环境
pip install -r requirements.txt
预训练数据
模型在600GB的文本上进行了预训练,主要来自MC4和维基百科。
- MC4
- 维基百科(20201101版本)
维基百科文本使用WikiExtractor(Attardi,2015)从转储文件(v. 20201101)中提取。 训练数据经过去重,文本去重包括对语料库中每个文本进行64位哈希以保留具有唯一哈希值的文本。我们还使用zlib4基于文本压缩率过滤文档。去重后压缩程度最高和最低的文本被丢弃。
Transformers 使用 🤗
from transformers import GPT2LMHeadModel, GPT2Tokenizer
tokenizer = GPT2Tokenizer.from_pretrained("sberbank-ai/mGPT")
model = GPT2LMHeadModel.from_pretrained("sberbank-ai/mGPT")
text = "Александр Сергеевич Пушкин родился в "
input_ids = tokenizer.encode(text, return_tensors="pt").cuda(device)
out = model.generate(
input_ids,
min_length=100,
max_length=100,
eos_token_id=5,
pad_token=1,
top_k=10,
top_p=0.0,
no_repeat_ngram_size=5
)
generated_text = list(map(tokenizer.decode, out))[0]
print(generated_text)
Александр Сергеевич Пушкин родился в г. Санкт-Петербурге.
选择最佳参数:
一般情况:
eos_token_id=5,
pad_token=1,
do_sample=True,
top_k=0,
top_p=0.8,
no_repeat_ngram_size=4
英语生成:
top_p=0.95, top_k=0
示例
mGPT 生成示例
mGPT 微调示例
支持的语言
南非荷兰语 (af)、阿拉伯语 (ar)、亚美尼亚语 (hy)、阿塞拜疆语 (az)、巴斯克语 (eu)、巴什基尔语 (ba)、白俄罗斯语 (be)、孟加拉语 (bn)、保加利亚语 (bg)、缅甸语 (my)、布里亚特语 (bxr)、楚瓦什语 (cv)、丹麦语 (da)、英语 (en)、爱沙尼亚语 (et)、芬兰语 (fi)、法语 (fr)、格鲁吉亚语 (ka)、德语 (de)、希腊语 (el)、希伯来语 (he)、印地语 (hi)、匈牙利语 (hu)、印度尼西亚语 (id)、意大利语 (it)、日语 (ja)、爪哇语 (jv)、卡尔梅克语 (xal)、哈萨克语 (kk)、韩语 (ko)、吉尔吉斯语 (ky)、拉脱维亚语 (lv)、立陶宛语 (lt)、马来语 (ms)、马拉雅拉姆语 (ml)、马拉地语 (mr)、蒙古语 (mn)、奥塞梯语 (os)、波斯语 (fa)、波兰语 (pl)、葡萄牙语 (pt)、罗马尼亚语 (ro)、俄语 (ru)、西班牙语 (es)、瑞典语 (sv)、斯瓦希里语 (sw)、鞑靼语 (tt)、泰卢固语 (te)、泰语 (th)、土耳其语 (tr)、土库曼语 (tk)、图瓦语 (tyv)、乌克兰语 (uk)、乌兹别克语 (uz)、越南语 (vi)、雅库特语 (sax)、约鲁巴语 (yo)
预训练
[mGPT-1.3B 模型卡片] [mGPT-13B 模型卡片]
我们使用DeepSpeed库和Megatron-LM。我们以总批量大小2048和512个标记的上下文窗口预训练我们的语言模型。总训练步数为60万步,模型在预训练过程中已经见过4000亿个标记。对于mGPT-1.3B,预训练在256个V100 GPU的集群上花费了14天,对于mGPT-13B,在512个V100 GPU上花费了22天。
单语言模型:
关于单语言mGPT-1.3B模型的Habr文章(俄语) HuggingFace上的单语言模型:
- 🇦🇲 mGPT-1.3B 亚美尼亚语
- 🇦🇿 mGPT-1.3B 阿塞拜疆语
- 🍯 mGPT-1.3B 巴什基尔语
- 🇧🇾 mGPT-1.3B 白俄罗斯语
- 🇧🇬 mGPT-1.3B 保加利亚语
- 🌞 mGPT-1.3B 布里亚特语
- 🌳 mGPT-1.3B 楚瓦什语
- 🇬🇪 mGPT-1.3B 格鲁吉亚语
- 🌸 mGPT-1.3B 卡尔梅克语
- 🇰🇿 mGPT-1.3B 哈萨克语
- 🇰🇬 mGPT-1.3B 吉尔吉斯语
- 🐻 mGPT-1.3B 马里语
- 🇲🇳 mGPT-1.3B 蒙古语
- 🐆 mGPT-1.3B 奥塞梯语
- 🇮🇷 mGPT-1.3B 波斯语
- 🇷🇴 mGPT-1.3B 罗马尼亚语
- 🇹🇯 mGPT-1.3B 塔吉克语
- ☕ mGPT-1.3B 鞑靼语
- 🇹🇲 mGPT-1.3B 土库曼语
- 🐎 mGPT-1.3B 图瓦语
- 🇺🇦 mGPT-1.3B 乌克兰语
- 🇺🇿 mGPT-1.3B 乌兹别克语
- 💎 mGPT-1.3B 雅库特语
贡献
我们欢迎社区对模型做出贡献,并庆祝其推理和训练技术的改进。
引用我们
@article{shliazhko2024mgpt,
title={mGPT: Few-Shot Learners Go Multilingual},
author={Shliazhko, Oleh and Fenogenova, Alena and Tikhonova, Maria and Kozlova, Anastasia and Mikhailov, Vladislav and Shavrina, Tatiana},
journal={Transactions of the Association for Computational Linguistics},
volume={12},
pages={58--79},
year={2024},
publisher={MIT Press One Broadway, 12th Floor, Cambridge, Massachusetts 02142, USA~…}
}