# Foundation + Edited Checkpoints — Real-Robot pk (new_knife) ## Foundations available in this repo | Folder | Source | Inference config | Notes | |---|---|---|---| | `mixed_new_knife_v3/best_val/600/` | Coworker's training, 600 steps best-val | `pi05_real_pk_mixed_new_v3` | Real-robot SR ≈ 40 % (per coworker rollout 2026-05-14) | | `mixed_v2_step1000/` | OUR training, 1000 steps | `pi05_real_pk_mixed_v2` | Untested on real robot. Strict val (own held-out): val_all=0.00998. Use this if `mixed_new_knife_v3` underperforms. | ⚠ **The two foundations use DIFFERENT norm_stats** — wires are NOT interchangeable. Pick the inference config that matches the foundation folder name in the table above. ## Edited ckpts (from `mixed_new_knife_v3/best_val/600/`) Foundation: `mixed_new_knife_v3/best_val/600/` (this repo) Edit recipe: `cg_distill_vla.py` from `behavior-uncloning/experiments/maniskill3_mode_editing/` Eval set: `real_pass_knife_mixed_v2_eval` (10 ep, 1188 frames) | Priority | Folder | Direction | Status | Notes | |---|---|---|---|---| | ★ **1 (best)** | `edits/action_v4_keep_left_step100/` | keep_LEFT | **directionally correct** | only ckpt with measurable L-ward predicted-action shift on R-mode val frames (Δ=−0.053 on R pre-commit, ~9% of GT L-R action spacing). Real signal. | | 2 | `edits/action_v4_keep_right_step200/` | keep_RIGHT | weak / mixed | best of the keep_right action_v4 candidates by smallest wrong-direction shift. Worth real-robot test as keep_right has no clearly-converged ckpt. | | 3 | `edits/action_v4_keep_right_step300/` | keep_RIGHT | alternative | other keep_right candidate; in-train val_pref winner but path-3 shift is L-ward (wrong direction). Test for completeness. | | 4 | `edits/hidden_v8_keep_left_step550/` | keep_LEFT | near-zero shift | hidden_v8 path; predictions barely moved (≤7% of GT spacing), classifier-side metric collapsed (Goodhart). May or may not show on robot. | | 5 | `edits/hidden_v8_keep_right_step50/` | keep_RIGHT | near-zero shift | same caveat as #4, opposite direction. | All edit ckpts use `pi05_real_pk_mixed_new_v3` for inference (same arch + norm_stats as the foundation they were edited from). ## Recipes (all on `pi05_real_pk_mixed_new_v3` config) ### action_v4 (priority #1–3) ``` --steering-mode action_v4 --use-hidden-classifier --num-modes 2 --gamma 0.1 --beta 1.0 --lr 5e-5 --action-commit-threshold 0.15 --classifier-action-dim 8 --batch-size 8 --num-steps 300 --save-interval 50 --freeze-vit-only ``` Classifier: v3-style 1vr (hidden + action + progress → P(target_mode)), trained on foundation hidden states + GT actions. Aux losses `L_grad_min + L_align` shape ∂P/∂a. ### hidden_v8_mc_allpairs (priority #4–5) ``` --steering-mode hidden_v8_mc_allpairs_precommit_gated --num-modes 2 --gamma 0.1 --beta 1.0 --lr 1e-5 --batch-size 32 --num-steps 600 --save-interval 50 --unpref-gate-mode classifier_conf (P_true<0.5) --freeze-vit-only ``` Classifier: v5h-mc (hidden-only → 2-class softmax). NOTE: edit & eval used the SAME classifier → 4-bucket P(target) eval saturated to 0.998 (Goodhart). Cannot judge edit success from val metric; only real-robot rollout will tell. ## Methodology caveats - **In-train val_pref ranking is unreliable** for picking the SR-best ckpt — see 1pillar Phase 3 / Phase 3b discussions for the same observation. - **hidden_v8 path failed the path-3 sanity check**: predicted action chunks barely change vs foundation (Δ ≤ 0.04 on a GT L-R spacing of 0.61). Likely cause: LLM hidden gets pushed to maximize hidden-only classifier, but action expert decodes back to original distribution. Sim 1pillar Phase 3b worked because there the eval was rollout SR (not classifier P), and sim's hidden-action coupling is tighter. - **action_v4 keep_left step 100 is the only ckpt with measurable directional shift**. Later ckpts (step 200/300) over-edit and collapse to wrong direction, opposite of 1pillar sim where step 200 was peak. Real-robot may want γ smaller or fewer steps. ## Splits (canonical to OUR side) - Foundation training data (this ckpt): `real_pass_knife_mixed_v2_train` 70 ep - Eval data: `real_pass_knife_mixed_v2_eval` 10 ep, mixed_ep IDs `[1, 7, 10, 29, 31, 36, 45, 52, 54, 66]` - Mode encoding: `0 = left`, `1 = right` - Asset id (norm_stats): `real_pass_knife_new_mixed_train` (matches the foundation's training norm stats, NOT mixed_v2_train)