BLEU(Bilingual Evaluation Understudy)原用于机器翻译,现广泛用于摘要、对话回复等有参考答案的生成任务。它衡量:模型输出与参考文本在 n-gram 片段 上有多重叠,偏重精确率(生成词是否「用对了」)。
段末注释:n-gram 指连续 (n) 个 token/词组成的片段;BLEU 对 1~4-gram 精确率做几何平均,并施加 brevity penalty 惩罚过短输出。
系列索引:微调评估指标导读
一、直观含义
给定候选句 (c) 与参考句(可多参考)({r_1,\ldots,r_m}):
- 统计候选中 1~4-gram 有多少出现在参考里 → modified precision
- 若候选比参考短很多 → brevity penalty(BP) 降分
- 几何平均后得 BLEU ∈ [0, 1](常报 0~100)
人话:BLEU 高 = 生成句子的词组「抄对」参考的多;不保证语义正确或流畅。
二、使用场景与所需数据
| 场景 | 适用性 |
|---|---|
| 机器翻译 | 高 — 传统主指标 |
| 摘要(有标准摘要) | 中 — 常与 ROUGE 并用 |
| 指令跟随 / 开放对话 | 低 — 同一意图多种合法表述 |
| 分类式标签生成 | 不适用 — 用 F1 |
| 代码生成 | 低 — 需 pass@k、单元测试 |
数据要求:每条样本至少一对 ((\text{hypothesis}, \text{reference}));可多参考取 max precision。
三、计算方式
3.1 Modified n-gram Precision
对 n-gram 计数,参考标准 BLEU 的 clipped count:候选中某 n-gram 出现次数不超过参考中的最大出现次数。
对阶 (n):
$$
p_n = \frac{\sum_{\text{ngram} \in c} \min(\text{Count}_c, \max_r \text{Count}r)}{\sum{\text{ngram} \in c} \text{Count}_c}
$$
3.2 Brevity Penalty
设候选长度为 (c),最接近参考长度 (r):
$$
BP = \begin{cases}
1 & c > r \
e^{1 - r/c} & c \le r
\end{cases}
$$
3.3 综合 BLEU
$$
\text{BLEU} = BP \cdot \exp\left(\sum_{n=1}^{N} w_n \log p_n\right)
$$
通常 (N=4),(w_n = 1/4)。若任一 (p_n=0),几何平均为 0(可加 smoothing)。
3.4 代码
1 | # sacrebleu:推荐,分词与 WMT 标准一致 |
注意:分词方式(13a、zh、char)对中文任务影响极大,报告时必须注明。
四、如何解读
| BLEU 范围(翻译,仅供参考) | 粗解读 |
|---|---|
| <10 | 几乎无重叠 |
| 10~30 | 有部分短语对齐 |
| 30~50 | 较好(域依赖强) |
| >50 | 高重叠(短句或模板化任务) |
微调对比:同一 test 集、同一分词器上,微调后 corpus BLEU 上升说明生成更接近参考表述;绝对值跨论文不可比(分词、参考数量不同)。
五、局限性与常见误用
- 同义改写惩罚:参考用「高兴」,生成「开心」→ n-gram 不匹配,BLEU 偏低。
- 长度偏好:过短或过长都会被 BP 或 precision 惩罚;需与 ROUGE 互补。
- 多参考不足:合法答案多样时,单参考 BLEU 系统性偏低。
- 与人工评价相关但弱:高 BLEU 仍可能有事实错误或语法怪。
- 对 SFT loss 不敏感:loss 降 BLEU 未必升,尤其 decode 策略与训练不一致时。
- 中文需专门分词:字级 vs 词级 BLEU 数值不可比。
六、与其他指标的关系
| 指标 | 对比 |
|---|---|
| ROUGE | ROUGE 偏召回(参考是否被覆盖);BLEU 偏精确 |
| Exact Match | EM 更严;BLEU 允许部分重叠 |
| BERTScore | 语义 embedding 相似度;对 paraphrase 更友好 |
七、实践建议
- 摘要/翻译微调:BLEU + ROUGE-L 联合报告,附 1~2 条人工样例。
- 使用 sacrebleu 保证可复现;固定
tokenize=参数。 - 中文任务明确 字符级或 jieba 分词,与 baseline 一致。
- 不要单独用 BLEU 决定上线;结合任务错误类型抽检。