【问题标题】:Continual pre-training vs. Fine-tuning a language model with MLM持续预训练与使用 MLM 微调语言模型
【发布时间】:2021-09-28 08:09:08
【问题描述】:

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

  1. 从预训练的 BERT 检查点开始,然后使用 Masked Language Modeling (MLM) + Next Sentence Prediction (NSP) 头继续预训练(例如,使用 BertForPreTraining 型号)
  2. 从具有 MLM 目标的预训练 BERT 模型开始(例如,使用 BertForMaskedLM 模型,假设我们不需要 NSP 进行预训练部分。)

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • 我还得出结论,这更像是术语使用上的差异。
    • 有没有人有一个脚本可以从检查点使用 MLM 和 NSP 进行持续预训练?
    猜你喜欢
    • 2020-08-12
    • 2021-11-18
    • 2022-08-20
    • 2022-01-04
    • 1970-01-01
    • 2017-06-05
    • 1970-01-01
    • 2019-12-08
    • 2017-08-19
    相关资源
    最近更新 更多