🆕最新资讯🆕
随着chatgpt的兴趣,目前大家对大模型已经不再陌生,许多公司内部也已经开始用大模型来落地,提升业务指标,其中应用比较直接也比较广泛的就是生成任务。随着技术的落地,越来越多人也开始关注一个问题: 如何评估模型生成的效果是符合预期的呢? 本文将从自动评估和业务评估两个角度来介绍评估方式。自动评估方案大概可以分为三个大方面:基于统计的文本评测方法,例如blue、rouge、meteor、ter,基于语言模型和向量语义计算的评测方法,结构信息到文本的评测方法。BLEU应用的评测任务BLEU(Bilingual Evaluation Understudy)是机器翻译任务中比较常见的一种评测指标,在之前的文章《生成模型(五):评价指标 BLEU》中,已经详细介绍过bleu的具体计算方法和改进的思路,因此这里只做简单的回顾,对指标感兴趣的同学可以移步之前的文章,详细了解。实际上下面介绍的几种方法大体思路和BLEU也都类似。基本思想BLEU指标的提出,是为了评估机器翻译任务中,模型生成的候选译文和参考的标准译文中n-gram片段的重合度。重合度越高,我们就认为翻译的质量越高。其中n-gram中的n,我们一般算n在(1,4)之间的重合度,取加权平均后的数作为最终结果。算generate和reference句子的重合度pn思路:算generate中n-gram片段,在reference中出现的比例弊端:按照上面的说法,只要generate的句子是reference的子集,那么pn就会比较大,因此还需要加上一个长度惩罚因子划重点:0 < pn < 1算长度惩罚因子bp思路:用指数函数,只要保证generate小于reference的长度时,乘以一个小于1的数字即可算法:bp = exp(1-lr/lg), lg > lr,因此bp的取值,永远是小于1,大于0的,数据函数曲线图如下:算bleu值最终的值,可以看做是bp和pn的乘积,bleu也是在0-1之间的数简化版本的计算公式为:bleu = bp * log wn * logpn。实际计算的时候,上述公式需要对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的计算思路一致,m表示chunk数目。自动评测脚本这个方法实现起来比较复杂,我在github上找到了一份可用的计算版本:https://github.com/cmu-mtlab/meteorTer应用的评测任务TER是一种通过编辑距离来判断两个
来源:https://juejin.cn/ai
AI中文文本生成任务评估方法综述
原文链接:https://aixinjiyuan.com/915.html,转载请注明出处~~~
评论0