当前位置: 首页 > news >正文

【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=Q1i=1Qrank_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=1NlogP(wiw<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真实任务导向,评估全面与系统其他模块耦合,受上下游影响大

✅ 小结:什么是“好”的语言模型?

  1. 在 Perplexity 上表现好 → 预测合理
  2. 在排序任务中有高 MRR 或准确率 → 输出合理排序
  3. 在具体任务中提升 BLEU/WER 等指标 → 实际可用
  4. 在统一任务设置下泛化能力强 → 可 Few-shot/Zero-shot 适应多任务

一个优秀的语言模型,不只是能“说得好”,更要能“答得对”、“用得稳”。

相关文章:

  • C++ 类与对象(下)—— 进阶特性与底层机制解析(构造函数初始化,类型转换,static成员,友元,内部类,匿名对象)
  • torch.nn.Sequential() and torch.nn.ModuleList()
  • Linux 系统的指令详解介绍
  • 位运算的应用
  • 数据结构——算法复杂度
  • Linux系统安装PaddleDetection
  • 棋类游戏中的智能决策 ——蒙特卡洛树搜索(MCTS)算法解析
  • C# 反射
  • SpringMVC——第7章:HttpMessageConverter
  • 数学复习笔记 2
  • GoogleTest:GMock初识
  • AVL树 和 红黑树 的插入算法
  • 政务服务智能化改造方案和案例分析
  • 浔川AI测试版内测报告
  • 无重复字符的最长子串(3)
  • 第三章 - 软件质量工程体系
  • JAVA在线考试系统考试管理题库管理成绩查询重复考试学生管理教师管理源码
  • QTtricks
  • 神经网络开发实战:从零基础到企业级应用(含CNN、RNN、BP网络代码详解)
  • 开源PDF解析工具Marker深度解析
  • 杨德龙:取得长期投资胜利法宝,是像巴菲特一样践行价值投资
  • 跳水世界杯女子单人10米台决赛,陈芋汐、全红婵包揽金银牌
  • 桥,在黄岩与上海之间|劳动者的书信③
  • 从“土”到“潮”,唢呐何以“圈粉”年轻人
  • 对谈|“对工作说不”是不接地气吗?
  • 陈颖已任上海黄浦区委常委、统战部部长