【问题标题】:Does Fine-tunning Bert Model in multiple times with different dataset make it more accuracy?使用不同的数据集多次微调 Bert 模型是否使其更准确?
【发布时间】:2022-06-18 13:23:51
【问题描述】:
我是 NLP 和 Bert 模型的新手。
我现在要做的是使用 DistilBert 模型对 Twitter Trending Hashtag 进行情绪分析(“neg”、“neu”、“pos”),但准确度是大约 50%(我尝试了从 Kaggle 获取的 w 标签数据)。
所以这是我的想法:
(1) 首先,我将使用 IMDB 数据集对 Distilbertmodel (Model 1) 进行微调,
(2) 在那之后,由于我从 Twitter 帖子中获取了一些数据,我将对他们的模型 1 进行情绪分析并得到结果 2。
(3) 然后我将使用结果 2 对模型 1 进行优化,并期望得到模型 (3)。
我不确定这个过程是否对使模型更准确有任何意义。
感谢您阅读我的帖子。
【问题讨论】:
标签:
python
nlp
pytorch
sentiment-analysis
bert-language-model
【解决方案1】:
我对你的第一步有点怀疑。由于 IMDB 数据库与您的目标数据库不同,我认为它不会对您的工作结果产生积极影响。因此,我建议在推特或其他社交媒体标签等数据集上对其进行微调;但是,如果您只关注主题标签而不关心文本,那可能会奏效!我对 BART 和 BERT 等微调转换器的一点经验表明,您正在处理的数据集应该与您的实际数据非常相似。但总的来说,您可以使用不同的数据集对模型进行微调,如果数据集针对一个目标进行结构化,则可以提高模型的准确性。
【解决方案2】:
如果你想微调 BERT 的情绪分类头以对推文进行分类,那么我建议采用不同的策略:
-
IMDB 数据集是一种不同的情绪 - 评级与短帖子情绪并不真正对应,除非您想专注于有关电影的推文。
-
使用分类器输出作为进一步训练该分类器的输入并不是一个好方法,因为如果分类器在分类时犯了很多错误,这些都会反映在训练中,因此错误会减少。这基本上是在创建内生标签,不会真正改善您的真实世界分类。
-
您应该考虑其他获取标记训练数据的方法。 twitter 有几个很好的例子:
另一件事是选择更适合您的语言的模型,我会推荐这个。它已经在 8000 万条推文上进行了预训练,因此应该提供强大的改进。我相信它甚至包含一个你可以使用的情绪分类头。
Roberta Twitter Base
查看网站以获取在代码中加载模型的指南 - 非常简单,只需使用以下代码(用于情感分类):
MODEL = "cardiffnlp/twitter-roberta-base-sentiment"
tokenizer = AutoTokenizer.from_pretrained(MODEL)
model = AutoModelForSequenceClassification.from_pretrained(MODEL)