🚀 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}
}