NLP 评估指标与协议

分类: 推理与评估 · 难度: 中级 · 关联讲座: L11

NLP 评估体系涵盖从 n-gram 匹配到语义级评估的多层次指标。本文系统整理三大核心评估场景的数学公式:MMLU 多选题评估协议、SQuAD 的 span-based 评估指标(EM 和 F1),以及 BLEU、ROUGE-L、BERTScore、Bradley-Terry 等通用评估指标。

📐 MMLU 的评估协议

MMLU 格式:57 个学科的多选题(4 选 1),few-shot 评估。

标准评估方式(log-likelihood scoring):

y^=argmaxc{A,B,C,D}Pθ(cpromptquestion)\hat{y} = \arg\max_{c \in \{A,B,C,D\}} P_\theta(c \mid \text{prompt} \oplus \text{question})

不是让模型生成文本,而是比较四个选项 token 的对数概率。

MMLU 准确率

Acc=1Ni=1N1[y^i=yi]\text{Acc} = \frac{1}{N} \sum_{i=1}^{N} \mathbb{1}[\hat{y}_i = y_i^*]

MMLU-Pro 的改进

  • 10 个选项(vs MMLU 的 4 个)→ 随机猜测准确率从 25% 降到 10%
  • 更多推理题,更少知识检索题
  • Chain-of-Thought 提升显著(+15%),说明题目确实需要推理

GPQA 的”Google-proof”设计

非专家花 30 分钟搜索后仍只有 34% 准确率,专家在本领域达 65%。这确保了:(1)答案不在互联网上直接可搜到 (2)需要真正的专业知识。

📐 SQuAD 的 Span-based 评估指标

SQuAD 任务:给定段落 PP 和问题 QQ,预测答案 span [s,e][s, e](起始和结束位置)。

Exact Match (EM)

EM=1Ni=1N1[predi=goldi]\text{EM} = \frac{1}{N} \sum_{i=1}^{N} \mathbb{1}[\text{pred}_i = \text{gold}_i]

预测 span 与标注完全一致才算正确(归一化后比较:去标点、小写化)。

Token-level F1

P=pred tokensgold tokenspred tokens,R=pred tokensgold tokensgold tokensP = \frac{|\text{pred tokens} \cap \text{gold tokens}|}{|\text{pred tokens}|}, \quad R = \frac{|\text{pred tokens} \cap \text{gold tokens}|}{|\text{gold tokens}|}

F1=2PRP+RF_1 = \frac{2PR}{P + R}

允许部分匹配——比 EM 更宽容。

对抗攻击(Jia & Liang 2017)的揭示

在段落末尾插入一句与问题词汇高度重叠但语义无关的干扰句:

  • 原问题:“What city did the Super Bowl take place in?” → 模型正确回答:“Santa Clara”
  • 加干扰句:“Jeff Dean played in the Super Bowl in Houston.” → 模型错误回答:“Houston”

模型依赖词汇重叠而非真正理解,EM 从 75% 暴跌到 36%。

📐 核心评估指标公式

BLEU(机器翻译)

BLEU=BPexp ⁣(n=1414logpn)\text{BLEU} = \text{BP} \cdot \exp\!\left(\sum_{n=1}^{4} \frac{1}{4} \log p_n\right)

其中 pnp_n 是修剪后的 n-gram 精确率,BP 是简短惩罚:

BP={1if c>re1r/cif cr\text{BP} = \begin{cases} 1 & \text{if } c > r \\ e^{1-r/c} & \text{if } c \le r \end{cases}

cc = 候选长度,rr = 参考长度。BLEU 只看精确率(不看召回率),BP 补偿过短的翻译。

ROUGE-L(摘要/生成)

RL=LCS(X,Y)X,PL=LCS(X,Y)Y,FL=(1+β2)RLPLRL+β2PLR_L = \frac{\text{LCS}(X, Y)}{|X|}, \quad P_L = \frac{\text{LCS}(X, Y)}{|Y|}, \quad F_L = \frac{(1+\beta^2) R_L P_L}{R_L + \beta^2 P_L}

LCS = 最长公共子序列。ROUGE-L 同时考虑精确率和召回率,且不要求匹配的词连续。

BERTScore(语义级评估)

RBERT=1xxixmaxyjyxiTyjR_{\text{BERT}} = \frac{1}{|x|}\sum_{x_i \in x} \max_{y_j \in y} \mathbf{x}_i^T \mathbf{y}_j

PBERT=1yyjymaxxixxiTyjP_{\text{BERT}} = \frac{1}{|y|}\sum_{y_j \in y} \max_{x_i \in x} \mathbf{x}_i^T \mathbf{y}_j

其中 xi,yj\mathbf{x}_i, \mathbf{y}_j 是 BERT 上下文化 embedding。每个 token 贪心匹配语义最近的对应 token,不要求位置对齐。

LLM-as-Judge 的 Bradley-Terry 模型(Chatbot Arena):

P(AB)=eβAeβA+eβBP(A \succ B) = \frac{e^{\beta_A}}{e^{\beta_A} + e^{\beta_B}}

从人类偏好投票中用 MLE 估计每个模型的强度参数 β\beta,产生 Elo-like 排名。