VisionWeave가 시각 토큰을 내용에 따라 탄력적으로 압축한다

VisionWeave: Weaving Elastic Visual Representations as a Native Capability of MLLMs

HF Daily2610.07987

Yuan Feng, Qize Yang, Ruizhe Chen2026-10-06

무엇인가

멀티모달 대형 언어모델(MLLM)은 이미지를 고정 크기 패치 토큰의 조밀한 시퀀스로 인코딩한다. 해상도와 프레임 수가 늘수록 시퀀스 길이가 폭증해 연산·메모리 비용이 커지는데, 시각 정보는 균등하게 분포하지 않는다. 세밀한 디테일이 필요한 영역과 압축해도 되는 영역이 섞여 있다는 것이다. 입력 다운샘플링은 디테일을 잃고, FastV·VisionZip 같은 토큰 프루닝·병합 기법은 학습-추론 불일치를 만들고 과제 특화 정보를 버리며, 압축비를 미리 고정해야 하고, 어텐션 가중치 추출이나 LLM 내부 프루닝 때문에 SGLang·vLLM 같은 최신 서빙 엔진에 얹기 어렵다. 논문은 이 한계를 세 가지 요구사항으로 정리한다. 품질을 지키면서 스스로 내용에 맞게 토큰을 아낄 것, 다양한 시각 입력에서 다운샘플링보다 일관되게 나은 효율-품질 절충을 줄 것, 최신 MLLM 구조와 서빙 인프라에 호환될 것.

어떻게 동작하나

VisionWeave의 첫 번째 구성 요소는 게이트 공간 풀러(gated spatial pooler)다. ViT가 만든 패치 특징 X를 2×2 이웃 단위로 하나의 풀링 특징으로 접고, 이를 기존 네이티브 merger에 통과시켜 LLM 임베딩 공간의 조대(coarse) 표현을 만든다. 결과적으로 H/4×W/4 격자의 각 블록은 4×4 패치를 덮으며, 네이티브 세밀 토큰 4개를 쓰거나 조대 토큰 1개를 쓰는 두 선택지를 갖는다. 조대 토큰은 위치 보간으로 네 세밀 토큰의 기하학적 중심에 놓이고, MRoPE 좌표 (τ, 2I+1/2, 2J+1/2)를 공유한다. 풀러 자체는 평균 풀링을 학습 가능하게 확장한 형태다. 4개 패치를 LayerNorm으로 정규화하고(패치 특징의 크기 편차가 커서 정규화가 없으면 큰 값이 풀링 출력을 지배한다), 전역 컨텍스트와 위치별 바이어스를 더한 뒤, 게이트가 채널별 소프트맥스 가중치를 계산하고 값 네트워크로 정제한 특징을 가중합한다. f_gate와 f_val의 마지막 층을 0으로 초기화하면 풀러가 정규화된 패치의 평균 풀링으로 퇴화하므로 학습 출발점이 안정적이다.

무엇과 다른가

두 번째는 세분도 라우터(granularity router)다. 공간 블록마다 학습 가능한 쿼리 하나를 두고, ViT의 여러 깊이(0, L//2, L) 특징을 순차적으로 크로스 어텐션으로 탐침한다. 각 깊이에서 자기 블록의 4×4 패치만 보는 로컬 블록과 전체 프레임을 보는 글로벌 블록이 짝을 이뤄 총 6개의 독립 파라미터 블록이 쓰인다. 마지막 선형 헤드가 두 개의 로짓을 내 조대 표현을 쓸 확률을 계산하고, 기본 임계값 0.5를 넘으면 조대 토큰 하나, 아니면 세밀 토큰 네 개를 고른다. 학습은 3단계 자기 증류로만 이뤄진다. 1단계는 라우팅을 끄고 모든 블록을 조대로 강제해 풀러만 학습하고, 2단계는 하드 라우팅을 미분 가능한 소프트 믹싱 대리(surrogate)로 바꿔 라우터만 학습한다(방향과 크기를 따로 보간해 노름 차이가 방향 혼합을 편향시키지 않게 하고, MoE 학습에서 빌려온 균형 손실을 ρ=0.8로 더한다). 3단계는 추론 때 쓰는 하드 라우팅 혼합 세분도 시퀀스로 풀러와 LLM을 학습한다. 교사는 항상 네이티브 순전파이고, 학생과 교사가 같은 교사 롤아웃에 조건화되는 오프폴리시 증류를 top-512 어휘에 대한 forward KL로 수행한다.

어떻게 쓰나

실험은 Qwen3.5-4B와 Qwen3.8-27B 두 모델에서 이뤄졌고, 27B 학습에는 30K A100 GPU-시간 이상이 들어갔다. 학습 데이터는 이미지 이해·비디오 이해·GUI 그라운딩을 아우르는 약 78만 샘플이다. 8개 벤치마크(RealWorldQA, DocVQA, InfoVQA, ScreenSpotV2, HallusionBench, VideoOCR, Video-MME, LongVideoBench)에서 기본 임계값 0.5일 때 평균 성능 손실은 Qwen3.5-4B 0.90%, Qwen3.8-27B 1.08%다. Qwen3.8-27B 기준 토큰 절감률은 InfoVQA 16.5%, DocVQA 27.3%인 반면 비디오 3종은 49.6~54.2%로, 내용에 따라 절감 폭이 크게 달라진다. 같은 27B에서 50% 고정 절감을 목표로 한 FastV†와 VisionZip은 평균 손실이 각각 11.82%, 12.46%였고, VisionZip은 ScreenSpotV2에서 47.88%, DocVQA에서 17.80%가 무너졌다. VisionWeave는 ScreenSpotV2에서 55.1%를 아끼면서도 손실이 3.17%에 그쳤고, DocVQA에서는 절감률을 27.3%로 낮춰 손실 1.23%를 유지했다. 데이터셋별 절감률을 베이스라인에 똑같이 맞춰줘도 VisionWeave가 평균 점수가 가장 높았다(27B에서 76.73 대 70.10/70.33).

전제와 한계

SGLang 서빙 엔진 통합에서는 두 가지를 손봤다. 조대 토큰의 반정수 블록 중심 RoPE 좌표를 정수 인덱스 캐시에서 쓰기 위해 모든 위치 좌표를 2배로 하고 회전 주파수를 절반으로 낮춰 위상을 보존했고, 혼합 세분도 시퀀스를 위해 인코더 분리 단계에 레이아웃 메타데이터를 붙여 스케줄링 전에 임베딩 슬라이싱과 RoPE 구성을 끝내도록 했다. A100-80GB 2장(BF16, TP=2), LongVideoBench fps2·최대 256프레임·프레임당 1024토큰 조건에서 엔드투엔드 처리량이 2.30배 늘고, P95 TTFT와 TPOT가 각각 57.1%, 59.6% 줄었다(초록에는 평균 TTFT 54.4%, 평균 TPOT 60.6% 감소로 적혀 있다). 임계값을 낮추면 재학습 없이 절감률을 더 끌어올릴 수 있다. Video-MME에서 t를 0.5에서 0.25로 내리면 27B의 절감률이 54.2%에서 66.0%로 오르고 성능 손실은 0.37점에 불과했다. 절제 실험에서는 게이트 풀러가 픽셀 언셔플 기반 프로젝터보다 8개 벤치마크 전부에서 높았고(DocVQA +2.64, VideoOCR +2.77), 라우팅 점수를 이미지 내에서 섞으면 평균 점수가 4B에서 2.31점, 27B에서 5.36점 떨어졌다. 어디에 어떤 세분도를 배치하느냐가 몇 개를 남기느냐만큼 중요하다는 뜻이다.

실무 관점에서 이 논문이 주는 신호는 명확하다. 첫째, 시각 토큰 압축을 '고정 비율'로 다루던 습관을 버려야 한다. 문서·차트처럼 정보 밀도가 높은 입력에서는 절감률이 16~27%로 억제되고, 비디오처럼 중복이 많은 입력에서는 50% 이상을 잘라낸다. 같은 모델이 입력에 따라 다르게 행동한다는 것이 핵심이다. 둘째, 프루닝 계열 기법을 서빙 스택에 얹을 때 생기는 통합 비용을 미리 따져야 한다. VisionWeave는 LLM 내부가 아니라 비전 인코더 뒤에서 토큰을 고르고, 레이아웃을 스케줄링 전에 확정하기 때문에 청크 프리필·CUDA 그래프 디코딩·KV 캐시 관리를 그대로 쓸 수 있다. 셋째, 임계값 하나로 품질-비용 운영점을 옮길 수 있다는 점은 서비스 등급별로 모델을 따로 두지 않아도 된다는 뜻이다. 다만 27B급 모델을 30K A100 시간으로 학습한 결과이므로, 자체 모델에 같은 능력을 심으려면 자기 증류 파이프라인과 그에 맞는 컴퓨트를 확보해야 한다.

저자들이 명시적으로 밝힌 한계 절은 본문에 없다. 대신 곳곳에 전제가 깔려 있다. 자기 증류는 교사인 네이티브 순전파의 출력 분포에 의존하므로, 교사 자체가 약한 과제에서는 상한이 교사 성능이다. 오프폴리시 증류를 택한 것도 효율 때문이며, 4B 모델의 3단계에서 온폴리시로 바꿔봤지만 일관된 이득이 없었다고 적었다. 2단계에서는 응답 길이 제곱근 가중치를 쓰면 학습이 불안정해져 전역 평균으로 바꿨다는 실험적 제약도 있다. 라우터의 조대 라우팅 바이어스는 50% 절감을 목표로 학습 서브셋에서 오프라인 보정한 값으로, 학습과 추론 동안 고정된다. 또한 서빙 이득은 특정 조건(A100 2장, LongVideoBench, 256프레임, 동시성 4)에서 측정된 수치이므로 다른 워크로드로 그대로 일반화된다고 보기는 어렵다. 코드는 공개 예정이라고만 밝혀져 있다.