From 86ef095e9619c3c6908cb2c95e1cd27532ff2904 Mon Sep 17 00:00:00 2001 From: Yuren Hao Date: Fri, 24 Jul 2026 18:59:55 -0500 Subject: =?UTF-8?q?RESULT=2060b:=20res=E8=A1=A8=E5=9C=A8amp=E4=B8=8B?= =?UTF-8?q?=E5=AE=BD=E5=BA=A6=E7=9B=B2(bf16=E5=9C=B0=E6=9D=BF=E6=8A=8Afp32?= =?UTF-8?q?=E5=9B=9B=E4=B8=AA=E9=87=8F=E7=BA=A7=E5=8E=8B=E6=88=901.2=C3=97?= =?UTF-8?q?,=E6=A3=98=E8=BD=AE=E9=A6=96=E6=AD=A5=E6=AD=BB=E4=BA=A1?= =?UTF-8?q?=E8=9E=BA=E6=97=8B);=20=E5=B8=A6=E5=86=85=E8=87=AA=E9=80=82?= =?UTF-8?q?=E5=BA=94=E5=9C=A8C768+amp=E5=88=A4=E6=AD=BB,=E4=BB=AA=E5=99=A8?= =?UTF-8?q?=3D=E7=A6=BB=E7=BA=BFfp32=E6=8E=A2=E9=92=88;=20fw135m=5Fb15(?= =?UTF-8?q?=E5=AE=9A=E7=82=B91.5e-3+bsign)+ckpt=E5=93=A8=E6=88=92=E6=8E=A2?= =?UTF-8?q?=E9=92=88=E5=9C=A8=E9=A3=9E;=20res/rho=E5=85=A5wandb?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_014FAPDWQ49M5Ye3NpTndTpn --- docs/campaign/CASCADE_ABLATION_PLAN.md | 15 +++++++++++++++ ep_run/casc_eq_train.py | 1 + 2 files changed, 16 insertions(+) diff --git a/docs/campaign/CASCADE_ABLATION_PLAN.md b/docs/campaign/CASCADE_ABLATION_PLAN.md index 5bb1d73..68d7bc2 100644 --- a/docs/campaign/CASCADE_ABLATION_PLAN.md +++ b/docs/campaign/CASCADE_ABLATION_PLAN.md @@ -568,6 +568,21 @@ direction), not training-under-fault; wave-2 = co-training with faults injected +### RESULT 60b (2026-07-24): THE RES METER IS WIDTH-BLIND UNDER AMP — in-band ratcheting +is impossible at C768; the instrument is the offline fp32 probe. Ratchet arm killed at launch +(6 knocks in the first step, beta -> 4.7e-5 death spiral: gate 1e-3 sat BELOW the bf16 floor). +Measured amp-ensemble in-run residual (resdiag, 60-step diagnostics): healthy s250000 median +9.9e-3 vs dead-corridor s345000 median 1.2e-2 — the fp32 4-decade separation (1.3e-6 vs +2.6e-4+) collapses to 1.2x under bf16 forward noise. The old 0.02 constant "worked" at C512 +by sitting above the amp floor; at C768 NO res threshold separates healthy from sick. The +fp32-probe-vs-amp-trainer ensemble mismatch strikes again (BBP lesson, meter edition). +CONTINUATION: fw135m_b15 — s250000, FIXED beta 1.5e-3 (3x margin at 250k ceiling ~5e-3; +in-corridor at 300k ~3e-3; damaged-lineage endgame reading 1-1.5e-3 = lower bound), bsign, +res_gate 0.02 as NaN backstop only, 3-GPU, ~27h. SENTINEL: every new ckpt gets an fp32 +rho-probe at {1.5, 2.25, 3}e-3 — alert if the operating row goes DIVERGE (the calibrated +instrument, out-of-band). Beta policy doctrine for the ladder: measured fixed points + +offline-probe surveillance; in-band adaptive control is dead at width under amp. + ### RESULT 60 (2026-07-24): s345000 CORRIDOR IS EMPTY (end075 3.4805 < original, worse); closure located at ~275-300k; CONTINUATION = bsign+ratchet+res_gate from s250000. Two code fixes en route (sign-wipe combo bug + configurable gate), both fire-certified. diff --git a/ep_run/casc_eq_train.py b/ep_run/casc_eq_train.py index 60b6113..0cd5521 100644 --- a/ep_run/casc_eq_train.py +++ b/ep_run/casc_eq_train.py @@ -908,6 +908,7 @@ for step in range(start_step, args.steps + 1): with torch.no_grad(): GOV['w_rms'] = float(sum(p.float().pow(2).mean().sqrt() for p in all_params) / len(all_params)) _aux = {'gn': GOV.get('gn'), 'drift': GOV.get('drift'), 'sig': GOV.get('sig'), + 'res': GOV.get('res'), 'rho': GOV.get('rho'), 'clip_norm': GOV.get('clip_norm'), 'clip_fired': (None if GOV.get('clip_norm') is None else float(GOV['clip_norm'] > 1.0))} for k in ('act_rms', 'w_rms', 'mag_ep', 'mag_bp'): if GOV.get(k) is not None: _aux[k] = GOV[k] -- cgit v1.2.3