Skip to content

Chapter 9 · 消除评判的偏差

LLM-as-Judge 是 2024-2026 年事实上的工业评估标准,但它带着多重偏差:自偏好、长度偏好、位置偏好。本章告诉你如何用工程手段把这些偏差挤压到可接受范围。

Item 24:不要让模型评判自己的输出

让自己当自己法官,是判决的取消理由。

核心

LLM Evaluators Recognize and Favor Their Own GenerationsarXiv:2404.13076)证明:GPT-4 / Claude / Llama 都能在不被告知的情况下识别"哪段是我自己写的",并系统性给自己更高分。在产品评估中这等于偏向自家模型——必须用跨家族裁判。

Things to Remember

  • A vs B 比较时,用 A、B 之外的第三家做裁判。
  • 用 self-evaluation 时把它当作 best-effort 信号,不当作 ground truth。
  • 评估管道里要永久记录"用哪家做的裁判"。

Item 25:用至少 3 家不同基座做交叉裁判

一家偏一点,三家凑一票。

引子

工业级 LLM-as-Judge 的标准做法(MT-Bench / Chatbot Arena / JudgeBench)是:从 OpenAI、Anthropic、Google、Meta 至少选 3 家不同基座,每家独立打分,多数投票或加权平均。任何一家的偏差被另两家稀释。

反例 vs 正例

python
# Bad — 单裁判
score = gpt4_judge(answer_a, answer_b)

# Good — 跨家族 + 位置交换
def cross_family_judge(a, b):
    judges = [gpt4_judge, claude_judge, gemini_judge]
    votes = []
    for judge in judges:
        v1 = judge(a, b)              # 顺序 1
        v2 = judge(b, a)              # 顺序 2,位置交换
        if v1 == v2:                  # 必须两次一致
            votes.append(v1)
    return majority(votes) if len(votes) >= 2 else "tie"

研究表明 LLM-as-Judge 有 5%-15% 的位置偏好——同样两段答案,谁先出现谁更可能被偏好。位置交换可识别这种偏差:若两次结论不一致,则该样本被判 "tie" 不参与统计。

Things to Remember

  • 至少 3 家不同基座,多数投票。
  • 必须做位置交换(A vs B 与 B vs A 各跑一次)。
  • 必须做 5%-10% 的人工 spot-check。

延伸阅读

  • Judging LLM-as-a-Judge with MT-BencharXiv:2306.05685)—— LLM-as-Judge 方法学奠基:定义 MT-Bench / Chatbot Arena 评测协议,并系统揭示位置偏好、长度偏好、自偏好等偏差。
  • JudgeBencharXiv:2410.12784)—— 专门评测"裁判模型"自身可靠性的基准:即使是 GPT-4 当裁判,在客观可验证任务上的准确率也只有 60-70%。

Item 26:用 length-controlled metric 替代裸胜率

长答案不是好答案,但它常常赢。

核心

Verbosity bias 让长答案在 LLM 评判中获得 60%+ 不公平胜率(A Long Way to GoarXiv:2310.03716)。Dubois 等人提出 length-controlled AlpacaEval,用回归把长度影响从胜率中剥离——这是 2024 年起的事实标准。

Things to Remember

  • 用 LC win-rate(length-controlled)替代裸 win-rate。
  • 在 prompt 里硬约束长度,最大限度抹平长度差。
  • 报告评估结果时必须同时报告长度分布,否则结论不可信。

Effective LLM