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

Can you train a BERT model from scratch with task specific architecture?

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

但是,假设我们有一个巨大的句子分类数据集。从理论上讲,我们是否可以从头开始初始化 BERT 基础架构,只用这个句子分类数据集同时训练额外的下游任务特定层 + 基础模型权重形成 scratch,并且仍然取得良好的结果?

谢谢。

BERT 可以看作是一种语言编码器,它在大量数据上进行训练以学好语言。正如我们所知,原始的 BERT 模型是在整个英文维基百科和图书语料库上训练的,总计 3,300M 个单词。 BERT-base 有 109M 个模型参数。所以,如果你认为你有足够大的数据来训练 BERT,那么你的问题的答案是肯定的。

但是,当您说 "still achieve a good result" 时,我假设您是在与原始 BERT 模型进行比较。在那种情况下,答案就在于训练数据的大小。

我想知道为什么您更喜欢从头开始训练 BERT 而不是对其进行微调?是怕域适配问题吗?如果没有,预训练的 BERT 可能是一个更好的起点。

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