260511에 작성한 초기 Phase 2 plan (plan-vggrpo_phase2_rl.md)은 Wan2.1-T2V-1.3B (paper baseline)을 거쳐
Cosmos-Predict2-2B (robocasa finetune iter_000073200.pt)를 base로 확정했다.
그러나 동일 세션에서 핵심 문제가 발견됐다: LGM_DA3는 RoboCasa 216×384 T-layout 3-cam 분포로 학습됐는데,
Cosmos-Predict2는 4-quadrant 출력이고 BR (하단 우)가 항상 inactive이다. 이 layout은 DreamZero-DROID가 사용하는
T-layout (top=wrist 2×wide, bottom=L/R ext)과 정확히 일치한다.
DreamZero-DROID는 NVIDIA Wan2.1-I2V-14B + robocasa MG-30 finetune (job 56237 video-only / 56238 action+video)로, 이미 우리 lab에서 운용 중이다. Flow-Factory가 wan21 i2v adapter를 이미 보유하고 있어 Cosmos pseudo-pipeline wrapper 작성 비용(16 task)이 대폭 사라진다.
| 항목 | 구안 (Cosmos-Predict2-2B) | 채택 (DreamZero-DROID) |
|---|---|---|
| Base 모델 | Cosmos-Predict2-2B, iter_000073200.pt | Wan2.1-I2V-14B + MG-30 finetune job 56237 (video-only) / 56238 (action+video) |
| FF adapter | 신규 작성 (CosmosV2WAdapter) — 16 tasks | 기존 wan21_i2v adapter 재활용 — 7 tasks |
| Layout | 4-quadrant (BR=inactive), 432×768 | T-layout 3-cam (top=wrist 2×wide, bottom=L/R ext), 216×384 per view |
| LGM_DA3 분포 일치 | 부분 일치 (quadrant crop 필요) | 정확히 일치 (동일 cam convention) |
| LoRA 처리 | 기존 r=16 merge → fresh r=32/α=64 | 동일 (기존 finetune LoRA merge 후 새 r=32 얹기) |
| ckpt 상태 | 이미 보유 (iter 73.2K) | 5K step ckpt 대기 중 (5월 12–13일 예정) |
Cosmos pseudo-pipeline wrapper (pipeline.py, sample.py, adapter.py, sde.py, registry.py) 작성 작업 5 task가 삭제된다.
대신 wan21 i2v adapter를 상속해서 DreamZero 특화 부분(ckpt 로딩, T-layout 처리, LoRA attach 방식)만 override하는 DreamZeroDROIDAdapter 1개로 대체.
T5-XXL encoder, SDE step 로직, LoRA API는 모두 wan21 reference에서 재사용.
DreamZero finetune이 두 트랙으로 진행 중이므로 RL base를 두 버전 모두 시험할 수 있다. action+video (job 56238)는 robot action token을 conditioning에 포함하므로, reward-driven fine-tune 시 action consistency가 추가 제약으로 작동하는지 확인할 수 있다.
| Ablation 축 | 값 | 비고 |
|---|---|---|
| Algorithm | flow-grpo / diffusionNFT | 2 track |
| CrossViewConsistency weight | 0.0 / 0.5 / 1.0 | 3 levels |
| Base finetune (NEW) | video-only (56237) / action+video (56238) | 2 variants |
전체 조합: 2 × 3 × 2 = 12이지만, 1차에서는 video-only base × 2 algo × xview=0/1.0 = 4 run으로 시작 후 action+video와 xview=0.5는 2차 sweep으로 예비.
| Job | 설명 | 목표 step | 예상 완료 |
|---|---|---|---|
56237 | Wan2.1-I2V-14B + MG-30 video-only finetune | 5K | 5월 12–13일 |
56238 | Wan2.1-I2V-14B + MG-30 action+video finetune | 5K | 5월 12–13일 |
train_lgm_robocasa_da3_v0.sh (share QOS, 4 GPU) 누적 선점 횟수 8회,
job 1594 현재 약 6시간 52분 RUNNING.
수렴 수치는 아직 미수집 (job 종료 후 별도 분석 예정).
| 발견 항목 | 내용 | 영향 |
|---|---|---|
| Scheduler 타입 | RectifiedFlowAB2Scheduler (KDPM2 상속) — EDM 아님 | W2 risk 해소 |
| Prediction 방식 | x0-prediction (x0_pred) | paper v-pred과 algebra 변환만 |
| VAE 명칭 | Cosmos는 VAE를 tokenizer라 부름 | pseudo-pipeline wrap 시 주의 |
| LoRA API | Predict2Video2WorldModel.add_lora_to_model() 이미 구현 | 별도 PEFT 불필요 |
Cosmos-Predict2가 EDM이 아닌 rectified flow를 사용한다는 발견으로 초기 W2 risk가 해소됐다. 그럼에도 DreamZero-DROID 채택은 스케줄러 호환성이 아닌 도메인 분포 일치 이유로 결정됐다.
이 전환의 본질은 "adapter 작성 비용 vs 분포 일치 이득"의 트레이드오프에서 분포 일치를 선택한 것이다. Cosmos-Predict2의 scheduler risk가 해소됐음에도 DreamZero-DROID를 채택한 이유는:
| 작업 | 조건 | 담당 |
|---|---|---|
| DreamZero ckpt 5K step 확인 | job 56237/56238 완료 후 | 5월 12–13일 |
| DA3 v0 학습 결과 확인 | job 1594 완료 후 loss curve 분석 | job 종료 시 |
| FF submodule 추가 + DreamZeroDROIDAdapter 뼈대 | DreamZero ckpt 확인 후 착수 | Sub-plan #1 T1 |
| Week | 작업 | Success gate |
|---|---|---|
| W1 (이번 주) | FF submodule + DreamZeroDROIDAdapter 뼈대, ckpt 로딩, T-layout split | T5 embed shape OK, image latent shape OK |
| W2 | inference() 완성 + smoke: 단일 prompt + init image → mp4 1개 생성 | mp4 정상, latent shape 확인 |
| W3 | LGM_DA3 bridge + 3 reward + smoke K=4 1 step | reward 곡선 + wandb log |
| W4 | flow-grpo 1K step + memory profile → K 결정 | reward 상승 + GPU memory peak 측정 |
| W5 | diffusionNFT 1K step → A/B 비교 첫 차트 | 두 트랙 reward 곡선 나란히 |
| W6 | video-only vs action+video ablation + xview weight sweep + epipolar eval | 최종 8-run 비교 표 |