Index
2026-05-05 — Experiment

Sealed RoboCasa 3-track Ablation 시작

VGGRPO | Any4D / DA3-v1 / DA3-v2-sigmoid 동시 fresh start (sealed data)

TL;DR

0.332
Any4D loss @2000
0.937
DA3-v1 loss @2251
0.374
DA3-v2 loss @~800
3000
sealed demos

1 배경/목적 (왜)

이전 RoboCasa 학습 데이터(v0.1_216x384_depth/)는 infinity / far-plane 영역이 depth에 그대로 포함되어 있었다. depth_max=5.0 마스킹으로 임시 우회했지만, 유효 depth 비율이 낮아 loss 품질이 저하될 위험이 있었다.

RoboCasa 측에서 clean 버전(sealed)을 제공함에 따라 ∞ depth 제거된 데이터(v0.1_216x384_depth_sealed/)로 전면 재시작. 동시에 loss 설계가 다른 세 트랙(Any4D, DA3-v1, DA3-v2-sigmoid)을 동일 데이터/동일 batch size로 동시 실행하여 공정 비교 ablation을 세팅.

이전 데이터: depth_max=5.0 마스크로 우회 → 불완전. Sealed 데이터에서는 마스크가 무해(유효 depth 비율 향상 기대).

2 작업 내용 (어떻게)

Step 1 — 전처리 (cam_cache)

sealed 데이터셋 경로를 학습/전처리 스크립트 전체에 업데이트 (preprocess_robocasa_pnp_microwave.sh, train_lgm_robocasa_v0.sh, train_lgm_robocasa_da3_v0.sh, train_lgm_robocasa_da3_v0_lossv1.sh). 4개 sbmr 슬라이스(4931+4941+4942+4943)로 병렬 전처리, PREEMPT 다수 발생 후 최종 완료. cam_cache 3000/3000 demos 생성.

preprocess dependency가 PREEMPTED 잡에 묶여 stuck → scontrol update Dependency=로 수동 제거 후 학습 잡 직접 시작.

Step 2 — 구 실험 archive

LATEST 자동 검출이 새 잡으로 향하도록 구 학습 dirs를 archive_* prefix로 rename:

archive_lgm_robocasa_any4d_olddata_0425_1315 # 이전 Any4D archive_lgm_robocasa_da3_v1_olddata_0430_1822 # 이전 DA3 v1 archive_lgm_robocasa_da3_v2sig_olddata_0502_0951 # 이전 DA3 v2 sigmoid (sealed 전) archive_lgm_robocasa_da3_v0_softplus_0501_0443 # DA3 v2 softplus (실패)

Step 3 — 3-track 동시 제출

own QOS 한도 8 GPU/user → 2개만 own에 배치, 3번째는 sub partition으로 분리:

Job트랙QOSLauncher실험 dir
5636Any4Dcore-owntrain_lgm_robocasa_v0.shlgm_robocasa_v0_0504_0352
5637DA3-v1 (자체 loss)core-owntrain_lgm_robocasa_da3_v0_lossv1.shlgm_robocasa_da3_v0_lossv1_0504_0353
5640DA3-v2 sigmoid (paper §3.2)core-on-subtrain_lgm_robocasa_da3_v0.shlgm_robocasa_da3_v0_lossv2_0504_0354

모두 4 GPU DDP (--gres=gpu:4 -c 56 --mem 800GB), sbmr 5x retry 활성.

3 결과 (수치)

Any4D — step 2000

steptotal lossdepthposesf
01.2760.9030.3650.017
9900.4000.3000.0970.007
19900.3980.2520.1100.071
20000.3320.2580.0670.015
초기 1.276 → 2000 step에서 0.332 (−74%). depth 주도 수렴, pose도 0.365→0.067. 안정적 하강.

DA3-v1 (자체 loss) — step 2251

steptotaldepthray_originray_dirrottransscale
13980.9070.0791.4490.0710.0260.0421.378
15981.2990.0672.2900.0520.0320.0291.584
17981.3410.0602.4140.0420.0250.0281.749
19981.3960.0492.5760.0370.0190.0211.647
22510.9370.0731.5760.0540.0230.0261.364
depth(0.073)·rot(0.023)·trans(0.026)은 수렴 중이나 ray_origin이 1.4~2.6 사이를 진동하며 total loss를 주도. scale 변동(1.36~1.75)도 동반. step 2000까지 안정 수렴 미달.

DA3-v2 sigmoid (paper §3.2) — step ~800

step(approx)totalL_DL_ML_PL_CL_gradscale
5000.4780.0570.1800.1340.1060.0034.40
5360.5180.0730.2360.1140.0920.0034.29
6100.7150.0940.3270.1420.1470.0053.25
7360.2340.0360.0980.0550.0430.0035.16
~8000.2780.0430.1180.0530.0610.0034.54
sub partition 반복 preemption으로 실제 학습 step이 ~800에 그침 (5640→5878→5989→6103). 각 재시작마다 resume은 되나 진행이 느림. scale 3.25~5.16 진동은 per-clip GT normalization 배치 변동으로 예상 (이전 context에서 1.05~1.65 관찰됨 — v2에서 더 큰 폭).

3-track 비교 요약

트랙steptotal loss주요 issueviz 최대
Any4D20000.332없음 (안정 수렴)step_1300.png
DA3-v2 sigmoid~8000.374sub preemption → 학습 지연step_500.png
DA3-v122510.937ray_origin 진동 (1.4~2.6)step_1300.png

4 Takeaway

Sealed 데이터로의 전환은 전처리 레벨에서 성공. 3000 demos cam_cache 완료, 3개 트랙 모두 정상 시작. 초기 2000 step에서 Any4D(0.332)와 DA3-v2(0.374)는 유사한 절대 loss 수준이나, DA3-v1은 ray_origin이 unstable하여 비교 기준으로서 신뢰도가 낮음.

🔍 분석

DA3-v1 ray_origin 항이 2000 step에서도 1.4~2.6 사이를 진동하는 것은 per-clip 1-scale alignment의 한계로 보임. LGM connector가 출력하는 ray origin 분포와 GT 간 scale ambiguity가 single scalar로 완전히 해소되지 않는 경우. DA3-v2의 경우 GT-side scale normalization(mean ‖P‖₂)으로 이 문제를 일부 완화하나, scale 변동(3.25~5.16)이 크게 나타나 배치 내 normalization 안정성 평가 필요.

Any4D 안정 수렴은 monocular depth를 쓰므로 scale 개념이 단순(per-clip LS fit만)한 덕분일 수 있음 — 절대적 우위라 결론 짓기엔 아직 이름.

3-track 동시 ablation 세팅 완료. 동일 sealed data, 동일 4-GPU DDP, 동일 batch — 공정 비교 조건 확보.

5 Next Steps