Index
2026-05-10 — Plan

VGGRPO Phase 2 RL Fine-tuning 설계 확정

VGGRPO | Cosmos-Predict2-2B base + Flow-Factory adapter + 6-run ablation matrix

TL;DR

2B
Base 모델
73.2K
Base iter
6
Ablation runs
6W
마일스톤
8~16
Group K

1 배경 / 목적

LGM_DA3 Phase-B 학습이 사실상 마무리 단계(DA3-v2 sigmoid loss 0.085, step ~9.7K)에 진입하면서, 다음 단계인 paper Phase 2 = RL fine-tuning 준비가 필요해졌다. 단순히 알고리즘 하나를 돌리는 게 아니라, flow-grpo와 diffusionNFT를 동일 인프라 위에서 비교하는 것이 1차 목표다.

초안 가정 파기: 최초 plan은 Wan2.1-T2V-1.3B 기준으로 작성됐으나, LGM_DA3가 RoboCasa 216×384 3-cam GT로 학습됐기 때문에, 같은 도메인의 Cosmos-Predict2-2B (robocasa-MG30 finetuned)를 base로 써야 OOD 부담이 없다는 결론에 도달.

1차 성공 기준

VBench 등 일반 T2V 벤치는 제외 (robot wrist/ego-view 도메인에서 의미 약함).

2 작업 내용

A. Base 모델 확정

모델: Cosmos-Predict2-2B (predict2_video2world_fsdp_2b_480p_16fps) 체크포인트: .../posttraining/video2world/2b_groot_robocasa_mg30_480/checkpoints/model/iter_000073200.pt 입력: 1 image (832×480 stitched 2x2 grid first frame) + text prompt 출력: 93 frame, 16 fps, 5.8s → resize 후 432×768 (quadrant당 216×384) VAE: 16ch, 8× spatial / 4× temporal → latent [1, 16, 24, 54, 96] 기존 LoRA r=16/α=16 → base에 merge 후 fresh r=32/α=64 RL용 LoRA 신규

B. 4-quadrant → 3-cam 분리 파이프라인

Cosmos-Predict2-2B + LoRA(r=32, α=64) → K group SDE sampling (K=8~16, T_train=10) → latent z₀^k [1, 16, 24, 54, 96] → VAE decode → RGB [1, 3, 93, 432, 768] → quadrant crop: TL (left side cam) = [..., 0:216, 0:384] TR (right side cam) = [..., 0:216, 384:768] BL (wrist eef cam) = [..., 216:432, 0:384] BR = drop (inactive) → views = [left, right, wrist] shape [3, 3, 93, 216, 384] → LGM_DA3.forward(views) ← 학습 분포 완전 일치 → {C_i, D_i, P_i, F_i}^3 → 3 reward → group-relative advantage A^k → flow-grpo loss / diffusionNFT loss

C. Reward 구성

Reward출처1차 weightablation
MotionSmoothnesspaper Eq.11–13, 3 cam 평균1.0고정
GeoConsistencypaper Eq.14–15, 3-view top-3 worst1.0고정
CrossViewConsistency (NEW)DA3 cross-view triangulation residual0.0 (1차)0/0.5/1.0 sweep

D. Flow-Factory adapter 구현 단위

external/Flow-Factory/를 submodule + 고정 SHA로 붙이고, 다음 파일을 우리 레포에 추가:

src/rewards_ff/cosmos_v2w_sample.py — CosmosVideo2WorldSample(BaseSample) src/rewards_ff/cosmos_v2w_adapter.py — CosmosVideo2WorldAdapter(BaseAdapter) └ load_pipeline / encode_prompt / encode_image / inference / forward 6개 메서드 src/rewards_ff/lgm_runner.py — group 단위 LGM_DA3 호출 + caching src/rewards_ff/motion_smoothness.py — PointwiseRewardModel (Eq.11–13) src/rewards_ff/geo_consistency.py — PointwiseRewardModel (Eq.14–15) src/rewards_ff/xview_consistency.py — CrossViewConsistency (NEW) configs/rl/flow_grpo_cosmos2b.yaml configs/rl/nft_cosmos2b.yaml

E. 핵심 하이퍼파라미터

LoRA rank/alpha
r=32, α=64
Group size K
8~16 (메모리 측정 후)
T_train / T_infer
10 / 40
LR / wd
1e-4 / 1e-4
grad_clip
1.0
GRPO kl_beta
0.004
NFT ema.decay
0.999
Scheduler
RectifiedFlowAB2

3 결정사항 요약

결정 항목채택이유
Base 모델Cosmos-Predict2-2B robocasa-MG30LGM_DA3 학습 분포와 완전 일치 (216×384, 3 cam)
FF 통합 방식submodule + custom adapterA/B 신뢰도 최고, flow-grpo/NFT 공통 인프라
View 사용4-quadrant → TL/TR/BL 3 camBR(inactive)은 RL이 학습 분포로 유지
Group KK=8 시작 → 메모리 후 K=16paper K=64는 1.3B 기준; 2B+93f+768×432로 K↓ 불가피
EDM risk해소Cosmos가 이미 RectifiedFlowAB2Scheduler — SDE 변환 그대로
xview rewardw=0 시작, 0.5/1.0 ablation3-cam 동시 입력의 특권; 1차는 기본 reward로 smoke

6-run Ablation Matrix

RunAlgorithmCrossView weight목적
Run 1flow-grpo0.0baseline A
Run 2flow-grpo0.5xview 약한 영향
Run 3flow-grpo1.0xview 강한 영향
Run 4diffusionNFT0.0baseline B
Run 5diffusionNFT0.5xview 약한 영향
Run 6diffusionNFT1.0xview 강한 영향
EDM risk 사전 해소: 초기 plan에서 "EDM → rectified flow SDE 변환 별도 1일 research 필요"로 분류했던 W2 최대 risk가, Cosmos source 확인으로 RectifiedFlowAB2Scheduler임이 드러나 해소. paper Eq.25–27 SDE 변환 그대로 적용 가능.

4 Takeaway

LGM_DA3 완성 → RL 진입 준비 완료

DA3-v2 sigmoid loss 0.085 (step ~9.7K)로 Phase-B가 수렴 궤도에 오른 상태에서, RL fine-tuning 설계가 완료됐다. Base 모델을 Cosmos-Predict2-2B robocasa로 확정함으로써 LGM_DA3 학습 분포와 RL fine-tune 입력 분포가 정확히 일치하는 구조를 확보했다. 이는 reward signal의 OOD 부담을 제거하고, phase transition 없이 바로 reward 피드백이 유효하게 작동할 수 있는 조건을 만든다.

Flow-Factory submodule + Cosmos adapter 패턴은 flow-grpo / diffusionNFT를 YAML 1개 차이로 전환 가능하게 하여, A/B 실험 신뢰도를 확보한다. CrossViewConsistency reward는 w=0 ablation leg로 일단 꽂아두고, 3-cam 동시 입력이라는 구조적 우위를 활용할 수 있는지를 W6 최종 비교에서 확인한다.

5 Next Steps

W1~W6 마일스톤

Week작업Success gate
W1FF submodule + Cosmos pseudo-pipeline 뼈대 + encode_prompt/encode_imageT5 embed shape OK, image latent shape OK
W2inference()/forward() + 단일 sample 생성mp4 1개 정상 생성, latent [1,16,24,54,96] 확인
W3LGM_DA3 wrapper + 4-quadrant split + 3 reward + smoke K=41 step optimize 통과, wandb log 잡힘
W3 gate1차 success gate — single-prompt smoke 통과 여부로 전체 설계 검증
W4flow-grpo full 1K step + memory profile → K 결정reward 곡선 + memory peak 측정
W5diffusionNFT full 1K step → A/B 첫 비교 차트두 트랙 reward 곡선 나란히
W6xview ablation (3 weight × 2 algo = 6 run) + 외부 epipolar eval최종 비교 표

미해결 한계 / 리스크

  • K=8~16에서 advantage 분산 ↑: paper K=64 대비 표본 수 1/4~1/8. variance reduction (reward baseline EMA 등) 검토 필요.
  • CrossViewConsistency 정의 3후보: triangulation residual / point cloud agreement / DA3 cross-view attention map — W3 smoke 시 비교 결정.
  • VAE decode 비용: 93-frame decode 비용이 높으면 latent에서 직접 LGM 호출로 전환 검토 (reward 비용 측정 후 결정).
  • LGM_DA3 최종 확정 선행 필요: DA3-v2 step 9.7K → 15K 수렴 확인 후 RL 진입 권장. 현재 RL은 설계 완료, 구현 시작 가능.

즉시 시작 가능 작업 (W1)

  • git submodule add <Flow-Factory URL> external/Flow-Factory + SHA 고정
  • src/rewards_ff/cosmos_v2w_sample.py — BaseSample 서브클래스, shared_fields 정의
  • src/rewards_ff/cosmos_v2w_adapter.py — load_pipeline(): Predict2Video2WorldModel wrap, dit/vae/text_encoder/scheduler attribute 노출
  • encode_prompt(): T5-XXL CosmosTextEncoder, len=512, dim=1024