Index
2026-05-27 — Experiment

Dream 비디오 IDM Action → Robocasa Sim Open-loop 성공률 평가 파이프라인

GR00T-Dreams | ar_p3_init0_v2 · droid_idm · 72 ep · 4-GPU 병렬

TL;DR

72
총 Episodes
24
Tasks
4
병렬 GPU Jobs
12
Action Dims

1 배경 / 목적

Cosmos AR (ar_p3_init0_v2)이 생성한 dream 비디오에서 IDM으로 뽑은 action이 실제로 robocasa sim에서 task를 완료하는가를 처음으로 정량화하려 했다. 기존 outputs/idm_simulator_eval/*의 sim-replay는 전부 실제(heldout) 비디오의 IDM이고 GT와의 pos_err(mm)를 재는 것 — dream 비디오 IDM을 sim에 직접 돌린 성공률 평가는 없었다.

기존 한계: dream 비디오 IDM 평가 = 영상 sanity(side-by-side mp4)만 있었고, task completion 신호가 없었음. 어느 task에서 cosmos → IDM → sim이 실제로 동작하는지 전혀 알 수 없었음.

추가로 약한 IDM (synthetic_lerobot_idm = H50 pixel ckpt-60000, action collapse)으로 lower-bound를 먼저 확인하고, 이후 개선판(droid_idm)으로 전환하는 단계별 접근을 택했다.

2 작업 내용

스크립트 확장 — 성공률 추적 추가

기존 scripts/eval_synthetic_idm_replay.py (2025-05-11 작성, side-by-side 영상만 생성, 성공률 없음)를 확장:

replay_and_render(): - 매 step env._check_success() 체크 → 첫 성공 step 기록 - relaxed threshold 없이 표준 robocasa 성공 판정 (정직한 task-completion 신호) - --eps_per_task N: source_mapping을 task별로 묶어 각 task 앞 N개 source ep 선택 출력: - per-task + global success_rate 요약 JSON (success_summary.json) - 영상 파일명에 _OK / _FAIL 태그

Action 투입 공간 검증

사용자가 "idm action이 너무 이상하다"고 우려 → action feeding 버그인지 확인:

검증: mg30_real_h50 ep0 action == 원본 HDF5 GT action - shape 402×12, range, 첫 row까지 완전 동일 - mg30_real_h50 action = robocasa 원본 컨트롤러 action 그대로 (재파라미터화 없음) - dream IDM action을 env.step에 직접 투입하는 것이 정확한 공간 "이상함"의 정체 = 약한 H50 IDM 품질: - GT ep0 arm delta: [-0.026, -0.063, 0.019, ...] (작고 부드러움) - H50 IDM: [-0.33, 0.17, -0.18, ...] (크고 noisy, collapse) → feeding 버그 아님, IDM 품질 한계

영상 포맷 변경 (3-view)

기존: 1-view(agentview_left), 좌=cosmos / 우=sim side-by-side 변경: 3-view [left|right|wrist], 위=cosmos / 아래=sim 세로 stack - SIM_CAMS = [agentview_left, agentview_right, eye_in_hand] - cosmos tile 3 quadrant (top-L/top-R/bottom-L) 동일 순서 매핑 - make_stacked_video 신설 (구 make_sidebyside_video 대체) - 출력 shape: (465, 512, 768, 3) = 2×256행 × 3×256열

IDM variant 전환 — droid_idm 채택

처음엔 약한 synthetic_lerobot_idm(H50)으로 돌렸으나, 사용자가 init0 데이터셋에 이미 뽑힌 최신 개선 IDM = synthetic_lerobot_droid_idm (HF Keh0t0/dreamgen_robocasa_p3_init0_v2_droid)을 요청:

droid_idm 검증: - 동일 1440 ep / 12-dim 공간 - ep0 range [-0.56, 0.69] (H50 [-0.33, 0.36] 대비 wider = collapse 덜) - env.step 직접 투입 동일 스크립트: --idm_variant {idm, droid_idm} 추가 (default droid_idm) 출력 분리: outputs/eval_synthetic_idm///

4-GPU 병렬 샤딩

24 task → 6개씩 4그룹 분할: G1: Close*×3 + Coffee*×3 G2: Open*×3 + PnP{Cab, CounterToCab, CounterToMicrowave} G3: PnP{CounterToSink, CounterToStove, MicrowaveToCounter, SinkToCounter, StoveToCounter} + TurnOffMicrowave G4: TurnOff{Sink, Stove} + TurnOn*×3 + TurnSinkSpout 제출: 4×(--gres=gpu:1 -c8 --mem200G --qos=own --time=01:00:00) job 10010/10011/10012/10013 — RUNNING (n43/n48/n75/n79) 샤드별 summary: success_summary_.json으로 분리

3 결과

IDM variant 비교 (action range)

IDM variantAction range (ep0)상태비고
droid_idm[-0.56, 0.69]채택init0_v2 데이터셋 기존 뽑힌 최신 IDM
H50 idm (synthetic_lerobot_idm)[-1.00, ~0.50] (collapse)기각ckpt-60000, lower-bound 확인용으로만

스모크 테스트 결과

스모크 조건결과상세
H50 IDM — CloseDoubleDoor demo_297 ep0FAIL (step -1)action (465,12) range [-1.00, 0.364], 466 frame 진행, 스크립트 E2E PASS / 요약 JSON 생성 확인
3-view 포맷 스모크 (GPU2, 1 ep)PASS출력 (465, 512, 768, 3) 확인
droid_idm 3-view 스모크 (GPU3, 1 ep)PASS3-view 위/아래 mp4 출력 확인

Job 이력 (재제출 흐름)

Job상태이유
9989취소기존 1-view 코드, 72 ep 진행 중 3-view 포맷 추가로 재제출
9992취소H50 IDM → droid_idm 전환으로 재제출
9996취소droid_idm 전환으로 재제출 (13/72 진행)
10004취소라벨 제거 + 4-GPU 샤딩으로 재제출
10010/10011/10012/10013RUNNING라벨 없는 3-view, droid_idm, 4-GPU 병렬 (n43/n48/n75/n79)
파이프라인 완성: dream 비디오 → IDM action → robocasa sim open-loop 성공률 평가 end-to-end 동작 확인. 성공률 집계는 job 완료 후 success_summary_*.json 병합.
본 실행 결과 대기 중: 72 ep × 4-GPU 병렬 진행 중. success_summary.json은 미완.

4 Takeaway

의미

"생성 비디오 IDM action → sim open-loop → task 성공률"이라는 평가 축이 처음으로 정량화 가능해졌다. 기존엔 영상 sanity(side-by-side)뿐이었으나 이제 task completion 신호가 있다.

H50 IDM 스모크에서 CloseDoubleDoor가 실패 → dream→IDM→action 품질 한계가 sim에서 task 실패로 직접 드러남(예상과 일치). droid_idm은 action range가 더 넓어 collapse 덜함.

action 투입 공간 검증으로 feeding 버그 아님이 확인 — IDM 품질 자체의 문제임을 명확히 했다. 이후 IDM 개선이 성공률에 직접 반영될 것.

5 Next Steps

job 10010-10013 완료 후

outputs/eval_synthetic_idm/ar_p3_init0_v2/droid_idm/success_summary_*.json 4개 병합 → per-task / global 성공률 집계 및 분석 로그 추가.

대조군 확장

--idm_variant idm으로 약한 H50 IDM 전체 72 ep sweep → "약한 vs 개선 IDM" 성공률 비교. 스크립트는 --idm_variant 인자 변경만으로 동일하게 사용 가능.

init 조건 확장

mid_v2 (중간 프레임 init)도 동일 스크립트 지원됨 (--stage 인자 변경). random_v2는 seed 재현 로직 필요 (미지원).