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

BERT的基模型预训练是通过语言模型方法完成的,我们会遮蔽句子中一定百分比的词元,并让模型学习这些缺失的遮蔽部分。之后,我认为为了执行下游任务,我们会添加一个新初始化的层,并且对模型进行微调。

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


回答:

BERT可以被视为一个语言编码器,它在大量数据上进行训练以很好地学习语言。正如我们所知,原始的BERT模型是在整个英语维基百科和书籍语料库上训练的,总共3.3亿个词。BERT-base有1.09亿个模型参数。所以,如果你认为你有足够大的数据来训练BERT,那么对你问题的回答是肯定的。

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

我想知道你为什么更喜欢从头开始训练BERT而不是微调它?是因为你担心领域适应问题吗?如果不是的话,预训练的BERT或许是一个更好的起点。

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

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注