語言模型的評估方式:從困惑度到實際效果
評估語言模型(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(?N1?i=1∑N?logP(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 適應多任務
一個優秀的語言模型,不只是能“說得好”,更要能“答得對”、“用得穩”。