微调 BERT 句子 Transformer 模型

Fio*_*ori 6 bert-language-model sentence-transformers fine-tuning

我正在使用预训练的 BERT 句子转换器模型(如https://www.sbert.net/docs/training/overview.html中所述)来获取句子的嵌入。

我想微调这些预先训练的嵌入,并且我按照上面链接的教程中的说明进行操作。根据本教程,您可以通过向预训练模型提供句子对和指示一对句子之间相似性得分的标签得分来微调预训练模型。据我了解,这种微调是使用下图所示的架构进行的:

在此输入图像描述

首先使用 BERT 模型对一对中的每个句子进行编码,然后“池”层聚合(通常通过取平均值)Bert 层生成的单词嵌入,为每个句子生成单个嵌入。在最后一步中计算两个句子嵌入的余弦相似度,并与标签分数进行比较。

我的问题是 - 使用给定架构微调模型时正在优化哪些参数?是只微调BERT模型最后一层的参数吗?通过查看教程中显示的用于微调模型的代码示例,我并不清楚这一点。

小智 0

这实际上取决于您的要求。如果你有大量的计算资源并且你想获得完美的句子表示,那么你应该微调所有层。(这是在原始句子 bert 模型中完成的)

但如果你是一名学生并且想要创建一个几乎很好的句子表示,那么你可以只训练非 bert 层。