持续预训练与使用 MLM 微调语言模型

时间:2021-07-20 20:52:44

标签: deep-learning nlp huggingface-transformers bert-language-model pre-trained-model

我有一些自定义数据要用于进一步预训练 BERT 模型。到目前为止,我已经尝试了以下两种方法:

  1. 从预训练的 BERT 检查点开始,然后使用掩码语言建模 (MLM) + 下一句预测 (NSP) 头继续预训练(例如使用 BertForPreTraining 模型)
  2. 从具有 MLM 目标的预训练 BERT 模型开始(例如使用 BertForMaskedLM 模型,假设我们不需要 NSP 进行预训练部分.)

但我仍然感到困惑,如果使用 BertForPreTrainingBertForMaskedLM 实际上是在 BERT 上进行持续的预训练,或者这只是两个用于微调的模型分别使用 MLM+NSP 和 MLM 对 BERT 进行微调。用 MLM+NSP 微调 BERT 或使用这两个头不断预训练它之间有什么区别,或者这是我们需要测试的东西?

我已经查看了类似的问题,例如 this one,但我仍然想确保在技术上从初始检查点持续预训练模型与使用相同目标对其进行微调之间是否存在差异/头。

1 个答案:

答案 0 :(得分:1)

答案只是所用术语的不同。当模型在大型通用语料库上进行训练时,称为“预训练”。当它适用于特定任务或数据集时,它被称为“微调”。

从技术上讲,在任何一种情况下(“预训练”或“微调”),都会更新模型权重。

例如,通常,您可以只采用预先训练好的模型,然后针对特定任务(例如分类、问答等)对其进行微调。但是,如果您发现目标数据集来自特定领域,并且您有一些未标记的数据可能有助于模型适应特定领域,那么您可以进行 MLM 或 MLM+NSP '微调'(无监督学习)(一些研究人员将其称为“预训练”,尤其是在使用庞大的语料库来训练模型时),然后使用目标语料库进行目标任务微调。