Index
2026-06-11 — Experiment

3-track 학습 진행 현황 (260611)

VGGRPO | Any4D CRASH · DA3-v2 45.9K · DA3-v1 48.4K

TL;DR

Any4D
47.5K
last ckpt
45.9K
DA3-v2 step
≈0.08
DA3-v2 loss
48.4K
DA3-v1 step
~90°
DA3-v1 ro

1 배경/목적

24-task RoboCasa 전체 데이터셋에 대한 3-track ablation: Any4D (frozen monocular backbone + Phase-B connector), DA3-v2 (multi-view backbone + paper-aligned loss v2), DA3-v1 (multi-view backbone + 자체 설계 loss v1). 각 트랙 50K step 목표, backbone의 cross-view attention 유무와 loss 설계 차이가 수렴 품질에 미치는 영향 측정.

어제(260609) 마지막 카드 기준: Any4D 47.3K·DA3-v2 38.3K·DA3-v1 40.9K. 오늘(260611) Any4D job이 Jun 9 재시작 직후 크래시 → 현재 중단 상태. DA3 두 트랙은 RUNNING 중 (job 11853 / 11869).

2 작업 내용

Any4D — job 11851 크래시 분석

Jun 9 10:53 UTC, phaseB_47500.pt에서 resume하여 재시작. DDP 4 rank가 동시에 torch.hub.load("facebookresearch/dinov2", ...) 호출 → 각 rank가 _get_cache_or_reload() 내에서 shutil.rmtree()로 기존 zip 캐시 삭제 시도. rank 2가 삭제 경쟁에서 패배, OSError: [Errno 39] Directory not empty: facebookresearch-dinov2-7764ea0/로 abort. rank 1은 SIGTERM(-15)로 종료. 총 런타임 1분 미만.

[rank2]: File ".../torch/hub.py", line 127, in _remove_if_exists shutil.rmtree(path) File ".../shutil.py", line 729, in rmtree os.rmdir(path) OSError: [Errno 39] Directory not empty: '/home/nas_main/taewoongkang/.cache/torch/hub/facebookresearch-dinov2-7764ea0/' Root Cause: rank 2 exitcode=1 (2026-06-09_10:54:28)
근본 원인: torch_hub_force_reload=False임에도 캐시가 없거나 불완전한 경우 hub가 재다운로드를 시도. 4 rank가 동시에 같은 zip→dir 압축 해제·삭제를 하면서 충돌. 마지막 체크포인트 phaseB_47500.pt는 NAS에 보존됨.

DA3-v2 — job 11869 (lossv2, RUNNING)

어제 38.3K → 오늘 45.9K (+7.6K, ~1.6일). v2 loss 구성: L_D(conf-weighted depth) + L_M(mask) + L_P(3D point) + L_C(9-DoF cam) + L_grad. 최근 로그:

step 45300 | loss 0.0835 | D 0.017 M 0.034 P 0.017 C 0.013 g 0.002 | s 5.46 step 45550 | loss 0.0646 | D 0.010 M 0.031 P 0.010 C 0.012 g 0.001 | s 6.23 step 45900 | loss 0.0736 | D 0.022 M 0.023 P 0.016 C 0.009 g 0.003 | s 3.91

DA3-v1 — job 11853 (lossv1, RUNNING)

어제 40.9K → 오늘 48.4K (+7.5K, ~1.6일). v1 loss는 depth + ray + pose. ro(회전 오차)가 50–120° 범위에서 불규칙하게 진동, 수렴 없음. 최근 로그:

step 47300 | loss 28.0 | d 0.248 ro 52.9 rd 0.249 | s 41.3 step 47500 | loss 47.5 | d 0.152 ro 93.3 rd 0.250 | s 42.0 step 48000 | loss 43.3 | d 0.075 ro 85.2 rd 0.211 | s 41.3 step 48400 | loss 32.4 | d 0.087 ro 63.3 rd 0.278 | s 44.0

3 결과 (수치)

Track Job 어제 step 오늘 step 진행률 주요 지표 상태
Any4D 11851 47.3K 47.5K (중단) 95.0% loss≈0.28 (Jun 9 기준) CRASHED
DA3-v2 11869 38.3K 45.9K (+7.6K) 91.8% loss≈0.065–0.21 RUNNING
DA3-v1 11853 40.9K 48.4K (+7.5K) 96.8% ro≈52–124° RUNNING (diverged)

DA3-v2 loss 분해 (최근 샘플)

steploss (total)L_D (depth)L_M (mask)L_P (3D pt)L_C (cam)L_grad
443000.08640.0260.0240.0230.0080.005
450000.10090.0240.0360.0190.0190.003
455500.06460.0100.0310.0100.0120.001
459000.07360.0220.0230.0160.0090.003

진행률 시각화

Any4D47.5K / 50K — CRASH
DA3-v245.9K / 50K
DA3-v148.4K / 50K (발산)

4 Takeaway

DA3-v2 loss v2 우위 확정적. 45.9K step까지 total loss 0.065–0.21 범위에서 안정 감소 중. DA3-v1(loss v1)은 동일 backbone에서 ro가 50K step 내내 수렴 실패 → loss 설계 차이가 핵심.
Any4D crash는 환경 문제. torch.hub의 DDP 비안전성: 멀티 rank가 동시에 캐시 재다운로드를 시도하면 OSError: Directory not empty 발생. 학습 자체의 문제가 아니며, 체크포인트(47500.pt) 보존됨. 재시작 시 hub 캐시 사전 확보 필요.

의미

DA3-v1 vs v2 비교 측면에서 50K 완주 후 loss 곡선 ablation이 가능해진다. v1 ro 발산은 rotation loss 스케일 / GT alignment 방식의 문제로 추정 (v2는 L_C 9-DoF cam constraint 추가). Any4D 트랙은 monocular pseudo-label의 frame-level scale ambiguity 외에 별도 infra 이슈가 있음 — 재시작 시 rank-safe hub 로딩 보장 필요.

5 Next Steps

즉시 (오늘)

DA3 트랙 50K 완주 후

Any4D 재시작 시