Index
2026-04-30 — Analysis

Latent-A v2 (action+state) — 24-ep 시뮬레이터 평가 및 State Quality 분석

GR00T-Dreams | IDM v2 HF v3.0 robocasa-H50 16-dim state 동시 예측

TL;DR

127.9
Action mm (24-ep)
13.9
gripper_qpos mm
1431
base_pos mm ❌
0.0096
train_loss

1 배경 / 목적

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 예측 품질 신규 평가.

동기: DreamGen pseudo-label에 state도 포함하면 다운스트림 GR00T N1 / Pi0.5 fine-tuning에서 proprio-conditioning이 가능해짐. 하지만 state 품질이 쓸 수 있는 수준인지 먼저 확인 필요.

2 작업 내용

60K 학습

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 포함).

24-ep eval 파이프라인 수정

첫 시도(Job 2353): heldout의 meta/state_stats.json 누락으로 실패 — heldout은 test split이라 stats 계산 안 함. Fix: idm_mg30/meta/state_stats.jsonidm_heldout/meta/ symlink (train stats 재사용 정석). Job 2355 재제출 → dump_v2 + replay 완료 (~30분).

3 결과

Action quality 비교 (24-ep, EEF mm error)

모델데이터steptrain_lossAction mm (avg)gripper acc
Pixel B0MG-30100K0.094332 mm
Latent-A v1 (sliced)MG-3060K0.0119114.2 mm84.3%
Latent-A v2 (action+state)MG-3060K0.0096127.9 mm83.4%
v2 action mm 127.9 vs v1 114.2 (+13.7, +12%): state supervision 추가의 합리적 비용. 그러나 train_loss는 오히려 낮음 — state[12:28]가 slow-varying signal이라 MSE 기여가 커서 겉보기 loss가 낮아짐.

Per-task action mm (v2, 24 ep, worst→best)

Taskmm비고
PnPCounterToMicrowave278.5신규 worst (v1: 162 mm)
PnPMicrowaveToCounter274.7
CloseDoubleDoor239.9v1: 339 mm → -100 mm 개선 ✨
TurnOffSinkFaucet215.0
TurnOffStove30.0best
CoffeePressButton31.9

State quality (24-ep heldout avg)

Field단위24-ep avgmin ~ max판정
gripper_qposmm13.91.2 ~ 29.0✅ 좋음 (range ±40mm)
base_to_eef_posmm254.9139 ~ 497⚠️ 높음
base_to_eef_quat°60.536 ~ 102⚠️ 매우 높음
base_quat°71.734 ~ 160⚠️ 매우 높음
base_posmm1431415 ~ 4011❌ global mean collapse
base_pos collapse: frame 0부터 pred=[2.62, -0.90, 0.70] vs gt=[1.25, -0.80, 0.70] → 1.4 m 오차. 에피소드 내내 global mean 예측. 4×4 spatial pool feature가 kitchen layout에서 base 절대 좌표를 구분하기에 해상도 부족. base가 ep 내에서 거의 안 움직임 → contrastive 학습 신호 약함.
base_to_eef_pos: frame 0에서는 14 mm로 정확하지만 mid/late frame에서 누적 오차 → ep avg 254 mm. 절대 위치 예측이 action delta 예측보다 본질적으로 어려움.
gripper_qpos 13.9 mm: 로컬 action(개폐)과 시각적으로 직접 연관되는 신호 → 24-ep 전역에서 안정적으로 좋음.

4 Takeaway

HF v3.0 robocasa-H50 스키마 정합성 검증 완료, 단 state 품질은 부족

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만 신뢰 가능.

5 Next Steps

Option 1 (권장): Visual Resolution ↑

4×4 spatial pool → 8×8 (또는 raw token T_lat × 27 × 48). kitchen layout의 base 절대 좌표를 구분할 수 있는 해상도 확보. 캐시 재생성 필요 (~14GB → ~50GB). 60K 재학습.

Option 2: Loss Reweight

action[0:12]과 state[12:28] loss weight 분리 → state에 weight 0.5x ~ 2x 시도. field별 균형 잡기. 코드 수정 + 60K 재학습.

Option 3: Delta Prediction (base_pos 전용)

절대 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) 이후 단계에서 다시 검토.