【问题标题】:Why is there no pooler layer in huggingfaces' FlauBERT model?为什么 huggingface 的 FlauBERT 模型中没有 pooler 层?
【发布时间】:2020-12-01 03:42:05
【问题描述】:

用于语言模型和序列分类的 BERT 模型在最后一个转换器和分类层之间包含一个额外的投影层(它包含一个大小为 hidden_dim x hidden_dim 的线性层、一个 dropout 层和一个 tanh 激活)。这在论文中最初没有描述,但在here 中得到了澄清。该中间层与其余的转换器一起进行了预训练。

在拥抱脸的BertModel中,这一层被称为pooler

根据the paper,FlauBERT模型(XLMModel在法语语料库上微调)也包括这个pooler层:“分类头由以下层组成,依次为:dropout、linear、tanhactivation、dropout、linear ."。但是,当加载带有拥抱脸的 FlauBERT 模型时(例如,带有 FlaubertModel.from_pretrained(...)FlaubertForSequenceClassification.from_pretrained(...)),模型似乎不包含这样的层。

因此问题是:为什么在拥抱脸的 FlauBERT 模型中没有 pooler 层?

【问题讨论】:

  • 下句分类任务需要pooler。此任务已从 Flaubert 训练中删除,使 Pooler 成为可选层。 HuggingFace 评论说“pooler 的输出通常不能很好地总结输入的语义内容,你通常最好对整个输入序列的隐藏状态序列进行平均或合并”。因此我相信他们决定移除该层。
  • 谢谢,这与我从其中一位作者那里得到的答案一致,说他们基本上是从 RoBERTa 开始的(不包括 NSP 任务)。您可以发表您的评论作为答案,因为我认为它解决了我的问题。

标签: bert-language-model huggingface-transformers


【解决方案1】:

下一句分类任务需要 Pooler。此任务已从 Flaubert 训练中删除,使 Pooler 成为可选层。 HuggingFace 评论说“pooler 的输出通常不能很好地总结输入的语义内容,你通常最好对整个输入序列的隐藏状态序列进行平均或合并”。因此我相信他们决定移除该层。

【讨论】:

    【解决方案2】:

    因为 Flaubert 是 XLM 模型而不是 BERT 模型

    【讨论】:

      猜你喜欢
      • 2023-03-26
      • 2021-12-18
      • 2013-10-20
      • 1970-01-01
      • 1970-01-01
      • 2021-01-17
      • 2015-06-09
      • 1970-01-01
      • 2013-03-01
      相关资源
      最近更新 更多