Paper: 2607.05391 Authors: Jacky Kwok, Shulu Li, Pranav Atreya, Yuejiang Liu, Yixing Jiang, Chelsea Finn, Marco Pavone, Ion Stoica, Azalia Mirhoseini Categories: cs.AI, cs.CL, cs.LG, cs.MA, cs.RO
The Gap
The field has spent enormous effort scaling three axes: pre-training compute (bigger models), post-training compute (RLHF, DPO), and test-time compute (chain-of-thought, search, best-of-N sampling). All three share an implicit assumption: if you can generate better candidates, you’ll get better outputs. But there’s a bottleneck everyone runs into — how do you reliably pick the best candidate from a pool?
Standard LM judges (e.g., “rate this solution 1-10”) produce discrete, poorly calibrated scores. They struggle to distinguish between solutions that are subtly different in quality. When you ask an LLM to pick a number from 1 to 10, you’re compressing a rich internal representation into a handful of bits. The judgment signal is lossy, noisy, and hard to aggregate across multiple criteria.
This paper identifies verification as a fourth scaling axis and proposes a concrete mechanism to unlock it.
Problem: Hard to pick best solution from candidates
|
v
Assumption: LLMs have richer judgment signal than
discrete scores capture
|
v
Method: Compute expected score from logit
distribution (continuous, not discrete)
+ scale across 3 dimensions:
granularity, repetition, decomposition
|
v
Evidence: SOTA on 4 benchmarks (SWE-Bench 78.2%,
Terminal-Bench 86.5%, RoboReward 87.4%,
MedAgent 73.3%)
|
v
Conclusion: Verification is a viable scaling axis
independent of the other three
The Increment
One sentence: Before this paper, judging LLM outputs meant prompting for a discrete score and hoping for the best; after this paper, you can extract a continuous probability distribution over scores directly from the model’s logits, giving you calibrated, decomposable, and repeatable verification signals.
Core Mechanism
The framework has three main components working in sequence. First, criteria decomposition: instead of asking “how good is this solution overall?”, the system breaks the evaluation into specific sub-criteria (e.g., for code: correctness, efficiency, readability). Each sub-criterion gets its own evaluation pass. Second, probabilistic scoring: rather than prompting the LLM to output a discrete score token, the method examines the full probability distribution over candidate score tokens in the model’s output logits. It computes a weighted expectation — essentially asking “what score does this model *believe the solution deserves, on average?” Third, repeated evaluation: the same evaluation is run multiple times (with temperature sampling), and scores are averaged, reducing variance from the stochastic generation process.
The ranking algorithm then takes all these continuous scores across sub-criteria and evaluation runs, aggregates them, and selects the best candidate. The key insight is that continuous scores preserve more information than discrete ones — a score of 7.3 vs 7.5 carries meaning that “both are 7” would lose.
Solution + Evaluation Criteria
|
v
[Criteria Decomposition]
|
+--------+--------+
| | |
v v v
Sub-crit 1 Sub-crit 2 Sub-crit K
| | |
v v v
[LLM generates score tokens]
| | |
v v v
[Extract logit probs over
score tokens: p(1)...p(10)]
| | |
v v v
[E[Score] = sum(i * p(i))]
| | |
v v v
s1_cont s2_cont sK_cont
| | |
+--------+--------+
|
v
[Repeat N times, average]
|
v
[Ranking Algorithm]
|
v
Best Candidate
Think of it like Olympic diving judging. In the old approach, each judge holds up a single cardboard number — “7.5” — and that’s all you get. You don’t know if the judge was torn between 7 and 8, or confidently picking 7.5. In this paper’s approach, each judge holds up a semi-transparent gradient sheet: mostly concentrated around 7.5 but with a little shimmer at 7.0 and 8.0. You can see their uncertainty. Now imagine the judges evaluate not just “overall impression” but separate criteria — entry angle, splash size, body control — each with their own gradient sheet. And they evaluate the same dive three times, each time watching from a slightly different angle. The sheets overlap and combine, giving you a much richer picture than any single number could. The ranking algorithm is the head judge who synthesizes all those gradient sheets across all criteria and all viewings to declare a winner. The power is in the continuous signal: a gradient sheet preserves everything the judge actually “thinks,” while a cardboard number throws most of it away.
Key Concepts
-
Logit Expectation over Score Tokens: When an LLM generates text, at each position it assigns a probability to every possible next token. If you ask it to rate something 1-10, it doesn’t just pick one number — it has a probability for each. The expected score is the weighted average: multiply each possible score by how likely the model thinks it is, then sum. So if the model thinks “7” has 40% probability, “8” has 35%, and “6” has 25%, the expected score is 0.4**7 + 0.358 + 0.256 = 7.15. This is richer than just picking the most likely token (which would give 7). The 7.15 tells you the model slightly leans toward higher scores — information lost in the discrete approach.
-
Criteria Decomposition: Instead of one big judgment, break it into pieces. For evaluating a coding agent’s output, you might separately check: (1) does it compile? (2) does it pass edge cases? (3) is the complexity reasonable? (4) is the style clean? Each gets its own probabilistic score. This matters because an overall score of 7 could mean “perfect correctness, terrible style” or “mediocre at everything” — decomposition makes the feedback actionable.
-
Verification as a Scaling Axis: The paper’s framing move. Previously, the community talked about three axes of scaling: more pre-training data, more post-training compute, more test-time compute. This paper argues verification is a fourth independent axis — you can improve system performance by making your *judge better, not just your generator. The axes are somewhat orthogonal: a better judge helps even with the same generator, and vice versa.
Framework Shift
Before (mainstream approach): After (this paper):
Solution A --> [LLM Judge] --> 7 Solution A --> [LLM Logits]
Solution B --> [LLM Judge] --> 8 | |
Solution C --> [LLM Judge] --> 7 | v
| [Score Distribution]
Pick highest discrete score | p(1)...p(10)
| |
Problem: Poor separation, | v
poor calibration, | [E[Score] = 7.31]
single-shot, single-criterion | |
+---> [Repeat x N]
+---> [Decompose x K]
|
v
[Rank by aggregated
continuous scores]
From compressing judgment into a single integer to preserving the full probabilistic signal across multiple evaluation dimensions — the core shift is treating the judge’s output distribution as first-class information rather than collapsing it to a point estimate.
Expert Assessment
Problem choice: This is a real gap. The verification bottleneck is genuine — everyone doing best-of-N sampling, agentic pipelines, or RL with LLMs has felt the pain of unreliable judges. Positioning verification as a scaling axis is a useful framing, though one could argue it’s a repackaging of “reward modeling” with a different lens. The distinction matters though: reward models require training data and a separate model, while this uses the LLM itself as judge but extracts more signal from it. It sits at the intersection of the test-time compute scaling literature (Snell et al.) and the LM-as-judge literature, finding a concrete optimization point between them.
Method maturity: Clever rather than brute force. The core insight — use the full logit distribution instead of the argmax token — is simple and, in retrospect, obvious. That’s usually a sign of a good idea. The three scaling dimensions (granularity, repetition, decomposition) are each individually known, but combining them under a unified probabilistic framework is the contribution. One concern: the method still relies on the LLM’s own calibration being reasonable for scoring tasks, which is not guaranteed across domains. Simpler approaches like majority voting or trained verifiers might still win in narrow domains where training data is abundant.
Experimental integrity: Strong on breadth — four diverse benchmarks (code, terminal, robotics, medical). SWE-Bench Verified at 78.2% is competitive but note this uses Claude 3.5 Sonnet as the base model, which is already a strong baseline. The ablation studies showing gains from each scaling dimension are convincing. The RL results (SAC and GRPO improvements) are interesting but feel somewhat appended — they’d benefit from more rigorous comparison against dedicated reward models. The Claude Code extension is a nice practical touch but reads more as a demo than a rigorous evaluation.
Writing quality: Clear and well-structured. The paper does a good job motivating verification as a scaling axis and explaining the probabilistic formulation accessibly. The weakest section is the RL application — it feels rushed and underdeveloped compared to the thorough verification experiments. The related work could be sharper in distinguishing from prior LM-as-judge approaches; the distinction sometimes blurs. A tighter Section 5 that either goes deeper on RL or is saved for a follow-up would strengthen the paper.
Verdict: weak accept — The core idea (logit expectation for continuous scoring) is clean, practical, and broadly applicable. The framing as a “new scaling axis” is slightly oversold but useful. The experiments are solid if not extraordinary. Main concern is whether the gains hold up when the base model changes or when domain-specific reward models are available.
Takeaways
Three concrete things to steal:
-
The logit expectation trick: Whenever you use an LLM as a judge, don’t take the argmax token. Instead, compute the expected value from the probability distribution over score tokens. This is a drop-in improvement that requires zero additional training — just a few lines of code to extract and weight the logit probabilities. Apply this to any evaluation pipeline that asks an LLM to score something.
-
Decompose before aggregating: If you’re evaluating something complex, split the evaluation into independent criteria, score each separately, then combine. This gives you both better scores (less variance per criterion) and actionable feedback (you know *why something scored high or low). This transfers directly to any quality assurance or review process.
-
Use continuous scores as RL rewards: The paper shows that continuous, fine-grained verification signals work better as reward signals for reinforcement learning than discrete judgments. If you’re doing RL with LLMs, consider replacing your binary pass/fail reward with a continuous verification score — it provides denser supervision and improves sample efficiency.
论文: 2607.05391 作者: Jacky Kwok, Shulu Li, Pranav Atreya, Yuejiang Liu, Yixing Jiang, Chelsea Finn, Marco Pavone, Ion Stoica, Azalia Mirhoseini 分类: cs.AI, cs.CL, cs.LG, cs.MA, cs.RO
缺口
当前领域在三个维度上疯狂投入:预训练算力(更大的模型)、后训练算力(RLHF、DPO)、测试时算力(思维链、搜索、N选1)。 这三者的共同假设是:只要能生成更好的候选方案,就能得到更好的输出。 但所有人在实践中都会撞上同一个瓶颈——怎么从一堆候选里可靠地挑出最优解?
标准的 LLM 裁判(比如”给这个方案打 1-10 分”)产生的是离散的、校准很差的分数。 它难以区分质量差异微妙的解。 当你让 LLM 从 1 到 10 选一个数时,你本质上是在把模型内部丰富的表征压缩成几个比特。 判断信号是有损的、噪声大的,而且很难跨多个评价维度聚合。
这篇论文把验证识别为第四个扩维方向,并给出了具体的实现机制。
问题:很难从候选解中选出最优解
|
v
假设:LLM 内部的判断信号比离散分数
所能表达的更加丰富
|
v
方法:从 logit 分布计算期望分数
(连续而非离散)
+ 沿三个维度扩展:
分数粒度、重复评估、标准分解
|
v
证据:四个基准测试达到 SOTA
(SWE-Bench 78.2%、Terminal-Bench 86.5%、
RoboReward 87.4%、MedAgent 73.3%)
|
v
结论:验证是独立于其他三者的一个可行扩维方向
增量
一句话: 在这篇论文之前,评判 LLM 输出的方式是提示模型给出一个离散分数然后听天由命; 在这篇论文之后,你可以直接从模型的 logit 中提取关于分数的连续概率分布, 获得校准更好、可分解、可重复的验证信号。
核心机制
该框架有三个依次工作的核心组件。 第一个是标准分解:不问”这个方案整体有多好”,而是把评估拆成具体的子标准 (比如代码评估拆成:正确性、效率、可读性)。 每个子标准有独立的评估流程。 第二个是概率打分:不提示 LLM 输出一个离散的分数 token, 而是检查模型输出 logit 中所有候选分数 token 上的完整概率分布。 计算加权期望——本质上在问”这个模型实际上认为这个方案值多少分?” 第三个是重复评估:同一评估跑多次(带温度采样),分数取平均, 降低随机生成过程带来的方差。
排序算法随后将所有子标准和所有评估轮次的连续分数汇总,选出最优候选。 核心洞察是:连续分数比离散分数保留了更多信息——7.3 和 7.5 的差距是有意义的, 而”都是 7 分”则丢失了这个信息。
方案 + 评估标准
|
v
[标准分解]
|
+---+---+
| | |
v v v
子标准1 子标准2 子标准K
| | |
v v v
[LLM 生成分数 token]
| | |
v v v
[提取 logit 概率分布
p(1)...p(10)]
| | |
v v v
[E[Score] = sum(i * p(i))]
| | |
v v v
s1 s2 sK
(连续)
| | |
+---+---+
|
v
[重复 N 次,取平均]
|
v
[排序算法]
|
v
最优候选
用一个比喻来理解:想象奥运会跳水裁判。 旧方法里,每个裁判举起一块纸板——“7.5”——仅此而已。 你不知道裁判是在 7 和 8 之间纠结,还是自信地选了 7.5。 新方法里,每个裁判举起一张半透明的渐变卡片:主要集中在 7.5, 但在 7.0 和 8.0 也有淡淡的光晕。你能看到他们的不确定性。 再想象裁判不是只评”整体印象”,而是分开评——入水角度、水花大小、身体控制—— 每个维度有自己的渐变卡片。 而且同一个跳水动作他们看三遍,每次从略不同的角度。 卡片重叠、融合,给你比任何单个数字都丰富得多的画面。 排序算法就是主裁判,综合所有维度、所有观察的所有渐变卡片,宣布获胜者。 力量来自连续信号:渐变卡片保留了裁判的全部”想法”, 而纸板数字扔掉了其中大部分。
关键概念
-
Score Token 上的 Logit 期望: LLM 生成文本时,在每个位置会对所有可能的下一个 token 分配概率。 如果让它给某样东西打 1-10 分,它不是只选一个数——每个分数都有一个概率。 期望分数就是加权平均:每个可能分数乘以模型认为它有多大概率,然后求和。 比如模型认为”7”有 40% 概率、“8”有 35%、“6”有 25%,那期望分数是 0.47 + 0.358 + 0.25*6 = 7.15。 这比只取最可能的 token(得 7)更丰富。 7.15 告诉你模型略微偏向更高的分数——这个信息在离散方法中丢失了。
-
标准分解: 不做一次性大判断,而是拆成小块。 评估代码智能体的输出时,可以分别检查:(1)能不能编译?(2)边界情况能不能过? (3)复杂度合不合理?(4)风格干不干净? 每一项都有自己的概率分数。 这很重要,因为总分 7 可能意味着”完美正确、风格极差”,也可能是”各方面都中等”—— 分解让反馈变得可操作。
-
验证作为扩维方向: 这是论文的框架性贡献。 此前社区谈论三个扩维方向:更多预训练数据、更多后训练算力、更多测试时算力。 这篇论文论证验证是第四个独立方向——你可以通过让裁判变好来提升系统表现, 而不只是让生成器变好。 这些方向某种程度上是正交的:更好的裁判即使生成器不变也能带来提升,反之亦然。
框架转变
之前(主流方法): 之后(本文方法):
方案 A --> [LLM 裁判] --> 7 方案 A --> [LLM Logits]
方案 B --> [LLM 裁判] --> 8 | |
方案 C --> [LLM 裁判] --> 7 | v
| [分数分布]
选最高离散分数 | p(1)...p(10)
| |
问题:分离度差, | v
校准差, | [E[Score] = 7.31]
单轮,单维度 | |
+---> [重复 N 次]
+---> [分解 K 个维度]
|
v
[按聚合连续分数排序]
从把判断压缩成一个整数,到在多个评估维度上保留完整的概率信号—— 核心转变是将裁判的输出分布视为一等信息,而不是将其坍缩为点估计。
专家评审
选题眼光: 这是一个真实的缺口。 验证瓶颈是切实存在的——所有做 N 选1采样、智能体流程、或用 LLM 做 RL 的人都感受过不可靠裁判的痛苦。 把验证定位为扩维方向是有用的框架,但有人可能会说这不过是”奖励建模”换了个视角重新包装。 不过区别确实存在:奖励模型需要训练数据和独立模型,而这里用 LLM 自身做裁判,但从中提取了更多信号。 它处于测试时算力扩展文献(Snell 等人)和 LM-as-judge 文献的交叉点, 在两者之间找到了一个具体的优化点。
方法成熟度: 是巧劲而非蛮力。 核心洞察——用完整的 logit 分布而不是 argmax token——很简洁,而且事后看来显而易见。 这通常是好想法的标志。 三个扩维方向(粒度、重复、分解)各自都不新,但把它们统一在概率框架下是本文的贡献。 一个担忧是:方法仍然依赖 LLM 在打分任务上的自身校准质量,这在不同领域并不保证成立。 在训练数据充足的窄领域,更简单的方法(多数投票或训练专门的验证器)可能仍然更优。
实验诚意: 广度不错——四个多样性基准(代码、终端、机器人、医疗)。 SWE-Bench Verified 78.2% 有竞争力,但注意这用了 Claude 3.5 Sonnet 作为基础模型, 它本身已经是强基线。 消融实验展示每个扩维维度的增益,说服力不错。 RL 结果(SAC 和 GRPO 提升)有趣但感觉有点临时拼凑—— 如果和专门训练的奖励模型做更严格的对比会更好。 Claude Code 扩展是很好的实践触点,但更像演示而非严格评估。
写作功力: 清晰且结构良好。 论文在把验证作为扩维方向来论证、以及通俗解释概率公式方面做得不错。 最弱的部分是 RL 应用——和详细的验证实验相比,感觉匆忙且不够深入。 相关工作在和先前 LM-as-judge 方法的区分上可以更锐利;有时界限模糊。 如果第 5 节要么更深入,要么留给后续工作,整篇论文会更扎实。
判决: 弱接收 — 核心想法(logit 期望实现连续打分)干净、实用、适用面广。 “新扩维方向”的框架略有过度包装,但有用。 实验扎实但不算特别出色。 主要担忧是:当基础模型改变、或领域有专门奖励模型时,收益是否还能保持。
要点总结
三个可以立即拿走的具体做法:
-
Logit 期望技巧: 每当用 LLM 做裁判时,不要取 argmax token。 而是从分数 token 的概率分布中计算期望值。 这是一个无需额外训练的即插即用改进——只需几行代码来提取和加权 logit 概率。 任何让 LLM 给东西打分的评估流程都可以直接应用。
-
先分解再聚合: 如果在评估复杂的东西,把评估拆成独立标准,分别打分,再合并。 这既给出更好的分数(每个子标准方差更小),又给出可操作的反馈(你知道为什么高分或低分)。 这可以直接迁移到任何质量保证或审查流程中。
-
用连续分数做 RL 奖励: 论文表明连续的、细粒度的验证信号作为强化学习的奖励信号 比离散判断效果更好。 如果在做 LLM 的 RL,考虑把二元的通过/失败奖励替换成连续的验证分数—— 它提供更密集的监督,提升样本效率。