您可以使用任务特定架构从头开始训练BERT模型吗?

时间:2020-05-15 19:21:56

标签: nlp pytorch bert-language-model

基本模型的BERT预训练是通过语言建模方法完成的,在该方法中,我们屏蔽了句子中一定比例的标记,然后使模型学习那些缺少的掩码。然后,我认为为了执行下游任务,我们添加了一个新初始化的层并对模型进行微调。

但是,假设我们有一个庞大的数据集用于句子分类。从理论上讲,我们是否可以从头开始初始化BERT基本体系结构,仅使用此句子分类数据集训练额外的下游任务特定层+基本模型权重就可以从头开始,仍然取得良好的结果?

谢谢。

1 个答案:

答案 0 :(得分:5)

BERT可以看作是一种语言编码器,它接受了大量的数据训练,可以很好地学习该语言。众所周知,原始的BERT模型是在整个英语Wikipedia和Book语料库上进行训练的,总计为 3,300M 个单词。基于BERT的模型参数为109M。因此,如果您认为自己有足够的数据来训练BERT,那么问题的答案是肯定的。

但是,当您说“仍然取得良好结果”时,我假设您正在与原始BERT模型进行比较。在这种情况下,答案在于训练数据的大小。

我想知道为什么您更喜欢从头训练BERT而不是对其进行微调?是因为您担心域适应问题吗?如果不是这样,经过预训练的BERT可能是一个更好的起点。

请注意,如果您想从头训练BERT,则可以考虑使用更小的体系结构。您可能会发现以下论文很有用。

相关问题