【发布时间】: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