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

Frame Sparsity — 설계+구현+스모크 PASS+벤치

중간 latent 프레임 축소(drop/MAE)로 SR 유지 + 추론 가속을 노렸으나, bs1에서는 커널 런치 바운드로 성립 안 함 → 학습 효율 축으로 재프레이밍

TL;DR

0
NaN/Traceback (2 arm)
1.11× / 1.07×
스모크 video_loss (drop/mae)
1.00×
bs1 벤치 speedup
1.33× / 1.24×
bs8 벤치 speedup (drop/mae)

1배경 / 목적 (왜)

사용자 제안: ① 중간 latent 프레임을 아예 제거 ② 중간 프레임 HW 토큰을 MAE처럼 75% 뚫기. 목표는 SR 유지 + 추론 속도 향상. 현 구조에서 중간 프레임(latent 1)은 video 720토큰 중 240토큰(33%)이고, policy 추론은 video를 디코딩하지 않으므로(early_stop) 중간 토큰 축소는 control 경로의 순수 비용 절감이다. 연구 질문: "미래의 조밀한 중간 상상이 control에 필요한가?" — World Forcing(depth/REPA)·MoT 축과 직교하는 세 번째 축(토큰 효율)으로 설계.

제약: causal VAE 특성상 중간 latent가 noise면 뒤 프레임 디코딩도 오염되므로, sparsity arm은 video 재구성이 아니라 action/proprio MSE만으로 판정해야 함.

2작업 내용 (어떻게)

설계 (사용자 승인)

MoT 위에 쌓기 / MAE는 고정 keep 25%(뷰별 균등, 스텝마다 위치 랜덤) / 게이트 제출은 mot_v1 완주·평가 이후, 구현·테스트·스모크는 즉시 진행. 토큰 그리드 (T,V,hw)에서 keep-index → video_seq/RoPE freqs/per-token t를 gather → mixed layer 무수정 → head 출력 zero-scatter. 학습은 kept-token loss(마스크를 latent로 upsample해 video_mask에 곱), 추론은 generate() 호출당 고정 마스크(스텝별 재샘플 시 늦게 kept된 토큰의 timestep 임베딩이 실제 노이즈 레벨과 어긋나는 함정 회피). depth branch/REPA와 동시 사용 불가(assert). frame_sparsity=none 기본값으로 mot_v1 경로 bit-identical 유지 — 진행 중인 게이트(job 84180/84245)에 영향 없음.

스펙: docs/superpowers/specs/2026-08-18-frame-sparsity-design.md 계획(6 task): docs/superpowers/plans/2026-08-18-frame-sparsity.md commit c741735 — docs: frame sparsity 스펙+구현계획 (526 lines)

구현 (git log, 260818)

커밋내용변경
6da2e12frame sparsity (drop_middle / mae_middle) in XWAMMoTModel3 files, +154/−1
99e5762wire frame_sparsity through runner/config/gate arms4 files, +57/−2
9275424frame-sparsity forward benchmark (worker-only)2 files, +51
dfc8da4fix: bench_forward.py repo-root sys.path (scripts/ launch)1 file, +5
248db37feat: bench batch-size sweep (1/4/8) — bs1 launch-bound 확인1 file, +27/−26

스모크 A/B 설정

Task 5(MoT 스모크)와 동일 조건 — 로그인 GPU 1, bs1, 100 step, seed 42, dataset=robocasa smoke_mot(video_loss 평균 0.653)이 paired 비교 앵커. frame_sparsity만 none → drop_middle / mae_middle 변경

3결과 (수치)

스모크: video_loss, step 49~99 (smoke_mot 앵커 대비 paired)

stepsmoke_motdrop_middlemae_middle(keep25)
490.6540.7540.723
590.7770.8760.806
690.5620.6240.615
790.5030.5680.559
890.7990.8640.838
990.6200.6710.657
평균 (비율)0.653 (1.00×)0.726 (1.11×)0.700 (1.07×)
PASS: 두 arm 모두 NaN 0 / Traceback 0. video_loss 비율 1.11×/1.07× — 사전 등록 밴드(0.4~2.5) 정상, 감독 픽셀이 줄었는데 소폭 오른 것은 최종 프레임(감독 주 대상)이 평균보다 어려운 타깃이라 예상 방향. action/proprio loss가 smoke_mot과 소수점 3자리까지 사실상 동일(예: step89 action 1.1166/1.1206 vs 1.1163) → 스파시티가 robot 경로를 전혀 교란하지 않음.
속도 판정 이관: 로그인 bs1에서 1.54/1.49 it/s vs smoke_mot 1.57 — 커널런치 바운드로 차이 없음. 이 수치는 속도 결론 근거로 쓰지 않고 워커 벤치(job 84985/85009)로 이관.

워커 forward 벤치 (bs 1/4/8 스윕, job 85009)

Batchnone (ms)mae25 (ms)drop (ms)mae speedupdrop speedup
1 (추론)55.955.856.11.00×1.00×
486.472.769.61.19×1.24×
8 (학습)152.6123.1114.91.24×1.33×
bs1(=policy 추론) speedup 0: 커널 런치 바운드 — 목표였던 "추론 가속"은 B200+bs1 레짐에서 성립하지 않는다 (compile/CUDA-graphs가 별도 전제).
bs4+(=학습) 1.19~1.33×: 게이트 wall-clock ~19h → ~15h 추정. 사전 등록 목표(drop≥1.45×/mae≥1.3×)는 bs8에서 drop만 근접(1.33× < 1.45×), mae는 1.24× < 1.3× — 둘 다 목표 미달.

4Takeaway

의미

스파시티 구현이 수치적으로 안전함이 확인됐다 — 트렁크·robot 경로 무손상(action/proprio loss가 앵커와 소수점 3자리까지 일치), NaN 없음. 하지만 애초 목표였던 "추론 가속"은 B200 bs1 레짐(정책 서빙 시나리오)에서 성립하지 않는다 — 커널 런치가 바운드이기 때문에 토큰 수를 줄여도 wall-clock이 그대로다. 대신 bs4+(학습 시나리오)에서 1.2~1.33× 이득이 확인되어, 이 축의 가치는 "추론 가속"이 아니라 "게이트 학습 wall-clock 단축"으로 재해석해야 한다. 다만 이마저도 사전 등록 목표에는 못 미쳐, 게이트 투입의 ROI가 처음 기대만큼 크지 않을 수 있다.

5Next Steps

미해결 한계

목표 재정의 필요 — "추론 가속" 가설이 스모크·벤치 양쪽에서 기각됐으므로, 이 축을 게이트에 투입할지는 "학습 wall-clock 15h 단축"이라는 더 약한 근거로 재승인받아야 한다. 사전 등록 목표(drop≥1.45×/mae≥1.3×) 미달 원인(커널 런치 오버헤드가 bs8까지도 완전히 상쇄되지 않음)은 별도 분석 없음.

다음 작업

① 게이트 진행 여부 사용자 결정 대기(재프레이밍된 "학습 효율" 근거로). ② mot_v1(job 84180/84245) 완주·평가(arm A 61.0% 대비) 이후 mot_dropmid → mot_mae25 게이트 순차 제출. ③ 2차 보류 항목: mae ckpt의 추론 keep 100%/0% 강인성 평가, 랜덤 ratio 학습, depth 결합.