Repository navigation
Compare benchmark proxy rankings against submission order - #8101
Conversation
…hed candidates Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
loopx-agent
left a comment
There was a problem hiding this comment.
Reviewer: model_agent; gpt-6.1-sol; OpenAI; runtime_reported; reasoning_effort=max
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
动机 / Motivation
需要判断代理指标是否真的有排序信息的 benchmark 分析者。 搜索过程中的候选随时间变好时,代理指标可能只是在追随提交顺序;新增离线命令把代理规则和“总选较晚提交”放在完全相同的候选对上比较。 分析者能看见两条规则各自的一致、反转、弃权,以及未匹配、未评分、过晚测量和原生平局的数量。 结果是选定序列的描述统计,不是独立试验、总体准确率、因果证明、正式评分或运行授权。
不做比较时,很容易把搜索自身的进展归功于代理指标,也看不出评分覆盖到底缺了多少候选。新增工具提供可重复的对照分母;同名 cohort 只是分析者声明的分组,不能替其证明协议、时钟与候选内容确实可比。
改动思路 / Approach
python -m benchmark.proxy_order proxy.json native.json 读取调用者准备的两个文件。load_panel 拒绝非法类型、非有限数、重复 source digest 和不兼容 cohort;compare 按 digest 连接,在同一个 matched 集合上比较两条规则。每个本地观测必须严格早于该候选自己的 acceptance;原生平局单列,代理平局与相同接受时间分别记为弃权。
140 行专门离线计算留在 benchmark 边界,避免把分析规则变成通用控制面的新决策 owner。当前 PR 的边界是可调用的离线比较和沿用既有行为发现流程的使用说明;不接管 native scorer、上传 provider、runner 或持久状态。现有 attribution 模块解释行动归因,native exporter 绑定正式评分,都不提供这个相同候选对的时间顺序对照,直接复用会混淆职责。
具体改动 / Changes
规格基于改动前的 docs/reference/benchmark-behavior-findings.md,spec_revision 为 acc00f5。按接受文档章节映射:Content-contract 已实现,输出仅为生产者描述性计数,保留覆盖、平局和局限;Local-workflow 复用已有本地 envelope/readback/report,未新增存储或网络上传;Disclosure-scope 已保留,说明只在授权下形成脱敏 finding,不能从探索标签推断披露权限。新增 recipe 作为本次提案接受审查,没有拿新文本给自己作规格。
关键代码讲解
load_panel:JSON 小数解为Decimal;只接受整数或有限 Decimal,布尔值不当数字。重复候选直接拒绝,要求调用者先确定 repeat policy,避免偷偷按最好分挑选。compare的覆盖分类:未评分、缺代理、过晚或同时观测、匹配是互斥类别,另列 proxy-only。原生零分仍是有效分数,不能当缺失。- 同集合的 pair loop:两条规则见到同一批候选对;先排除 native ties,再按各自方向记录一致、反转、弃权。复杂度随候选对数增长,适用于调用者限定的离线 panel。
main:实际 CLI 成功只写 JSON;非法 panel 退出 2 并把诊断写入 stderr,没有部分结果、上传或调度。
PASS:head 的 analyzer/相邻归因测试 24 项、既有 behavior-finding 测试 39 项;基线相应既有集合 14+39 项通过,新增模块在基线不存在。Ruff、mypy 和必需 premerge 命令通过。独立手算 panel 有 7 个 native 候选,4 matched,missing/late/unscored 各 1,proxy-only 为 1;6 对中 1 个 native tie,两条规则均为 2 agrees、3 reverses。实际 CLI 与 107 个方向、排列、精度、非法输入、空覆盖及输入不改写检查一致。
对主干的风险 / Risks
未发现阻塞问题。最强风险是数据选择或时间泄漏产生漂亮的“预测准确率”:工具只核验格式与该候选的时间次序,不认证 cohort、同一时钟、真实内容 digest、冻结时间或选择的独立性。说明明确要求分析者核实,且只作描述统计;只有一个已标注候选时不能声称知道替代方案排序。未读取作者的私人 panel,也未启动任何 benchmark 或模型运行。
FAIL 保留:可维护性 ratchet 在不可变 base/head 的完整诊断一致,指向未修改的 interaction-contract 函数;输入与环境 digest 也一致,是既有 advisory。premerge 的直接检查、9 项非 advisory catalog 检查、8 项风险 profile 与公共边界检查均通过,但整体 premerge 退出 1、manual_review_required,因为 benchmark-sensitive 路径要求维护者审查;这不是全绿,也不授予自合并权限。
没有默认启用的 hook、配置或 schema 变化。调用者显式运行这个分析命令;普通 runner、评分、quota、上传路径与自动加载指引保持原实现。proxy、later_submission、覆盖类别是本地统计 vocabulary,不是新的公共生命周期或通用业务义务。文档中的人工可比性要求与程序真正强制的有限数字、唯一 digest、时间截止分别说明,没有把人工 attestation 冒充机器保证。
我的整体评价 / Verdict
交付判断为 goal_achieved,限于可使用的离线对照工具;真实研究收益不在该结论内。long_horizon:preserved,已有 runner/receipt/score owner 无变更,结果只供分析者判断;无法从本次计数推导持续效率提升。user_experience:improved,命令可直接得到覆盖与对照,不增加确认轮次;上游准备数据和确定选择策略仍是必要人工工作。
视觉检查不适用:检查的 benchmark/proxy_order.py 和 Markdown recipe 没有改变渲染页面。未验证范围是作者私人数据的来源真实性、真实冻结时序、统计不确定性与总体推广。作为有限的专用计算,保留 Python 符合现有 placement;增加 provider、前端编辑器或复用正式评分器反而扩大授权和维护边界,没有本次必须重构的邻接 owner。
APPROVE 此精确 head;保留 benchmark 维护者审查、严格 CQR 资格和独立 merge readiness,不以测试数量或工具新增本身证明 benchmark 改善。
English verdict: APPROVE 80c7593 — no blocking finding; same-pair comparison, coverage, precision and CLI rejection verified. Descriptive scope, inherited advisory debt and benchmark maintainer-review hold remain.
Problem and outcome
When candidates improve over a search run, a proxy can agree with nearly every released score simply by tracking submission order. Analysts also need to see how many frozen candidates actually received comparable feedback.
This offline benchmark research helper compares two rules on identical candidate pairs. It joins by source digest within a caller-selected cohort, requires the local observation to precede acceptance, preserves missing or unusable observations, and reports ties and reversals. The later-submission control supports equal acceptance times. The analyst supplies the verified scope and repeat policy.
The recipe in the existing benchmark behavior findings guide explains how to use the aggregate in an exploratory finding. The script operates on caller-supplied measurements and has no runner, upload, quota or scoring authority. The comparison labels stay local to this analysis.
Validation
The scope is descriptive. Shared candidates, selective submission and unmeasured noise limit inference. Prospective ranking needs multiple labeled alternatives frozen before their outcomes. Runtime adoption and improved benchmark scores require separate evidence.