Index
2026-05-06~07 — Plan

Pi0.5 State Distribution Mismatch 진단 + 6단계 재학습 플랜

GR00T-Dreams | B0/B1 dataset 분포 비교 → Steps 1+2 검증 완료 → Step 5+6 착수

TL;DR

0.03m
State L1 (real state)
0.17m
State L1 (zero state)
5.7×
Mismatch 배율
2/6
Steps 완료

1 배경 / 목적

eval pipeline 4중 bug를 수정한 뒤에도 B0+random init에서 SR 0/4가 나왔다. eval pipeline 외에 학습 자체에 문제가 있는지 확인하기 위해 B0/B1/B2의 dataset state/action 분포를 정량 비교하고, state mismatch 가설을 검증하는 실험 플랜을 수립했다.

핵심 가설: B0 학습은 real proprio state를 입력으로 받아 학습됐는데, eval은 zero state를 넣어서 → OOD mismatch가 0% SR의 진짜 원인.

2 작업 내용

Dataset 분포 정량 비교

heldout (B0/B2-real)dreamgen P2 (B1/B2-synth)
episodes7201,440
total frames208,053133,920
fps2016 ⚠️
state dim 0-7 (proprio)mean≠0, std 0.07~0.75all 0, std=0
state dim 8-15all 0 (padding)all 0
action dim 0-5 (delta xyz/rpy)std 0.19~0.28std 0.04~0.05 (5× 작음)
action dim 6 (gripper)std 0.8std 0.98

disable_proprio noop 확인

# train_bc.py:467-476 # dataset.meta.info만 modify → batch에서 state key 제거 안 됨 # 결과: 모든 실험(B0/B1/B2)이 dataset 자체 state값에 의존 # B0: real proprio state 학습 → eval에 zero state 입력 = OOD

State prediction L1 ablation 검증

B0 checkpoint에서 real state vs zero state 입력 시 state prediction 오차:

| state=real | prediction L1: 0.03 | → 학습 분포에 맞음 | state=zero | prediction L1: 0.17 | → 5.7× OOD → sign 반전 현상: zero state 입력 시 일부 action dim이 반대 방향

3 결과

6단계 플랜 진행 현황

✅ Step 1 완료
B0 + real state eval (ckpt-012500)

state schema: [joint_pos[0..6], gripper_qpos[0], 8 zeros] (16-dim). env에서 robot proprio 추출해 16-dim으로 박음.

결과: 0/4 strict. 그러나 zero-state 때(final=init)와 달리 robot이 실제 close 시도 확인:

  • ep0: left door 0.938 → −0.010 (close 성공적)
  • ep3: right door 0.928 → 0.023 (거의 닫힘)

strict 0인 이유: ckpt-012500 (미완료 60%) + closed-loop drift. state mismatch가 critical임은 확정.

✅ Step 2 완료
B1 + zero state eval (ckpt-016000)

결과: 0/4 strict. 부분 close 2 ep (right door 0.934→0.569, 0.911→0.720). B0(real state, 12500) 대비 close motion 약함.

추정 원인: Cosmos가 16-frame chunk만 만든 P2 데이터 → chunk 끝부분 padding 학습 (step 5 가설과 정합).

⏸️ Step 3 보류
B2 재학습 — synthetic에 IDM-predicted state 주입

IDM 새로 학습 필요. 현재 mg3000_v2 IDM은 action-only, Latent-A-v2는 16-dim base_to_eef schema → heldout schema (8-dim joint+gripper)와 불일치.

⏸️ Step 4 보류
B0 재학습 — state 진짜로 disable

Step 5/6 먼저 진행. train_bc.py의 disable_proprio 실제 fix (batch에서 state key 제거)는 나중에.

🔄 Step 5+6 진행 중
합성 dataset 새 variant — long-horizon autoregressive Cosmos generation

동기: 현재 P2는 Cosmos가 한 번에 16 frame만 생성. 이 16 frame만 학습 데이터 → 마지막 15 frame이 padding OOD. chunk 끝에서 action signal이 의미 없어짐.

새 방식: init frame → Cosmos 추론 → last frame을 다음 iter input → ... → task 끝까지 chain. 최대 ~93×N frame long video.

# 새 스크립트 cosmos-predict2/examples/video2world_gr00t_autoregressive.py - entry당 N회 chained inference - 각 iter의 last frame → 다음 iter input - 출력: *_ar.mp4 (concat) + *_ar.mp4.iters/iter_NN.mp4 # Pilot Job 9973 (PENDING) 2 entry × 3 iter = 6 inference, sbm core-extra 8 GPU 출력: outputs/cosmos_datagen_ar_pilot/generated/

검증 후 계획: 1440 entry × 5 iter full-scale → IDM dump → v3.0 변환 → HF push → B1'/B2' 학습.

Order

Step 1 → 2 → (3,4 보류) → 5+6. 현재 5+6 파일럿 실행 중.

4 Takeaway

State mismatch가 0% SR의 핵심 원인 — eval pipeline bug와 별개

eval pipeline 4중 bug 수정 이후에도 SR이 0인 이유: 학습(real state) ↔ eval(zero state) OOD. Step 1에서 real state 주입하자 robot이 실제 close 모션을 만들어냄으로써 확인됨. 두 가지 문제(eval pipeline bug + state mismatch)가 독립적으로 존재했음.

P2 synthetic data의 구조적 한계

16-frame chunked generation → chunk 끝부분 action signal 소멸. B1(synthetic-only) close motion이 B0(real, 12500 step 미완)보다 약한 이유를 설명. long-horizon generation(Step 5+6)으로 이 한계를 우회하면 B1'/B2' 학습 quality가 크게 개선될 것으로 예상.

5 Next Steps

Pilot Job 9973 결과 확인

2 entry × 3 iter autoregressive 파일럿. long-horizon video 품질 확인 (각 iter 이어붙임 자연스러운지, 마지막 frame이 다음 init으로 적합한지). 통과하면 1440 entry × 5 iter full-scale 제출.

Step 1 PoC eval 스크립트 완성 + B0 final ckpt 평가

ckpt-012500 (60% 미완)이 아닌 ckpt-020000 (B0 학습 완료 후)으로 real state eval. 진짜 학습 완료 policy가 어느 정도 SR을 내는지 측정. EnvUtils reset_to 통합 eval 스크립트 완성 선행.

Step 3 IDM 재학습 (병행)

heldout schema (8-dim joint_pos+gripper_qpos)에 맞는 state 예측 IDM 학습. B2 재학습(real+synth-with-IDM-state)에 필요. Latent-A-v2 (base_to_eef schema)와는 다른 새 variant 학습 필요.