首页 > 解决方案 > 如何在未标记的数据上微调 BERT?

问题描述

我想在特定域上微调 BERT。我在文本文件中有该域的文本。我如何使用这些来微调 BERT?我目前正在看这里

我的主要目标是使用 BERT 获得句子嵌入。

标签: nlppytorchhuggingface-transformersbert-language-model

解决方案


这里要区分的重要区别是您是否要微调模型,或者是否要将其暴露给额外的预训练

前者只是一种训练 BERT 以适应特定监督任务的方法,通常需要 1000 个或更多样本,包括标签

另一方面,预训练基本上是试图帮助 BERT 更好地“理解”来自某个领域的数据,基本上是继续其无监督的训练目标([MASK]输入特定的词并试图预测应该存在的词),而你需要标记数据。

但是,如果您的最终目标是句子嵌入,我强烈建议您查看Sentence Transformers,它基于 Huggingface 的变压器库的稍微过时的版本,但主要尝试生成高质量的嵌入。请注意,有一些方法可以使用替代损失进行训练,您可以在其中尝试模拟与嵌入相关的某种形式的损失。

编辑: Sentence-Transformers 的作者最近加入了 Huggingface,所以我希望在接下来的几个月里支持会大大改善!


推荐阅读