英文

DistilBERT多语言基础模型卡

内容表

  • 模型细节
  • 用途
  • 偏见、风险和限制
  • 训练细节
  • 评估
  • 环境影响
  • 引用
  • 如何开始使用该模型
  • 模型细节

    模型描述

    这个模型是 BERT多语言基础模型 的简化版本。可以在 这里 找到简化过程的代码。该模型区分大小写:英文与English是不同的。

    这个模型是在包含104种不同语言维基百科的连结上进行训练的,具体语言清单请参考 这里 。这个模型有6层、768维度和12个头部,共计134M个参数(与mBERT-base模型相比,其参数数量为177M)。平均而言,这个被称为DistilmBERT的模型速度是mBERT-base的两倍。

    我们鼓励潜在的模型使用者查看 BERT多语言基础模型卡 以了解更多关于使用、限制和潜在偏见的信息。

    用途

    直接使用和下游使用

    您可以将原始模型用于遮蔽语言建模或下一个句子预测,但主要是用于在下游任务上进行微调。查看 模型中心 查找您感兴趣的任务上的微调版本。

    请注意,该模型主要用于在使用整个句子(可能被遮蔽)进行决策的任务上进行微调,例如序列分类、标记分类或问答。对于文本生成等任务,您应该查看像GPT2这样的模型。

    范围以外的使用

    该模型不应用于有意为人们创造敌对或疏远环境。该模型的训练目标不是成为人们或事件的真实和真实的表现,因此使用模型生成此类内容超出了该模型的能力范围。

    偏见、风险和限制

    长期以来,许多研究都探讨了语言模型的偏见和公平性问题(参见Sheng等人(2021年)和Bender等人(2021年))。模型生成的预测结果可能包含针对受保护类别、身份特征以及敏感的社会和职业群体的令人不安和有害的刻板印象。

    建议

    用户(包括直接用户和下游用户)应该意识到模型的风险、偏见和限制。

    训练细节

    • 该模型是通过在包含104种不同语言维基百科连结上以包含bert-base-multilingual-cased的监督方式进行预训练的。
    • 该模型有6层、768维度和12个头部,共计134M个参数。
    • 训练过程和数据的详细信息请参考 bert-base-multilingual-cased 模型卡。

    评估

    模型开发者为DistilmBERT报告了以下准确度结果(请参阅 GitHub仓库 ):

    以下是XNLI中6种可用语言的测试集结果。这些结果是在零-shot设置下计算的(在英语部分上进行了训练,并在目标语言部分上进行了评估):

    Model English Spanish Chinese German Arabic Urdu
    mBERT base cased (computed) 82.1 74.6 69.1 72.3 66.4 58.5
    mBERT base uncased (reported) 81.4 74.3 63.8 70.5 62.1 58.3
    DistilmBERT 78.2 69.1 64.0 66.3 59.1 54.7

    环境影响

    可以使用机器学习环境影响计算器(Machine Learning Impact calculator)来估算碳排放量,该计算器介绍在Lacoste等人(2019年)的论文中(链接)。

    • 硬件类型:需要更多信息
    • 使用小时数:需要更多信息
    • 云服务提供商:需要更多信息
    • 计算地区:需要更多信息
    • 排放的碳量:需要更多信息

    引用

    @article{Sanh2019DistilBERTAD,
      title={DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter},
      author={Victor Sanh and Lysandre Debut and Julien Chaumond and Thomas Wolf},
      journal={ArXiv},
      year={2019},
      volume={abs/1910.01108}
    }
    

    APA格式引用

    • Sanh,V.,Debut,L.,Chaumond,J.,& Wolf,T.(2019)。DistilBERT,BERT的一个精简版本:更小、更快、更便宜、更轻。arXiv预印本arXiv:1910.01108.

    如何开始使用该模型

    您可以使用带有遮蔽语言建模的管道直接使用模型:

    >>> from transformers import pipeline
    >>> unmasker = pipeline('fill-mask', model='distilbert-base-multilingual-cased')
    >>> unmasker("Hello I'm a [MASK] model.")
    
    [{'score': 0.040800247341394424,
      'sequence': "Hello I'm a virtual model.",
      'token': 37859,
      'token_str': 'virtual'},
     {'score': 0.020015988498926163,
      'sequence': "Hello I'm a big model.",
      'token': 22185,
      'token_str': 'big'},
     {'score': 0.018680453300476074,
      'sequence': "Hello I'm a Hello model.",
      'token': 31178,
      'token_str': 'Hello'},
     {'score': 0.017396586015820503,
      'sequence': "Hello I'm a model model.",
      'token': 13192,
      'token_str': 'model'},
     {'score': 0.014229810796678066,
      'sequence': "Hello I'm a perfect model.",
      'token': 43477,
      'token_str': 'perfect'}]