Recoleta Item Note
A Rubric-Supervised Critic from Sparse Real-World Outcomes
本文提出一种从真实生产环境中稀疏、延迟且噪声很大的用户-代理结果信号中学习代码代理“critic”的方法。核心贡献是用24个可从交互轨迹直接观察到的行为rubrics,把大量无明确结果标签的真实轨迹转成可训练监督信号。
Summary
本文提出一种从真实生产环境中稀疏、延迟且噪声很大的用户-代理结果信号中学习代码代理“critic”的方法。核心贡献是用24个可从交互轨迹直接观察到的行为rubrics,把大量无明确结果标签的真实轨迹转成可训练监督信号。
Problem
- 论文解决的是:现实中的代码代理通常与人协作工作,但成功信号不像学术基准那样有清晰单步可验证奖励,而是稀疏、延迟、噪声大,导致难以评估、训练和做推理时选择。
- 这很重要,因为真实软件工程场景里,用户关心的不只是单测通过,还包括修改是否正确、可维护、可审查,以及是否真正减少了人的工作量。
- 只依赖 benchmark 训练出的评估器无法可靠迁移到生产环境;文中指出这类 critic 在真实结果上的 AUC 仅 0.45–0.48,接近随机。
Approach
- 把真实多轮人机交互切成segments:每段从一次用户请求开始,到代理调用 finish 结束,作为最小监督与归因单位。
- 设计 24 个 Critic Rubrics,覆盖代理行为问题、用户后续反馈模式、基础设施问题等;这些标签只看轨迹本身,不看最终PR结果,从而避免结果泄漏。
- 用 LLM 对所有 segment 打 rubric 标注,再把少量真实结果代理信号一起用于训练:包括 PR merge 和更细粒度的 code survival。
- 训练一个半监督多任务 critic:一头预测 sparse success,另一头预测 dense rubrics。这样在 151,837 个真实 segments 中,虽然只有 4% 有 code-survival、6% 有 PR-merge 标签,但其余 96% 也能通过 rubrics 提供学习信号。
- 训练后的 critic 可直接用于三类用途:best-of-N reranking、early stopping、训练数据筛选/数据整理。
Results
- 数据规模上,作者使用 38,241 个真实对话、151,837 个 segments;其中只有 5,349 (4%) 有 code survival 标签,9,750 (6%) 有 PR merge 标签,直接体现监督稀缺。
- rubric 有效性方面,在 SWE-bench / SWE-Gym 中,诸如 incomplete implementation、insufficient testing、insufficient debugging、insufficient analysis 等失败模式会使成功率下降 15–21 个百分点,且 p < 0.001(FDR校正后)。在真实数据中,效果更弱更噪声,但如 reversion request 对 code survival 仍有显著负效应,Δ = -0.13, q < 0.001。
- 真实监督必要性:仅用 benchmark 轨迹训练的 critics 在真实世界结果上表现接近随机,AUC 0.45–0.48,且还可能损害 SWE-bench 下游选择效果。
- 推理时重排序方面,critic 可提升 SWE-bench 上的 best-of-N 选择:在可重排轨迹子集上,Best@8 相比 Random@8 提升 +15.9。
- 早停方面,critic 支持更高效的推理计算分配:文中报告**+17.7** 的提升,同时尝试次数减少 83%。
- 作者还声称 critic 可用于训练时的数据筛选,利用 critic 选择真实轨迹做监督微调;给定节选中未提供更细的量化对比数值。
Link
Built with Recoleta
Run your own research radar
Turn arXiv, Hacker News, OpenReview, Hugging Face Daily Papers, and RSS into local Markdown, Obsidian notes, Telegram digests, and a public site.