← 목록으로
2026-06-30 · VGGRPO · experiment

VGGT-Ω stitch layer 탐색 — ℓ̂=2 결정

Closed-form ridge regression으로 Conv3d init 최적 layer 결정 (job 29986, 59분)

TL;DR

2
Best layer (ℓ̂)
7.61e-3
Best MSE
24
Aggregator depth
1024
embed_dim
59m
Job 29986 runtime

1 배경/목적 (왜)

VGGT-Ω를 Phase 4 reward backbone으로 채택하기로 결정(260629)한 뒤, LGM connector 통합 경로를 위해 어느 Aggregator block에서 feature를 뽑아야 하는지(stitch layer ℓ̂) 결정이 필요했다.

기존 DA3 트랙에서 find_stitch_layer_da3.py로 closed-form ridge regression 방법을 사용해 ℓ̂=6을 결정한 것과 동일한 방식으로, VGGT-Ω Aggregator에 적용. 목표는 "Conv3d(VAE latent 16ch → VGGT-Ω feature 1024ch)가 어느 layer를 모방하도록 초기화하면 최소 MSE인가".

DA3(vitl, depth=12+12 alt, stitch at 6 = alt_start=8 직전)와 VGGT-Ω(24 alternating blocks)는 구조가 달라 단순 비교 불가. 각자 탐색 필요.

VGGT-Ω Aggregator 구조

2 작업 내용 (어떻게)

scripts/find_stitch_layer_vggt.py 작성. DA3 버전과 동일한 closed-form 3-pass 알고리즘이나 VGGT-Ω native API에 맞게 재구성:

핵심 설계 결정

Job: 29986 (own QOS, 1 GPU B200, -c 8, --mem 200GB) Runtime: 00:59:32 COMPLETED 데이터: 24 HDF5 (RoboCasa 24 task), 3 clips train / 10 clips eval per HDF5 → train 72 clips × 3 cam = 216 cam-clips → eval 240 clips × 3 cam = 720 cam-clips (MSE 평가) n_rows_total: 5,370,624 VGGT-Ω: depth=24, embed_dim=1024, patch_token_start=17 Layers probed: [2, 4, 6, 8, 10, 12, 14, 16, 18, 20] Ridge: 1e-4

3-Pass 알고리즘

3 결과 (수치)

Layer (ℓ)Eval MSE ↓비고
27.61e-3← BEST
49.26e-3+22%
61.00e-2+32%
81.18e-2+55%
101.61e-2+112%
124.38e-2+476%
141.60e-1+2002%
165.06e-1×66
181.07e+0×141
201.12e+0×147 (worst)
Best ℓ̂=2: MSE 7.61e-3. Layer가 깊어질수록 단조 증가 → layer 2/24가 VAE latent와 선형 정합이 가장 좋음. Layer 12 이후 급증(elbow at ~10).

DA3 vs VGGT-Ω stitch layer 비교

DA3(vitl, best=6)는 alt_start=8 직전 — cross-view attention이 섞이기 전 per-cam feature가 최적. VGGT-Ω(best=2)는 훨씬 앞쪽: Aggregator의 초반 frame_block이 공간 geometry에 가장 직접 대응. 더 깊이 가면 inter-frame attention이 feature를 task-specific하게 변형시켜 VAE latent와 선형 정렬이 깨진다고 해석할 수 있음. 두 backbone의 정보 추출 방식 차이 반영.

저장 결과

experiments/stitch_search_vggt/ conv3d_init_layer2.pt ← 채택 (best) conv3d_init_layer4.pt conv3d_init_layer6.pt ... (10 layers 전부 저장됨) best_layer.json ← {"best_layer": 2, "mse_per_layer": {...}} mse_curve.png ← MSE vs layer plot

4 Takeaway

5 Next Steps