HuggingFace镜像/deberta-v3-large
模型介绍文件和版本分析

DeBERTaV3:通过 ELECTRA 风格预训练与梯度解耦嵌入共享提升 DeBERTa 性能

DeBERTa 借助解耦注意力机制和增强的掩码解码器,对 BERT 和 RoBERTa 模型进行了改进。凭借这两项改进,在 80GB 训练数据的支持下,DeBERTa 在大多数自然语言理解(NLU)任务上的表现均优于 RoBERTa。

在 DeBERTa V3 中,我们通过采用 ELECTRA 风格的预训练方法并结合梯度解耦嵌入共享技术,进一步提升了 DeBERTa 的效率。与 DeBERTa 相比,我们的 V3 版本在下游任务上的模型性能得到了显著提升。有关新模型的更多技术细节,可参考我们的 论文。

更多实现细节和更新,请查阅 官方代码库。

DeBERTa V3 large 模型包含 24 层,隐藏层大小为 1024。其骨干网络参数为 3.04 亿,词汇表包含 128K 个 token,这使得嵌入层引入了 1.31 亿参数。该模型使用与 DeBERTa V2 相同的 160GB 数据进行训练。

在 NLU 任务上的微调

我们展示了在 SQuAD 2.0 和 MNLI 任务上的开发集结果。

模型词汇量(K)骨干网络参数数量(M)SQuAD 2.0(F1/EM)MNLI-m/mm(准确率)
RoBERTa-large5030489.4/86.590.2
XLNet-large32-90.6/87.990.8
DeBERTa-large50-90.7/88.091.3
DeBERTa-v3-large12830491.5/89.091.8/91.9

推理

import argparse
import torch
from openmind import pipeline, is_torch_npu_available

def parse_args():
    parser = argparse.ArgumentParser()
    parser.add_argument(
        "--model_name_or_path",
        default=None,
        type=str,
        help="Path to model",
        required=False,
    )

    args = parser.parse_args()

    return args

if __name__=="__main__":

    args = parse_args()

    if is_torch_npu_available():
        device = "npu:0"
    else:
        device = "cpu"

    #推理
    unmasker = pipeline('fill-mask', model=args.model_name_or_path, device=device)
    
    print(unmasker("Hello I'm a [MASK] model."))

引用

如果您发现 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}
}
下载使用量0