如何解决“BERT 模型的微调”是指什么?
我无法理解一件事,当它说“BERT 的微调”时,它实际上是什么意思:
- 我们是否使用新数据再次重新训练整个模型。
- 或者我们只是用新数据训练前几个 Transformer 层。
- 或者我们正在训练整个模型,但将预训练的权重视为初始权重。
- 或者在 Transformer 层之上已经有几层 ANN 层,这些 ANN 只是在接受训练以保持 Transformer 重量不变。
尝试过谷歌,但我很困惑,如果有人可以帮助我。
提前致谢!
解决方法
我记得读过一个关于 Twitter poll 的类似上下文,而且似乎大多数人倾向于接受你的建议 3.(或其变体)作为标准定义。
然而,这显然并不能代表每一项工作,但我认为可以说1.在谈到微调时通常不包括在内。除非您有大量(标记的)特定于任务的数据,否则此步骤将被称为预训练模型。
2. 和 4. 也可以被认为是微调,但从个人/轶事经验来看,允许所有参数在微调期间改变已经提供了显着的更好的结果。根据您的用例,这也很容易试验,因为在 Huggingface 转换器等库中冻结层是微不足道的。
在任何一种情况下,我都会将它们视为 3. 的变体,因为您隐含地假设我们在这些场景中从预先训练的权重开始(如果我错了,请纠正我)。
因此,尽我所能的简明定义是:
微调是指使用特定任务和标记数据训练任意数量的参数/层的步骤,来自先前的模型检查点,该检查点通常使用无监督的 MLM(掩码语言建模)对大量文本数据进行训练.