results: absolute-rate tables + provenance, lock mix=0.125 default

docs/results.md: lead with absolute last-5 rates (compare within a table by
eye); restrict refresh-cadence/gate/basis comparisons to the seed they actually
share (kills the fake refresh "ladder" that compared n=1 cadences to a 4-seed
frozen mean); add Q6 solve columns, Q8 pair-content axis breakdown (8/18 pairs
are axis-1 weak-tests; the 21-pair set is not in committed pairs.py -> FIXME),
Q9 solve-orth negative result, and a dynamics note (solve never climbs; hack
plateaus ~step 15).

scripts/results.py: add `log` provenance column; drop the wide argv/time cols.

Lock mix_ratio=0.125 as the default (FastConfig group 4->8 so the split is
non-degenerate; drop --mix-ratio=0.5 from fast recipes). Q6 shows 0.125 keeps
the hack cut with no solve tax. Smoke passes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
wassname
2026-05-29 09:30:30 +00:00
co-authored by Claude Opus 4.8
parent e7cdcaa0ab
commit 46f10d8150
4 changed files with 195 additions and 95 deletions
+5 -2
View File
@@ -194,7 +194,10 @@ class Config:
# Loss is unchanged: ratio==1 in single-inner-step PPO, so reward-weighted
# policy gradient applies uniformly to both halves regardless of source.
teacher_pool_dir: Path | None = None
mix_ratio: float = 0.5
# Default teacher density. 0.125 (1 teacher in 8) is the locked-in operating
# point: the hack-reduction gap holds there (docs/results.md Q6) and the solve
# cost vanishes vs mix=0.5. Needs group>=8 so round(G*mix_ratio)>=1 teacher.
mix_ratio: float = 0.125
# Cross-mechanism BLUF (docs/spec/20260528_cross_mechanism_v_hack.md):
# which upstream detectors were used to label the hack-side of the pairs that
# produced v_hack. Used to split student-rollout hacks into half_A (covered by
@@ -234,7 +237,7 @@ class FastConfig(Config):
at pp=4 x 20 steps)."""
model: str = "Qwen/Qwen3-4B"
steps: int = 20
group: int = 4
group: int = 8 # G=8 so the locked-in mix_ratio=0.125 gives 1 teacher / 7 student
max_new: int = 512
n_problems: int = 200
beta: float = 0.0