【问题标题】:BERT + custom layer training performance going down with epochsBERT + 自定义层训练性能随 epochs 下降
【发布时间】:2020-11-15 16:43:59
【问题描述】:

我正在训练一个在 BERT 之上具有自定义层的分类模型。在此期间,该模型的训练性能随着 epoch 的增加(在第一个 epoch 之后)而下降。我不确定这里要修复什么 - 是模型还是数据?

(对于数据它是二进制标签,并且每个标签的数据点数量是平衡的)。

关于问题可能是什么的任何快速指示?有没有人遇到过这种情况?

编辑:原来我使用的转换器库和 tf 版本不匹配。一旦我解决了这个问题,训练性能就很好了!

谢谢!

【问题讨论】:

    标签: tensorflow machine-learning nlp language-model


    【解决方案1】:

    请记住,与从头开始训练的模型相比,微调 Bert 等预训练模型所需的 epoch 数量通常要少得多。事实上the authors of Bert recommend between 2 and 4 epochs。进一步的训练通常会导致过度拟合您的数据并忘记预先训练的权重(请参阅灾难性遗忘)。

    根据我的经验,这会影响小型数据集,尤其是因为它们很容易过度拟合,即使在第二个 epoch 也是如此。此外,您还没有评论您在 Bert 之上的自定义层,但是在那里增加很多复杂性也可能会增加过度拟合——请注意,文本分类的通用架构只增加了线性变换。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-09
      • 1970-01-01
      • 2021-09-30
      • 2023-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多