以最少的 QnA 记录增量训练 BERT - 以获得改进的结果

数据挖掘 机器学习 训练 变压器 伯特
2022-02-28 04:26:44

我们正在使用 Google BERT 进行问答。我们使用 SQUAD QnA 发布训练数据集( https://github.com/google-research/bert、https://rajpurkar.github.io/SQuAD-explorer/dataset/train-v1.1.jsonBERT 进行了微调)

它生成了新的检查点,BERT 为我们在文本文档中提出的大多数问题提供了很好的答案。但是,有些问题的答案是错误的,因此我们正在尝试进一步微调我们的问题和文本文档上的已知答案。我们根据最后生成的检查点进一步训练并得到新的检查点。

当我们问同样的问题时,有了新的检查点,答案没​​有得到纠正!以前 BERT 以 99% 的置信度给出错误答案,现在也以 95% 的置信度给出相同的错误答案

有人可以建议,如果他们有相同或相似的经验,请建议。
以下是 BERT github 问题中的问题,并且在很长一段时间内都没有得到解答:

1个回答

请记住,BERT 首先是使用BooksCorpus (8 亿字)和英语维基百科(25 亿字)的串联进行预训练的然后,您的案例中的微调使用由 100,000 多个问题(基于 Wikipedia 文章)组成的 SQuAD 数据集,学习率约为 e-5。

因此,当您在微调期间向您的输入添加100 个新的特定领域问题/文档/答案时,这不会对学习参数产生重大影响,特别是如果您的新输入包含超出 Bert 词汇的单词或使用不同的英文风格,而不是维基百科/书籍风格。

有人可以建议,如果他们有相同或相似的经验,请建议。

以下是一些可能有帮助的建议:

  • 增加新输入数据的数量,以帮助模型收敛到特定领域的用例。

  • 在微调之前,将新输入的经常出现的超出 Bert 词汇表的单词映射到 Bert 词汇表中具有几乎相同含义的现有单词。

  • 增加新输入的学习率。但这不是很安全,因为模型可能会“忘记”他学到的东西并且不会收敛。但是由于微调不需要太多时间,您可以尝试一下并查看结果。