【NLP】 28. 语言模型的评估方式:MRR, PERPLEXITY, BLEU, WER从困惑度到实际效果
语言模型的评估方式:从困惑度到实际效果
评估语言模型(LLM)是否有效,并不仅仅是看它生成句子是否“听起来通顺”,我们需要定量的指标对模型性能做出系统性评价。评估方法主要分为两大类:
- 内在评价(Intrinsic Evaluation):直接衡量模型本身的语言建模能力。
- 外在评价(Extrinsic Evaluation):模型作为子模块嵌入下游任务时的表现。
1️⃣ Mean Reciprocal Rank (MRR):排名相关指标
-
用途:衡量模型在预测多个候选项时,正确答案排第几位。
-
公式:
M R R = 1 ∣ Q ∣ ∑ i = 1 ∣ Q ∣ 1 rank _ i MRR = \frac{1}{|Q|} \sum_{i=1}^{|Q|} \frac{1}{\text{rank}\_i} MRR=∣Q∣1∑i=1∣Q∣rank_i1其中 rank _ i \text{rank}\_i rank_i 表示第 i i i 个查询中正确答案的排序位置。
-
例子:
- 输入:
The student submitted the
- 候选输出(按概率排序):[
report
,homework
,form
] - 正确答案为
assignment
,排名第 4 - MRR = 1 4 = 0.25 \frac{1}{4} = 0.25 41=0.25
- 输入:
-
优点:衡量模型排序能力;适合开放式问答、多选题预测
-
缺点:只关注第一个正确答案;不适合多标签预测任务
2️⃣ Perplexity(困惑度):语言模型专属指标
-
定义:衡量语言模型对测试集的平均预测难度,数值越低越好。
-
公式:
Perplexity = exp ( − 1 N ∑ i = 1 N log P ( w i ∣ w < i ) ) \text{Perplexity} = \exp\left(-\frac{1}{N} \sum_{i=1}^{N} \log P(w_i | w_{<i})\right) Perplexity=exp(−N1i=1∑NlogP(wi∣w<i)) -
直观理解:模型在每个位置平均“有多少个选择”。完美模型的困惑度为 1。
-
例子:
-
模型 A 预测 “The student submitted the assignment.” 中每个词概率均为 1/10
- Perplexity = ( 1 10 ) 5 = 1 0 5 \left(\frac{1}{10}\right)^5 = 10^5 (101)5=105, 非常高
-
模型 B 预测大部分词准确,只有一个词较不确定(如 1/2)
- Perplexity 更低 → 模型更好
-
-
优点:
- 标准、通用、训练过程直接相关
-
缺点:
- 不适用于非语言建模类任务(如分类)
- 对 tokenizer 敏感(BPE vs WordPiece 结果不同)
3️⃣ 外在指标:BLEU / WER 等
这些指标用于实际任务效果的衡量,模型不再作为主角,而是作为系统中的一环:
🧪 BLEU:用于机器翻译
- 衡量模型生成的翻译和参考翻译的 n-gram 重合度
- 范围通常 0–1,越高越好
🧪 WER(Word Error Rate):用于语音识别
-
衡量生成句子和参考答案之间的词级错误率
-
WER = S + D + I N \text{WER} = \frac{S + D + I}{N} WER=NS+D+I,其中:
- S = 替换(substitutions)
- D = 删除(deletions)
- I = 插入(insertions)
- N = 总词数
4️⃣ 内在 vs 外在指标对比
类型 | 示例 | 优点 | 缺点 |
---|---|---|---|
内在指标 | Perplexity, MRR | 快速、直接、易复现 | 不一定能反映实际应用中的表现 |
外在指标 | BLEU, WER | 真实任务导向,评估全面 | 与系统其他模块耦合,受上下游影响大 |
✅ 小结:什么是“好”的语言模型?
- 在 Perplexity 上表现好 → 预测合理
- 在排序任务中有高 MRR 或准确率 → 输出合理排序
- 在具体任务中提升 BLEU/WER 等指标 → 实际可用
- 在统一任务设置下泛化能力强 → 可 Few-shot/Zero-shot 适应多任务
一个优秀的语言模型,不只是能“说得好”,更要能“答得对”、“用得稳”。