在特定领域继续训练预训练的 BERT 模型的最简单方法是啥?

Posted

技术标签:

【中文标题】在特定领域继续训练预训练的 BERT 模型的最简单方法是啥?【英文标题】:What is the simplest way to continue training a pre-trained BERT model, on a specific domain?在特定领域继续训练预训练的 BERT 模型的最简单方法是什么? 【发布时间】:2021-07-20 17:49:58 【问题描述】:

我想使用预训练的 BERT 模型,以便在文本分类任务中使用它(我正在使用 Huggingface 库)。但是,预训练模型是在与我不同的领域上训练的,并且我有一个大型未注释数据集,可用于对其进行微调。如果我只使用我的标记示例并在针对特定任务 (BertForSequenceClassification) 进行训练时“随时随地”对其进行微调,那么数据集太小而无法适应特定领域的语言模型。最好的方法是什么? 谢谢!

【问题讨论】:

Few Shot Learning 【参考方案1】:

让我们先澄清几点以减少歧义。

    BERT 使用两个预训练目标:Masked Language Modeling (MLM) 和 Next Sentence Prediction。 您提到有一个大型未注释数据集,您计划使用它来微调您的 BERT 模型。这不是微调的工作方式。为了微调您的预训练模型,您需要一个注释数据集,即用于序列分类下游任务的文档和类对。

那你能做什么?首先,使用由特定领域词汇组成的未注释数据集扩展您的通用域标记器。然后,使用这个扩展的分词器,您可以继续对 MLM 和/或 NSP 目标进行预训练,以修改您的词嵌入。最后,使用带注释的数据集微调您的模型。

【讨论】:

如果您的注释数据集规模较小,例如,约 1000 个样本和约 40 个唯一类,该怎么办?

以上是关于在特定领域继续训练预训练的 BERT 模型的最简单方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

领域数据下重新预训练模型和原始bert性能分析

使用领域文本预训练 BERT/RoBERTa 语言模型,估计需要多长时间?哪个更快?

中文bert wwm 预训练参考笔记

BERT 预训练模型及文本分类

预训练模型-从BERT原理到BERT调包和微调

BERT:深度双向预训练语言模型