Index
2026-08-17 ~ 08-18 · X-WAM_MoT · EXPERIMENT

X-WAM MoT — 구현 완료 + 스모크 A/B PASS, 8-GPU 게이트 착수

random-init expert의 gradient 역류 리스크 기각 → 게이트 학습 진입, 현재 preempt 후 재큐 PENDING

TL;DR

0.98
video_loss 비율 (MoT/base)
1.393B
expert 파라미터
6.397B
total 파라미터
9/9
unit test
−31%
속도 (bs1, MoT vs base)

1배경 / 목적 (왜)

260817 설계 확정 후(이전 카드 참조), XWAMMoTModel(expert 1.393B, random init)이 8-GPU 게이트에 들어가기 전 반드시 확인해야 할 것은 expert의 초기 gradient가 joint attention을 타고 트렁크를 해치지 않는가였다. 사전 등록한 판정 기준: ① NaN/Traceback 0 ② MoT video_loss가 baseline의 0.5×~2.0× ③ action/proprio loss 유한 + 비상승.

리스크: expert 타워는 random init(std 0.02)이라 학습 초반 gradient 크기가 트렁크와 다를 수 있고, joint attention은 mask 없이 두 타워의 Q/K/V를 concat하기 때문에 이 gradient가 그대로 트렁크로 역류할 수 있다.

2작업 내용 (어떻게)

구현 (git log, 260817)

커밋내용변경
74d31b6MoT expert block (narrow residual, trunk-width joint attention)2 files, +225
f8b1debXWAMMoTModel — joint-attention MoT over video trunk + robot expert1 file, +292
63005cbgradient-checkpointing coverage for XWAMMoTModel1 file, +15 (test)
bedf4e1wire use_mot through runner/config/gate script3 files, +21/−4
a47a634docs: MoT smoke A/B PASS + gate job 84180 submitted1 file, +35
46813fddocs: context 갱신 — gate job 84180 RUNNING1 file, +10/−7

설계 그대로: 트렁크는 video 토큰만 담당(파라미터 이름 무변경), expert(hidden 1024 / ffn 4096 / 30 layers)가 action+proprio를 담당. 매 레이어에서 두 타워의 Q/K/V를 24 heads × 128 공간으로 concat → mask 없는 joint self-attention → split → 각자 post-block.

스모크 A/B 설정

로그인 노드 단일 GPU, 동일 GPU 순차 실행 dataset=robocasa(릴리스 1,235ep) / bs1 / 100 step / seed 42 pretrained_checkpoint=null / use_depth=false baseline: use_mot=false · MoT: use_mot=true (그 외 완전 동일) → 동일 seed로 스텝별 배치가 짝지어져 paired 비교 가능

3결과 (수치)

video_loss, step 49~99 (마지막 6개 로그 지점)

stepbaseMoT
490.6480.654
590.8500.777
690.5630.562
790.4730.503
890.7860.799
990.6570.620
평균0.6630.653
PASS: video_loss 비율 MoT/base = 0.98 — 사전 등록 밴드(0.5~2.0) 정중앙, 스텝별 궤적 거의 일치 → 트렁크 학습 무손상. action_loss(step 89/99): base 1.24/1.69 vs MoT 1.12/1.40 — MoT가 약간 낮고 둘 다 유한·비상승. proprio_loss: base 2.87/1.03 vs MoT 1.47/0.95. NaN 0 / Traceback 0 (양쪽).
속도 오버헤드: base 2.28 it/s vs MoT 1.57 it/s (bs1, −31%) — per-layer 2회 모듈 호출 비용. bs4×8GPU에서는 연산 비중이 커져 격차 축소가 예상되나 게이트에서 실측 필요.

게이트 학습 job 상태

Job제출상태비고
84180260817 19:53 (extra QOS, 8 GPU)PREEMPTED04:53→05:36 (42분 실행). RUNNING 중 world-size guard ranks=8, XWAMMoTModel 로그 정상 확인됨
84245sbmr 자동 재큐PENDING (AssocGrpGRES)클러스터 GPU 포화로 대기 중

파라미터 실측: expert 1.393B / total 6.397B. 모델 로드 로그: Some weights ... newly initialized: action/proprio enc/dec, view_embedding — 설계대로 (expert 타워 자체는 build_mot_expert로 post-hoc 생성이라 이 목록에 없음).

4Takeaway

의미

구현 전 마지막 관문이었던 "random-init expert의 gradient가 joint attention을 타고 트렁크를 손상시키는가"라는 질문이 스모크에서 명확히 기각됐다 (video_loss 비율 0.98, action/proprio loss도 오히려 MoT가 약간 낮음). 이로써 게이트 진입 조건을 충족했고, 남은 것은 20k step 완주 후 RoboCasa 평가로 arm A(61.0%) 대비 실제 control 성능 판정뿐이다. 다만 bs1 −31% 속도 저하는 8-GPU 게이트에서 실측 확인이 필요한 미해결 변수 — 게이트가 예상보다 오래 걸리면 이 오버헤드가 원인일 가능성이 높다.

5Next Steps

미해결 한계

84180이 실행 42분 만에 preempt되어 학습 진행률(step 수) 확인 전에 중단됐다. 재큐된 84245는 클러스터 GPU 포화(AssocGrpGRES)로 PENDING — RUNNING 전환 후에도 이전 진행 상태 없이 처음부터 재시작(sbmr은 checkpoint resume이 아닌 재제출). bs1 −31% 속도 저하가 8-GPU/bs4에서도 유지되는지 아직 미확인.

다음 작업

84245 RUNNING 전환 시 필수 검증: sjob 84245 8/8 GPU active + [world-size-guard] ranks=8 + Creating XWAMMoTModel 로그 + 첫 저장 후 rank 파일 8개. tmp/watch_mot_v1.sh로 REQUEUED/STALL/NAN/COMPLETE 이벤트 계속 감시. 20k step 완주 후 Task 7(RoboCasa 24 task × 50 rollout) 평가 → arm A 61.0% 대비 판정 (밴드: ≥65% 개선 / 57~65% 동등 / <57% 회귀). 8-GPU 환경에서 it/s 실측해 속도 오버헤드가 연산 비중 증가로 상쇄되는지 확인.