# _v7.py -- V7 THE FINISH-LINE RUN (code-column fold + onset surrogate + asterisk discharge). GPT-2 124M. PROPOSE-ONLY. # Pre-registration: FINDINGS_PEN_CONSTRUCTIVE_2026-06-28.md :: # "V7 -- THE FINISH-LINE RUN ... GAP-SCAN + PRE-REGISTRATION (2026-07-05 ~22:35)" # Brief: V7_BRIEF_2026-07-05.md (Will "run it all in sequence"). Doctrine: plan binding, propose-only, # bands SHARPENED never weakened, escalation binding, both-meter reporting permanent, recal PRIMARY. # MACHINERY reused VERBATIM from _v6.py: model loader / capture / KL / InjectHook / inject_kl_full / # inject_kl_pidx / write_svd / load_objects+M0a gate / s4_delta / Arm-B folded-r48 recipe / # surrogate rung classes + MSE trainer + shuffled twins / substitution cert / behav meter. # NEW: Arm A = folded r20/r48 at code b4..b11 + prose_b12 (3-regime Gram recipe verbatim, replay # gates per pre-reg); Arm B = onset surrogate at BUS[6]/BUS[7] with locked contracts CT-A/CT-B/ # (CT-C conditional), linear-first ladder; Arm C1 = frozen decoder_v6 across 5 fresh batches; # Arm C2 = front-door ablation retrain; verdict recompute BOTH meters with V7 grain overrides. import json, time, os, math, traceback, gc, subprocess, hashlib, ctypes import torch, torch.nn as nn, torch.nn.functional as Fnn import torch.nn.functional as F t0=time.time() DIR=r"C:\Shadow\Dissector\D0_PROGRAM\CONSTRUCTIVE" SMOKE=os.environ.get("V7_SMOKE")=="1" LOG=open(os.path.join(DIR,"_v7.log"),"a",encoding="utf-8") def logln(s): s=str(s); LOG.write(f"[V7 {round(time.time()-t0,1):8.1f}s] "+s+"\n"); LOG.flush() try: print(s,flush=True) except Exception: pass def el(): return round(time.time()-t0,1) logln("="*100); logln(f"V7 START smoke={SMOKE} torch={torch.__version__}") try: ctypes.windll.kernel32.SetPriorityClass(ctypes.windll.kernel32.GetCurrentProcess(),0x4000) logln("[ops] priority BelowNormal set") except Exception as e: logln(f"[ops] priority set failed: {e}") torch.set_num_threads(6) # ---------------- locked constants ---------------- EPS_KL=0.1871; CERT_BLOCK=512; IND_SEG=64; MB=4; CAP_CHUNK=16 VOCAB_SANS_SPECIALS=50256; REGIMES=["prose","code","repetition"] FRESH_LO,FRESH_HI=24576,32768 REP_SEED=3; SEED_J=20260705 B2b=2; B5=5 # surrogate config (V6 verbatim where shared) MLP_H=768; ATTN_DM=256; ATTN_HEADS=4; ATTN_NBLK=(1 if SMOKE else 2); ATTN_MLP=2 STEPS=40 if SMOKE else 4000; CKPT_STEPS=20 if SMOKE else 500; LR=1e-3 FT_STEPS=20 if SMOKE else 300; FT_LR=3e-4 N_TRAIN=8 if SMOKE else 96; N_HOLD2=4 if SMOKE else 16; N_SACRED=4 if SMOKE else 16 TRAIN_SEED0=7000; HOLD2_SEED0=8000 P_TRAIN=(64,384); P_WITHIN=(384,512); P_REPERA=(64,512) # banked anchors (byte-replay before dependent bands; pre-reg block) WALL_S4_B5=3.46003; FLOOR_B5_RECAL=0.1279 S9X_SACRED=0.11172; S9X_HOLD2=0.1317; W0_B5_BANK=1.5949 V6_R48_REP={8:0.04536,9:0.05499,10:0.07573,11:0.13158}; B12_R48_BANK=0.18155 DEC_V6_SHA="a2d384d29c27fb91" # Arm A cells (boundary, regime); ranks; replay tolerances ARMA_CELLS=[(7,"code"),(12,"prose")] if SMOKE else \ [(4,"code"),(5,"code"),(6,"code"),(7,"code"),(8,"code"),(9,"code"),(10,"code"),(11,"code"),(12,"prose")] RANKS_ARMA=[20] if SMOKE else [20,48] S7_IS_R20={8,9,10,11,12} # V3 built O20 only at LATE b8..b12 -> r20 replays S7 there (tol 3e-3) TOL_S4=2e-3; TOL_R20=3e-3 # Arm B boundaries + walls (banked S7==S4) ARMB_BOUNDS=[6] if SMOKE else [6,7] WALL_B={6:0.84522,7:1.43786} # Arm C1 batches C1_NB=2 if SMOKE else 5; C1_NBLK=4 if SMOKE else 16; C1_SEED0=9000; C1_SEEDSTEP=100 SOFT_COMPUTE_S=6.0*3600; HARD_WALL_S=int(11.5*3600) RESULT_JSON=os.path.join(DIR,"_v7_result_SMOKE.json" if SMOKE else "_v7_result.json") BASES_PT=os.path.join(DIR,"_v7_bases_SMOKE.pt" if SMOKE else "_v7_bases.pt") torch.manual_seed(1234) PEN=("FINDINGS_PEN_CONSTRUCTIVE_2026-06-28.md :: 'V7 -- THE FINISH-LINE RUN (FOLD THE CODE COLUMN + " "THE ONSET QUESTION + DISCHARGE THE ASTERISK) -- GAP-SCAN + PRE-REGISTRATION (2026-07-05 ~22:35)'") res={"experiment":"V7 finish-line run: Arm A folded r48 at code b4..b11 + prose_b12 (Arm-B recipe " "verbatim, replay-gated); Arm B onset surrogate at BUS[6]/BUS[7] (contracts CT-A/CT-B/CT-C, " "linear-first ladder, SACRED held-out-period falsifier); Arm C1 frozen decoder_v6 across 5 " "fresh held-out batches; Arm C2 front-door ablation; verdict recompute BOTH meters recal primary", "date":"2026-07-05","propose_only":True,"pre_registration":PEN, "config":{"n_train":N_TRAIN,"n_hold2":N_HOLD2,"n_sacred":N_SACRED,"steps":STEPS,"lr":LR, "arma_cells":[f"{r}_b{b}" for (b,r) in ARMA_CELLS],"ranks_arma":RANKS_ARMA, "armb_bounds":ARMB_BOUNDS,"walls_b":WALL_B,"c1_batches":C1_NB,"c1_seed0":C1_SEED0, "precision":"fp32","tf32":"off","attn":"eager","seed":1234,"smoke":SMOKE}, "gpu_free_checks":[],"instrument_discrepancy":[], "gates":{},"c1":{},"armA":{},"c2":{},"armB":{},"verdict":{},"status":"INIT"} def sha256(path): try: h=hashlib.sha256() with open(path,"rb") as f: for chunk in iter(lambda:f.read(1<<20),b""): h.update(chunk) return h.hexdigest()[:16] except Exception as e: return f"ERR:{e}" def write_json(): res["elapsed_s"]=el(); tmp=RESULT_JSON+".tmp" with open(tmp,"w",encoding="utf-8") as f: json.dump(res,f,indent=1,default=str) os.replace(tmp,RESULT_JSON) BASES={} def save_bases(): tmp=BASES_PT+".tmp"; torch.save(BASES,tmp); os.replace(tmp,BASES_PT) # ---------------- resume ---------------- if os.path.exists(RESULT_JSON): try: prev=json.load(open(RESULT_JSON,encoding="utf-8")) for k in ("gates","c1","armA","c2","armB","verdict","gpu_free_checks","instrument_discrepancy"): if prev.get(k): res[k]=prev[k] logln(f"*** RESUME *** prior elapsed={prev.get('elapsed_s')}") except Exception as e: logln(f"resume load fail {e}") if os.path.exists(BASES_PT): try: BASES=torch.load(BASES_PT,map_location="cpu",weights_only=False); logln(f"*** RESUME bases {sorted(map(str,BASES.keys()))[:24]}") except Exception as e: logln(f"bases load fail {e}"); BASES={} write_json() # ---------------- GPU free-check (verbatim from _v5.py/_v6.py) ---------------- def gpu_free_check(tag): rec={"tag":tag,"t":el(),"foreign":[]} try: out=subprocess.run(["nvidia-smi","--query-compute-apps=pid,process_name,used_memory","--format=csv,noheader"], capture_output=True,text=True,timeout=30).stdout me=os.getpid() for line in out.strip().splitlines(): p=[x.strip() for x in line.split(",")] if len(p)>=3 and p[0].isdigit() and int(p[0])!=me and "python" in p[1].lower(): rec["foreign"].append(line) except Exception as e: rec["error"]=str(e) waited=0 while rec["foreign"] and waited<600: logln(f"[gpu {tag}] FOREIGN {rec['foreign']} wait60"); time.sleep(60); waited+=60 try: out=subprocess.run(["nvidia-smi","--query-compute-apps=pid,process_name,used_memory","--format=csv,noheader"], capture_output=True,text=True,timeout=30).stdout me=os.getpid(); rec["foreign"]=[] for line in out.strip().splitlines(): p=[x.strip() for x in line.split(",")] if len(p)>=3 and p[0].isdigit() and int(p[0])!=me and "python" in p[1].lower(): rec["foreign"].append(line) except Exception: break rec["waited_s"]=waited; rec["clear"]=not rec["foreign"] if rec["foreign"]: res["instrument_discrepancy"].append({"stage":tag,"name":"gpu_free_check","why":str(rec["foreign"])}) res["gpu_free_checks"].append(rec); write_json(); logln(f"[gpu {tag}] clear={rec['clear']}"); return rec["clear"] def free(): gc.collect(); torch.cuda.empty_cache() # ---------------- model (loader verbatim) ---------------- from transformers import AutoModelForCausalLM, AutoTokenizer M={"m":None} def ensure_model(): if M["m"] is not None: return if not torch.cuda.is_available(): raise RuntimeError("CUDA not available") torch.backends.cuda.matmul.allow_tf32=False; torch.backends.cudnn.allow_tf32=False tok=AutoTokenizer.from_pretrained("gpt2") model=AutoModelForCausalLM.from_pretrained("gpt2",dtype=torch.float32,attn_implementation="eager").to('cuda').eval() model.requires_grad_(False) M["m"]=model; M["tok"]=tok; M["blocks"]=list(model.transformer.h); M["drop"]=model.transformer.drop M["d"]=model.config.n_embd; M["nL"]=model.config.n_layer; M["nH"]=model.config.n_head M["wte"]=model.transformer.wte.weight res["gpt2_meta"]={"n_layer":M["nL"],"d":M["d"],"n_head":M["nH"],"precision":"fp32","tf32":"off","attn":"eager"} logln(f"[gpt2] loaded fp32 eager nL={M['nL']} d={M['d']} nH={M['nH']}") def load_wiki_text(): from datasets import load_dataset ds=load_dataset("wikitext","wikitext-2-raw-v1",split="test") return "\n".join(t for t in ds["text"] if t and t.strip()) def load_code_text(): from datasets import load_dataset ds=load_dataset("openai_humaneval")["test"] return "".join(ds[i]["prompt"]+ds[i]["canonical_solution"] for i in range(len(ds))) def build_dind(n_blocks,block,seed): g=torch.Generator().manual_seed(seed) seg=torch.randint(0,VOCAB_SANS_SPECIALS,(n_blocks,IND_SEG),generator=g) return seg.repeat(1,block//IND_SEG) def build_dind_seeds(seed0,n): rows=[build_dind(1,CERT_BLOCK,seed0+i) for i in range(n)] return torch.cat(rows,0) def ids_window(all_ids,lo,hi,what): if len(all_ids)best: best=dd if best<=0.8: kept.append((b,i)) seen.append((b,i,u)) corr_match=bool(kept==frozen) V35=torch.stack([U[r][:,d_] for (r,d_) in frozen],1) Rr=V35-B2@(B2.t()@V35); Q35,_=torch.linalg.qr(Rr,mode='reduced') q35orth=float((Q35.t()@Q35-torch.eye(Q35.shape[1])).norm()) maxB2tQ35=float((B2.t()@Q35).abs().max()) q35_vs_v1=md(Q35,Q35v1) o5=json.load(open(os.path.join(DIR,"_open5_result.json"),encoding="utf-8")) floors={int(b):{"prose":0.1871,"code":o5["J1"]["floors"][str(b)]["code"], "repetition":o5["J1"]["floors"][str(b)]["repetition"]} for b in range(13)} mstars={int(b):o5["J1"]["floors"][str(b)]["m_star"] for b in range(13)} p6=json.load(open(os.path.join(DIR,"_open6_probe.json"),encoding="utf-8")) floors_match=all(abs(floors[b][r]-p6["frozen"]["floors"][str(b)][r])==0.0 for b in range(13) for r in REGIMES) bank_match=all(abs(J1_BANKED[b]["m_star"]-mstars[b])==0.0 and abs(J1_BANKED[b]["code"]-floors[b]["code"])==0.0 and abs(J1_BANKED[b]["repetition"]-floors[b]["repetition"])==0.0 for b in range(13)) m0a_ok=(all(v==0.0 for v in cm.values()) and orthC<=1e-4 and orthB2<=1e-3 and corr_match and q35orth<=1e-3 and maxB2tQ35<=1e-3 and floors_match and q35_vs_v1<=1e-5 and bank_match) res["gates"]["M0a"]={"content_match":cm,"core_orth":orthC,"B2_orth":orthB2, "corridor_recompute_match":corr_match,"Q35_orth":q35orth,"maxB2tQ35":maxB2tQ35, "Q35_vs_v1":q35_vs_v1,"floors_match_frozen":floors_match,"j1_bank_match":bank_match, "n_corridor":len(frozen),"pass":bool(m0a_ok)} if not m0a_ok: res["instrument_discrepancy"].append({"stage":"M0a","name":"content_or_selection","why":res["gates"]["M0a"]}) logln(f"[M0a] cm={cm} corr_match={corr_match} floors_match={floors_match} bank={bank_match} -> {'PASS' if m0a_ok else 'FAIL'}") write_json() src_sha={f:sha256(os.path.join(DIR,f)) for f in ("decoder_v1_tensors.pt","decoder_v3_tensors.pt", "decoder_v6_tensors.pt","decoder_v6.json","_open1_bases.pt","_open5_result.json", "_v5_floors_recal.json","_v3_result.json","_v6_result.json")} return dict(C=C,mu=mu,B2=B2,U=U,V35=V35,Q35=Q35,frozen=frozen,floors=floors,mstars=mstars, wte_W=wte_W,wte_c=wte_c,src_sha=src_sha) # ---------------- captures / KL / inject (VERBATIM) ---------------- def capture_h_all(ids_cpu,chunk,tag,which=None): model=M["m"]; nL=M["nL"]; N=ids_cpu.shape[0] which=which if which is not None else list(range(nL+1)) buf={}; handles=[] def mk(key): def h(mod,inp,out): buf[key]=(out[0] if isinstance(out,tuple) else out).detach() return h handles.append(M["drop"].register_forward_hook(mk(0))) for L in range(nL): handles.append(M["blocks"][L].register_forward_hook(mk(L+1))) acc={b:[] for b in which} with torch.no_grad(): for c0 in range(0,N,chunk): c1=min(N,c0+chunk); _=model(ids_cpu[c0:c1].to('cuda'),use_cache=False) for b in which: acc[b].append(buf[b].reshape(-1,M["d"]).cpu()) for hd in handles: hd.remove() H={b:torch.cat(acc[b],0) for b in which} return H def fkl(yt,yp): logp=Fnn.log_softmax(yt,-1); p=logp.exp(); lp=Fnn.log_softmax(yp,-1) return (p*(logp-lp)).sum(-1) class InjectHook: def __init__(self,block): self.on=False; self.add=None; self.handle=block.register_forward_hook(self._h) def _h(self,mod,inp,out): if not self.on: return None hs=out[0] if isinstance(out,tuple) else out; hs2=hs+self.add return (hs2,)+tuple(out[1:]) if isinstance(out,tuple) else hs2 def close(self): self.handle.remove() def clean_logits(ids_cpu): model=M["m"]; N=ids_cpu.shape[0]; outs=[] with torch.no_grad(): for s0 in range(0,N,MB): s1=min(N,s0+MB); outs.append(model(ids_cpu[s0:s1].to('cuda'),use_cache=False).logits.detach()) return outs def inject_kl_full(ids_cpu,injhook,delta_full_g,Yclean,want_dl=False): model=M["m"]; N=ids_cpu.shape[0]; tot=0.0; cnt=0; ci=0; dl=0.0 with torch.no_grad(): for s0 in range(0,N,MB): s1=min(N,s0+MB) injhook.add=delta_full_g[s0:s1]; injhook.on=True lg=model(ids_cpu[s0:s1].to('cuda'),use_cache=False).logits; injhook.on=False; injhook.add=None if want_dl: dl=max(dl,float((lg.float()-Yclean[ci].float()).abs().max())) kl=fkl(Yclean[ci].float(),lg.float()); tot+=kl.sum().item(); cnt+=kl.numel(); ci+=1 del lg return (tot/max(1,cnt),dl) if want_dl else tot/max(1,cnt) def inject_kl_pidx(ids_cpu,injhook,delta_full_g,Yclean,pidx): model=M["m"]; N=ids_cpu.shape[0]; tot=0.0; cnt=0; ci=0 with torch.no_grad(): for s0 in range(0,N,MB): s1=min(N,s0+MB) injhook.add=delta_full_g[s0:s1]; injhook.on=True lg=model(ids_cpu[s0:s1].to('cuda'),use_cache=False).logits; injhook.on=False; injhook.add=None kl=fkl(Yclean[ci].float(),lg.float())[:,pidx]; tot+=kl.sum().item(); cnt+=kl.numel(); ci+=1 del lg return tot/max(1,cnt) # ---------------- surrogate rungs (VERBATIM classes, fin parameterized) ---------------- class LinearRung(nn.Module): def __init__(self,fin,d): super().__init__(); self.w=nn.Linear(fin,d) def forward(self,x): return self.w(x) class MLPRung(nn.Module): def __init__(self,fin,h,d): super().__init__(); self.f1=nn.Linear(fin,h); self.act=nn.GELU(); self.f2=nn.Linear(h,d) def forward(self,x): return self.f2(self.act(self.f1(x))) class AttnBlock(nn.Module): def __init__(self,dm,nh,mlp): super().__init__(); self.ln1=nn.LayerNorm(dm); self.attn=nn.MultiheadAttention(dm,nh,batch_first=True) self.ln2=nn.LayerNorm(dm); self.mlp=nn.Sequential(nn.Linear(dm,dm*mlp),nn.GELU(),nn.Linear(dm*mlp,dm)) def forward(self,x,mask): q=self.ln1(x); a,_=self.attn(q,q,q,attn_mask=mask,need_weights=False) x=x+a; x=x+self.mlp(self.ln2(x)); return x class AttnRung(nn.Module): def __init__(self,fin,dm,nh,nblk,mlp,d,seqlen): super().__init__(); self.inp=nn.Linear(fin,dm); self.pos=nn.Parameter(torch.zeros(1,seqlen,dm)) self.blocks=nn.ModuleList([AttnBlock(dm,nh,mlp) for _ in range(nblk)]); self.out=nn.Linear(dm,d) def forward(self,x): T=x.shape[1]; h=self.inp(x)+self.pos[:,:T] mask=torch.triu(torch.full((T,T),float('-inf'),device=x.device),diagonal=1) for b in self.blocks: h=b(h,mask) return self.out(h) def n_params(m): return int(sum(p.numel() for p in m.parameters())) RUNG_SEED={"L0":11,"L1":22,"L2":33} def make_rung(name,fin,seqlen): if name=="L0": return LinearRung(fin,M["d"]) if name=="L1": return MLPRung(fin,MLP_H,M["d"]) if name=="L2": return AttnRung(fin,ATTN_DM,ATTN_HEADS,ATTN_NBLK,ATTN_MLP,M["d"],seqlen) raise ValueError(name) # ====================================================================================== # MAIN # ====================================================================================== try: ensure_model() O=load_objects() if not res["gates"]["M0a"]["pass"]: res["status"]="STOPPED-GATE"; write_json(); raise RuntimeError("FB: M0a breach -> STOP") d=M["d"]; nL=M["nL"] B2_g=O["B2"].to('cuda'); Q35_g=O["Q35"].to('cuda'); span5=torch.cat([B2_g,Q35_g],1) mu_all=O["mu"] wteW_g=O["wte_W"].to('cuda'); wtec_g=O["wte_c"].to('cuda') wte_g=M["wte"].detach().float() def proj_compl(x): return x-(x@span5)@span5.t() def s4_delta(Xc,b,Ecur_all): b2P=(Xc@B2_g)@B2_g.t(); q35P=(Xc@Q35_g)@Q35_g.t() yhat=Ecur_all@wteW_g[b].t()+wtec_g[b] y2=yhat-(yhat@B2_g)@B2_g.t(); y4=y2-(y2@Q35_g)@Q35_g.t() return b2P+q35P+y4-Xc # frozen decoder_v6 (hash gate; C1 + CT-A depend on it) dv6_sha=sha256(os.path.join(DIR,"decoder_v6_tensors.pt")) dv6_ok=(dv6_sha==DEC_V6_SHA) if not dv6_ok: res["instrument_discrepancy"].append({"stage":"gates","name":"decoder_v6_hash","why":dv6_sha}) dv6=torch.load(os.path.join(DIR,"decoder_v6_tensors.pt"),map_location="cpu",weights_only=False) v6L0=LinearRung(1537,d).to('cuda').eval() v6L0.load_state_dict({k:v.to('cuda') for k,v in dv6["surrogate_state_dict"].items()}) sc6_mean=dv6["surrogate_scaler_mean"].to('cuda'); sc6_std=dv6["surrogate_scaler_std"].to('cuda') Vk=dv6["m0_repera_Vk_recal"].to('cuda').float() v5b=torch.load(os.path.join(DIR,"_v5_bases.pt"),map_location="cpu",weights_only=False) cos_vk=float((Vk[:,0]@v5b["m0_repera_Vk_recal"].to('cuda').float()[:,0]).abs()) res["gates"]["decoder_v6"]={"sha":dv6_sha,"sha_ok":bool(dv6_ok),"rung":dv6.get("surrogate_rung"), "vk_cos_vs_v5":round(cos_vk,6)} write_json(); logln(f"[gates] decoder_v6 sha={dv6_sha} ok={dv6_ok} vk_cos={cos_vk:.6f}") if not dv6_ok: raise RuntimeError("FB: frozen decoder_v6 hash mismatch -> STOP") # floors + banked V3 cells frec=json.load(open(os.path.join(DIR,"_v5_floors_recal.json"),encoding="utf-8")) floors_leg={int(b):{k:float(v) for k,v in frec["floors_legacy"][str(b)].items()} for b in range(13)} floors_rec={int(b):{k:(float(v) if v is not None else None) for k,v in frec["floors_recal"][str(b)].items()} for b in range(13)} RECAL_OK=(not frec.get("quarantined")) and frec.get("sg_early_ok") and frec.get("repl_all") v3=json.load(open(os.path.join(DIR,"_v3_result.json"),encoding="utf-8")) v3cells=v3["cells"] logln(f"[floors] RECAL_OK={RECAL_OK} rep_b6={floors_rec[6]['repetition']} rep_b7={floors_rec[7]['repetition']}") WIKI=M["tok"](load_wiki_text(),return_tensors=None,add_special_tokens=False)["input_ids"] CIDS=M["tok"](load_code_text(),return_tensors=None,add_special_tokens=False)["input_ids"] IDS_SACRED=build_dind(N_SACRED,CERT_BLOCK,REP_SEED) IDS_TRAIN=build_dind_seeds(TRAIN_SEED0,N_TRAIN) IDS_HOLD2=build_dind_seeds(HOLD2_SEED0,N_HOLD2) # ---------------- feature builders (b5 contract verbatim; b6/b7 contracts per pre-reg) ---------- CAPB=[2,5,6,7] # boundaries captured for feature/object building CAPS={} # in-memory capture cache (deterministic; recaptured on resume, NOT persisted) CAP_IDS={"train":IDS_TRAIN,"sacred":IDS_SACRED,"hold2":IDS_HOLD2} def get_cap(name): if name not in CAPS: CAPS[name]=capture_feats_multi(CAP_IDS[name],name) return CAPS[name] def capture_feats_multi(ids_cpu,tag): model=M["m"]; N=ids_cpu.shape[0]; buf={} def mkh(key,idx): def h(mod,inp,out): buf[key]=(out[0] if isinstance(out,tuple) else out).detach() return h hh=[M['blocks'][bb-1].register_forward_hook(mkh(f'h{bb}',bb)) for bb in CAPB] hh.append(M['blocks'][0].mlp.register_forward_hook( lambda m,i,o: buf.__setitem__('wm0',o.detach()))) acc={f'h{bb}':[] for bb in CAPB}; acc['wm0']=[] with torch.no_grad(): for c0 in range(0,N,CAP_CHUNK): c1=min(N,c0+CAP_CHUNK); _=model(ids_cpu[c0:c1].to('cuda'),use_cache=False) for k in acc: acc[k].append(buf[k].reshape(-1,d).cpu()) for x in hh: x.remove() logln(f"[feats {tag}] N={N} captured {list(acc.keys())}") return {k:torch.cat(v) for k,v in acc.items()} def base_feats(cap,ids_cpu): # returns x2, ecur, s (GPU) from a capture dict x2=cap['h2'].to('cuda')-mu_all[B2b].to('cuda') ecur=wte_g[ids_cpu.reshape(-1).to('cuda')] s=cap['wm0'].to('cuda')@Vk return x2,ecur,s def obj_at(cap,b): return proj_compl(cap[f'h{b}'].to('cuda')-mu_all[b].to('cuda')) def obj5hat_of(x2,ecur,s): f6=torch.cat([x2,ecur,s],1) with torch.no_grad(): oh=proj_compl(v6L0((f6-sc6_mean)/sc6_std)) return oh def contract_feats(ct,cap,ids_cpu,extra=None): x2,ecur,s=base_feats(cap,ids_cpu) if ct=="CTB": return torch.cat([x2,ecur,s],1) if ct=="CTA": return torch.cat([x2,ecur,s,obj5hat_of(x2,ecur,s)],1) if ct=="C2": return torch.cat([x2,ecur],1) if ct=="CTC": o5=obj5hat_of(x2,ecur,s) return torch.cat([x2,ecur,s,o5,extra],1) # extra = obj6hat (GPU, Ntok x d) raise ValueError(ct) CT_FIN={"CTB":1537,"CTA":2305,"C2":1536,"CTC":3073} def substitution_kl_at(b,oh,obj_g,ids_cpu,Ycl,injhook,want_behav=False): N=ids_cpu.shape[0] delta=(oh-obj_g).reshape(N,CERT_BLOCK,d).clone(); delta[:, :IND_SEG, :]=0.0 pidx_rep=torch.arange(IND_SEG,CERT_BLOCK) kl_rep=inject_kl_pidx(ids_cpu,injhook,delta,Ycl,pidx_rep) kl_all,dl=inject_kl_full(ids_cpu,injhook,delta,Ycl,want_dl=True) out={"kl_rep":round(kl_rep,5),"kl_all":round(kl_all,5),"max_dlogit":round(dl,5)} if want_behav: out["behav"]=behav_meter(oh,obj_g,ids_cpu,Ycl,injhook) return out def behav_meter(oh,obj_g,ids_cpu,Ycl,injhook): N=ids_cpu.shape[0] delta=(oh-obj_g).reshape(N,CERT_BLOCK,d).clone(); delta[:, :IND_SEG, :]=0.0 pc=0.0;ps=0.0;ac=0.0;as_=0.0;cnt=0;ci=0 with torch.no_grad(): for s0 in range(0,N,MB): s1=min(N,s0+MB) injhook.add=delta[s0:s1]; injhook.on=True lg=M["m"](ids_cpu[s0:s1].to('cuda'),use_cache=False).logits.float(); injhook.on=False; injhook.add=None yc=Ycl[ci].float() nxt=ids_cpu[s0:s1,IND_SEG+1:CERT_BLOCK].to('cuda') lc=yc[:,IND_SEG:CERT_BLOCK-1]; lsb=lg[:,IND_SEG:CERT_BLOCK-1] pcl=Fnn.softmax(lc,-1).gather(-1,nxt[...,None]).squeeze(-1) psb=Fnn.softmax(lsb,-1).gather(-1,nxt[...,None]).squeeze(-1) pc+=float(pcl.sum()); ps+=float(psb.sum()) ac+=float((lc.argmax(-1)==nxt).sum()); as_+=float((lsb.argmax(-1)==nxt).sum()) cnt+=nxt.numel(); ci+=1; del lg pc/=cnt; ps/=cnt; ac/=cnt; as_/=cnt return {"p_true_clean":round(pc,5),"p_true_sub":round(ps,5),"copy_fidelity_ratio":round(ps/max(pc,1e-9),4), "argmax_copy_clean":round(ac,4),"argmax_copy_sub":round(as_,4),"n":cnt} def r2_of(oh,obj_g,N): m=torch.zeros(N,CERT_BLOCK,dtype=torch.bool); m[:,IND_SEG:CERT_BLOCK]=True; m=m.reshape(-1).to('cuda') e=((oh[m]-obj_g[m])**2).sum(); v=((obj_g[m]-obj_g[m].mean(0))**2).sum() return float(1-(e/v.clamp(min=1e-9))) # ================================================================================= # STAGE G -- global b5 instrument gates (identity / S4 byte-replay / SILENT) on SACRED # ================================================================================= if not res["gates"].get("b5"): gpu_free_check("gates-b5") logln("==== GATES: b5 identity / S4 replay / SILENT on SACRED ====") cap_s=get_cap("sacred") Xc5=cap_s['h5'].to('cuda')-mu_all[B5].to('cuda'); obj_s5=proj_compl(Xc5) N=IDS_SACRED.shape[0]; Ycl_s=clean_logits(IDS_SACRED) inj5=InjectHook(M["blocks"][B5-1]) zero=torch.zeros(N,CERT_BLOCK,d,device='cuda') kl_id,dl_id=inject_kl_full(IDS_SACRED,inj5,zero,Ycl_s,want_dl=True) Ecur=wte_g[IDS_SACRED.reshape(-1).to('cuda')] kl_S4=inject_kl_full(IDS_SACRED,inj5,s4_delta(Xc5,B5,Ecur).reshape(N,CERT_BLOCK,d),Ycl_s) dsil=(-obj_s5).reshape(N,CERT_BLOCK,d).clone(); dsil[:, :IND_SEG, :]=0.0 kl_sil_rep=inject_kl_pidx(IDS_SACRED,inj5,dsil,Ycl_s,torch.arange(IND_SEG,CERT_BLOCK)) s4_ok=(abs(kl_S4-WALL_S4_B5)<=TOL_S4 and kl_id==0.0 and dl_id==0.0) if not SMOKE else (kl_id==0.0) if not s4_ok: res["instrument_discrepancy"].append({"stage":"gates-b5","name":"S4/identity","why":{"S4":kl_S4,"id":kl_id,"dl":dl_id}}) # S9x replay: frozen v6 L0 on SACRED must reproduce the banked cert number to the digit x2,ecur,s=base_feats(cap_s,IDS_SACRED) oh5=obj5hat_of(x2,ecur,s) sub=substitution_kl_at(B5,oh5,obj_s5,IDS_SACRED,Ycl_s,inj5) s9x_ok=(abs(sub["kl_rep"]-S9X_SACRED)<=TOL_S4) if not SMOKE else True if not s9x_ok: res["instrument_discrepancy"].append({"stage":"gates-b5","name":"S9x_replay","why":sub}) inj5.close() res["gates"]["b5"]={"identity_kl":kl_id,"identity_dlogit":dl_id,"S4_replay":round(kl_S4,5), "S4_banked":WALL_S4_B5,"S4_ok":bool(s4_ok),"silent_rep":round(kl_sil_rep,5), "S9x_replay":sub["kl_rep"],"S9x_banked":S9X_SACRED,"S9x_ok":bool(s9x_ok)} write_json() logln(f"[gates-b5] id={kl_id}/{dl_id} S4={kl_S4:.5f}(bk {WALL_S4_B5}) sil={kl_sil_rep:.5f} " f"S9x={sub['kl_rep']:.5f}(bk {S9X_SACRED}) -> {'OK' if (s4_ok and s9x_ok) else 'FAIL'}") del Xc5,obj_s5,Ycl_s,zero,Ecur,x2,ecur,s,oh5; free() # ================================================================================= # ARM C1 -- discharge the asterisk: frozen v6 L0 across fresh held-out batches # ================================================================================= if not res["c1"].get("done") and el() H-V7-C1={band}") # ================================================================================= # ARM A -- folded r20/r48 at code b4..b11 + prose_b12 (Arm-B recipe VERBATIM) # ================================================================================= if not res["armA"].get("done") and el()HARD_WALL_S: break gram=torch.zeros(d,d,dtype=torch.float64); ntok=0 B2d=B2_g.double() for reg2 in REGIMES: if reg2 not in caps: continue h=caps[reg2][b].to('cuda').double(); rr=h-mu_all[b].to('cuda').double(); rr=rr-(rr@B2d)@B2d.t() gram+=(rr.t()@rr).cpu().double(); ntok+=rr.shape[0]; del h,rr; free() G=gram/max(1,ntok); evals,evecs=torch.linalg.eigh(G); evals=evals.clamp(min=0) order=torch.argsort(evals,descending=True); V=evecs[:,order].float().to('cuda') ids_t=STREAMS_A[reg]; NHt=ids_t.shape[0] if reg not in Ycl_cache: Ycl_cache[reg]=clean_logits(ids_t) Yct=Ycl_cache[reg] Xc=caps[reg][b].to('cuda')-mu_all[b].to('cuda') Ecur_all=wte_g[ids_t.reshape(-1).to('cuda')] inj=InjectHook(M["blocks"][b-1]) kl_idb=inject_kl_full(ids_t,inj,torch.zeros(NHt,CERT_BLOCK,d,device='cuda'),Yct) b2P=(Xc@B2_g)@B2_g.t(); q35P=(Xc@Q35_g)@Q35_g.t() yhat=Ecur_all@wteW_g[b].t()+wtec_g[b]; y2=yhat-(yhat@B2_g)@B2_g.t(); y4=y2-(y2@Q35_g)@Q35_g.t() # S4/wte replay leg (bank exists at every cell; at b4..b7 this IS the S7 bank) kl_s4c=inject_kl_full(ids_t,inj,(b2P+q35P+y4-Xc).reshape(NHt,CERT_BLOCK,d),Yct) bank_s4=v3cells[key]["KL"]["S4"]; bank_s7=v3cells[key]["KL"]["S7"] s4_ok=(abs(kl_s4c-bank_s4)<=TOL_S4) if not SMOKE else True replay_fail=[] if not s4_ok: replay_fail.append({"leg":"S4","kl":kl_s4c,"banked":bank_s4}) curve={} for rk in RANKS_ARMA: Ok=V[:, :rk]; Op=Ok-span5@(span5.t()@Ok) Usvd,Ssvd,_=torch.linalg.svd(Op,full_matrices=False); keep=Ssvd>1e-2; O_r=Usvd[:,keep].contiguous() net=int(O_r.shape[1]) oP=(Xc@O_r)@O_r.t(); yk=y4-(y4@O_r)@O_r.t() kl=inject_kl_full(ids_t,inj,(b2P+q35P+oP+yk-Xc).reshape(NHt,CERT_BLOCK,d),Yct) ok=True if rk==20 and b in S7_IS_R20 and not SMOKE: ok=(abs(kl-bank_s7)<=TOL_R20) if not ok: replay_fail.append({"leg":"r20","kl":kl,"banked":bank_s7}) curve[str(rk)]={"net_dims":net,"KL":round(kl,5),"replay_ok":bool(ok),"total_unnamed_folded":14+net} if rk==48: BASES[f"O_r48_{key}"]=O_r.cpu().contiguous(); save_bases() logln(f"[armA {key} r{rk}] net={net} KL={kl:.5f} (S7 bank {bank_s7}) ok={ok}") inj.close() if replay_fail: res["instrument_discrepancy"].append({"stage":"armA-replay","name":key,"why":replay_fail}) kl48=curve.get("48",{}).get("KL") fl_rec=floors_rec[b][reg] if reg!="prose" else 0.1871 fl_leg=floors_leg[b][reg] gates_ok=bool(kl_idb==0.0 and s4_ok and not replay_fail) closes=bool(kl48 is not None and fl_rec is not None and kl48<=fl_rec and gates_ok and RECAL_OK) arma[key]={"done":True,"identity_kl":kl_idb,"S4_replay":round(kl_s4c,5),"S4_banked":bank_s4, "S7_banked":bank_s7,"curve":curve,"KL_r48":kl48,"gates_ok":gates_ok, "floor_recal":fl_rec,"floor_legacy":fl_leg, "H_V7_A":("CLOSES-RECAL" if closes else "STAYS"), "legacy_leg":{"KL":kl48,"floor":fl_leg,"pass":bool(kl48 is not None and kl48<=fl_leg)}} res["armA"]["cells"]=arma; write_json() logln(f"[armA {key}] r48={kl48} vs recal {fl_rec} legacy {fl_leg} -> {arma[key]['H_V7_A']}") del V,G,evecs,evals,Xc,Ecur_all,b2P,q35P,yhat,y2,y4; free() res["armA"]["done"]=True; write_json() del Ycl_cache; free() # ================================================================================= # shared: TRAIN capture (for C2 + Arm B) + eval captures # ================================================================================= need_train=(not res["c2"].get("done")) or (not res["armB"].get("done")) if need_train and el() {band}") del f_tr,f_sac,f_h2,obj_tr5,mr,mt,feats_by_set,obj_by_set; free() # ============================================================================= # ARM B -- onset surrogate at BUS[6] / BUS[7] (linear first and favored) # ============================================================================= if not res["armB"].get("done") and el() arms CT-C at b7 for b in ARMB_BOUNDS: brec=armb.get(str(b),{}) if brec.get("done"): if b==6 and brec.get("H_V7_B","").startswith("CERTIFIES") and (brec.get("best") or {}).get("rung")=="L0": b6_cert_rung=(brec["best"]["rung"],brec["best"]["contract"]) continue if el()>HARD_WALL_S: break gpu_free_check(f"armB-b{b}") logln(f"==== ARM B: onset surrogate at BUS[{b}] ====") fl_rec=floors_rec[b]["repetition"]; fl_leg=floors_leg[b]["repetition"]; wall=WALL_B[b] injb=InjectHook(M["blocks"][b-1]) # per-boundary gates: identity / s4 replay / silent if not brec.get("gates"): obj_s=obj_at(cap_sac,b); Nc=N_SACRED Ys=ycl("sacred",IDS_SACRED) kl_id,dl_id=inject_kl_full(IDS_SACRED,injb,torch.zeros(Nc,CERT_BLOCK,d,device='cuda'),Ys,want_dl=True) Xcb=cap_sac[f'h{b}'].to('cuda')-mu_all[b].to('cuda') Ecur=wte_g[IDS_SACRED.reshape(-1).to('cuda')] kl_s4b=inject_kl_full(IDS_SACRED,injb,s4_delta(Xcb,b,Ecur).reshape(Nc,CERT_BLOCK,d),Ys) dsil=(-obj_s).reshape(Nc,CERT_BLOCK,d).clone(); dsil[:, :IND_SEG, :]=0.0 kl_sil=inject_kl_pidx(IDS_SACRED,injb,dsil,Ys,torch.arange(IND_SEG,CERT_BLOCK)) s4ok=(abs(kl_s4b-wall)<=TOL_S4 and kl_id==0.0 and dl_id==0.0) if not SMOKE else (kl_id==0.0) if not s4ok: res["instrument_discrepancy"].append({"stage":f"armB-b{b}","name":"S4/identity","why":{"S4":kl_s4b,"id":kl_id}}) brec["gates"]={"identity_kl":kl_id,"identity_dlogit":dl_id,"S4_replay":round(kl_s4b,5), "S4_banked":wall,"S4_ok":bool(s4ok),"silent_rep":round(kl_sil,5)} armb[str(b)]=brec; res["armB"]["bounds"]=armb; write_json() logln(f"[armB b{b} gates] id={kl_id}/{dl_id} S4={kl_s4b:.5f}(bk {wall}) sil={kl_sil:.5f} ok={s4ok}") del obj_s,Xcb,Ecur,dsil; free() W0b=brec["gates"]["silent_rep"] obj_by_set={"train":obj_at(cap_tr,b),"sacred":obj_at(cap_sac,b),"hold2":obj_at(cap_h2,b)} attempts=brec.get("attempts",{}) def feats_sets(ct,extra_by_set=None): f_tr=contract_feats(ct,cap_tr,IDS_TRAIN,(extra_by_set or {}).get("train")) scm,scs=make_scaler(f_tr,f"{ct}_b{b}") return {"train":(f_tr-scm)/scs, "sacred":(contract_feats(ct,cap_sac,IDS_SACRED,(extra_by_set or {}).get("sacred"))-scm)/scs, "hold2":(contract_feats(ct,cap_h2,IDS_HOLD2,(extra_by_set or {}).get("hold2"))-scm)/scs} def run_attempt(name,ct,extra_by_set=None): akey=f"{name}_{ct}" if attempts.get(akey,{}).get("done"): return attempts[akey] fin=CT_FIN[ct] fb=feats_sets(ct,extra_by_set) seedbase=20260707+10000*b+1000*{"CTA":0,"CTB":1,"CTC":2}[ct]+RUNG_SEED[name] tag=f"b{b}_{akey}" if f"sd_{tag}_real" in BASES and attempts.get(akey,{}).get("trained"): mr=make_rung(name,fin,CERT_BLOCK).to('cuda').eval(); mr.load_state_dict({k:v.to('cuda') for k,v in BASES[f"sd_{tag}_real"].items()}) mt=make_rung(name,fin,CERT_BLOCK).to('cuda').eval(); mt.load_state_dict({k:v.to('cuda') for k,v in BASES[f"sd_{tag}_twin"].items()}) curves=attempts[akey].get("curves",{}) else: mr,lr_=train_rung_v7(name,fin,fb["train"],obj_by_set["train"],seedbase,False,f"{tag}_real") mt,lt_=train_rung_v7(name,fin,fb["train"],obj_by_set["train"],seedbase+1,True,f"{tag}_twin") curves={"final_loss_real":round(lr_[-1],6),"final_loss_twin":round(lt_[-1],6)} attempts[akey]={"trained":True,"curves":curves}; brec["attempts"]=attempts armb[str(b)]=brec; res["armB"]["bounds"]=armb; write_json() # train/within R2 with torch.no_grad(): ohtr=rung_predict(mr,name,fin,fb["train"],Ntr) def r2m(mask): e=((ohtr[mask]-obj_by_set["train"][mask])**2).sum() v=((obj_by_set["train"][mask]-obj_by_set["train"][mask].mean(0))**2).sum() return float(1-(e/v.clamp(min=1e-9))) r2tr=r2m(mrow_g); r2wi=r2m(mwith_g) del ohtr; free() rec=certify_rung(b,name,ct,mr,mt,fb,obj_by_set,injb,fl_rec,tag) rec.update({"done":True,"curves":curves,"r2_train":round(r2tr,4),"r2_within":round(r2wi,4), "legacy_pass":bool(rec["SACRED_kl_rep"]<=fl_leg)}) attempts[akey]=rec; brec["attempts"]=attempts armb[str(b)]=brec; res["armB"]["bounds"]=armb; write_json() logln(f"[armB b{b} {akey}] SACRED={rec['SACRED_kl_rep']:.5f} (fl {fl_rec}, twin {rec['twin_kl_rep']:.5f}, " f"W0 {W0b}) r2={rec['SACRED_r2']} hold2={rec['HOLD2_kl_rep']:.5f} within={rec['WITHIN_kl_rep']:.5f} cert={rec['certified']}") del mr,mt,fb; free() return attempts[akey] # ladder: L0 CT-A + L0 CT-B first (linear favored) a1=run_attempt("L0","CTA"); a2=run_attempt("L0","CTB") cert_recs=[r for r in (a2,a1) if r.get("certified")] # CT-B first = minimal contract holds cert ladder_note="L0-only (linear favored)" if not cert_recs and not SMOKE and el() program-complete recommendation + STOP, Will ratifies" if Ha=="OPEN-AT-GRAIN" else "NOT-YET -> gap tables (both meters) + fork if onset-only + STOP, Will decides")} write_json() logln(f"[VERDICT] primary={primary} H-V7={Ha} | recal N_grain={tables['recal']['N_grain']} " f"gaps={tables['recal']['gap_cells']} unexpl={tables['recal']['unexplained_nats']} | " f"legacy N_grain={tables['legacy']['N_grain']} gaps={tables['legacy']['gap_cells']} " f"unexpl={tables['legacy']['unexplained_nats']}") # ---- freeze decoder_v7 IFF any onset boundary certified (pre-reg clause) ---- certB=[bb for bb in ("6","7") if res["armB"].get("bounds",{}).get(bb,{}).get("H_V7_B","").startswith("CERTIFIES")] if not SMOKE and certB and not res.get("v7_frozen"): v7T=dict(dv6) for bb in certB: rec=res["armB"]["bounds"][bb]["best"] name,ct=rec["rung"],rec["contract"] sdk=f"sd_b{bb}_{name}_{ct}_"+("ft" if rec.get("via")=="KL-finetune" else "real") v7T[f"onset_b{bb}_rung"]=name; v7T[f"onset_b{bb}_contract"]=ct v7T[f"onset_b{bb}_state_dict"]=BASES[sdk] v7T[f"onset_b{bb}_scaler_mean"]=BASES[f"scaler_{ct}_b{bb}"]["mean"] v7T[f"onset_b{bb}_scaler_std"]=BASES[f"scaler_{ct}_b{bb}"]["std"] for k in list(BASES.keys()): if str(k).startswith("O_r48_"): v7T[k]=BASES[k] tmp=os.path.join(DIR,"decoder_v7_tensors.pt.tmp"); torch.save(v7T,tmp); os.replace(tmp,os.path.join(DIR,"decoder_v7_tensors.pt")) cfg={"version":"DECODER_V7 1.0 (2026-07-05)","propose_only":True,"pre_registration":PEN, "assembly":"decoder_v6 + S9x onset rung(s) at BUS[6]/BUS[7] (certified on held-out periods) + V7 folded r48 reads", "onset":{bb:res["armB"]["bounds"][bb]["best"] for bb in certB}, "source_sha256":O["src_sha"]} tmp=os.path.join(DIR,"decoder_v7.json.tmp") with open(tmp,"w",encoding="utf-8") as f: json.dump(cfg,f,indent=1,default=str) os.replace(tmp,os.path.join(DIR,"decoder_v7.json")) res["v7_frozen"]={"tensors_sha":sha256(os.path.join(DIR,"decoder_v7_tensors.pt")), "json_sha":sha256(os.path.join(DIR,"decoder_v7.json"))} write_json(); logln(f"[FREEZE] DECODER_V7 frozen: {res['v7_frozen']}") # ================= SMOKE / STATUS ================= if SMOKE: sm={"M0a":res["gates"]["M0a"]["pass"],"dec_v6":res["gates"]["decoder_v6"]["sha_ok"], "b5_gates_id":res["gates"].get("b5",{}).get("identity_kl"), "c1":bool(res["c1"].get("done")),"armA":bool(res["armA"].get("done")), "c2":bool(res["c2"].get("done")),"armB":bool(res["armB"].get("done"))} ok=(res["gates"]["M0a"]["pass"] and res["gates"]["decoder_v6"]["sha_ok"] and res["gates"].get("b5",{}).get("identity_kl")==0.0 and all(bool(sm[k]) for k in ("c1","armA","c2","armB"))) res["S_smoke"]=sm; res["status"]="SMOKE-"+("OK" if ok else "FAIL") logln(f"[SMOKE] {json.dumps(sm)} -> {res['status']}") else: done=(bool(res["c1"].get("done")) and bool(res["armA"].get("done")) and bool(res["c2"].get("done")) and bool(res["armB"].get("done")) and bool(res["verdict"].get("done"))) res["status"]=("COMPLETE" if (done and not res["instrument_discrepancy"]) else ("COMPLETE-WITH-DISCREPANCY" if done else "PARTIAL")) save_bases(); write_json() if M["m"] is not None: del M["m"]; M["m"]=None; free() except Exception as e: res["fatal_error"]={"error":str(e),"trace":traceback.format_exc()} logln(f"FATAL {e}\n{traceback.format_exc()}"); res.setdefault("status","FATAL") write_json() logln(f"V7 END status={res.get('status')} elapsed={el()}s") open(os.path.join(DIR,"_v7_smoke_gpu.done" if SMOKE else "_v7_gpu.done"),"w").write(str(res.get("status","?"))+"\n") logln("*** V7_"+("SMOKE_" if SMOKE else "")+"DONE ***"); LOG.flush(); LOG.close(); print("done")