@@ -704,9 +704,11 @@ def _run_fused_chat() -> Tuple[List[str], List[float], List[int]]:
704704 """Interactive/scripted chat on the FULL fused engine — reuses the
705705 EXACT per-turn sequence of the eval loop below (build_restoration →
706706 S5 prefill → aux capture → fused_specdecode_generate_mlx_trim), so the
707- verifier + DFlash proposer + f_θ + S5 bounded KV are all live. This is
708- NOT verifier-only: each turn drafts blocks and reports blocks /
709- mean_accept_len to prove the proposer ran."""
707+ gemma-4 verifier + DFlash proposer + S5 bounded KV are all live. NOT
708+ verifier-only: each turn the proposer drafts blocks the verifier
709+ accepts (reports blocks / mean_accept_len). On gemma-4 f_θ restoration
710+ is bypassed via S5 native exact-layer prefill (the free lunch);
711+ f_θ is load-bearing on full-attention models."""
710712 if not (args .force_fused_specdecode and mlx_drafter is not None
711713 and args .cuda_trim ):
712714 raise SystemExit (
@@ -796,8 +798,11 @@ def _gen_turn(pid: List[int]) -> Dict[str, Any]:
796798 file = sys .stderr , flush = True )
797799 report = {
798800 "kind" : "mac_gemma4_kakeya_fused_chat" , "schema_version" : 1 ,
799- "engine" : ("Kakeya-for-Mac FULL fused spec-decode "
800- "(verifier + DFlash proposer + f_θ + S5 bounded KV)" ),
801+ "engine" : ("Kakeya-for-Mac fused spec-decode (gemma-4 verifier "
802+ "+ DFlash proposer + S5 bounded KV; f_θ restoration "
803+ "bypassed on gemma-4 via S5 native exact-layer "
804+ "prefill — the free lunch — and load-bearing on "
805+ "full-attention models)" ),
801806 "model_path" : args .verifier_path , "drafter_id" : args .drafter_id ,
802807 "f_theta_dir" : args .f_theta_dir , "sink" : args .sink_size ,
803808 "window" : args .window_size , "block_size" : args .block_size ,
0 commit comments