语言: 中文
标签:
- deberta-v3
- deberta-v2
- deberta-mnli
任务: mnli
缩略图: https://huggingface.co/front/thumbnails/microsoft.png
许可证: mit
管道标签: 零样本分类
DeBERTa:基于解耦注意力机制的增强型BERT解码模型
DeBERTa通过解耦注意力和增强型掩码解码器改进了BERT与RoBERTa模型。在80GB训练数据下,其在多数自然语言理解任务中超越BERT和RoBERTa表现。更多细节与更新请参阅官方代码库。
此为DeBERTa V2 xxlarge版本,包含48层网络和1536维隐藏层,参数量达15亿,训练数据规模为160GB原始文本。
自然语言理解任务微调
我们在SQuAD 1.1/2.0及多项GLUE基准任务上展示开发集结果:
模型 |
SQuAD 1.1 |
SQuAD 2.0 |
MNLI-m/mm |
SST-2 |
QNLI |
CoLA |
RTE |
MRPC |
QQP |
STS-B |
|
F1/EM |
F1/EM |
准确率 |
准确率 |
准确率 |
MCC |
准确率 |
Acc/F1 |
Acc/F1 |
P/S |
BERT-Large |
90.9/84.1 |
81.8/79.0 |
86.6/- |
93.2 |
92.3 |
60.6 |
70.4 |
88.0/- |
91.3/- |
90.0/- |
RoBERTa-Large |
94.6/88.9 |
89.4/86.5 |
90.2/- |
96.4 |
93.9 |
68.0 |
86.6 |
90.9/- |
92.2/- |
92.4/- |
XLNet-Large |
95.1/89.7 |
90.6/87.9 |
90.8/- |
97.0 |
94.9 |
69.0 |
85.9 |
90.8/- |
92.3/- |
92.5/- |
DeBERTa-Large1 |
95.5/90.1 |
90.7/88.0 |
91.3/91.1 |
96.5 |
95.3 |
69.5 |
91.0 |
92.6/94.6 |
92.3/- |
92.8/92.5 |
DeBERTa-XLarge1 |
-/- |
-/- |
91.5/91.2 |
97.0 |
- |
- |
93.1 |
92.1/94.3 |
- |
92.9/92.7 |
DeBERTa-V2-XLarge1 |
95.8/90.8 |
91.4/88.9 |
91.7/91.6 |
97.5 |
95.8 |
71.1 |
93.9 |
92.0/94.2 |
92.3/89.8 |
92.9/92.9 |
DeBERTa-V2-XXLarge1,2 |
96.1/91.4 |
92.2/89.7 |
91.7/91.9 |
97.2 |
96.0 |
72.0 |
93.5 |
93.1/94.9 |
92.7/90.3 |
93.2/93.1 |
说明
- 1 沿用RoBERTa方法,对于RTE、MRPC、STS-B任务,我们基于MNLI微调版本进行二次微调。虽然SST-2/QQP/QNLI/SQuADv2任务从MNLI微调模型起步也能提升效果,但上述四个任务我们仅报告从预训练基模型直接微调的结果。
- 2 使用HuggingFace Transformers运行XXLarge模型时,推荐采用deepspeed以提升速度并节省内存。
使用Deepspeed运行:
pip install datasets
pip install deepspeed
wget https://huggingface.co/microsoft/deberta-v2-xxlarge/resolve/main/ds_config.json -O ds_config.json
export TASK_NAME=mnli
output_dir="ds_results"
num_gpus=8
batch_size=8
python -m torch.distributed.launch --nproc_per_node=${num_gpus} \\
run_glue.py \\
--model_name_or_path microsoft/deberta-v2-xxlarge \\
--task_name $TASK_NAME \\
--do_train \\
--do_eval \\
--max_seq_length 256 \\
--per_device_train_batch_size ${batch_size} \\
--learning_rate 3e-6 \\
--num_train_epochs 3 \\
--output_dir $output_dir \\
--overwrite_output_dir \\
--logging_steps 10 \\
--logging_dir $output_dir \\
--deepspeed ds_config.json
也可使用分片分布式数据并行(sharded_ddp)运行:
cd transformers/examples/text-classification/
export TASK_NAME=mnli
python -m torch.distributed.launch --nproc_per_node=8 run_glue.py --model_name_or_path microsoft/deberta-v2-xxlarge \\
--task_name $TASK_NAME --do_train --do_eval --max_seq_length 256 --per_device_train_batch_size 8 \\
--learning_rate 3e-6 --num_train_epochs 3 --output_dir /tmp/$TASK_NAME/ --overwrite_output_dir --sharded_ddp --fp16
引用
若DeBERTa对您的研究有所帮助,请引用以下论文:
@inproceedings{
he2021deberta,
title={DEBERTA: 基于解耦注意力机制的增强型BERT解码模型},
author={何鹏程 and 刘骁东 and 高剑峰 and 陈伟柱},
booktitle={国际学习表征会议},
year={2021},
url={https://openreview.net/forum?id=XPZIaotutsD}
}