🚀 MiniLM:用于语言理解和生成的小型快速预训练模型
MiniLM是从论文“MiniLM: Deep Self-Attention Distillation for Task-Agnostic Compression of Pre-Trained Transformers”中提炼出来的模型。
有关MiniLM的预处理、训练及完整详细信息,请参考原始MiniLM仓库。
请注意:此检查点使用BertModel
和XLMRobertaTokenizer
,因此AutoTokenizer
不适用于此检查点!
✨ 主要特性
多语言预训练模型
- Multilingual-MiniLMv1-L12-H384:12层,384隐藏层维度,12头注意力机制,2100万个Transformer参数,9600万个嵌入参数
多语言MiniLM使用与XLM - R相同的分词器。但我们模型的Transformer架构与BERT相同。我们基于huggingface/transformers提供了在XNLI上的微调代码。请将transformers中的run_xnli.py
替换为我们的代码,以微调多语言MiniLM。
我们在跨语言自然语言推理基准(XNLI)和跨语言问答基准(MLQA)上对多语言MiniLM进行了评估。
📚 详细文档
跨语言自然语言推理 - XNLI
我们评估了模型从英语到其他语言的跨语言迁移能力。遵循Conneau等人(2019)的方法,我们在所有语言的联合开发集上选择了最佳的单一模型。
模型 |
层数 |
隐藏层维度 |
Transformer参数数量 |
平均准确率 |
英语 |
法语 |
西班牙语 |
德语 |
希腊语 |
保加利亚语 |
俄语 |
土耳其语 |
阿拉伯语 |
越南语 |
泰语 |
中文 |
印地语 |
斯瓦希里语 |
乌尔都语 |
mBERT |
12 |
768 |
8500万 |
66.3 |
82.1 |
73.8 |
74.3 |
71.1 |
66.4 |
68.9 |
69.0 |
61.6 |
64.9 |
69.5 |
55.8 |
69.3 |
60.0 |
50.4 |
58.0 |
XLM - 100 |
16 |
1280 |
3.15亿 |
70.7 |
83.2 |
76.7 |
77.7 |
74.0 |
72.7 |
74.1 |
72.7 |
68.7 |
68.6 |
72.9 |
68.9 |
72.5 |
65.6 |
58.2 |
62.4 |
XLM - R Base |
12 |
768 |
8500万 |
74.5 |
84.6 |
78.4 |
78.9 |
76.8 |
75.9 |
77.3 |
75.4 |
73.2 |
71.5 |
75.4 |
72.5 |
74.9 |
71.1 |
65.2 |
66.5 |
mMiniLM - L12xH384 |
12 |
384 |
2100万 |
71.1 |
81.5 |
74.8 |
75.7 |
72.9 |
73.0 |
74.5 |
71.3 |
69.7 |
68.8 |
72.1 |
67.8 |
70.0 |
66.2 |
63.3 |
64.2 |
以下示例代码展示了如何在XNLI上微调12层的多语言MiniLM。
DATA_DIR=/{path_of_data}/
OUTPUT_DIR=/{path_of_fine-tuned_model}/
MODEL_PATH=/{path_of_pre-trained_model}/
python ./examples/run_xnli.py --model_type minilm \
--output_dir ${OUTPUT_DIR} --data_dir ${DATA_DIR} \
--model_name_or_path microsoft/Multilingual-MiniLM-L12-H384 \
--tokenizer_name xlm-roberta-base \
--config_name ${MODEL_PATH}/multilingual-minilm-l12-h384-config.json \
--do_train \
--do_eval \
--max_seq_length 128 \
--per_gpu_train_batch_size 128 \
--learning_rate 5e-5 \
--num_train_epochs 5 \
--per_gpu_eval_batch_size 32 \
--weight_decay 0.001 \
--warmup_steps 500 \
--save_steps 1500 \
--logging_steps 1500 \
--eval_all_checkpoints \
--language en \
--fp16 \
--fp16_opt_level O2
遵循Lewis等人(2019b)的方法,我们采用SQuAD 1.1作为训练数据,并使用MLQA英语开发数据进行提前停止。
模型F1分数 |
层数 |
隐藏层维度 |
Transformer参数数量 |
平均F1分数 |
英语 |
西班牙语 |
德语 |
阿拉伯语 |
印地语 |
越南语 |
中文 |
mBERT |
12 |
768 |
8500万 |
57.7 |
77.7 |
64.3 |
57.9 |
45.7 |
43.8 |
57.1 |
57.5 |
XLM - 15 |
12 |
1024 |
1.51亿 |
61.6 |
74.9 |
68.0 |
62.2 |
54.8 |
48.8 |
61.4 |
61.1 |
XLM - R Base (报告值) |
12 |
768 |
8500万 |
62.9 |
77.8 |
67.2 |
60.8 |
53.0 |
57.9 |
63.1 |
60.2 |
XLM - R Base (我们微调后) |
12 |
768 |
8500万 |
64.9 |
80.3 |
67.0 |
62.7 |
55.0 |
60.4 |
66.5 |
62.3 |
mMiniLM - L12xH384 |
12 |
384 |
2100万 |
63.2 |
79.4 |
66.1 |
61.2 |
54.9 |
58.5 |
63.1 |
59.0 |
📄 许可证
本项目采用MIT许可证。
📖 引用
如果您在研究中发现MiniLM很有用,请引用以下论文:
@misc{wang2020minilm,
title={MiniLM: Deep Self-Attention Distillation for Task-Agnostic Compression of Pre-Trained Transformers},
author={Wenhui Wang and Furu Wei and Li Dong and Hangbo Bao and Nan Yang and Ming Zhou},
year={2020},
eprint={2002.10957},
archivePrefix={arXiv},
primaryClass={cs.CL}
}