feat: tier-aware diag/val split with val-power repair (design 5.1)

This commit is contained in:
2026-07-16 04:58:41 -04:00
parent 6432ffef9a
commit 5bb8319220
5 changed files with 126 additions and 21 deletions
+4 -2
View File
@@ -477,8 +477,9 @@ def load_questions_by_id(questions_dir: Path) -> dict[str, GeneratedQuestion]:
def check_mcnemar_power(pools: Pools, val_wrong_min: int) -> int:
"""校验 validation 池错题数达 McNemar 功效阈,不足即 fail loud。
build_split 按契约用 split_by_video_assignment(val_wrong_min=0)(不破契约),
故功效护栏在 capstone 层单独核验:val 错题数 < 阈 → 验证信号不足以支撑可靠比较。
val_wrong_min 已前置到 build_split 内的切分保证功效(不足即从 diag 换入低 T2
错题组补足,耗尽 fail-loud);本函数作切分冻结后的冗余最终确认:val 错题数 < 阈
→ 验证信号不足以支撑可靠比较。
参数:
pools: 冻结三池(含 validation 与 correctness)。
@@ -571,6 +572,7 @@ async def run_pipeline(
select_seed=config.seed,
val_ratio=config.val_ratio,
split_seed=config.seed,
val_wrong_min=config.val_wrong_min,
),
out_path=out_dir / "pools.json",
manifest_path=out_dir / "split_manifest.json",