如何解决为什么拥抱面的FlauBERT模型中没有合并层?
用于语言模型和序列分类的 BERT模型在最后一个转换器和分类层之间包括一个额外的投影层(它包含大小为hidden_dim x hidden_dim
的线性层,一个退出层和一个tanh
激活) 。最初在论文中没有对此进行描述,但已here得到了澄清。该中间层与其余的变压器一起经过预训练。
在拥抱的BertModel
中,此层称为pooler
。
根据the paper,FlauBERT模型(在法国语料库上进行了微调的XLMModel)还包括该合并器层:“分类头由以下几层组成,依次为:滤除,线性,激活,滤除,和线性。”但是,在加载带有拥抱面(例如,FlaubertModel.from_pretrained(...)
或FlaubertForSequenceClassification.from_pretrained(...)
)的FlauBERT模型时,该模型似乎不包含这样的层。
因此产生一个问题:为什么拥抱面的FlauBERT模型中没有合并层?
解决方法
下一个句子分类任务必须使用电池。该任务已从Flaubert培训中删除,使Pooler成为可选层。 HuggingFace评论说:“池的输出通常不能很好地概括输入的语义内容,通常最好将整个输入序列的隐藏状态序列平均化或合并起来”。因此,我相信他们决定删除该图层。
,因为Flaubert是XLM模型而不是BERT模型
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。