RectifiedFlowAB2Scheduler 사용 → paper Eq.25–27 SDE 변환 그대로 적용 가능. W2 최대 risk 사전 해소.LGM_DA3 Phase-B 학습이 사실상 마무리 단계(DA3-v2 sigmoid loss 0.085, step ~9.7K)에 진입하면서, 다음 단계인 paper Phase 2 = RL fine-tuning 준비가 필요해졌다. 단순히 알고리즘 하나를 돌리는 게 아니라, flow-grpo와 diffusionNFT를 동일 인프라 위에서 비교하는 것이 1차 목표다.
VBench 등 일반 T2V 벤치는 제외 (robot wrist/ego-view 도메인에서 의미 약함).
| Reward | 출처 | 1차 weight | ablation |
|---|---|---|---|
MotionSmoothness | paper Eq.11–13, 3 cam 평균 | 1.0 | 고정 |
GeoConsistency | paper Eq.14–15, 3-view top-3 worst | 1.0 | 고정 |
CrossViewConsistency (NEW) | DA3 cross-view triangulation residual | 0.0 (1차) | 0/0.5/1.0 sweep |
external/Flow-Factory/를 submodule + 고정 SHA로 붙이고, 다음 파일을 우리 레포에 추가:
| 결정 항목 | 채택 | 이유 |
|---|---|---|
| Base 모델 | Cosmos-Predict2-2B robocasa-MG30 | LGM_DA3 학습 분포와 완전 일치 (216×384, 3 cam) |
| FF 통합 방식 | submodule + custom adapter | A/B 신뢰도 최고, flow-grpo/NFT 공통 인프라 |
| View 사용 | 4-quadrant → TL/TR/BL 3 cam | BR(inactive)은 RL이 학습 분포로 유지 |
| Group K | K=8 시작 → 메모리 후 K=16 | paper K=64는 1.3B 기준; 2B+93f+768×432로 K↓ 불가피 |
| EDM risk | 해소 | Cosmos가 이미 RectifiedFlowAB2Scheduler — SDE 변환 그대로 |
| xview reward | w=0 시작, 0.5/1.0 ablation | 3-cam 동시 입력의 특권; 1차는 기본 reward로 smoke |
| Run | Algorithm | CrossView weight | 목적 |
|---|---|---|---|
| Run 1 | flow-grpo | 0.0 | baseline A |
| Run 2 | flow-grpo | 0.5 | xview 약한 영향 |
| Run 3 | flow-grpo | 1.0 | xview 강한 영향 |
| Run 4 | diffusionNFT | 0.0 | baseline B |
| Run 5 | diffusionNFT | 0.5 | xview 약한 영향 |
| Run 6 | diffusionNFT | 1.0 | xview 강한 영향 |
RectifiedFlowAB2Scheduler임이 드러나 해소. paper Eq.25–27 SDE 변환 그대로 적용 가능.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 최종 비교에서 확인한다.
| Week | 작업 | Success gate |
|---|---|---|
| W1 | FF submodule + Cosmos pseudo-pipeline 뼈대 + encode_prompt/encode_image | T5 embed shape OK, image latent shape OK |
| W2 | inference()/forward() + 단일 sample 생성 | mp4 1개 정상 생성, latent [1,16,24,54,96] 확인 |
| W3 | LGM_DA3 wrapper + 4-quadrant split + 3 reward + smoke K=4 | 1 step optimize 통과, wandb log 잡힘 |
| W3 gate | 1차 success gate — single-prompt smoke 통과 여부로 전체 설계 검증 | |
| W4 | flow-grpo full 1K step + memory profile → K 결정 | reward 곡선 + memory peak 측정 |
| W5 | diffusionNFT full 1K step → A/B 첫 비교 차트 | 두 트랙 reward 곡선 나란히 |
| W6 | xview ablation (3 weight × 2 algo = 6 run) + 외부 epipolar eval | 최종 비교 표 |
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