为何训练后的BERT模型不能够很容易的实现模型泛化?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为何训练后的BERT模型不能够很容易的实现模型泛化?相关的知识,希望对你有一定的参考价值。

多任务学习是在多个任务上训练的模型之间共享参数的一种通用方法。在神经网络中,可以通过给不同层施以不同的权重,来很容易地实现多任务学习。 参考技术A 既然藏了就做好被发现的准备,不过可以买一个特别小的自己随时带到身上,就不会很容易被发现 参考技术B 过去的就放下不去想在感情里错过的从来都不属于自己努力向前看。 参考技术C 在很多方面,我们需要多考虑,然后再决定。很多时候并不是想的那么美好,现实比较残酷。 参考技术D 多任务学习是在多个任务上训练的模型之间共享参数的一种通用方法。在神经网络中,可以通过给不同层施以不同的权重,来很容易地实现多任务学习

BERT模型Hugging face的慢速训练

【中文标题】BERT模型Hugging face的慢速训练【英文标题】:Slow training of BERT model Hugging face 【发布时间】:2021-10-22 13:09:46 【问题描述】:

我正在使用拥抱人脸库中的 BERT 模型实现二进制分类器

training_args = TrainingArguments(
   "deleted_tweets_trainer",                  
   num_train_epochs = 1,            
   #logging_steps=100,    
   evaluation_strategy='steps',       
   remove_unused_columns = True    
)

我正在使用 Colab TPU,但训练时间很长,60 小时清理推文需要 38 小时。

有没有办法优化训练?

【问题讨论】:

【参考方案1】:

您目前每 500 步评估一次,并且训练和评估批次大小为 8。

根据您当前的内存消耗,您可以增加批量大小(评估更多,因为训练消耗更多内存):

per_device_train_batch_size per_device_eval_batch_size

如果它与您的用例匹配,您还可以在开始评估后增加步骤;

eval_steps

【讨论】:

谢谢,添加 per_device_eval_batch_size=16 后,增加了计算时间 更高的batch_size会增加计算时间?你能再检查一遍吗? @AlexKujur

以上是关于为何训练后的BERT模型不能够很容易的实现模型泛化?的主要内容,如果未能解决你的问题,请参考以下文章

神经网络学习之泛化能力的提高

预训练模型综述--Albert,xlnet,bert,word2vec

深度推荐模型——BERT4Rec [CIKM 19][Alibaba]

深度推荐模型——BERT4Rec [CIKM 19][Alibaba]

什么是机器学习泛化能力举例子?

使用 BERT 等预训练模型进行文档分类