首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于微调MLM的RoBERTa不提高性能

基于微调MLM的RoBERTa不提高性能
EN

Data Science用户
提问于 2023-04-18 12:42:45
回答 2查看 171关注 0票数 1

我们有很多特定于领域的数据(200M+数据点,每个文档有大约100到500字),我们希望有一个特定于域的LM。

我们采取了一些样本数据点(2M+) &精调罗伯塔基地(使用高频变压器),使用蒙版语言建模(MLM)任务。

到目前为止,

  1. 我们做了4-5个周期(512序列长度,批大小=48)。
  2. 使用余弦学习速率调度器(2-3周期/历元)
  3. 我们用发电机掩蔽(蒙面15%的令牌)

由于RoBERTa模型是针对特定领域的数据进行细化的,因此我们确实期望该模型的性能要好于对一般文本(wiki数据、书籍等)进行培训的预培训-RoBERTa。

我们确实执行了一些任务,如命名实体识别(NER)、文本分类和嵌入生成来执行余弦相似任务。我们在特定领域的RoBERTa和训练前的罗伯塔上做了这件事。

令人惊讶的是,这两种模型的结果是相同的(非常小的差异)。我们也尝试过Spacy模型,但结果是一样的。

困惑评分表明,精细化的基于MLM的RoBERTa损失最小.

  1. 有谁能帮助我们理解为什么基于MLM的模型没有表现得更好?
  2. 我们应该去寻找更多的数据,或者更多的时代,或者两者兼而有之,才能看到一些效果?
  3. 我们在这里做错什么了吗?如果没有必要的细节,请告诉我。我会更新

任何解决这些问题的建议或任何有价值的联系都会很有帮助。

拥抱脸讨论页面:https://discuss.huggingface.co/t/fine-tuned-mlm-based-roberta-not-improving-performance/36913

EN

回答 2

Data Science用户

发布于 2023-04-21 03:50:35

这是很好的,您有微调的RoBERTa在您的特定领域的数据,并看到一个最小的损失在困惑的分数。然而,有几个原因可以解释为什么微调的基于MLM的RoBERTa模型可能没有比经过预先训练的RoBERTa模型表现得更好:

  1. 数据质量:可能您的领域特定数据的质量不如您想象的那么好。即使你有大量的数据,如果它不代表这个领域,或者有错误,噪音,不一致或其他质量问题,它也会对你的优化模型的性能产生负面影响。您可能需要仔细检查您的数据,并考虑在必要时清理、过滤或增强数据。
  2. 有限的样本大小:在有限的样本大小上对语言模型进行微调可能不足以捕捉特定领域数据的细微差别和复杂性。您提到您使用2M+数据点进行微调,但是您有一个更大的数据集(200M+数据点)。增加微调数据集的大小可能会带来更好的性能。
  3. 有限的微调时代:对语言模型进行微调需要足够的时间来了解特定领域数据的细微差别。您提到,您只做了4-5期,这可能不足以使模型完全适应您的数据。增加划时代的数量可能会带来更好的性能,或者使用更大的批处理大小来改进模型的收敛性。
  4. 有限微调技术:蒙面语言建模(MLM)是语言模型的微调技术之一.然而,还有其他微调技术,如下一句预测,可以用于微调语言模型。另外,您可能需要对不同的超参数进行实验,例如学习速率、批处理大小、序列长度和掩蔽策略,看看它们是否会影响您的精调模型的性能。您可以尝试使用更积极地增加或减少学习速率的计划,或者尝试使用更大的批处理大小或序列长度来捕获更多上下文。
  5. 有限的评估任务:您提到您评估了关于命名实体识别(NER)、文本分类和嵌入生成任务的优化模型。这可能是这些任务不够敏感,以检测之间微妙的差异,预先培训和精细调整的模型。您可能希望在更多不同的任务上评估您的模型,如问答、摘要或机器翻译,以确定您的精练模型与经过预先培训的RoBERTa模型之间是否存在性能差异。
  6. 模型复杂性/模型体系结构: RoBERTa体系结构可能不适合您特定领域的数据和任务。您的精调模型所捕获的特定领域知识可能不够复杂,无法对您的任务产生影响。您可能希望尝试更复杂的模型体系结构,或者在您的优化模型中添加更多的层,甚至探索专门为您的任务和域设计的自定义体系结构。

如果没有关于您的数据和任务的更多信息,很难确切地说明为什么经过细化的模型没有更好的性能。然而,我上面列出的解释是一些常见的原因,为什么微调可能并不总是导致性能上的显著改善。

为了解决这些问题,以下是一些建议:

  • 增加微调数据集的大小和历元数.您可能希望尝试不同的时代大小,并在每个时代之后评估模型,以查看性能是否有所提高。添加更多不代表该领域的数据或添加太多的时代可能会导致过度拟合,这将损害性能。
  • 尝试不同的微调技术,如下一句预测或序列分类.
  • 使用特定领域的评估指标来评估您的模型。使用标准的评估指标,如准确性或F1评分,它们可能对您领域的细微差别不够敏感。您可能需要考虑使用特定于域的评估度量,或者创建自己的评估度量,以更好地度量模型的性能。
  • 使用转移学习技术,如域自适应微调或域自适应预培训,以提高模型在您的特定领域的性能。
  • 考虑使用不同的体系结构,如BERT或XLNet,看看它们是否会带来更好的性能。
  • 尝试从零开始对特定于域的数据进行语言模型的培训,以查看这是否提高了性能。

就其他资源而言,您可能会发现以下链接很有帮助:

  • 拥抱面板变形金刚文档包含关于微调和超参数调优的详细信息:变压器
  • ULMFiT纸讨论了在特定领域的数据上微调LMs的技术,并且可能与您的工作相关。
  • 艾伦人工智能研究所(AI2)发布了一个工具包,用于评估各种任务的LM性能,称为"胶水基准“。
  • 强力胶基准是胶水的扩展,目的是测试NLU模型的局限性,并可能是您的精调模型的一个有用的评估任务。
票数 0
EN

Data Science用户

发布于 2023-04-22 16:00:13

如果您有几乎相同的结果,这可能是由于数据本身。有很多多余的内容吗?

数据应该有一些冗余,但不太多,否则在权重之间存在不平衡,从而降低了学习质量。

我是根据我的经验提出这个想法的。如果您的数据在文档之间有很多相似之处,您应该将它们减少到一个严格的最低限度。例如,如果您有10,000篇具有几乎相同内容的文章,它将更改模型培训。

此外,从分类/预测的角度来看,冗余是没有意义的。因此,您的培训数据不仅应该是大量的,而且还应该是可变的,以便使词汇表(或任何模型架构)具有良好的权重平衡。

票数 0
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/121004

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档