2026-04-30 분석(analysis-pixel_vs_latent_parity)에서 Latent-A v1 (single layer, block 27)이
Pixel v2_8gpu와 사실상 동등(131.8 vs 134.8 mm, MG-30 기준)임을 확인했다.
이전에 latent의 "2.5× 개선"으로 보였던 것은 batch 64 vs 1024 비교의 오해석이었다.
단일 layer feature의 한계를 극복하기 위한 첫 번째 시도로 multi-layer feature concat을 검증. Cosmos DiT 36-layer 중 mid-to-late 영역 3개(blocks 18, 24, 30)의 hidden state를 per-token으로 concat하여 action-relevant signal의 풍부도를 높이는 것이 목표.
선행 작업: v1 (block 27 single, 114.2 mm, 2026-04-28), v2 (action+state 동시 예측, 127.9 mm, 2026-04-30). 이번 v3은 v1 아키텍처에서 feature 추출 방식만 변경.
36-layer Cosmos DiT에서 전체의 50%, 67%, 83% 위치. AC-2 cosine similarity가 검증된 block 27(75%) 주변의 mid-to-late semantic 영역으로 선정. 전체 layer 사용 시 cache 비용이 너무 커서 3개로 한정.
| 옵션 | 설명 | 채택 | 이유 |
|---|---|---|---|
| A. concat per token | dim만 3× (15360) | ✅ 채택 | 가성비 최고, v1 코드 무수정 |
| B. stack separate tokens | N_tok 3× = 192, layer pos embed 가능 | 미채택 | attention KV 비용 3× 증가 |
| C. multi-stream | layer별 parallel head | 미채택 | model architecture 큰 변경 |
| D. learnable weighted sum | 3 scalar 학습 | 미채택 | 5120 dim 그대로, model capacity 작음 |
| 파일 | 역할 |
|---|---|
scripts/cache_cosmos_multi_layer_pooled_mg30.py | N layer hook → spatial pool → concat |
scripts/run_cache_multi_layer_pooled_mg30.sh | MG-30 train cache (4 GPU sbm) |
scripts/run_cache_multi_layer_pooled_heldout.sh | heldout cache |
IDM_dump/base_latent_A_cached_multi.yaml | yaml (latent_in_dim=15360만 변경) |
scripts/run_idm_train_robocasa_latent_A_multi_smoke.sh | 30-step smoke |
scripts/run_idm_train_robocasa_latent_A_multi_60k_8gpu.sh | 60K 본 학습 |
scripts/run_eval_latent_A_multi_24ep.sh | 24-ep eval |
Dataset은 v1 cached 그대로 재사용 가능. RobocasaLatentIDMDataset이 npz 로드 시
D 크기를 자동 감지(5120 → 15360)하므로 코드 변경 불필요.
| 트랙 | 데이터 | Steps | Train Loss | avg EEF mm | Gripper Acc | Leakage |
|---|---|---|---|---|---|---|
| Pixel B0 | MG-30 (batch 64) | 100K | 0.094 | 332 | — | 없음 |
| Pixel v2_8gpu | MG-30 (batch 1024) | 60K | — | 134.8 | — | 없음 |
| HF 공식 | MG-3000 | — | — | 113 | — | 미확인 |
| Latent-A v2 (action+state) | MG-30 | 60K | 0.0096 | 127.9 | 83.4% | 없음 |
| Latent-A v1 (single L27) | MG-30 | 60K | 0.0119 | 114.2 | 84.3% | 없음 |
| Latent-A v3 multi (L18,24,30) | MG-30 | 60K | 0.0114 | 110.9 | 86.2% | 없음 |
| Task | v1 single (mm) | v3 multi (mm) | Δ (mm) | 변화 |
|---|---|---|---|---|
| CloseDoubleDoor | 340.1 | 242.3 | −97.8 | 큰 개선 |
| OpenSingleDoor | 126.2 | 81.3 | −44.9 | 개선 |
| CoffeeSetupMug | 73.9 | 56.9 | −17.0 | 개선 |
| CoffeePressButton | 38.8 | 31.4 | −7.4 | 개선 |
| TurnOnStove | 28.4 | 37.7 | +9.3 | 약간 악화 |
| PnPSinkToCounter | 98.4 | 229.0 | +130.6 | 큰 악화 |
| PnPMicrowaveToCounter | 213.0 | 358.3 | +145.3 | 큰 악화 |
| 항목 | v1 single | v3 multi | 비율 |
|---|---|---|---|
| Cache 크기 (mg30 + heldout) | 28 GB | 84 GB | 3× |
| Cache 생성 시간 (4 GPU) | mg30 23min, heldout 45min | mg30 23min, heldout 45min | 동일 |
| Latent dim | 5,120 | 15,360 | 3× |
| 학습 throughput | 365 samples/s | 269 samples/s | −26% |
| 60K 학습 wall time | ~12–13 h | 9 h 15 min | 빠른 worker 이용 |
avg 3% 개선은 확인됐지만 비용 대비 marginal하고 task별 분산이 크다. 근본 원인으로 세 가지가 가능하다:
1. Layer 다양성 부족 — blocks 18, 24, 30은 모두 mid-to-late 영역(50~83%)이라 비슷한 abstraction level. {6, 18, 30, 35}처럼 더 다양한 spread가 필요할 수 있음.
2. Linear projection이 layer 정보를 보존 못함 — 15360 → 1024로 압축 시 layer-wise structure가 소멸. Layer-specific positional embedding이나 attention-based fusion이 필요.
3. Spatial resolution bottleneck — 4×4 spatial pool이 task-relevant detail(small object 위치 등)을 이미 심하게 압축. PnP 계열 악화의 원인이 spatial 정보 손실일 가능성 높음. multi-layer를 추가해도 같은 spatial 한계가 지속됨.
PnP 계열(Sink, Microwave) task에서 v3 multi가 v1 대비 +130~145 mm 악화. 원인 미확정 — small object 위치를 요구하는 task에서 4×4 spatial pool이 너무 거칠 가능성. 또는 15360 → 1024 linear projection이 PnP-relevant feature를 v1보다 더 많이 버릴 가능성.
multi-layer보다 spatial bottleneck이 더 critical하다는 가설 검증. 단일 layer(block 27)에서 pool을 4×4 → 8×8로 변경 → token 수 64 → 256, latent dim 5120 그대로. cache 크기 4×, GPU memory 증가 예상. 60K 재학습 필요.
현재 {18, 24, 30}에서 더 다양한 abstraction spread로 교체. early layer (block 6, ~17%)를 포함해 low-level texture/shape 정보 추가. cache 크기 동일(4 layer이면 20 GB × 4 = 80 GB), 60K 재학습 필요.
Phase 4 진입 — IDM 트랙과 병행하여 DreamGen P2 1440-ep synthetic data로 Pi0.5 policy fine-tuning. IDM 개선과 독립적으로 진행 가능. 사용자로부터 Pi0.5 코드 제공 대기 중.