TL;DR
- delta_sf (state-fix 적용, bug-free): EEF 244.6 mm @ 20K steps — 버그-오염 결과(396mm)보다 개선됐으나, feat_delta_reg 기준(104.79mm)의 2.3×
- 2frame_sf (2-프레임 연결 입력, bug-free): EEF 635.8 mm @ 20K steps — 버그-오염보다 오히려 나쁨. 연속 2-frame 방식 자체가 실패.
- 판정 임계 ~250mm 기준: delta_sf 244.6mm은 경계 하단 — "수렴했지만 baseline 대비 경쟁력 없음"
- Pi0.5-backbone delta-IDM 트랙 종료 확정. Feature(Cosmos)-backbone IDM이 모든 지표에서 우위.
1 배경/목적 (왜)
260518 세션에서 pi05_delta IDM의 실패 원인이 observation.state 2-timestep 버그임을 확정했다. factory.py:62 resolve_delta_timestamps가 observation.state에도 delta_indices=[0,16]을 적용해 state를 (2,16)으로 malform시켰고, 이전 v1(562mm)/v2(540mm)/normfix(396mm) 결과는 모두 이 버그에 오염된 무효 실험이었다.
버그 수정 후 공정한 조건에서의 진짜 답을 얻기 위해 두 실험을 재제출했다:
- delta_sf (
pi05_delta_idm_4gpu_state_on_sf_acc2): forward-delta 입력, state-fix 적용. 4 GPU, 20K steps.
- 2frame_sf (
pi05_delta_idm_4gpu_state_on_2frame_sf_acc2): 현재+미래 2-frame concatenation 입력, state-fix 적용. 4 GPU, 20K steps.
실험 맥락: 260518 이전 실험들은 학습 시 state=(2,16) malform vs eval 시 state=(16,) 불일치로 loss 수렴해도 eval 전멸. 이번 실험은 train_bc.py 패치로 pi05_delta 시 observation.state를 delta_indices에서 pop → 학습/eval 모두 state=(16,) 단일 프레임으로 통일.
2 작업 내용 (어떻게)
260518에 minhopark 계정으로 두 실험 제출 (SLURM job 5114=delta_sf, 5115=2frame_sf). 초기 제출(18:44)이 admin 에 의해 ~2시간 후 CANCELLED → 즉시 재제출(20:37)하여 각각 COMPLETED:
delta_sf (job 5176): start 260518 20:37 → elapsed 3h 15m → COMPLETED @ ~23:52
checkpoint: outputs/pi05_delta_idm_4gpu_state_on_sf_acc2/checkpoints/020000
created: 2026-05-18 23:48
2frame_sf (job 5177): start 260518 20:37 → elapsed 9h 56m → COMPLETED
checkpoint: outputs/pi05_delta_idm_4gpu_state_on_2frame_sf_acc2/checkpoints/020000
(grad_ckpt + 6토큰 extra overhead로 2.7× 느림)
Eval 방법
idm_intrain_eval.py로 in-train offline replay eval: 매 1K steps마다 CloseDoubleDoor task의 demo에 대해 IDM으로 action 예측 → GT action과 EEF error 계산. SR≈0은 구조적 (offline replay eval은 closed-loop가 아님) — eval/eef_mm만 신호.
주의: in-train eval은 1개 task(CloseDoubleDoor) 기준. 24-task 전체 eval은 미실행. 단일 task eef_mm이 전체 일반화를 대표한다고 가정 (260518 2×2×2 ablation의 24-task 패턴과 유사 가정).
3 결과 (수치)
최종 결과 비교표
| 실험 |
입력 방식 |
EEF mm @ 20K |
SR |
train loss |
상태 |
| feat_delta_reg (기준) |
Cosmos hidden Δ + regression |
104.8 mm |
— |
— |
2×2×2 ablation best |
| feat_delta_reg qnorm |
Cosmos hidden Δ + q01/q99 norm |
106.0 mm |
— |
— |
new default |
| Pixel v2_8gpu (기준) |
SigLIP2 raw pixel, batch 1024 |
134.8 mm |
— |
— |
MG-30 pixel baseline |
| delta_sf ← 이번 실험 |
Pi0.5 SigLIP2, forward-Δ 입력, state-fix |
244.6 mm |
0 |
0.027 |
✅ COMPLETED |
| normfix (버그-오염) |
Pi0.5, Δ입력, `*2-1` fix만 |
395.9 mm |
— |
— |
state-bug 오염 무효 |
| v2 (버그-오염) |
Pi0.5, Δ입력, state on |
539.9 mm |
— |
— |
state-bug 오염 무효 |
| v1 (버그-오염) |
Pi0.5, Δ입력, state off |
562.1 mm |
— |
— |
state-bug 오염 무효 |
| 2frame_sf ← 이번 실험 |
Pi0.5 SigLIP2, 2-frame concat, state-fix |
635.8 mm |
0 |
0.019 |
✅ COMPLETED (최악) |
수렴 곡선 (delta_sf)
step 1,000 → eef_mm = 658.9 mm (미학습, wandb init 직후)
step 20,000 → eef_mm = 244.6 mm (최종 수렴값)
감소폭: 658.9 → 244.6 mm (−414 mm, 학습 효과 확인됨)
기준 대비: 244.6 / 104.79 = 2.33× 열화
2frame_sf (635.8mm) 해석: 버그-오염 v1(562mm)·v2(540mm)보다 오히려 나쁨. "현재+미래 2-frame 연결"은 각 frame이 SigLIP의 자연이미지 prior에 맞으나, 두 frame을 concatenation하면 positional confusion이 생긴다는 가설. loss(0.019)는 가장 낮지만 EEF는 최악 — loss-metric alignment 단절.
delta_sf (244.6mm) 판정: HANDOFF 기준 ~250mm 임계를 겨우 하단으로 통과. "버그-없는 delta-IDM이 쓸만하다"고 말하기 어려운 수준 — Pixel v2_8gpu(134.8mm)보다도 열악. Pi0.5 SigLIP2 backbone이 delta-frame 입력을 효과적으로 인코딩하지 못하는 것이 원인.
4 Takeaway
🔬 Pi0.5-delta IDM 실험의 최종 의의
이번 실험은 260515~260520에 걸친 긴 디버깅 여정의 종착점이다. 버그(state 2-timestep malform)는 실재했고 수정 후 결과가 개선됐다(396mm→244mm). 하지만 개선 후에도 best IDM(104mm)의 2.3×로, backbone이 문제라는 원인 진단이 결국 맞았다.
핵심 교훈: delta-frame 입력이 "나쁜 게 맞는지" 확인하는 데 3주 + 수십 번의 SLURM 실험이 소모됐다. 원인 — (1) 버그가 delta 실패처럼 보이는 증상을 만들어 disentangle이 어려웠고, (2) in-train eval 경로도 별개 버그로 오염돼 학습 중 조기 진단이 불가능했다. IDM 새 config 도입 시 eval 경로를 사전에 smoke-test하는 자동화가 필요하다.
Bug-fix 가치 확인됨: state-fix만으로 EEF 396mm → 244mm (−38%). 버그 발견/수정이 의미 있었음. 향후 Pi0.5-delta 계열 실험 시 observation.state의 delta_indices pop은 표준 절차.
2frame_sf 실패의 의미: 연속 2-frame concatenation은 delta보다 더 나쁘다. "두 자연이미지를 주면 SigLIP이 더 풍부한 정보를 얻는다"는 직관은 틀렸다 — 단순 concat은 frame 순서 혼동을 유발하고 loss가 낮아도 action 예측은 오히려 악화.
Cosmos feature vs Pi0.5 SigLIP 비교: feat_delta_reg(104mm) vs delta_sf(244mm) — 동일 delta-frame 개념이라도 feature backbone(Cosmos hidden)이 SigLIP pixel보다 2.3× 유리. Cosmos의 spatiotemporal representation이 frame-to-frame motion signal 추출에 근본적으로 유리한 구조.
5 Next Steps
이번 결과로 닫히는 것
- ✅ Pi0.5-Delta IDM 트랙 종료 — delta_sf 244mm, 2frame_sf 635mm. 어느 variant도 feat_delta_reg(104mm)를 위협하지 못함.
- ✅ state-2-timestep 버그 수정 완료 및 공정 재실험으로 검증.
- ✅ "Delta 가설 기각" 결론 최종 확정 — 이번엔 버그-없는 공정한 조건에서.
열려있는 다음 방향
- IDM best cell (feat_delta_reg, 104mm) 기반 DreamGen pipeline 통합: 이 모델로 synthetic video에서 pseudo-action dump → Pi0.5 fine-tuning (B0/B1/B2 트랙) 재가동.
- Pi0.5 B0/B1/B2 ref 트랙 eval 재개: 260508에 준비 완료된 ref launch script들. DAVIAN reference config 대비 SR 비교가 DreamGen 효과 측정의 핵심 메트릭.
- Latent-IDM Option D (Δh hidden): feat_delta_reg의 성공 기반, Cosmos hidden 차분(
Δh = h[i+1] - h[i])을 KV로 사용하는 새 가설. 설계 완료(claude/260511/plan-latent_idm_D.md), 구현 대기.
- MG-3000 data scale 실험 (minhopark): pi05-mg3000-split-30/100/300/1000 병렬 학습 260522 완료. data scaling 효과 분석 예정.