DeBERTa 通过解缰注意力和增强遮罩解码器改进了BERT和RoBERTa模型。通过这两个改进,DeBERTa在绝大多数使用80GB训练数据的NLU任务上优于RoBERTa。
在 DeBERTa V3 中,我们进一步改进了DeBERTa的效率,使用了梯度解缰嵌入共享的ELECTRA风格预训练。与DeBERTa相比,我们的V3版本在下游任务的模型性能显著提高。关于新模型的更多技术细节,请查阅我们的 paper 。
请查看 official repository 获取更多实施细节和更新。
DeBERTa V3大型模型具有24层和隐藏大小为1024。它有304M的骨干参数,词汇表包含128K个令牌,Embedding层引入了131M的参数。该模型使用160GB数据进行了训练,与DeBERTa V2一样。
在NLU任务上进行微调我们在SQuAD 2.0和MNLI任务上呈现了dev结果。
Model | Vocabulary(K) | Backbone #Params(M) | SQuAD 2.0(F1/EM) | MNLI-m/mm(ACC) |
---|---|---|---|---|
RoBERTa-large | 50 | 304 | 89.4/86.5 | 90.2 |
XLNet-large | 32 | - | 90.6/87.9 | 90.8 |
DeBERTa-large | 50 | - | 90.7/88.0 | 91.3 |
DeBERTa-v3-large | 128 | 304 | 91.5/89.0 | 91.8/91.9 |
#!/bin/bash cd transformers/examples/pytorch/text-classification/ pip install datasets 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-v3-large \ --task_name $TASK_NAME \ --do_train \ --do_eval \ --evaluation_strategy steps \ --max_seq_length 256 \ --warmup_steps 50 \ --per_device_train_batch_size ${batch_size} \ --learning_rate 6e-6 \ --num_train_epochs 2 \ --output_dir $output_dir \ --overwrite_output_dir \ --logging_steps 1000 \ --logging_dir $output_dir
如果您认为DeBERTa对您的工作有用,请引用以下论文:
@misc{he2021debertav3, title={DeBERTaV3: Improving DeBERTa using ELECTRA-Style Pre-Training with Gradient-Disentangled Embedding Sharing}, author={Pengcheng He and Jianfeng Gao and Weizhu Chen}, year={2021}, eprint={2111.09543}, archivePrefix={arXiv}, primaryClass={cs.CL} }
@inproceedings{ he2021deberta, title={DEBERTA: DECODING-ENHANCED BERT WITH DISENTANGLED ATTENTION}, author={Pengcheng He and Xiaodong Liu and Jianfeng Gao and Weizhu Chen}, booktitle={International Conference on Learning Representations}, year={2021}, url={https://openreview.net/forum?id=XPZIaotutsD} }