开发者社区> 问答> 正文

NLP中关于这个f1值,我们可以在模型训练的详情中看到 比如我们用‘对话分类-高精度版这个模型 两?

问题1:NLP中关于这个f1值,我们可以在模型训练的详情中看到 比如我们用‘对话分类-高精度版(StructBERT)’这个模型 两次模型训练后的结果:A f1:86, B f1:91 在模型评估中,同样的一个分类,同样的问题,A回答出来的置信度95,B得只有70多?类似情况,我们碰到了好几次,f1 高的,回答的置信度反而低,我们如何来评估模型的可靠性,或者如何避免类似的问题?目前在模型详情中,一个问题的分类准确率和召回率都是0,所以f1也是0;但测试验证过程中,模型对于问题的置信度却能达到80%以上,所以对于模型训练后的可靠性,我们目前并没有看到一个让人信服的指标,你说的每次训练,模型略有不同,可以理解,但是同样的问题,不同的模型给出的置信度差别那么大,我们在实际生产中,如何应对呢,如何修复这个问题在上一个模型置信度不高,由如何保证其他问题不降低? 问题2;你说的这种情况,模型的表现是稳定的;但目前的状况是不同的训练,它的结果不稳定,而数据是一样的

展开
收起
真的很搞笑 2023-06-14 08:33:17 66 0
2 条回答
写回答
取消 提交回答
  • 针对您的第一个问题,f1值是一种综合评价指标,它同时考虑了分类器的精度和召回率,但是它并不能反映出分类器对于不同样本的分类能力。对于同一个分类问题,不同的模型可能会产生不同的置信度,这可能是因为模型对于样本的预测结果产生了不同的偏差,或者是因为模型对于样本的预测结果产生了不同的不确定性。在实际生产中,可以通过设置置信度的阈值来控制模型的输出结果,以达到可接受的置信度水平。此外,您可以通过对比模型的训练数据和测试数据,以及模型训练的超参数等方面来寻找模型不稳定的原因。

    针对您的第二个问题,如果不同的训练结果产生了不稳定的结果,可能是因为模型的随机初始化或者是训练数据的分布不均等等原因导致的。为了解决这个问题,您可以尝试增加训练数据的数量,或者进行数据增强来扩充训练数据的多样性,还可以通过调整模型的超参数来优化模型的性能。如果您的数据集比较小,可以尝试使用预训练模型来提高模型的泛化能力。

    2023-06-14 08:54:55
    赞同 展开评论 打赏
  • 回答1:相同的数据 和相同的参数,每次训练都是一次新的算法训练过程,不会训练出来相同的模型,同一段文本在同一个模型多次调用,结果也不会一模一样,模型的准确率可靠性是看识别的准确率,准确率的定义是能够给数据文本分类到正确的分类标签上,分类模型的目标和意义也是将对文本赋予对应的分类标签,置信度是提供的参考值,分类标签准确率和召回率都是0,说明这个分类标签下的数据量少,识别效果不佳,上传的此标签问题会被误识别到其它的分类标签,所以这是为什么置信度是一个参考值,我理解实际业务需求关注的是分类标签有没有分对,针对这种0指标的分类标签,以及误识别的问题做纠正,分析测试的bad case,做数据补充训练,提升该标签下的指标和准确率 回答2:一共一千多数据。会划分10%来用于计算指标,也就是一百多条,再加上有30多类别,平均到每个类只有三四条。每一轮训练都是随机划分的,所以会有波动。数据量大的话就比较稳定了,你们说的是同一个问题吧,方便的话待会可以电话沟通一下,此回答整理自钉群“阿里云NLP基础服务2.0 - 用户答疑群”

    2023-06-14 08:54:53
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
自然语言处理得十个发展趋势 立即下载
自然语言处理的十个发展趋势 立即下载
深度学习与自然语言处理 立即下载