英文

DeBERTaV3: 使用梯度解缰嵌入共享的ELECTRA风格预训练改进DeBERTa

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
Fine-tuning with HF transformers
#!/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}
}