Nlp 你能用特定于任务的架构从头开始训练一个BERT模型吗?

Nlp 你能用特定于任务的架构从头开始训练一个BERT模型吗?,nlp,pytorch,bert-language-model,Nlp,Pytorch,Bert Language Model,基本模型的BERT预训练是通过语言建模方法完成的,在这种方法中,我们屏蔽句子中特定百分比的标记,并让模型学习那些缺少的掩码。然后,我认为为了完成下游任务,我们添加了一个新初始化的层,并对模型进行了微调 然而,假设我们有一个庞大的句子分类数据集。理论上,我们是否可以从头开始初始化BERT基础架构,仅使用该句子分类数据集训练额外的下游任务特定层+基础模型权重,并且仍然可以获得良好的结果 谢谢。伯特可以被看作是一个语言编码器,它通过大量的数据进行训练,以便学好语言。正如我们所知,最初的伯特模型是在整个

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

然而,假设我们有一个庞大的句子分类数据集。理论上,我们是否可以从头开始初始化BERT基础架构,仅使用该句子分类数据集训练额外的下游任务特定层+基础模型权重,并且仍然可以获得良好的结果


谢谢。

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

然而,当你说“仍然取得了很好的结果”时,我假设你是在与原始的伯特模型进行比较。在这种情况下,答案取决于训练数据的大小

我想知道为什么你更喜欢从头开始训练伯特而不是微调它?是因为您害怕域适配问题吗?如果不是的话,预训练的BERT也许是一个更好的起点

请注意,如果你想从头开始训练伯特,你可以考虑一个<强>更小的<强>架构。你可能会发现以下文件很有用


你完全正确。我不得不稍微修改基本伯特架构,所以我不能使用预训练的基本伯特。我的200k数据集是高度领域特定的。我最初的想法是使用这些200k数据集和语言建模架构从头开始训练BERT,然后针对特定任务再次微调,但我很好奇是否可以跳过语言模型训练,直接训练特定任务,但仍然可以获得类似的结果,因为对于预训练和微调,我使用的是相同的数据集。(我认为这是重复的)。多谢各位@瓦西·艾哈迈德,请问我如何在自己的python数据集上微调伯特模型?@nour the?