【转载】大模型评测指标全解析:如何精准衡量AI模型的性能

本文由 简悦 SimpRead 转码, 原文地址 zhuanlan.zhihu.com

开局一张图

这是 Opencompass 昨天更新的多模态大模型榜单的一部分,我们可以看到对于不同的多模态大模型在同一个评测基准下各自的评分。大家有没有想过,这个评分,是哪个或哪些指标的评分,而这个分数又是如何得到的?

今天先来拆解大模型评测指标。
大模型评测指标有准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F1 分数(F1 Score)、ROUGE、Perplexity, BLEU 等等,我们一一来解释这些指标是什么,适用于什么任务,以及这些指标是如何应用在评估任务中的。

准确率(Accuracy)

准确率(Accuracy)是用来评估分类模型性能的一个重要指标。它表示模型正确预测的样本数占总样本数的比例。
准确率的计算公式为:
Accuracy=(TP+TN)/(TP+TN+FP+FN)
其中:

  • TP(True Positives):真正例,模型正确预测为正类的样本数。
  • TN(True Negatives):真负例,模型正确预测为负类的样本数。
  • FP(False Positives):假正例,模型错误预测为正类的样本数。
  • FN(False Negatives):假负例,模型错误预测为负类的样本数。

举个例子来说明,假设有一个医生在诊断一种疾病时使用了某种检测方法。我们可以将这个例子对应到分类模型的术语中:

  • 真正类 (TP):实际患病的人被检测为阳性。
  • 真负类 (TN):实际健康的人被检测为阴性。
  • 假正类 (FP):实际健康的人被错误地检测为阳性。
  • 假负类 (FN):实际患病的人被错误地检测为阴性。

现在假设有 100 个人参加了检查, 其中 50 人实际患病, 50 人实际健康。检测结果如下:

  • 40 名患病者被检测为阳性 (TP)
  • 10 名患病者被错误地检测为阴性 (FN)
  • 45 名健康者被检测为阴性 (TN)
  • 5 名健康者被错误地检测为阳性 (FP)

将数值代入计算:
$$ Accuracy=(40+45)/(40+45+5+10)=85/100=0.85 $$
因此, 这种检测方法的准确率为 85%, 也就是说在所有被检测的人中, 有 85% 的人被正确诊断。准确率反映了模型或检测方法在所有样本中正确预测的比例。它是一个直观的性能指标, 但在某些情况下可能会产生偏差, 需要结合其他指标一起评估模型的性能。

精确率(Precision)

精确率(Precision)是一个重要的性能指标,用于衡量分类模型在预测为正类时的准确性。它表示在所有被模型预测为正类的样本中,实际为正类的比例。
精确率的计算公式为:
Precision=TP/(TP+FP)
用前面的例子来表示:

  • 40 名患病者被检测为阳性 ----- 真正类 TP
  • 5 名健康者被错误地检测为阳性 ----- 假正类 FP

根据精确率公式:
$$ Precision=40/(40+5)≈0.889 $$
因此,这种检测方法的精确率约为 88.89%。这表示在所有被检测为阳性的样本中,有 88.89% 实际上是患病的。精确率是评估模型性能的重要指标,尤其在类别不平衡的情况下尤为重要。它帮助我们理解模型在预测正类时的准确性,能够有效反映出模型的可靠性。

召回率(Recall)

召回率(Recall)是一个重要的性能指标,用于衡量分类模型在实际为正类的样本中,预测正确的比例。
召回率的计算公式为:
Recall=TP/(TP+FN)
用前面的例子来表示:

  • 40 名患病者被检测为阳性 ---- 真正类 TP
  • 10 名患病者被错误地检测为阴性 ---- 假负类 FN

根据召回率计算公式:
$$ Recall=40/(40+10)=0.8 $$
因此,这种检测方法的召回率为 80%。这表示在所有实际患病的样本中,有 80% 被正确检测为阳性。召回率反映了模型在实际正类样本中的覆盖程度。它与精确率不同,侧重于模型在实际正类样本中的表现。在某些应用场景中,如医疗诊断,召回率可能比精确率更加重要,因为我们希望尽可能多地识别出实际患病的人。召回率的分数越高越好。

F1 分数(F1 Score)

F1 分数是一个重要的性能指标,用于综合评估分类模型的精确率(Precision)和召回率(Recall)。它特别适用于类别不平衡的数据集,因为它能够平衡这两个指标的影响。
F1 分数的计算公式为:
$$ F1=2×(Precision×Recall)/(Precision+Recall) $$
在上面的例子中,Precision=40/(40+5);Recall=40/(40+10),我们根据 F1 score 的计算公式可以知道

$$ F1=\frac{2\times(40\div45)\times(40\div50)}{(40\div45+40\div50)}=84.21% $$

F1 分数是一个综合性指标,能够有效反映模型在处理类别不平衡问题时的性能。它在许多领域(如医疗诊断、欺诈检测等)中非常重要,因为这些领域通常对假阳性和假阴性的影响有不同的要求。F1 分数越高越好

ROUGE

ROUGE(Recall-Oriented Understudy for Gisting Evaluation)是一种用于评估自动文本摘要和机器翻译质量的指标。它通过比较自动生成的摘要与参考摘要(通常是人工生成的)之间的相似度来进行评估。
ROUGE 的主要类型

  • ROUGE-N:计算生成摘要与参考摘要之间的 n-gram 重叠情况。
  • ROUGE-L:基于最长公共子序列(LCS)来评估生成摘要与参考摘要的匹配程度。
  • ROUGE-W:考虑词序权重的 n-gram 评估。
  • ROUGE-S:评估生成的句子与参考摘要之间的匹配程度。

ROUGE-N 的计算公式为

ROUGE - N = \frac{\sum_{S \in \text{Reference Summaries}} \sum_{n \text{ gram} \in S} Count_{\text{match}}(n \text{ gram})}{\sum_{S \in \text{Reference Summaries}} \sum_{n \text{gram} \in S} Count(n \text{ gram})}

举个例子,假设我们有以下自动生成的摘要和参考摘要:

  • 自动摘要:the cat was found under the bed
  • 参考摘要:the cat was under the bed

计算 ROUGE-1

  • 1-gram 提取:

  • 自动摘要的 1-gram:the, cat, was, found, under, the, bed

  • 参考摘要的 1-gram:the, cat, was, under, the, bed

  • 重叠的 1-gram 数量:

  • 重叠的 1-gram:the, cat, was, under, the, bed(共 6 个)

  • 计算 ROUGE-1:

  • 参考摘要的 1-gram 总数:6

  • ROUGE-1 计算:

ROUGE−1=6/6=1.0
这表示自动摘要与参考摘要之间的 1-gram 重叠率为 100%。

计算 ROUGE-2

  • 2-gram 提取:

  • 自动摘要的 2-gram:the cat, cat was, was found, found under, under the, the bed

  • 参考摘要的 2-gram:the cat, cat was, was under, under the, the bed

  • 重叠的 2-gram 数量:

  • 重叠的 2-gram:the cat, cat was, under the, the bed(共 4 个)

  • 计算 ROUGE-2:

  • 参考摘要的 2-gram 总数:5

  • ROUGE-2 计算:

ROUGE−2=4/5=0.8
这表示自动摘要与参考摘要之间的 2-gram 重叠率为 80%。
ROUGE-1 和 ROUGE-2 是最常用的评估指标.

Perplexity
Perplexity(困惑度)是自然语言处理(NLP)中一种常用的评估语言模型性能的指标。它衡量了语言模型在预测文本序列时的 “困惑” 程度,反映了模型对下一个词的预测能力。
Perflexity 计算公式
Perplexity 可以被定义为一个序列的平均负对数似然的指数形式。具体而言,对于给定的词序列 w1,w2,…,wN_w_1,_w_2,…,wN,其计算公式为:

PPL = \exp \left(-\frac{1}{N} \sum_{i=1}^{N} \log P(w_i|w_1, w_2, \dots, w_{i-1})\right)

其中:

  • N_N_ 是序列中的词数。
  • P(wi∣w1,w2,…,wi−1)P(_wi_∣_w_1,_w_2,…,wi_−1) 是模型在给定前面词的情况下预测第 i_i 个词的概率。

直观理解
Perplexity 可以被视为模型在预测下一个词时的 “惊讶” 程度。较低的困惑度表示模型对文本的预测更有信心,而较高的困惑度则表示模型在预测时更加困惑。例如,如果一个语言模型的困惑度为 10,这意味着模型在每个词的预测中,平均需要从 10 个可能的选择中进行选择。
假设我们有一个简单的语言模型,它在给定上下文的情况下预测下一个词的概率。对于句子 “the cat sat on the”,模型可能会对下一个词的预测概率如下:

  • P(mat ∣ the cat sat on the)=0.6_P_(mat ∣ the cat sat on the)=0.6
  • P(floor ∣ the cat sat on the)=0.3_P_(floor ∣ the cat sat on the)=0.3
  • P(table ∣ the cat sat on the)=0.1_P_(table ∣ the cat sat on the)=0.1

如果我们计算这个句子的困惑度,首先需要计算每个词的对数概率,然后取平均值并进行指数运算。假设我们只考虑句子的最后一个词 “mat”,则:
PPL=exp⁡(−log⁡(0.6))≈1.51_PPL_=exp(−log(0.6))≈1.51
这个困惑度值表示模型对预测的信心程度,Perplexity 的值越小,表明模型对词的预测更有信心。

BLEU

BLEU(Bilingual Evaluation Understudy)是一种用于评估机器翻译质量的指标。它通过比较机器翻译输出与一个或多个参考翻译之间的 n-gram 重叠来进行评分。
定义
BLEU 的核心思想是判断机器翻译的输出与人类翻译之间的相似程度。该指标主要通过以下几个步骤进行计算:

  • n-gram 匹配:计算候选翻译(机器翻译输出)与参考翻译之间的 n-gram 重叠。常见的 n-gram 包括:

  • BLEU-1:计算 unigram(单词级别)的重叠。

  • BLEU-2:计算 bigram(词组级别)的重叠。

  • BLEU-3 和 BLEU-4:分别计算三元组和四元组的重叠。

  • 修改后的精确率:BLEU 使用修改后的 n-gram 精确率来避免重复计算相同词的多次匹配。具体而言,候选翻译中每个 n-gram 的计数被限制为在参考翻译中出现的最大次数。

  • 长度惩罚:为了避免机器翻译系统生成过短的翻译,BLEU 引入了长度惩罚(Brevity Penalty),确保翻译的长度与参考翻译相对一致。

计算公式
BLEU 的计算公式为:

BLEU = BP \cdot \exp\left(\sum_{n=1}^{N} w_n \log p_n\right)

其中:

  • BP_BP_ 是长度惩罚因子。
  • N_N_ 是 n-gram 的最大长度(通常取 4)。
  • wn_wn_ 是权重系数(通常取 1N_N_1)。
  • pn_pn_ 是 n-gram 的精确率。

直观理解
假设我们有以下参考翻译和机器翻译输出:

  • 参考翻译:The cat is on the mat.

  • 机器翻译:The cat sat on the mat.

  • 提取 n-gram:

  • 参考翻译的 unigram:[The, cat, is, on, the, mat]

  • 机器翻译的 unigram:[The, cat, sat, on, the, mat]

  • 计算匹配的 unigram 数量:

  • 匹配的 unigram:[The, cat, on, the, mat](共 5 个匹配)。

  • 计算 unigram 精确率:

  • 机器翻译的 unigram 总数:6

  • p1=56≈0.8333_p_1=65≈0.8333

  • 计算长度惩罚:

  • 假设机器翻译长度为 6,参考翻译长度为 6,则 BP=1.0_BP_=1.0。

  • 计算 BLEU 分数:

  • 最终 BLEU 分数为:

BLEU=1.0⋅exp⁡(log⁡(0.8333))≈0.8333_BLEU_=1.0⋅exp(log(0.8333))≈0.8333

BLEU 分数越高,翻译质量越好

回到最初的问题,榜单上不同的 benchmark 分数是哪个或哪些指标?------ 需要看具体的实现,

但一般说来,一个 benchmark 可以对应多个任务和多个指标,下一节来详细介绍。