IDM v1은 12-dim EEF action만 예측. v2는 HF DAVIAN-Robotics/robocasa-H50 v3.0 스키마의 16-dim state(base_to_eef_pos/quat, gripper_qpos, base_pos/quat, xyzw 순서)를 action_dim[12:28] 영역에 packing해 동시 예측.
인프라 구현은 260429 완료 (260430-idm_v2_action_state_infra.html). 이번은 60K 학습 완료 후 24-ep heldout simulator replay로 action 품질 vs v1 비교 + state 예측 품질 신규 평가.
Job 115 (sub partition, core-on-sub QOS) 시작 → 10K step 후 preempt → Job 419/475/2353 retry → 최종 60K complete (outputs/idm_robocasa_latent_A_v2_60k_8gpu/checkpoint-60000/). 8 GPU, eff batch 1024. 총 wall-clock ~12–13h (preempt 포함).
첫 시도(Job 2353): heldout의 meta/state_stats.json 누락으로 실패 — heldout은 test split이라 stats 계산 안 함. Fix: idm_mg30/meta/state_stats.json → idm_heldout/meta/ symlink (train stats 재사용 정석). Job 2355 재제출 → dump_v2 + replay 완료 (~30분).
| 모델 | 데이터 | step | train_loss | Action mm (avg) | gripper acc |
|---|---|---|---|---|---|
| Pixel B0 | MG-30 | 100K | 0.094 | 332 mm | — |
| Latent-A v1 (sliced) | MG-30 | 60K | 0.0119 | 114.2 mm | 84.3% |
| Latent-A v2 (action+state) | MG-30 | 60K | 0.0096 | 127.9 mm | 83.4% |
| Task | mm | 비고 |
|---|---|---|
| PnPCounterToMicrowave | 278.5 | 신규 worst (v1: 162 mm) |
| PnPMicrowaveToCounter | 274.7 | |
| CloseDoubleDoor | 239.9 | v1: 339 mm → -100 mm 개선 ✨ |
| TurnOffSinkFaucet | 215.0 | |
| TurnOffStove | 30.0 | best |
| CoffeePressButton | 31.9 |
| Field | 단위 | 24-ep avg | min ~ max | 판정 |
|---|---|---|---|---|
| gripper_qpos | mm | 13.9 | 1.2 ~ 29.0 | ✅ 좋음 (range ±40mm) |
| base_to_eef_pos | mm | 254.9 | 139 ~ 497 | ⚠️ 높음 |
| base_to_eef_quat | ° | 60.5 | 36 ~ 102 | ⚠️ 매우 높음 |
| base_quat | ° | 71.7 | 34 ~ 160 | ⚠️ 매우 높음 |
| base_pos | mm | 1431 | 415 ~ 4011 | ❌ global mean collapse |
v2 인프라 자체는 정확: xyzw quat 정합, base-relative eef, 16-dim 순서, unit norm 강제. predicted_* 키들이 HF v3.0 observation.state 1:1 호환. action mm은 v1 대비 +13.7 mm 비용으로 state 동시 예측 가능.
그러나 base_pos(global mean collapse)·quat(60–70° avg) 품질이 다운스트림에서 쓸 수 없는 수준. DreamGen pseudo-label에 state를 포함하려면 visual resolution 개선이 선행되어야 함. 현재는 gripper_qpos + action_eef만 신뢰 가능.
4×4 spatial pool → 8×8 (또는 raw token T_lat × 27 × 48). kitchen layout의 base 절대 좌표를 구분할 수 있는 해상도 확보. 캐시 재생성 필요 (~14GB → ~50GB). 60K 재학습.
action[0:12]과 state[12:28] loss weight 분리 → state에 weight 0.5x ~ 2x 시도. field별 균형 잡기. 코드 수정 + 60K 재학습.
절대 base_pos 대신 첫 frame 기준 Δ 예측 → base_pos drift 해결 가능. dataset 수정 + 재학습 필요.
Phase 4 Pi0.5 fine-tuning에서 disable_proprioceptive_obs=true로 state 입력 끔 (zero placeholder라도 Pi0.5 노이즈 신호). state v3 개선은 B2(real+synthetic mix) 이후 단계에서 다시 검토.