Index
2026-07-23 — Experiment

VGGT-Ω LGM Wrist-가중 Depth Loss (a5) 학습 진행

VGGRPO | Cosmos VAE · DINOv2 stitch · view_weights_depth=1,1,2.5 · job 50443→53369

TL;DR

22.6K
/ 50K step
0.94
최근 loss avg
6
연속 preempt
4
GPU (extra)

1 배경 / 목적

VGGT-Ω LGM(Cosmos VAE, DINOv2 stitch, 260706~ Cosmos-norm 트랙)의 이전 loss config(a1, 260714 시작)에서 학습된 checkpoint를 scripts/diagnose_wrist_gap.py로 진단한 결과, off-the-shelf raw-RGB VGGT-Ω는 wrist view depth를 잘 잡는데 LGM은 wrist view에서 유독 성능이 떨어지는 현상(wrist gap)이 확인됐다. 진단 스크립트는 (1) VAE reconstruction L1, (2) latent per-channel 분포, (3) view별 L_reg/L_cam loss 기여도 3가지를 분리 측정해 원인을 좁히는 구조이며, wrist view가 loss에 과소 기여하는 per-view 밸런싱 문제로 추정됐다.

기존 한계: depth loss가 3-cam(agent×2 + wrist)을 동일 가중치로 합산하면서 wrist가 상대적으로 적은 gradient를 받아 LGM이 wrist depth를 학습하지 못하는 구조적 불균형이 a1 config까지 계속 남아 있었다.

2 작업 내용

diagnose_wrist_gap.py 결과를 바탕으로 depth loss의 per-view weight를 파라미터화하고, wrist(3번째 view)만 2.5배 가중한 a5 config로 fresh start했다. 260721 10:25 최초 시작(job 이력상 실제 step 0 기록은 job 50443) 이후, extra QOS 특성상 own QOS job 유입 때마다 즉시 preempt되는 패턴이 반복돼 260722~23 사이 총 7개 sbatch job(1 fresh start + 6 resume)으로 이어붙여 진행했다.

exp: lgm_robocasa_vggt_v0_cosmos_dino4_a5_0721_1025 script: scripts/train_lgm_robocasa_vggt_v0.sh (VAE_TYPE=cosmos STITCH_TYPE=dino LOSS_TAG=a5) LOSS_ARGS: --w_cam 1.0 --w_depth 5.0 --grad_scales 1 --alpha_conf 0.0 --gamma_conf 1.0 --view_weights_depth 1,1,2.5 NUM_FRAMES=8, MAX_STEPS=50000, checkpoint 저장 간격 500 step sbatch: --gres=gpu:4 -c 32 --mem 800GB --qos=extra (own QOS job 유입 시 preempt 대상)

Job 진행 이력 (모두 workdir=VGGRPO, qos=extra)

Job시작(step)종료(step)Elapsed결과
504430 (fresh)18502h25mPREEMPTED
507171500 (resume)40503h19mPREEMPTED
51181400060502h43mPREEMPTED
5131260001440010h31mPREEMPTED (최장 구간)
5293614000141500h20mPREEMPTED (즉시 재선점)
5298314000186505h54mPREEMPTED
533691850022.6K+ (진행중)5h08m+RUNNING

체크포인트가 500-step 간격으로 저장되기 때문에 매 preempt마다 최대 500 step(수 분 분량)만 재계산하면 됐고, 전체 30h+ wall time 동안 실질적인 step 손실은 미미했다.

3 결과

Step rangeBucket 평균 loss비고
0 – 2K3.33fresh start, T/R/FL/conf 항 모두 큼
2K – 6K2.03급격 하강 구간
6K – 10K1.5251312 job 초반
10K – 14.5K1.2251312 job 후반, 10.5h 무선점 구간
14.5K – 18.5K1.0852936/52983 재개 구간
18.5K – 22.7K0.9453369 진행 중(최신)
수렴 확인: per-step raw loss는 0.4~1.5 사이로 노이즈가 크지만(단일 batch, conf-weighted라 outlier에 민감), 2K-step bucket 평균은 3.33→0.94로 매 구간 단조 하강 — a1 대비 wrist 가중이 학습을 불안정하게 만들지는 않는 것으로 보임.
미확인: 아직 wrist view 단독 depth error(per-view breakdown)를 이 checkpoint로 재측정하지 않아, a5 가중이 실제로 wrist gap을 줄였는지는 step 22.6K 시점에서 정량 확인되지 않은 상태.

4 Takeaway

의미

500-step 체크포인트 + self-resume 흐름이 extra QOS의 잦은 preempt(총 6회, 최단 20분 만에 재선점된 사례 포함)에도 GPU 시간 손실을 사실상 없앤 것을 재확인했다. loss trend 자체는 a1과 유사한 초반 급락 패턴을 보이고 있어, wrist 가중이 학습 자체를 망가뜨리지 않았다는 정도까지는 확인됐지만, 이 실험의 실질 목적(wrist depth 정확도 개선)은 완주 후 diagnose_wrist_gap.py 재실행으로만 검증 가능하다.

5 Next Steps

미해결 한계

a5 checkpoint로 diagnose_wrist_gap.py의 3가지 per-view 진단(VAE recon L1 / latent stats / L_reg,L_cam breakdown)을 아직 재실행하지 않음 — wrist 가중이 실제 효과가 있는지는 미검증. 또한 context.md가 260709 시점에 멈춰 있어 a1→a5 loss-tuning 시리즈 전체(37233/37399 완주 여부 포함)가 프로젝트 문서에 반영되지 않은 상태.

다음 실험

(1) step 50K 완주 대기 (extra QOS 기준 잔여 ~27.4K step, 최근 처리량 감안 시 추가 1.5~2일 예상). (2) 완주 후 diagnose_wrist_gap.py로 a1 대비 wrist view L_reg/AbsRel 개선폭 정량 비교. (3) context.md의 Active Experiments 섹션을 a5 기준으로 갱신하고 a1~a4 loss-tuning 이력을 research.md 또는 plan.md에 정리.