Index
2026-04-30 — Progress

DreamGen Datagen P2 — 1440-ep 합성 데이터셋 완성 & HF Push

GR00T-Dreams | DreamGen 옵션 A 베이스라인 완료

TL;DR

1440
Episodes
133K
Rows
534 MB
v3 크기
~13h
Wall Clock

1 배경 / 목적

DreamGen 데이터 파이프라인 옵션 A 베이스라인의 스케일업 단계. P0(10 ep) → P1(48 ep) → P1.5(24 ep)으로 end-to-end 파이프라인 sanity를 끝낸 뒤, 실제 Pi0.5 fine-tuning에 쓸 본격 학습 데이터 1440 ep 생성이 목표.

기존 한계: held-out 720 ep에서 4-D variation matrix(task × ep × init_frame × seed) 적용해야 2× 이상 양 산출 가능. 시드 고정 덕분에 동일 initial_frame을 seed만 다르게 여러 번 확장 가능.

4-D variation matrix: 24 task × 5 ep × 3 init_frame × 4 seed = 1440 entries. held-out 720 ep에서 init_frame 3개 × seed 4개로 우려냄. 분포 다양성 확보가 핵심.

2 작업 내용

Cosmos 비디오 생성 (Job 474)

초기 시도(Job 50/51: 4 GPU → cancel, 411/420: CPU 72개 부족 → cancel)에서 살아남은 233 mp4 제외한 1207 entry를 Job 474에서 8 GPU / 112 CPU / 1600 GB core-extra로 재제출. cosmos-predict2/examples/video2world_gr00t_seedsweep.py (per-entry seed 지원 fork) 사용.

chunks_size 버그 발견 및 패치

Job 475 실행 중 ep 1000부터 AssertionError: chunk-001/episode_001000.parquet 없음. build_synthetic_lerobot.py가 모든 ep를 chunk-000/에 넣지만, reference에서 복사한 info.jsonchunks_size=1000 그대로여서 LeRobotSingleDataset이 ep≥1000을 chunk-001에서 찾음.

패치 내용: 1. build_synthetic_lerobot.py: default chunks_size=10000 2. dump_idm_actions_datagen.py: src_pq chunk-000 우선 시도 + dst_pq chunk-000 hardcoded 3. P2 기존 info.json: chunks_size 1000 → 10000 직접 수정 4. dump_idm_actions_datagen.py: resume 모드 추가 (기존 dst 있으면 skip)

Resume + v3 변환 + HF push (Job 2408)

scripts/run_p2_resume.sh 작성: IDM dump 440 ep 마저 완료(gr00t-idm env) → v3 변환(dreamgen env) → HF push 한 번에 처리. 1 GPU, 3h 04m 29s, exit 0.

3 결과

최종 산출물

HF Repo
Keh0t0/dreamgen_robocasa_p2
Episodes
1,440 ✓
Rows
133,920
v3 크기
534 MB
Action dim
float32[12]
Action mean abs
0.28
State dim
float32[16] (zero)
Tasks
62 unique
Video
av1, 128×128, 16fps

파이프라인 누적 통계

StageEpisodesHF Repo상태
P010(push 안 함, sanity용)완료
P148Keh0t0/dreamgen_robocasa_p1완료
P1.524Keh0t0/dreamgen_robocasa_p1_5완료
P21,440Keh0t0/dreamgen_robocasa_p2완료 ✨

Job timeline

Job자원내용wall clock결과
4748 GPUCosmos 1207 video 생성06:32:16COMPLETED
4751 GPUpost-cosmos 1차 (chunks_size 버그)03:28:451000/1440 partial
24081 GPUIDM resume + v3 변환 + HF push03:04:29COMPLETED ✓
LeRobot v3.0 호환 100%: DAVIAN-Robotics/robocasa-H50와 동일 스키마 (codebase v3.0, per-chunk file, av1, 131-col episodes parquet, action+state dim, camera key 매핑 robot0_*). HF visualizer 즉시 렌더링 가능.
action magnitude ~60–70% real: Cosmos 출력이 5.8s로 짧고 부드러워 IDM 추론 action mean abs 0.28 (real heldout ~0.4 예상). observation.state는 zero-pad placeholder.

4 Takeaway

DreamGen 옵션 A 베이스라인 파이프라인 검증 완료

Cosmos 14B mg30_real iter_47200 + IDM MG-3000 checkpoint-60000 조합으로 end-to-end 1440 ep 합성 데이터 자동 생성 파이프라인 검증. 4-D variation matrix(task × ep × init_frame × seed)를 통해 held-out 720 ep에서 2× 양 산출 가능함을 확인.

chunks_size=10000 패치가 ep≥1000 케이스의 default가 되어야 함을 학습. P3+ 더 큰 스케일에도 그대로 적용 가능. Phase 4(Pi0.5 fine-tuning)에 바로 진입 가능한 합성 데이터 확보.

5 Next Steps

알려진 한계

  • action magnitude 60–70% real: Cosmos 출력 5.8s 짧고 부드러움 → IDM action도 약함. policy가 "약한 동작" 분포 학습 위험 → B2 real+synthetic mix로 mitigate
  • observation.state zero-pad: synthetic에 GT state 없음. Pi0.5 fine-tune 시 disable_proprioceptive_obs=true로 proprio 입력 끄기
  • episode length 93 frame vs real 200–500: 짧은 horizon task만 학습 신호 풍부. PnPCounterToCab 같은 다단계 task는 일부만 cover

Phase 4 — Pi0.5 Fine-tuning

  • B1 (synthetic-only): Keh0t0/dreamgen_robocasa_p2 1440 ep, lerobot/pi05_base, 20K step, 8 GPU, full fine-tune (visual+llm+action_expert)
  • B2 (real+synthetic mix): real heldout 720 ep + P2 1440 ep 50:50 weighting, proprio on
  • baseline B0: real heldout 720 ep only — synthetic 효과 측정 기준선
  • 평가 지표: 24 robocasa task 시뮬레이터 Success Rate (B0 vs B1 vs B2)