用于情绪分析的 BERT 微调模型高度过拟合

     2023-03-29     279

关键词:

【中文标题】用于情绪分析的 BERT 微调模型高度过拟合【英文标题】:BERT fine tuned model for sentiment analysis highly over-fitting 【发布时间】:2021-09-15 13:18:24 【问题描述】:

我正在尝试微调 BERT 预训练模型。我正在使用来自tensorflow_datasetsyelp_polarity_reviews 数据。我已经确定:

    将预训练的 BERT 模型加载为KerasLayer tensorflow_hub。 使用相同的tokenizervocab_filedo_lower_case 用于训练原始模型。 将数据集转换为tf.data.Dataset 对象并应用maptf.py_function 中包装我的python 函数的函数。 我还按照 BERT 的要求提供输入,即input_word_idsinput_maskinput_type_ids 在一个数组中。

在确保上述所有内容都正确实施后,训练模型时过度拟合严重。训练准确率高达约 99%,而验证准确率几乎不超过 50%。

我尝试了不同的optimizerserror functionslearning rates,甚至尝试了高低dropouts,我也尝试过改变火车数据的大小,但毕竟结果是没有更好的。

Here 是显示已执行代码的 colab 笔记本。

任何建议和帮助将不胜感激。

【问题讨论】:

【参考方案1】:

我检查了您的 colab 代码,经过一些跟踪,验证集似乎存在问题。这当然是对的。错误是在测试数据集中加载了火车标签。

elp_test, _ = train_test_split(list(zip(yelp['test']['text'].numpy(),
                                yelp['test']['label'].numpy())), # < correction
                                train_size=0.025, 
                                random_state=36)

现在,如果你运行模型,你会得到

history = model.fit(data_train, 
                    validation_data=data_valid, 
                    epochs=1,
                    batch_size=256, 
                    verbose=2)
915ms/step - loss: 0.3309 - binary_accuracy: 0.8473 - 
             val_loss: 0.1722 - val_binary_accuracy: 0.9354

【讨论】:

谢谢,不仔细检查我觉得自己很笨。我改变了很多东西,但实际问题只是一个轻微的错字:( 它发生了。你确实提到并尝试了很多东西,这么小的东西被跳过是正常的。我先把validation set for training和training set放到validation里,结果training score在50左右,这就是我怀疑validation set的原因。

如何将微调过的 bert 模型的输出作为输入提供给另一个微调过的 bert 模型?

...ertmodel?【发布时间】:2020-06-0311:28:59【问题描述】:我在情绪分析和pos标记任务上微调了两个独立的bert模型(bert-base-uncased)。现在,我想将pos标记器的输出(bat 查看详情

为不同的任务、情绪分析微调预训练的西班牙语 RoBERTa 模型

】为不同的任务、情绪分析微调预训练的西班牙语RoBERTa模型【英文标题】:Fine-tuningapretrainedSpanishRoBERTamodelforadifferenttask,sentimentanalysis【发布时间】:2021-11-1923:59:25【问题描述】:我正在对西班牙推文进行情绪分析。在查看了一... 查看详情

使用 Trainer API 预训练 BERT 模型时出现 ValueError

...transformers库中的TrainerAPI微调/预训练现有的BERT模型以进行情绪分析。我的训练数据集如下所示:TextSentimentThiswasgoodplace 查看详情

如何再次微调一个bert微调模型

【中文标题】如何再次微调一个bert微调模型【英文标题】:Howtofinetuningagainofabertfinedtunedmodel【发布时间】:2021-07-2220:45:13【问题描述】:我使用ktrain为文本分类做了一个微调的bert模型。我想再次在另一个文本分类数据上微调这... 查看详情

中文情感分类任务如何对bert语言模型微调,微调后的模型如何使用

中文情感分类任务如何对bert语言模型微调,微调后的模型如何使用  查看详情

如何使用微调的 BERT 模型进行句子编码?

】如何使用微调的BERT模型进行句子编码?【英文标题】:Howtousefine-tunedBERTmodelforsentenceencoding?【发布时间】:2021-06-1620:07:15【问题描述】:我按照此处的脚本在我自己的数据集上微调了BERT基础模型:https://github.com/cedrickchee/pytorch... 查看详情

如何从微调的 bert 模型中获得多类置信度分数?

】如何从微调的bert模型中获得多类置信度分数?【英文标题】:Howtogetmulticlassconfidencescorefromfinetunedbertmodel?【发布时间】:2021-11-2922:52:53【问题描述】:我使用预训练的bert模型进行意图分类(uncased_L-12_H-768_A-12)。将输出显示为... 查看详情

将 LIME 解释应用于我的微调 BERT 以进行序列分类模型?

】将LIME解释应用于我的微调BERT以进行序列分类模型?【英文标题】:ApplyingLIMEinterpretationonmyfine-tunedBERTforsequenceclassificationmodel?【发布时间】:2020-10-2214:45:03【问题描述】:我针对特定任务的序列分类对BERT进行了微调,我想应用... 查看详情

如何微调 HuggingFace BERT 模型以进行文本分类 [关闭]

】如何微调HuggingFaceBERT模型以进行文本分类[关闭]【英文标题】:HowtoFine-tuneHuggingFaceBERTmodelforTextClassification[closed]【发布时间】:2021-10-3115:55:33【问题描述】:是否有分步说明关于如何微调HuggingFaceBERT模型以进行文本分类?【问... 查看详情

持续预训练与使用 MLM 微调语言模型

...】:2021-09-2808:09:08【问题描述】:我有一些自定义数据想用于进一步预训练BERT模型。到目前为止,我已经尝试了以下两种方法:从预训练的BERT检查点开始,然后使用MaskedLanguageModeling(MLM)+NextSentencePred 查看详情

预训练模型-从bert原理到bert调包和微调

 一、BERT原理BERT取名来自BidirectionalEncoderRepresentationsfromTransformers。架构为:预训练+fine-tuning(对于特定的任务只需要添加一个输出层)。1、引言      通过预训练语言模型可显著提高NLP下游任务。限制模... 查看详情

《自然语言处理实战入门》深度学习----预训练模型的使用(albert)

...和微调中都使用相同的体系结构。相同的预训练模型参数用于初始化不同下游任务的模型。 查看详情

输入文件应该如何格式化以进行语言模型微调(BERT 通过 Huggingface Transformers)?

】输入文件应该如何格式化以进行语言模型微调(BERT通过HuggingfaceTransformers)?【英文标题】:Howexactlyshouldtheinputfilebeformattedforthelanguagemodelfinetuning(BERTthroughHuggingfaceTransformers)?【发布时间】:2020-05-1623:51:08【问题描述】:我想在... 查看详情

6.逻辑回归

...么不同?逻辑回归:是一种广义的线性回归分析模型。常用于数据挖掘,疾病自动诊断,经济预测等领域。线性回归:利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量百关系的一种统计分析方法。常运用... 查看详情

bert预训练模型及文本分类(代码片段)

...式的意义。本次试验将介绍BERT的模型结构,以及将其应用于文本分类实践。知识点语言模型和词向量BERT结构详解BERT文本分类BERT全称为BidirectionalEncoderRepresentationsfromTransformer,是谷歌在2018年10月发布的语言表示模型。BERT通过维... 查看详情

如何在未标记的数据上微调 BERT?

】如何在未标记的数据上微调BERT?【英文标题】:HowtofinetuneBERTonunlabeleddata?【发布时间】:2020-09-0917:57:09【问题描述】:我想在特定域上微调BERT。我在文本文件中有该域的文本。我如何使用这些来微调BERT?我目前正在寻找here... 查看详情

小白学习pytorch教程十六在多标签分类任务上微调bert模型(代码片段)

...篇论文的主要目的在于在文本分类任务上探索不同的BERT微调方法并提供一种通用的BERT微调解决方法。这篇论文从三种路线进行了探索:(1)BERT自身的微调策略,包括长文本处理、学习率、不同层的选择等方法;(2)目标... 查看详情

bert:双向预训练+微调(代码片段)

...最新文章。Transformer:Attention集大成者GPT-1&2:预训练+微调带来的奇迹Bert:双向预训练+微调Bert与模型压缩Bert与模型蒸馏:PKD和DistillBertALBert:轻量级BertTinyBert:模型蒸馏的全方位应用MobileBert:Pixel4上只需40ms更多待续Transforme... 查看详情