iomgaa
|
58a0203522
|
perf: dedup holdout four-way eval (baseline derive, best_hard memo)
|
2026-07-16 06:31:00 -04:00 |
|
iomgaa
|
77fd35830c
|
fix: idempotent _run_step (DELETE stale) + checkpoint after gate save
|
2026-07-16 06:27:38 -04:00 |
|
iomgaa
|
efbdeb1647
|
fix: route None/degraded diagnoses to lapse; abort on high degrade rate
|
2026-07-16 06:24:11 -04:00 |
|
iomgaa
|
caea9150b3
|
feat: pre-flight filter of untrainable task types before gate
|
2026-07-16 06:16:02 -04:00 |
|
iomgaa
|
c44f6010eb
|
fix: early_stop patience counts epochs not steps
|
2026-07-16 06:09:11 -04:00 |
|
iomgaa
|
25918a73ff
|
fix: normalize non-scalar prediction; harden predictions insert
|
2026-07-16 06:06:58 -04:00 |
|
iomgaa
|
7d02cded99
|
fix: wrap diagnosis run_log with StepsJsonRunLog (restore algo #7 traces)
|
2026-07-16 06:05:55 -04:00 |
|
iomgaa
|
03337af8f8
|
fix: gate INFRA isolation edge cases (all-INFRA fail-loud, parse_error in guard)
|
2026-07-16 05:54:02 -04:00 |
|
iomgaa
|
b307f51340
|
feat: --retry-uncertain re-diagnoses uncertain rows; fix docstring
|
2026-07-16 05:41:19 -04:00 |
|
iomgaa
|
c68de849da
|
fix: slow-update R2 dual_metric uses slow_candidate kind (not final)
|
2026-07-16 05:38:05 -04:00 |
|
iomgaa
|
1468a53b7a
|
fix: read-only baseline queries skip _runs upsert (register_run flag)
|
2026-07-16 05:36:47 -04:00 |
|
iomgaa
|
96884dd149
|
fix: atomic writes for manifest/record_run/update_best (tmp+replace)
|
2026-07-16 05:34:45 -04:00 |
|
iomgaa
|
d1516bf56b
|
fix: isolate gate baseline-arm INFRA errors from BaselineCache (algo #6)
|
2026-07-16 05:33:21 -04:00 |
|
iomgaa
|
7cc6aa5b23
|
fix: reject REDIS_CACHE_TTL<=0 (kill implicit never-expire)
|
2026-07-16 05:25:36 -04:00 |
|
iomgaa
|
8f349c5c62
|
fix: make frozen product backup unique and atomic on --force
|
2026-07-16 05:12:08 -04:00 |
|
iomgaa
|
a0c7e043e8
|
fix: validate global frozen pools baseline_run_id + sha256 on load
|
2026-07-16 05:05:15 -04:00 |
|
iomgaa
|
4d60a545f6
|
feat: seed carries frozen pools.json into training workspace
|
2026-07-16 05:02:16 -04:00 |
|
iomgaa
|
a39846af6e
|
feat: guard frozen split products against silent overwrite (--force)
|
2026-07-16 05:00:42 -04:00 |
|
iomgaa
|
5bb8319220
|
feat: tier-aware diag/val split with val-power repair (design 5.1)
|
2026-07-16 04:58:41 -04:00 |
|
iomgaa
|
6432ffef9a
|
feat: add dedupe_per_question to extract_run_db (canonical 902->900)
|
2026-07-16 04:54:19 -04:00 |
|
iomgaa
|
232a56e826
|
fix: fail-loud on missing evolve/diagnose templates (no silent empty)
|
2026-07-16 04:43:22 -04:00 |
|
iomgaa
|
1108235818
|
refactor: drop dead prompt fields consolidate_system/span_eval_user
|
2026-07-16 04:42:26 -04:00 |
|
iomgaa
|
a4c429b247
|
chore: snapshot in-progress question-gen work before preflight fixes
|
2026-07-16 04:12:21 -04:00 |
|
iomgaa
|
224bb25bb5
|
fix: load real tree_data for training-loop diagnosis (runner)
算法保真 §4.7#12(训练循环编排):仅将 _run_diagnosis 内 tree_data={} 替换为
按 batch question_ids 涉及 video 加载真实树注入 run_diagnosis,未改动三级嵌套/
慢更新/断点续训/gate 等编排逻辑。覆盖 question_ids=None 全量诊断与
question_ids=[...] batch 两条路径。
|
2026-07-15 23:02:17 -04:00 |
|
iomgaa
|
8dedd082ff
|
fix: self-contained tree-inject test + fail-loud on missing question (review)
|
2026-07-15 22:48:37 -04:00 |
|
iomgaa
|
83056688cf
|
fix: load real tree_data for offline diagnosis (video_split_cli)
|
2026-07-15 22:38:23 -04:00 |
|
iomgaa
|
d6c595c4a4
|
fix: fail-loud on node without time info; anchor test store path
|
2026-07-15 22:16:39 -04:00 |
|
iomgaa
|
05294412df
|
test: cover missing-id and non-list roots; drop unreachable empty-nodes guard
|
2026-07-15 22:11:36 -04:00 |
|
iomgaa
|
e6adaad8b3
|
feat: add tree.json flattener for diagnosis ground_truth
|
2026-07-15 22:05:50 -04:00 |
|
iomgaa
|
8fef7ced42
|
fix: address whole-impl review (INFRA T0 rows, reproducible manifest, evolution_target report, dead config, canonical DRY)
C-1: persist_infra_t0_rows 补 INFRA/空预测错题的 T0 信号行(不进诊断故须单独落库),run_pipeline 加 Phase 0,dry-run 用假数据走通。
C-2: CLI 加 --generated-at,真实运行默认盖真实 UTC now,可显式固定以字节级复现 manifest。
I-1: coverage_report 增 evolution_target_distribution(T2 信号按 tool/skill/system 计数)。
I-2: 删除 PoolConfig 死字段 n_trainval/floor_k/epsilon/report_floor/val_wrong_min(grep 确认无消费者,视频级切分用独立 VideoSplitConfig/SplitBuildConfig/SelectConfig)。
I-3: 抽共享 load_canonical_predictions(db_path, run_id),CLI 与 build_split 共用;消除 canonical 取行 + correct 判定重复。
M-1: build_split docstring 注明 val_wrong_min-agnostic 契约(McNemar 护栏由 CLI 冻结后执行,Task 11 契约)。
|
2026-07-15 13:39:14 -04:00 |
|
iomgaa
|
02b8145b7f
|
fix: fail loud on diag model fingerprint drift vs .env SEARCH_LLM_MODEL
Codex CHANGES_REQUESTED 复审:
- Critical:diag_fingerprint 用 config.diag.model,但 Phase 1 诊断 LLM 从 .env
SEARCH_LLM_MODEL 构建,两者不一致会让信号以错误模型指纹落库,破坏可复现/
resume/隔离。build_diagnosis_deps 新增 expected_model 参数,Phase 1 执行前
fail loud 校验 config.model == settings.search_llm_model(附两值)。
- Minor:config/video_split.yaml diag.model 注释由 JUDGE_LLM_MODEL 更正为
SEARCH_LLM_MODEL,与实现对齐。
- 补两个单测:模型不一致 fail loud + 缺凭证 fail loud。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-15 13:20:51 -04:00 |
|
iomgaa
|
2844732126
|
refactor: self-contained two-phase video-split CLI entry
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-15 13:12:21 -04:00 |
|
iomgaa
|
6a21d80313
|
feat: add video-split config knobs and reproducible script
|
2026-07-15 12:54:25 -04:00 |
|
iomgaa
|
43d7346526
|
feat: wire end-to-end results-driven split with defensive asserts
|
2026-07-15 12:43:25 -04:00 |
|
iomgaa
|
b497db97ba
|
fix: guard floor phase against n_trainval budget + assert epsilon on output
Codex Task 8 审查修复:
- Important 1: _satisfy_floors 每步移入前检查预算,floor 需求超 n_trainval 时
抛 InfeasibleSplitError(fail loud),保证 trainval 永不超额挤占 test;补预算超限测试。
- Important 2: 确定性测试末尾用 _epsilon_ok 断言产出 test 真满足 ε(两维偏差回归护栏),
并断言 trainval <= n_trainval。
- Minor: fixture docstring 注明结构真实 / signal 二次构造,正式运行由真实诊断替换。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-15 12:38:33 -04:00 |
|
iomgaa
|
c3187167c8
|
feat: add greedy joint-constrained split selector
两阶段贪心视频级切分:Floor 硬约束优先满足 + 多样性 submodular 覆盖最大化,
两阶段均带 ε 守护保 test 代表性;不可行 fail loud(InfeasibleSplitError),
多样性欠额记 loguru warning 不静默。derive_reportable_types 落地长尾报告门限。
确定性:Random(seed) 预洗牌打破等增益/等槽数平局,同 config 同 videos 同解。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-15 12:32:24 -04:00 |
|
iomgaa
|
84b0b30213
|
fix: dedup three-bucket projection + honest C3 error-handling note
|
2026-07-15 12:29:58 -04:00 |
|
iomgaa
|
aa10485b9f
|
fix: make pools.json freeze atomic + add split manifest
|
2026-07-15 12:28:48 -04:00 |
|
iomgaa
|
fd907aab46
|
fix: extend correctness fail-fast to test-side pool questions (P5)
|
2026-07-15 12:22:11 -04:00 |
|
iomgaa
|
53989078a0
|
feat: add offline baseline diagnosis orchestration
|
2026-07-15 12:22:07 -04:00 |
|
iomgaa
|
3d8bd75372
|
feat: build all-video records with difficulty and signal overlay
|
2026-07-15 12:18:56 -04:00 |
|
iomgaa
|
20eea98cdd
|
refactor: add video-atomic pool split (algo #5 gate input preserved)
|
2026-07-15 12:14:36 -04:00 |
|
iomgaa
|
9d19328cc9
|
feat: add signal tiering
|
2026-07-15 12:12:48 -04:00 |
|
iomgaa
|
0a7ba724a9
|
feat: add evolution_target derivation and cell
|
2026-07-15 12:06:56 -04:00 |
|
iomgaa
|
01f2e7c7b9
|
feat: add steps_json-backed RunLog wrapper
|
2026-07-15 11:51:55 -04:00 |
|
iomgaa
|
cf7f15d8bb
|
feat: add steps_json to trace-row adapter
|
2026-07-15 11:47:00 -04:00 |
|
iomgaa
|
6c6fb576ee
|
feat(harness): checkpoint 存 unit_id 序列,断点续跑孪生对不拆
核心算法保真 #3(断点续跑):checkpoint 从逐题 question_id 改为存 unit_id
序列(孪生对折叠为单个 unit_id),恢复时 build_units + 按完整 unit 展开,
续跑后 pair 两成员同进同出、绝不被劈开。
- _batch_unit_ids/_batch_from_ids 对称折叠/展开,保序去重,纯非 AR 下
unit_id==question_id、与旧逐题序列逐字节一致。
- momentum 采样抽取为 _sample_momentum_candidates 纯函数,docstring 显式
记录 Phase 1 设计偏差:仅保证纯非 AR byte-identical,混格 momentum 不保证。
- 新增 test_checkpoint_pair(unit_id 落盘往返、pair 不拆)与
test_non_ar_byte_identical(pools→batching→checkpoint→momentum 端到端黄金)。
|
2026-07-15 08:22:18 -04:00 |
|
iomgaa
|
bd1f7a22a2
|
feat(harness): pools.json 序列化 pair 四字段防孤儿 single
_q_to_dict 写出 pair_id/question_role/flip_axis/unit_id,_dict_to_q 用 .get
兼容旧 workspace 的 pools.json 读回并回填(unit_id 缺省交 __post_init__)。
pools.json 是训练主回路读回题目处,此前漏写会让孪生对解冻后退化成孤儿
single、配对指标失真。categories 块沿用 per-qid 记录,Task 3 的 unit 原子
切分已保证两 pair 成员同池同 key,序列化不破坏该原子性。
|
2026-07-15 08:05:15 -04:00 |
|
iomgaa
|
273984674b
|
feat(harness): 迁移 gate 信息量阶梯到 unit 粒度 + schema_version
核心算法保真#5(信息阶梯):gate_ladder.py 从逐题迁移到 unit 粒度,
只换键 question_id→unit_id,冷启动 2:1 错优先交错、gamma-EMA 公式、
Beta(1,1) 先验、反泄漏 _gate_ 过滤的公式/比例/顺序语义一字不改。
- LadderEntry 按 unit_id 键;AR pair 折叠为一个阶梯单元
- build_cold_entries 收单元列表,unit 错 = 任一成员错(双向 AND)折叠,
2:1 交错 + probe 探针按 unit 抽,Beta 先验 p0 不变
- ladder_for 返回 unit_id 序、exclude 迁到 unit 口径(防半 pair 灌入
触发下游 _ladder_units fail-fast)
- update_probs 先把逐题观测折叠成单元观测再按 unit_id 匹配更新,
半观测单元跳过(防按 qid 匹配 pair 失效致 gamma-EMA 停摆)
- GatePools.save/load 加 schema_version=2;存量无版本/旧版本 json
加载直接报错,拒绝静默混用 qid/unit 键
- BaselineCache 第四维键改名 unit_id(与 T7 validate 路径对齐)
- build_or_load_gate_pools 先折叠单元再排除 test(抽 helper 控复杂度 B)
- runner:_init_gate_pools 建 unit 索引;gate 验证 exclude/展开、
_refresh_gate_ladder 折叠观测走 units_by_id
反泄漏 run_id 含 _gate_ 过滤不受影响(未改)。
测试:新增 test_gate_ladder_unit_migration.py(15 例覆盖 a-e),
既有 test_harness_gate_ladder.py 迁移到 unit API。全量 1363 passed。
|
2026-07-15 07:56:15 -04:00 |
|
iomgaa
|
7e97081779
|
test(harness): 补 _ladder_units 直测 + 澄清 gate 观测表 unit_id 口径注释
M1:quadrant_pair / gate_evidence 的 question_id 列注释与 write_* docstring
更正为承载 unit_id(single=question_id、pair=pair_id),提示逐题明细在
predictions 表溯源、按 pair_id join 真实 question 表会 join 不上。
M2:给 _ladder_units 补直接单测——纯非 AR 恒等(unit 序==原题序、
unit_id==question_id)、混格交错保持信息阶梯序(按单元最早出现下标重排、
pair 整锁)、且与 build_units 的 single-first 默认序显式区分(防阶梯序被污染)。
|
2026-07-15 07:40:36 -04:00 |
|