Repository navigation
Conversation
Pair the k-th baseline and candidate samples that steps() already alternates, and report the median paired speedup with a seeded percentile bootstrap interval and its relation to the frozen gate. The field is report-only: verdict, eligibility and selection are unchanged, and any value that cannot be computed is reported as unavailable so records stay strict JSON. Fewer than five pairs report no interval because simulated coverage at three pairs is about 75%. tools/measurement_simulation.py reproduces the synthetic ablation. Agent-assisted-by: Claude Code / claude-opus-5-5 (author) Agent-assisted-by: Codex CLI / gpt-6.1-sol [effort=high] (review) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: BeatSeat <137616995+BeatSeat@users.noreply.github.com>
…ches Measurement scripts may add per-step region breakdowns and work counters. A round may declare its mechanism and expected region/counter directions. Regions declared unchanged act as an in-step clock, so ratios to them and their share of the step total cancel device-wide clock or thermal drift; counters such as launches or DRAM bytes show whether a small gain is reproducible. Directions come only from paired intervals, with no repository-wide tolerance. Two switches are frozen at campaign start and default to the existing behaviour: --require-explanation adopts only candidates whose mechanism is confirmed by the data, and --decision paired requires the paired interval to clear the gate, failing within-noise rounds without blocking the search. Agent-assisted-by: Claude Code / claude-opus-5-5 (author) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: BeatSeat <137616995+BeatSeat@users.noreply.github.com>
… evidence Bind the round's mechanism into control state before the candidate runs and assess against that copy, so a candidate cannot rewrite its own declaration. Require five pairs before any profile direction, treat zero-baseline ratios as undefined, report unavailable shares instead of raising, keep raw evidence for every region, and never normalize declared references against each other. Agent-assisted-by: Claude Code / claude-opus-5-5 (author) Agent-assisted-by: Codex CLI / gpt-6.1-sol [effort=xhigh] (review) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: BeatSeat <137616995+BeatSeat@users.noreply.github.com>
The candidate runs with the caller's privileges and can write state.json or the attempt copy. Pass the declaration held since submission to the assessor, record its digest, and treat a copy that no longer matches as an integrity failure. Agent-assisted-by: Claude Code / claude-opus-5-5 (author) Agent-assisted-by: Codex CLI / gpt-6.1-sol [effort=xhigh] (review) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: BeatSeat <137616995+BeatSeat@users.noreply.github.com>
An interrupted attempt is settled by a new process that can only read files the candidate could write. Settle it without the declaration, mark the record, and leave require_explanation to keep the round unadopted. Agent-assisted-by: Claude Code / claude-opus-5-5 (author) Agent-assisted-by: Codex CLI / gpt-6.1-sol [effort=xhigh] (review) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: BeatSeat <137616995+BeatSeat@users.noreply.github.com>
|
我对照当前 main 先说已经对上我在 #454 里提的几条: 还需要处理的点:
我没有重新跑 我不会在这个 head 上 Approve,直到 #454 被接受,并且上面的 rebase / 文档与测试缺口处理完毕。 |
Governing Issue and delivery slice
Refs #454
campaign start/round/final)新增三项能力,默认都不改变现有判定:steps()已有的 AB/BA 交替,把同一次重复里的基线和候选样本配对,报告逐对加速比、bootstrap 区间,以及区间与门槛的关系。breakdown(分区域耗时)和counters(工作量计数);每轮可以用--mechanism-file声明机制和预期方向;Harness 机械核对并给出explanation.status。--require-explanation只采纳explained的候选;--decision paired用配对区间判定,跨门槛判 FAIL(within_noise)但不阻塞搜索。benchmarks session拒绝--mechanism-file);Dashboard 展示;与具体 profiler 绑定的采集脚本;GPU/NPU 实测。Knowledge authorship declaration
本 PR 不触及 knowledge-model policy 的受保护路径,预期为 Not applicable。
Changed artifacts and evidence
src/inferrsi/harness/measurement.pyprofile_evidence、validate_mechanism、explain;无法计算的值一律返回unavailable,记录保持严格 JSONsrc/inferrsi/harness/project.pyassess()接入两个开关和机制核对;新增设置项的校验src/inferrsi/harness/optimization.pysrc/inferrsi/harness/optimization_session.py--mechanism-file;_runtime_identity纳入measurement.pysrc/inferrsi/arguments.py--decision、--require-explanation、--mechanism-filedocs/optimization-workflow-unification.mdtests/test_harness_measurement.pytests/test_project_explanation.pywithin_noise;篡改state.json或副本;中断后伪造声明的恢复tests/test_project_optimization.py、tests/test_optimization_session.pytools/measurement_simulation.py判定逻辑
explanation.status--require-explanation下explainedunsupportedcontradictedunverifiablenot_declared声明为
unchanged的区域是本轮的假设:其他区域会另外给出"除以同一步骤参照区域"后的比较,share_based_speedup用参照占比推算整体加速。只有让一个步骤内所有区域按同一比例缩放的变化,才会被这样抵消。参照区域本身只做原始比较,不会互相归一化。合成消融(
python tools/measurement_simulation.py,CPU 仿真,非设备实测)每行 200 次 campaign,门槛 1%,数据 seed 20261115,bootstrap 10000 次、seed 0,Monte Carlo 标准误 ≤ 0.035。
Checks and dependencies
Checks actually run (result and tested scope):
ruff check src tests tools:通过。tests/test_harness_measurement.py、tests/test_project_explanation.py、tests/test_project_optimization.py、tests/test_optimization_session.py、tests/test_cli_catalog.py:全部通过。origin/maina92c77cc的失败集合相同(各 295 个),本分支没有引入新失败。这些失败来自本机 Git 2.43 不支持--no-lazy-fetch(仓库要求 Git ≥ 2.45),不能视为通过,以 hosted CI 为准。独立评审: Codex CLI(
gpt-6.1-sol,high/xhigh)在本地做了六轮只读评审,每一轮都用对抗输入去复现问题。发现并已修复的问题:Infinity;mechanism.json或state.json里的声明,从而绕过--require-explanation;recover结算时,连同摘要一起伪造的声明会被接受。现在恢复的轮次按未声明处理,并记录mechanism_unverified_after_recovery。plan.json已有plan_digest保护。Not run: hosted CI;GPU/NPU 实测;真实 profiler 采集。
Dependencies / integration assumptions:
measurement.py只用标准库。steps()两侧等长且交替执行。harness/*.py会改变 runtime identity,旧 runtime 启动的会话需要用原来冻结的 runtime 恢复(既有规则)。Remaining work and Issue closure
Remaining Issue requirements / follow-up:
explanation;另有互补的知识 PR(task: add GPU measurement-validity and profiler-attribution guidance to inference-benchmark-design #455),两者互不依赖。
Goal-acceptance owner or accepted closure delegation: TBD
Goal ready for acceptance? Not claimed