针对四种评估方法,按照“内部机理 → 适用场景 → 本质优劣”的顺序逐一拆解,最后再做一个多维度硬核对比,帮你彻底理清它们的区别。
1. BLEU(双语评估替补)
出身:最初为机器翻译设计(IBM提出)。
核心逻辑:基于n-gram 精确率(Precision),并附带短句惩罚因子(BP)。
怎么算:统计生成文本中有多少个 n 个连续单词(n=1~4)出现在参考答案中,除以生成文本的总 n-gram 数量(即“命中数 / 生成总数”)。
短句惩罚(BP):如果生成文本比参考译文短,会乘以一个小于1的惩罚系数,防止模型“偷懒”只输出高频词。
最终得分:通常是 BLEU-1 到 BLEU-4 的加权几何平均值(越高越好,满分100,但人类翻译通常只有30~40)。
优点:计算极快,与人类对“流畅度和用词”的粗略判断有一定相关性。
致命缺陷:完全不看召回率(Recall)。如果生成文本全是“The the the”,只要参考里有“The”,它的精确率反而可能很高;且完全忽略语义,换一个同义词(如“快”换“迅速”)就算错。
2. ROUGE(面向召回率的摘要评估替补)
出身:专为文本摘要设计。
核心逻辑:基于n-gram 召回率(Recall),重点关注“参考答案中的内容被覆盖了多少”。
主要变体:
ROUGE-N(如 ROUGE-1, ROUGE-2):计算参考摘要和生成摘要共有的 n-gram 数量 / 参考摘要的总 n-gram 数量。
ROUGE-L:基于最长公共子序列(LCS),衡量句子级的词序连贯性,不要求连续匹配,只要求顺序一致(因此比 n-gram 更灵活)。
ROUGE-W:加权最长公共子序列(给连续匹配更高的权重,奖励流畅片段)。
优点:非常适合评估“信息覆盖率”,能有效检测模型是否漏掉了原文的关键实体或事件。
缺陷:过度偏向召回率,如果模型生成一段“废话全篇”把所有关键词都塞进去(虽然不通顺),ROUGE 得分会虚高;同样不识别语义同义词。
3. Perplexity(困惑度)
出身:信息论,是语言模型(LM)的内部自监督评估指标。
核心逻辑:衡量模型对测试集(未见过的文本)的“惊讶程度”。数学上等于交叉熵损失(Cross-Entropy Loss)的指数(exp)。
通俗理解:模型预测下一个词时,如果候选词表有 10,000 个词,模型预测正确词的概率为 0.0001(极度不确定),困惑度就是 10,000(很高);如果概率为 0.5,困惑度就是 2(很低,很有把握)。
计算公式:PPL=2−1N∑log2p(wi∣context)PPL=2−N1∑log2p(wi∣context)
优点:不需要参考答案(只需原始文本),能直接反映模型对语言规则(语法、句法、局部语境)的拟合能力。训练大模型时,Loss 下降直接对应 PPL 下降。
致命缺陷:与下游任务质量严重脱钩。一个模型 PPL 很低(很懂语法),但它生成的摘要可能全是废话(ROUGE 极低);或者它背下了训练集的高频词,PPL 漂亮,但缺乏创造力。跨模型(词表不同)比较时完全失效。
4. F1 Score(精确率与召回率的调和平均)
出身:传统机器学习分类任务(判别式模型)。
核心逻辑:在给定的“候选集合”中,计算预测正确的比例。
Precision(精确率):模型预测为“正类”的样本中,实际正确的比例(不误报)。
Recall(召回率):实际正类样本中,被模型成功找出的比例(不漏报)。
F1:2×(Precision×Recall)/(Precision+Recall)2×(Precision×Recall)/(Precision+Recall),是两者的调和平均数。
在 LLM 中的变体:常用于命名实体识别(NER)、问答任务(QA)的准确匹配(EM),或者分类任务(情感判断)。现在也常用于评估大模型在结构化输出(如 JSON 格式)的正确率。
优点:兼顾了“误报”和“漏报”,对数据不平衡极其鲁棒。
缺陷:只能用于“离散标签”比对,无法评估“开放式文本生成”的多样性。
5. 四者硬核对比(关键)
| 对比维度 | BLEU | ROUGE | Perplexity | F1 Score |
|---|---|---|---|---|
| 评估对象 | 机器翻译、代码生成 | 文本摘要、长文本生成 | 预训练模型、语言模型基座 | 分类、NER、QA、结构化输出 |
| 核心偏好 | 精确率(Precision) | 召回率(Recall) | 概率置信度(不确定性) | 精确率 + 召回率(平衡) |
| 是否需要参考答案 | ✅ 必须(1个或多个) | ✅ 必须(通常1个) | ❌ 不需要(只需测试语料) | ✅ 必须(真实标签) |
| 是否关注语义 | ❌ 只看字符串重叠 | ❌ 只看字符串/序列重叠 | ❌ 只看概率分布 | ❌ 只看标签是否相等 |
| 对“长度”的敏感度 | 极敏感(有短句惩罚) | 敏感(短句覆盖率高) | 对词数平均,不敏感 | 与长度无关(只看类别) |
| 可解释性 | 低(分数绝对值无物理意义) | 中(覆盖率有直观含义) | 高(直接对应模型“迷茫度”) | 高(直接对应“分对了多少”) |
| 计算资源消耗 | 极低(字符串匹配) | 极低(字符串匹配) | 极低(只算前向概率) | 极低(数学算术) |
6. 实战中的“避坑”总结(非常重要)
这四种指标的应用场景完全不同:
你在微调垂直领域 LLM(如金融问答)时:千万不要用 PPL 来选拔最终模型!因为 PPL 只表明模型记住了词频分布,但回答是否“有用”需要看 BLEU/ROUGE(如果有标准答案)或人工/LLM-as-a-Judge。
如果你的任务答案是唯一的(如翻译、代码):优先看BLEU(侧重于译文的“信”和“达”,防止胡说八道)。
如果你的任务是摘要或长文档生成(答案不唯一):ROUGE 比 BLEU 更受业界认可,因为它奖励模型“不漏掉关键事实”。(注:ROUGE-L 优于 ROUGE-N,因为考虑了词序)。
如果你在评估微调前后的“基座能力退化”:可以用PPL快速验证。如果 LoRA 微调后 PPL 骤升,说明新知识注入严重破坏了原始语言能力,需要减小 rr 或学习率。
如果你在评估工具调用(Function Calling)或选择题:F1 Score是金标准,因为它是判别指标,生成指标(BLEU/ROUGE)完全不适用。
最后给你一个行业共识:在当下的 LLM 评估中,BLEU 和 ROUGE 正在被逐步抛弃(因为 GPT-4 的翻译即使 BLEU 低,语义也吊打旧模型),它们更适合做“基线门槛”。真正决定模型好坏的是语义相似度(如 BERTScore)或大模型作为裁判(GPT-4 Judge),但这又是另一套评估体系了。