Cheatsheet

Evaluation & LLM-as-Judge

In post-training, evaluation is often the real bottleneck: training can run, but whether the model actually improved — or where it regressed — is entirely determined by evaluation. This page covers how to evaluate an aligned model and the pitfalls of various evaluation approaches. ⚠️ No concrete scores are listed here (they go stale quickly and are easy to misremember); for specific numbers, refer to official benchmark/leaderboard sources.

0. TL;DR

1. Three Families of Evaluation

Type Measures Examples
Capability benchmarks (automatic, ground-truth answers) Knowledge / reasoning / code MMLU, GSM8K, MATH, HumanEval/MBPP, BBH, IFEval (instruction following)
Preference / dialogue evaluation (judge scoring) Subjective quality of responses AlpacaEval (LLM-judge win-rate), MT-Bench (multi-turn, judge scores), Chatbot Arena (human pairwise → Elo)
Reward model evaluation Whether the RM aligns with human preferences RewardBench (chat / safety / reasoning categories, etc.), agreement rate with human annotations

1.1 Benchmark cheat-sheet

注意 / Caution

The tables below list only mechanism and structure (signal source, scoring method, pitfalls), not concrete scores.

Preference / dialogue evals (judge or human):

Eval Signal source Scoring Most prominent bias Debias / control
AlpacaEval 2.0 Single LLM-judge (model vs. reference answer) Win-rate (vs. the reference) Verbosity bias Length-controlled win-rate (regress out length)
MT-Bench LLM-judge Multi-turn, 1–10 scalar score or pairwise Position / verbosity / self-preference Average the two orderings in pairwise mode
Chatbot Arena Human blind pairwise battles Bradley-Terry / Elo → ranking + confidence intervals User distribution / style preference, crowd noise Massive vote volume + fresh dynamic questions resist contamination

Capability benchmarks (ground-truth, automatic):

Benchmark Measures Format Scoring Known pitfalls
MMLU 57-subject multiple-choice knowledge 4-way multiple choice Option accuracy Option / letter-order bias; heavily contaminated
MATH Competition math (7 subjects / 5 difficulty levels) Free-form solutions Final-answer match (verifiable) Brittle answer parsing; partly contaminated
HumanEval Python code generation Function completion + unit tests pass@k (unit-test pass rate) Only 164 problems, high variance, easy to overfit
IFEval Verifiable instruction following Constrained instructions (length / format) Programmatic verification (no judge needed) Covers only machine-checkable constraints
GPQA (Diamond) Graduate-level physics/biology/chemistry, designed so that skilled non-experts with unrestricted web access cannot achieve 100% ("Google-proof") 4-way multiple choice Option accuracy Domain expert accuracy ~65% (Diamond subset higher, varies by subject); options require expert-level knowledge to distinguish, very high discriminability
MMLU-Pro MMLU strengthened — removes easy/contaminated questions, uses 10-way choice for greater difficulty 10-way multiple choice Option accuracy Lower random baseline (10% vs 25%); significantly mitigates MMLU's ceiling effect

2024 evolutions of preference / dialogue evals:

| Arena-Hard | Automatically selects 500 "model-stumping" questions from Chatbot Arena data, scored by GPT-4 pairwise judge | Win-rate (vs. the reference) | Judge bias (fully inherited) | Spearman ~94.1% with Arena Elo rankings; fast automatic proxy for human preference; hard questions amplify discriminability | | MixEval | Matches real web user queries to existing benchmark items, evaluates with ground-truth answers (not a judge), dynamically weighted aggregation | Normalized multi-dimension average | Sampling weights are sensitive; stale contamination from subset components can leak through | Multi-round weight calibration + decontamination filtering, aiming to reflect capability + preference holistically; fundamentally a ground-truth benchmark mixture, not a judge benchmark |

1.1a Unbiased pass@k

Naive estimator 1(1p^)k1-(1-\hat p)^k (p^=c/n\hat p=c/n): for k2k\ge2 it systematically underestimates the true pass@k at any finite nn (Jensen's inequality: (1p^)k(1-\hat p)^k is convex in p^\hat p, so E[(1p^)k](1p)k\mathbb{E}[(1-\hat p)^k]\ge(1-p)^k); the bias shrinks as nn grows but is never zero; for k=1k=1, c/nc/n is already unbiased.

Unbiased estimator (Chen et al., arXiv:2107.03374 §3): sample nkn\ge k candidates per problem, cc pass the unit tests, then

pass@k^=1(nck)(nk)\widehat{\text{pass@}k}=1-\frac{\binom{n-c}{k}}{\binom{n}{k}}

Intuition: (nck)/(nk)\binom{n-c}{k}/\binom{n}{k} is the probability that kk randomly drawn candidates are all wrong; 11 minus it is "at least one correct". Numerically stable implementation (avoids large-binomial overflow):

import numpy as np
def pass_at_k(n, c, k):
    if n - c < k: return 1.0
    return 1.0 - np.prod(1.0 - k / np.arange(n - c + 1, n + 1))
提示 / Note

Standard protocol (Chen et al.): n=200n=200 per problem, report k{1,10,100}k\in\{1,10,100\}.

1.2 Bradley-Terry / Elo: pairwise wins → ranking

Arena turns a massive pile of "A vs B, which is better?" pairwise votes into a total-order ranking via the Bradley-Terry (BT) model (Elo is its online approximation).

BT model: give each item ii a latent score sis_i; then

P(ij)=σ(sisj)=11+e(sisj)P(i \succ j) = \sigma(s_i - s_j) = \frac{1}{1+e^{-(s_i-s_j)}}

Only score differences are identifiable (a global shift leaves probabilities unchanged), so fix an anchor (e.g. s0=0s_0=0). Fitting = logistic-regression MLE: the log-likelihood i,jwijlogσ(sisj)\sum_{i,j} w_{ij}\log\sigma(s_i-s_j) (wijw_{ij} = times ii beats jj) is concave (equivalently the negative log-likelihood is a convex loss), a convex optimization with a global optimum; the solution is finite and unique when the win graph is connected.

Core assumptions (and where they break):

  1. Unidimensional strength: quality is summarized by a single scalar sis_i → items are totally orderable;
  2. (Stochastic) transitivity: if A tends to beat B and B tends to beat C, then A tends to beat C — no rock-paper-scissors cyclic preferences (ABCAA\succ B\succ C\succ A);
  3. Independent comparisons: matches are mutually independent, no order/learning effects;
  4. Basic BT does not model ties (Rao-Kupper and other extensions handle ties).

→ When preferences are genuinely non-transitive cycles (each wins on a different dimension), a single scalar Elo flattens the cycle into one order, and the ranking's "objectivity" is overstated.

Elo = online approximation of BT: each match does one fixed-step update on the prediction error, viewable as an online gradient update on the BT logistic loss:

# Elo: the online/streaming version of Bradley-Terry, one fixed-step gradient update per match
def elo_update(r_a, r_b, score_a, K=32, scale=400):
    e_a = 1.0 / (1.0 + 10 ** ((r_b - r_a) / scale))  # BT/logistic predicted P(A wins)
    r_a = r_a + K * (score_a - e_a)                  # score_a in {1, 0.5, 0}
    r_b = r_b + K * ((1 - score_a) - (1 - e_a))
    return r_a, r_b
提示 / Note

In the batch setting, fitting BT by MLE (logistic regression) over all pairwise results is more stable than per-match Elo and yields confidence intervals (Arena uses BT + bootstrap for intervals).

1.3 SWE-bench: From Function Completion to Real-World Software Engineering

📎 Cross-reference: SWE-bench represents the evolution of code evaluation from "complete a function" to "fix a real bug". For the unbiased estimator of pass@k, see §1.1a; for the upper-bound analysis of sampling-scaling gains (coverage vs. verifier quality), see test-time-scaling §3.3. SWE-bench trajectories are also commonly used as training data for agent SFT/RL (see long-horizon-agents).

SWE-bench (Jimenez et al., arXiv:2310.06770, ICLR 2024) upgrades code evaluation from "completing a function" to "fixing a real GitHub issue" — one of the most influential new benchmarks in 2024 code evaluation.

Key subsets:

Subset Description Instance count
SWE-bench Lite Curated "easy-to-get-started" subset from the original SWE-bench, for rapid iteration ~300
SWE-bench Verified (OpenAI 2024-08, blog) Human review of 500 instances: confirmed issue description quality + test reliability + excluded unreproducible instances; the fixed-up subset 500

Key result trajectory (% resolved; illustration of relative progress only, not a head-to-head comparison):

注意 / Caution

SWE-bench's core constraint is evaluation cost — each instance requires building a full Docker container + running the repo's test suite, potentially taking 5–30 min per instance.

Three tiers of code evaluation (HumanEval → BigCodeBench → SWE-bench):

Tier Benchmark Files Scoring Capability tested
Single-function completion HumanEval, MBPP 1 file Unit-test pass@k Basic code generation
Complex func + library calls BigCodeBench (arXiv:2406.15877) Function-level + diverse library calls Unit-test pass@k Complex API usage
Real-world software engineering SWE-bench Full repo (12 real repositories) Apply patch → run original test suite Code understanding + localization + editing

Contamination-resistant complementLiveCodeBench (Jain et al., arXiv:2403.07974, ICLR 2025): automatically builds code evaluations from new LeetCode/AtCoder/Codeforces problems (temporal isolation), covering diverse tasks including code generation, execution prediction, and test generation, updated monthly on a rolling basis, addressing HumanEval's small size and overfitting issues.

1.4 Agent Evaluation

📎 Cross-reference: This section focuses on agent evaluation (how to tell whether an agent is doing well). For agent training methods (self-evolution RL, tool-use SFT, computer-use recipes), see long-horizon-agents.

Post-training is evolving from "single-turn dialogue" to "multi-step agents", and evaluation must follow. Agent evaluation is more complex than traditional benchmarks — it requires simulating real interaction environments (browsers, file systems, APIs), and success depends on multi-step decision chains rather than single-generation quality.

Three representative agent benchmarks:

Benchmark Environment Typical tasks Scoring method Core limitation
WebArena (Zhou et al., arXiv:2307.13854, ICLR 2024) Self-built websites (e-commerce/forum/map/CMS) "Find the highest-rated review on a given product and reply" Programmatic verification (page state/URL/element presence) Self-built environment has limited coverage, not the real internet
TAU-bench (Yao et al., arXiv:2406.12045) Conversational tool-agent-user interaction (airline/retail/finance DB) "Help the user reschedule the flight to Friday night, window seat, mileage upgrade" Database state comparison + pass^k Multi-turn dialogue with simulated users; user behavior choices shape evaluation signal
OSWorld (Xie et al., arXiv:2404.07972, NeurIPS 2024 D&B) Real OS VMs (Ubuntu/Windows/macOS) "Create a table in LibreOffice → export PDF → email it" Screen state / file system / window state checks Most realistic but most expensive — each task needs a VM snapshot + VNC

Three distinctive dimensions of agent evaluation (vs. traditional benchmarks):

  1. Step-count dependence: the result is the success rate "given a maximum step budget" — accuracy-vs-steps curves carry more information than a single-point number (analogous to test-time scaling's accuracy-budget curves). The same model's success rate at 5 steps vs. 30 steps can differ by a factor of several.
  2. Non-reproducibility: environment state and tool-call results can vary with network/time — needs Docker/VM snapshots to lock the environment for reproducibility.
  3. Trajectory quality ≠ success: a trajectory that "took 20 detour steps to succeed" and one that "finished directly in 3 steps" are equivalent on success rate, but differ by multiples in efficiency and cost — must report step / token efficiency.
注意 / Caution

The biggest unresolved problem in agent evaluation: no consistent cross-benchmark ranking — an agent that is SOTA on WebArena may be mediocre on OSWorld, and vice versa. This reflects the fragmented state of agent evaluation; there is not yet an "Arena for agents".

1.5 Long-Context Evaluation

"Claiming 128K/1M support" and "actually using it well" are two different things. Long-context evaluation needs to answer three questions: ① Can it find it? (retrieval); ② Can it understand it? (reasoning/synthesis); ③ Can it use it? (downstream tasks).

Benchmark What it measures Context length Core finding
Needle-in-a-Haystack (NIAH) (Kamradt 2023, GitHub) Insert a single fact at a random position in a long document → ask the model about that fact Extensible to any length Most models score near 100% for "needles" at the beginning or end, but drop significantly in the middle (U-shaped curve) — position bias also exists in long-context settings
RULER (Hsieh et al., arXiv:2404.06654, COLM 2024) Multi-needle retrieval + aggregation (answers across multiple needles must be synthesized) + multi-hop QA 4K–128K+ High scores on single-needle NIAH do not equal real capability; under multi-needle + multi-hop tests, many models that "support 128K" have effective context far below the claimed value
LongBench (Bai et al., arXiv:2308.14508, ACL 2024) 21 datasets across 6 task categories (single/multi-doc QA, summarization, code, few-shot learning, synthetic, dialogue) 1K–18K bilingual (CN+EN) Long-context ability across different tasks is not a single dimension — code long-context and summarization long-context are two types of ability, not summarizable by a single scalar

Key connections between long-context evaluation and post-training:

注意 / Caution

"Supports 128K" ≠ "can use all of 128K well". At minimum, cross-validate with RULER (multi-needle) and LongBench (multi-task) — do not rely on single-needle NIAH heatmaps alone.

2. LLM-as-Judge: How to Use It + Biases

📎 Cross-reference: This section focuses on LLM-as-Judge from the perspective of evaluation practice (how to select a judge, operational details, benchmark applications). For how LLM-as-Judge biases affect RM training and reward hacking when used as a RLHF training signal, see cheatsheet-reward-modeling-eval-en.html §5.2.

Use a strong model as a judge to score responses or do pairwise comparisons. Cheaper and faster, but has systematic biases:

Formalizing position debiasing: let the judge's preference on an ordered pair be J(a,b){A,B}J(a,b)\in\{A,B\}. With no position bias, J(a,b)J(a,b) and J(b,a)J(b,a) should pick the same answer (consistent). Debiased rule: count a win only if both orders pick the same answer, else call it a tie — making position bias an explicit tie rather than letting it leak into the win-rate. Note: AlpacaEval uses a single fixed ordering by default (model response first); MT-Bench pairwise mode uses swap augmentation (average the two orderings) — not all tools apply order averaging.

2.1 Position-debiased judge harness (code)

# LLM-as-judge: pairwise comparison + position debiasing (order-swap) harness.
# In practice judge() calls a strong model and parses its verdict; here a stub shows the protocol.

def judge_debiased(question, ans1, ans2, judge):
    """Judge each ordering once to cancel position bias.
    judge(q, A, B) returns 'A' or 'B' (which position's answer is better).
    Returns 'ans1' / 'ans2' / 'tie' (orders disagree -> tie)."""
    v1 = judge(question, ans1, ans2)            # order (A=ans1, B=ans2)
    v2 = judge(question, ans2, ans1)            # swapped (A=ans2, B=ans1)
    pick1 = 'ans1' if v1 == 'A' else 'ans2'     # answer actually chosen, call 1
    pick2 = 'ans2' if v2 == 'A' else 'ans1'     # in the swapped call A=ans2, so v2=='A' means ans2 was picked
    return pick1 if pick1 == pick2 else 'tie'   # count only if consistent

def win_rate(questions, model_answers, ref_answers, judge):
    """Debiased win-rate of model vs ref; tie counts 0.5."""
    s = 0.0
    for q, m, r in zip(questions, model_answers, ref_answers):
        out = judge_debiased(q, m, r, judge)    # ans1=model, ans2=ref
        s += 1.0 if out == 'ans1' else (0.5 if out == 'tie' else 0.0)
    return s / len(questions)

# --- Demo: an extreme "always pick the first" position-biased judge is exposed as a tie ---
def biased_judge(q, a, b):
    return 'A'                                  # extreme position bias
print(judge_debiased("q", "model", "ref", biased_judge))   # -> 'tie'
print("win_rate:", win_rate(["q"], ["model"], ["ref"], biased_judge))  # -> 0.5

2.2 Measuring judge–human agreement

"Calibration / agreement with humans" recurs throughout (the §1 RM row, the mitigations above, Q31), but raw agreement alone overstates "the real agreement after removing chance": when one label dominates, two annotators agree by pure guessing with high probability. Cohen's κ removes this chance agreement:

κ=pope1pe\kappa = \frac{p_o - p_e}{1 - p_e}

κ=1\kappa=1 is perfect, κ=0\kappa=0 means agreement is only at the level of "guessing independently from each annotator's own marginals", κ<0\kappa<0 is worse than guessing. Intuition: if both annotators label independently with 90/10 marginals, raw agreement is about 0.92+0.12=0.820.9^2+0.1^2=0.82 — looks high, yet κ0\kappa\approx0. So report κ, not just raw agreement, for judge–human consistency.

import numpy as np
def cohens_kappa(labels_a, labels_b):
    cats = sorted(set(labels_a) | set(labels_b))
    idx = {c: i for i, c in enumerate(cats)}
    n, K = len(labels_a), len(cats)
    conf = np.zeros((K, K))
    for a, b in zip(labels_a, labels_b):
        conf[idx[a], idx[b]] += 1
    p_o = np.trace(conf) / n                            # observed agreement
    p_e = (conf.sum(0) * conf.sum(1)).sum() / n ** 2    # chance agreement
    return (p_o - p_e) / (1 - p_e)

More than two annotators (nominal categories): use Fleiss' κ; ordinal scores: use weighted κ or Krippendorff's α (supports ordinal distances and missing data).

2.3 Length-controlled win-rate: the regression form

The §1 table lists AlpacaEval 2.0's debiasing as "regress out length" — concretely (Dubois et al., arXiv:2404.04475) you fit a generalized linear model predicting the judge's preference, with the length difference as an explicit term (simplified form):

logitP(modelref)=θm+γΔlen+\text{logit}\,P(\text{model}\succ\text{ref}) = \theta_m + \gamma\cdot\Delta_{\text{len}} + \dots

where Δlen\Delta_{\text{len}} is the two answers' length difference. To report, set the length term Δlen=0\Delta_{\text{len}}=0 and take the expectation over the instruction distribution, giving the length-controlled win-rate — intuitively "the win-rate the model should have if both answers were the same length", removing the "length association" the GLM models.

⚠️ Note: it removes the length association the model fits, so genuine quality signal correlated with length may be removed along with it, and unmodeled style effects are not removed; empirically it markedly improves the Spearman correlation with Chatbot Arena (human Elo) rankings.

3. Data Contamination

The training set contains test-set examples → inflated scores that do not reflect generalization.

3.1 Types of Contamination

Type Description
Direct overlap Training data contains the exact questions or answers from the evaluation set
Temporal leakage Training data cutoff is later than the evaluation set creation date; the model has "seen" test-period content
Near-overlap Paraphrased or translated versions of test questions appear in the training set, undetected by string matching
Membership inference contamination Training set does not contain the exact questions, but contains highly related in-distribution samples, causing score inflation

3.2 Detection Methods

3.3 n-gram Deduplication

3.4 Contamination-Resistant Benchmark Design

4. Pitfalls in Preference Evaluation

5. A Practical Evaluation Protocol (Post-Training)

  1. Capability: GSM8K/MATH (math), HumanEval → SWE-bench (code), MMLU/MMLU-Pro/GPQA (knowledge), IFEval (instruction following).
  2. Alignment quality: AlpacaEval / MT-Bench / Arena-Hard (judge, with position debiasing); Chatbot Arena when necessary.
  3. Safety / refusal: harmful-prompt refusal rate, over-refusal rate.
  4. Agent: WebArena / TAU-bench (multi-step interaction, report accuracy-vs-steps curves).
  5. Long-context: RULER (multi-needle retrieval) + LongBench (multi-task understanding); don't rely on single-needle NIAH alone.
  6. Regression: compare against baselines to confirm no dimensions degraded (alignment tax).
  7. Contamination audit + multiple seeds/prompts to report variance.

Stratified Follow-ups

L1 Basics

  1. Why is evaluation considered the bottleneck of post-training? What does each of capability benchmarks and preference evaluation measure?
  2. What is LLM-as-judge? What known biases does it have?
  3. What is data contamination? Why does it make scores unreliable?
  4. What is the fundamental difference between capability benchmarks and preference evaluation? What is each suited to measure?
  5. How is AlpacaEval's win-rate computed? Against what reference is the rate measured?
  6. How do MT-Bench and Chatbot Arena differ in their evaluation signal (who does the scoring)?
  7. What does pass@k mean? Why do code evals often use it instead of single-pass accuracy?
  8. What is alignment tax? Why specifically check for regressions after post-training?
  9. Why fix the prompt template and report variance over multiple seeds?
  10. How do IFEval and MMLU fundamentally differ in how they score (programmatic verification vs. option accuracy)?

L2 Intermediate

  1. How is position bias mitigated? Why does "evaluate both orderings and average" work?
  2. How do AlpacaEval / MT-Bench / Chatbot Arena differ in their evaluation signals (automatic judge vs. human Elo)?
  3. How do you detect whether training data has contaminated a given evaluation set?
  4. Why is verbosity bias so stubborn? How does length-controlled win-rate factor out the length effect?
  5. The order-swap rule calls a tie when the two orderings disagree — compared to majority voting, what robustness advantage does this have?
  6. Chatbot Arena uses Bradley-Terry / Elo to turn pairwise outcomes into rankings — what is the core assumption of this model?
  7. List several contamination-detection methods (n-gram / Min-k% / canary / paraphrase-drop) — what does each actually catch?
  8. Why is "dedup ≠ decontamination"?
  9. Why is self-preference bias especially dangerous when using a homologous model as the judge?
  10. Why does a high judge win-rate not equal stronger human preference? Where do the two systematically diverge?

L3 Deep Dive

  1. How does Goodhart's Law manifest in leaderboard gaming? How do you design "gaming-resistant" evaluations?
  2. How is a reward model evaluated (the RewardBench approach)? What is the relationship between RM evaluation and final policy performance?
  3. For reasoning models, why should evaluation shift from "single-pass accuracy" to "accuracy under a compute budget"? What does this demand of the evaluation protocol?
  4. If online metrics (user retention) conflict with offline evaluation (judge win-rate), which do you trust, and how do you investigate the discrepancy?
  5. When summarizing a model with a single scalar score, how can it mask Pareto-style regressions like "capability ↑ but safety ↓"? How should evaluation design expose this?

2024 Frontier Supplement

The following questions cover the 2024 evaluation frontiers added to this page (SWE-bench, Agent Evaluation, Long-Context Evaluation, GPQA/MMLU-Pro).

Qa. Why is GPQA called "Google-proof"? How does it fundamentally differ from MMLU / MMLU-Pro in discriminability?
**A:** GPQA (Graduate-Level Google-Proof Q&A) questions are **graduate-level** physics/biology/chemistry multiple-choice questions designed by domain experts with the explicit goal that "even a skilled non-expert with unrestricted web access cannot achieve 100% within 30 minutes" (hence "Google-proof"). The fundamental difference from MMLU: ① MMLU's human ceiling is high (~90%+), so discriminability is low (strong models cluster near the ceiling); ② GPQA's domain expert accuracy is ~65% (varies by subject for Diamond), spreading out model differences. MMLU-Pro mitigates MMLU's ceiling effect via 10-way choice (rather than 4-way) + removing overfitted/contaminated questions — it is the stepping stone between MMLU and GPQA.

**Follow-up:** Why do reasoning models (o1/R1) often choose GPQA Diamond as a core evaluation?
Because GPQA requires deep domain knowledge + reasoning (cannot be answered directly by retrieval alone), making it natural for measuring "whether longer reasoning can compensate for knowledge gaps" — exactly the selling point of reasoning models.
Qb. What is the essential difference between the code capability measured by SWE-bench vs. HumanEval? Why is pass@k alone insufficient to describe SWE-bench performance?
**A:** HumanEval measures **single-function completion** (given signature + docstring → write the function body); SWE-bench measures **real-world software engineering** (given a GitHub issue + full codebase → locate the bug → cross-file patch → pass the instance's FAIL_TO_PASS and PASS_TO_PASS tests). Essential difference: ① the former tests "generation"; the latter tests the compound capability of "understanding + localization + editing"; ② the former has isolated problems; the latter requires understanding cross-file dependencies in a large codebase. pass@k is insufficient to describe SWE-bench performance because each SWE-bench problem has only one correct patch (unlike code generation where you can sample k candidates and check whether one is correct) — pass@k's "at least one of k is correct" logic does not apply; SWE-bench uses **% resolved** (associated tests all pass), a single-submission pass/fail.

**Follow-up:** Why is SWE-bench Verified important?
The original SWE-bench had some issues with unclear descriptions or unreliable tests — models could fail due to "description ambiguity" or "bugs in the tests themselves" rather than lack of capability. The Verified subset (released by OpenAI 2024-08) underwent human review of 500 instances to exclude such noise, making the evaluation signal cleaner.
Qc. What are the three distinctive challenges of agent evaluation? Why is "success rate" alone insufficient as a metric?
**A:** ① **Step-count dependence**: the same model's success rate at a 5-step vs. 30-step budget can differ by multiples — you must report accuracy-vs-steps curves, not single-point numbers. ② **Non-reproducibility**: network/time/environment-state changes cause the same agent to produce different results on two runs — needs Docker/VM snapshots to lock the environment. ③ **Trajectory quality ≠ success**: a 20-detour-step success and a 3-direct-step success are equivalent on success rate, but totally different on efficiency and cost — must also report step / token efficiency. "Success rate" is insufficient because it only answers "did it eventually succeed", not "at what cost" and "under what step budget" — the latter two are more important for real deployment.

**Follow-up:** What is the biggest unresolved problem in agent evaluation today?
The lack of consistent cross-benchmark ranking — an agent that is SOTA on WebArena may be mediocre on OSWorld (and vice versa). This reflects the fragmented state of agent evaluation; there is no "Chatbot Arena for agents" yet.
Qd. Why does a good single-needle NIAH heatmap ≠ strong long-context capability? What gaps do RULER and LongBench respectively fill?
**A:** Single-needle NIAH only tests "can you find one fact in a pile of irrelevant text" — this is a **necessary but insufficient** condition for long-context capability. RULER fills the "multi-needle retrieval + multi-hop aggregation" gap (real usage often requires synthesizing information from multiple locations), exposing many models that score perfectly on single-needle NIAH but collapse on multi-needle. LongBench fills the "multi-task diversity" gap (21 datasets across 6 categories, spanning summarization, code, few-shot learning, etc.), revealing that long-context capability is **not a single dimension** — a model may be strong at code long-context but weak at summarization long-context. The relationship: NIAH = basic retrieval probe, RULER = stress test, LongBench = ecological validity (real-world utility).

**Follow-up:** How to check whether post-training has damaged long-context capability?
Run RULER + LongBench once before and once after post-training; RLHF/DPO training data is mostly short-context, so silent degradation of long-context capability is an often-overlooked form of alignment tax.
Qe. How do Arena-Hard and MixEval respectively address the problems of "benchmark overfitting/contamination" and "single-benchmark narrowness"? What limitations remain?
**A:** **Arena-Hard** automatically selects 500 "model-stumping" questions from Chatbot Arena's massive human-vote data and uses a GPT-4 pairwise judge — it inherits Arena's contamination resistance (dynamic question pool) while compressing evaluation from "crowd voting" into an automatic pipeline, with Spearman ~94.1% against human Elo. Limitations: it fully inherits judge bias, and a fixed set of 500 questions can still be targeted for optimization. **MixEval** matches real web user queries to existing benchmark items, evaluates with ground-truth answers (not a judge), and uses dynamic weighted aggregation — fundamentally a "multi-source benchmark mixture" rather than a judge benchmark. Limitations: sampling weights are sensitive (tuning weights can "change the ranking"), and contamination from stale subset components can leak through.

**Follow-up:** How does this relate to Goodhart's Law in §4?
Both Arena-Hard and MixEval are anti-gaming mechanisms designed under the premise that "once a benchmark becomes an optimization target, it ceases to be a good measure" — the former relies on dynamic + hard-question filtering, the latter on multi-source mixing to dilute any single benchmark's weight.

Extended L3

Q26. When using LLM-as-judge to evaluate multi-turn, long-context conversations, what are the common difficulties? What methodological improvements exist?
The core challenge in evaluating multi-turn conversations is that the judge model tends to exhibit **context forgetting** or **local bias** — focusing only on the quality of the most recent one or two turns while ignoring overall conversational coherence and task completion. A key improvement is designing **process-oriented rubrics** that explicitly require evaluating each turn's contribution to the final goal, and introducing a **segment summarization** mechanism that forces the judge to summarize before scoring, thereby partially mitigating its short-sightedness.
**Follow-up**: Beyond improving the rubric, can the evaluation protocol itself be changed to reduce judging difficulty — for example, decomposing it into a series of simpler subtask evaluations?
Q27. What are the main limitations of LLM-as-judge in assessing factual accuracy and logical soundness? How can they be mitigated?
The main limitations are that the judge model's own **knowledge boundary** and **reasoning flaws** can lead to incorrect verdicts. It may fail to detect factual errors, or mistakenly accept an answer with logical gaps as sound. Mitigation typically involves a **hybrid evaluation** approach: for fact-checking, combine **retrieval-augmented verification** — retrieve authoritative information first, then compare; for logical evaluation, attempt to use **formal verification** tools or design **step-by-step verification prompts** specifically targeting reasoning chains.
**Follow-up**: Given limited resources, which judge capabilities (breadth of knowledge, reasoning ability, tool use) should be prioritized for improvement to most effectively increase evaluation accuracy?
Q28. How do you evaluate a model's "emergent capabilities"? How does this fundamentally differ from evaluating conventional capabilities?
The key difference in evaluating emergent capabilities lies in their **unpredictability** and **non-smoothness**. Conventional capabilities typically improve predictably on a benchmark as model scale or training data increases. Emergent capabilities, by contrast, appear suddenly past some threshold and are often not directly reflected in standard benchmarks. As a result, evaluation methods must shift from **fixed test sets** to **open-ended, programmatically generated probe tasks**, and must focus on detecting **behavioral pattern shifts** when the model faces entirely novel, complex task combinations.
**Follow-up**: Can one design an evaluation framework that not only discovers emergent capabilities but also, to some degree, predicts the conditions under which they will appear?
Q29. Why does calibrating the confidence of LLM-as-judge outputs matter? How is it achieved in practice?
Calibrating judge output confidence gives its scores or comparison results **interpretable probabilistic meaning**. For example, when a judge says "90% confident that A is better than B," that number should, in the long run, approximate the true frequency with which A is actually preferred over B. In practice, calibration requires a **human-annotated calibration set**. By repeatedly evaluating the judge on this set, one can analyze the distribution of its scoring deviations from human consensus, then apply **post-hoc calibration algorithms** (such as Platt Scaling or Isotonic Regression) to adjust raw scores so they better match the statistical patterns of human judgment.
**Follow-up**: If the human-annotated data used for calibration is itself low-quality or very small in scale, what effect does this have on the calibrated judge? What are the alternatives?
Q30. When evaluating the safety of conversational models, why is "over-refusal" an important metric? How do you analyze the trade-off it forms with the harmful-prompt refusal rate?
Over-refusal measures the degree to which a model incorrectly refuses **benign or borderline queries**, directly affecting user experience and model **utility**. A model with a very high over-refusal rate may be safe but becomes effectively useless. Analyzing this trade-off cannot simply pursue Pareto optimality across both metrics; instead, **risk tiering** should be introduced. Categorize harmful prompts by severity and set different refusal strictness thresholds for each tier. Evaluation should separately report refusal rates for each tier and use **cost-sensitive analysis** to assess the model's balance between overall risk exposure and user experience loss.
**Follow-up**: How do you construct a high-quality adversarial safety evaluation set that can automatically generate prompts spanning various risk tiers and "gray area" cases?
Q31. How do you conduct "meta-evaluation" — that is, how do you judge whether an evaluation benchmark or an LLM-as-judge is itself valid and reliable?
Meta-evaluation of a benchmark primarily examines its **discriminability** (can it effectively distinguish models at different capability levels), **robustness** (is it sensitive to minor prompt changes), and **ecological validity** (does the capability it measures relate to real-world needs). Meta-evaluation of an LLM-as-judge focuses on its **agreement** with human judgments (e.g., Cohen's Kappa) and its **fairness** across different subgroups. A key method is **cross-validation**: have multiple distinct, high-quality judges (or humans) evaluate the same set of data, and check whether the target judge or benchmark agrees with the consensus.
**Follow-up**: After discovering that a widely used benchmark likely has serious biases or is outdated, what responsibilities and feasible actions does a researcher have to promote its iteration or warn the community?
Q32. In domain-specific settings (e.g., medical, legal), what unique challenges arise for general-purpose LLM-as-judge evaluation? What are the key steps in building a domain-expert evaluation pipeline?
The core challenges are the **domain knowledge barrier** and the **specialized evaluation criteria** required. A general-purpose judge may not understand the nuances of domain terminology or the rigor of professional logic. Key steps in building a domain evaluation pipeline are, first, **co-defining evaluation dimensions** with domain experts — jointly determining dimensions such as "conservatism of medical advice" or "accuracy of legal citations." Second, **building a domain gold standard** — a set of authoritative reference answers or judgments annotated by experts. Finally, designing a **human-AI collaborative evaluation process** in which the AI judge handles initial screening while human experts handle edge-case review and final adjudication.
**Follow-up**: When domain experts themselves disagree on the same response (e.g., physicians from different schools of thought), how do you design a system that accommodates reasonable expert disagreement while still enabling effective automated evaluation?

§A Key Papers Timeline