train_bc.py:467-476이 dataset.meta.info만 modify하고 batch에서 state 안 제거 → 모든 실험이 dataset 자체 state값에 의존.eval pipeline 4중 bug를 수정한 뒤에도 B0+random init에서 SR 0/4가 나왔다. eval pipeline 외에 학습 자체에 문제가 있는지 확인하기 위해 B0/B1/B2의 dataset state/action 분포를 정량 비교하고, state mismatch 가설을 검증하는 실험 플랜을 수립했다.
| heldout (B0/B2-real) | dreamgen P2 (B1/B2-synth) | |
|---|---|---|
| episodes | 720 | 1,440 |
| total frames | 208,053 | 133,920 |
| fps | 20 | 16 ⚠️ |
| state dim 0-7 (proprio) | mean≠0, std 0.07~0.75 | all 0, std=0 |
| state dim 8-15 | all 0 (padding) | all 0 |
| action dim 0-5 (delta xyz/rpy) | std 0.19~0.28 | std 0.04~0.05 (5× 작음) |
| action dim 6 (gripper) | std 0.8 | std 0.98 |
B0 checkpoint에서 real state vs zero state 입력 시 state prediction 오차:
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 시도 확인:
strict 0인 이유: ckpt-012500 (미완료 60%) + closed-loop drift. state mismatch가 critical임은 확정.
결과: 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 가설과 정합).
IDM 새로 학습 필요. 현재 mg3000_v2 IDM은 action-only, Latent-A-v2는 16-dim base_to_eef schema → heldout schema (8-dim joint+gripper)와 불일치.
Step 5/6 먼저 진행. train_bc.py의 disable_proprio 실제 fix (batch에서 state key 제거)는 나중에.
동기: 현재 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.
검증 후 계획: 1440 entry × 5 iter full-scale → IDM dump → v3.0 변환 → HF push → B1'/B2' 학습.
Step 1 → 2 → (3,4 보류) → 5+6. 현재 5+6 파일럿 실행 중.
eval pipeline 4중 bug 수정 이후에도 SR이 0인 이유: 학습(real state) ↔ eval(zero state) OOD. Step 1에서 real state 주입하자 robot이 실제 close 모션을 만들어냄으로써 확인됨. 두 가지 문제(eval pipeline bug + state mismatch)가 독립적으로 존재했음.
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가 크게 개선될 것으로 예상.
2 entry × 3 iter autoregressive 파일럿. long-horizon video 품질 확인 (각 iter 이어붙임 자연스러운지, 마지막 frame이 다음 init으로 적합한지). 통과하면 1440 entry × 5 iter full-scale 제출.
ckpt-012500 (60% 미완)이 아닌 ckpt-020000 (B0 학습 완료 후)으로 real state eval. 진짜 학습 완료 policy가 어느 정도 SR을 내는지 측정. EnvUtils reset_to 통합 eval 스크립트 완성 선행.
heldout schema (8-dim joint_pos+gripper_qpos)에 맞는 state 예측 IDM 학습. B2 재학습(real+synth-with-IDM-state)에 필요. Latent-A-v2 (base_to_eef schema)와는 다른 새 variant 학습 필요.