如何评估模型生成的效果

释放双眼,带上耳机,听听看~!
本文介绍了模型生成效果的评估方法,包括基于统计的文本评测方法和基于语言模型的评测方法,以及其在业务中的应用。

随着chatgpt的兴趣,目前大家对大模型已经不再陌生,许多公司内部也已经开始用大模型来落地,提升业务指标,其中应用比较直接也比较广泛的就是生成任务。随着技术的落地,越来越多人也开始关注一个问题: 如何评估模型生成的效果是符合预期的呢? 本文将从自动评估和业务评估两个角度来介绍评估方式。

自动评估方案大概可以分为三个大方面:

  • 基于统计的文本评测方法
    • 例如 blue、rouge、meteor、ter
  • 基于语言模型和向量语义计算的评测方法
  • 结构信息到文本的评测方法

基于统计的文本评测方法

BLEU

应用的评测任务

BLEU(Bilingual Evaluation Understudy) 是机器翻译任务中比较常见的一种评测指标,在之前的文章 生成模型(五):评价指标 BLEU 中,已经详细介绍过 bleu 的具体计算方法和改进的思路,因此这里只做简单的回顾,对指标感兴趣的同学可以移步之前的文章,详细了解。实际上下面介绍的几种方法大体思路和 BLEU也都类似。

基本思想

BLEU 指标的提出,是为了评估机器翻译任务中,模型生成的候选译文和参考的标准译文中 n-gram 片段的重合度。重合度越高,我们就认为翻译的质量越高。其中n-gram 中的 n,我们一般算 n在(1,4) 之间的重合度,取加权平均后的数作为最终结果。

  • 算generate 和 reference 句子的重合度 pnp_n
    • 思路: 算 generate 中 n-gram 片段,在 reference 中出现的比例

    • 弊端: 按照上面的说法,只要 generate 的句子是 reference 的子集,那么 pnp_n 就会比较大,因此还需要加上一个 长度惩罚因子

    • 划重点:0 < pnp_n < 1

  • 算长度惩罚因子 bp
    • 思路: 用指数函数,只要保证 generate 小于 reference 的长度时,乘以一个小于1的数字即可

    • 算法: bp=exp(1−lr/lg),lg>lrbp = exp(1-l_r/l_g), l_g > l_r, 因此 bp的取值, 永远是小于1,大于0的,数据函数曲线图如下:

如何评估模型生成的效果

  • 算 bleu值
    • 最终的值,可以看做是 bp 和 pnp_n 的乘积, bleu 也是在 0-1 之间的数
    • 简化版本的计算公式为:bleu=bp∗logwn∗logpnbleu = bp * log w_n * logp_n
    • 实际计算的时候,上述公式需要对 n在1-4之间求平均, wn 一般为 1/n

Rouge

应用的评测任务

rouge 也比较常见于机器翻译任务,但不是传统机器翻译任务,而是神经网络机器人任务;因为 rouge 主要计算的是召回率,而不是像bleu 一样关注精准率。此外,还被用在谣言检测、文本摘要等生成任务中做评测。

基本思想

因为神经网络出现之后,机器翻译任务的流畅度都比较高,但是有可能会出现漏召回的情况,导致翻译的译文和原始句子有很大的gap。所以 rogue的计算方式也衍生出很多种类型: rogue-n(n-gram)、rogue-l(将n-gram 优化为公关子序列)
、rogue-s(skip,n-gram可以跳词)
其中 rogue-n 跟 bleu 类似,只是不是计算精准度,而是计算召回,这里优先对 rogue-s的计算方法做介绍:

  • 思路:采用跳词的的方法,计算精度和召回率
  • skip n-gram计算: 例如 “i have a cat”, skip-2-gram 就是(i,have),(i,a),(i, cat),(have,a),(have,cat),(a,cat)。

如何评估模型生成的效果

Meteor

应用的评测任务

Meteor 也是对 BLEU方法的一种改进,会同时关注 精准率和召回率,因此在各种生成任务中,都习惯于看 meteor 指标。

基本思想

Meteor 是 Lavir 在 2014 年提出的另一种衡量文本相似的指标,Lavir 的 研究结果表明,基于召回率的计算标准,要比基于精准度计算的标准(比如上 文介绍的 BLEU),和人工评测得到的结果相关性更高一些。Meteor 包含了一 些同义词匹配的功能,该功能基于给定的基于 WordNet 同义词库,进行校准。

  • 思路:计算对应的生成句子和参考译文之间,准确率和召回率的调和平均
  • 优化1:用 wordnet 做同义词匹配
  • 优化2: 引入 chunk 的概念评价流畅度,chunk就是通过 beam search的方法,得到的候选译文和参考译文能对齐的连续排列的单词,显然,我们比较希望 chunk的数量少一点,这样表明两者的语序比较一致。

如何评估模型生成的效果

其中, p和 R 和 bleu 的计算思路一致,mm 表示 chunk 数目。

自动评测脚本

这个方法实现起来比较复杂,我在 github 上找到了一份可用的计算版本:
github.com/cmu-mtlab/m…

Ter

应用的评测任务

TER 是一种通过编辑距离来判断两个句子是否相似的方法,常用于机器翻译、语音识别领域。

基本思想

TER 整体的思想比较简单,理解了编辑距离,ter 的度量也就比较容易理解了。

  • 思路: 计算译文到参考译文所需要的编辑距离,分母一般是参考译文的长度。
  • 计算方法:
    score=edit(g,r)/lrscore = edit(g, r) / l_r

总结

由于篇幅原因,本文先介绍了基于统计的集中评测方法: BLEU、Rogue、Meteor、TER,其中 rogue 和 Meteor 都是基于 BLEU 的算法思想,提出的改进方案。BLEU 主要是算 precision, rogue 考虑的是 recall,而 meteor 则兼顾了 precision 和 recall,算的是调和平均 F1-score,并且还融入了wordnet 做语义相似度。 TER 是一种基于编辑距离的方法,在语音识别领域应用较多。

下一篇文章中,将继续介绍基于语义、结合业务任务做评估。

本网站的内容主要来自互联网上的各种资源,仅供参考和信息分享之用,不代表本网站拥有相关版权或知识产权。如您认为内容侵犯您的权益,请联系我们,我们将尽快采取行动,包括删除或更正。
AI教程

如何优化网站内容的SEO

2023-11-28 13:31:00

AI教程

电脑清理大法:断舍离让C盘快速腾出十几个G的空间

2023-11-28 13:38:14

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索