[DART] Stop Looking for "Important Tokens": Duplication Matters More

LLM EMNLP 2025

Zichen Wen, Yifeng Gao, … Conghui He, Linfeng Zhang · SJTU / Shanghai AI Lab / SYSU / PKU

arXiv GitHub

한 줄 요약. 도발적 주장 — "중요도(importance)는 좋은 가지치기 기준이 아니다." 중요도 기반 방법은 종종 무작위(random) 가지치기보다도 나쁘고, attention 점수를 써야 해 FlashAttention과도 호환되지 않는다. DART(Duplication-Aware Reduction of Tokens)는 대신 중복(duplication)을 본다 — ① 소수의 pivot 토큰(전체의 ≤2%, norm 기준 또는 무작위)을 고르고 ② pivot과의 코사인 유사도를 계산해 pivot과 덜 겹치는(중복 낮은) 토큰만 남긴다. 학습 없이 FlashAttention과 호환되고 0.08초 이내로 끝난다. 시각 토큰 88.9%↓에 성능 대등, 전체 1.99×·prefill 2.99× 가속.

배경

대부분의 토큰 가지치기는 중요도 점수(주로 vision-text attention)를 정의하고 그 낮은 토큰을 버린다. DART는 이 패러다임을 정면으로 반박한다.

  • 중요도 ≈ random 이하 — 중요도 기반 가지치기는 토큰 간 상호작용을 무시한 채 “안 중요한” 토큰을 바로 버려, 무작위 가지치기보다 못한 경우가 많다.
  • FlashAttention 비호환 — attention 점수를 명시적으로 써야 해, 융합 연산(FlashAttention)의 가속 이득이 사라진다.
  • 핵심 통찰 — 여러 토큰이 거의 같은 표현이면 하나만 남겨도 된다. 즉 버릴지 말지는 “중요한가”가 아니라 “중복인가” 로 정해야 한다.

중요도 대신 중복을 기준으로, 게다가 attention 행렬 없이 가볍게 자를 수 없을까?

Figure 3. DART 개요. (a) pivot 토큰 선택(≤2%) → (b) pivot과 나머지 토큰의 중복(duplicate) 점수 계산 → (c) pivot과 중복이 가장 적은 토큰들을 남기고 비슷한 것은 제거. attention 점수를 안 써 FlashAttention과 호환.

핵심 아이디어

① Pivot 토큰 선택

전체의 2% 이하pivot 토큰으로 고른다(토큰 norm 기준 또는 심지어 무작위로 — 추가 연산이 거의 없다). 실험에선 layer 2 뒤, K-norm 상위 8개를 pivot으로 사용.

② 중복 낮은 토큰만 유지

pivot과 나머지 토큰의 코사인 유사도(=중복도)를 계산하고, 목표 압축률에 맞춰 pivot과 중복이 가장 낮은 토큰만 남긴다. pivot이 2% 미만이라 계산·메모리가 가볍고 0.08초 이내 완료, FlashAttention과 호환.

  • 학습 — 추가 파라미터·학습 없는 training-free plug-and-play. (선택적으로 학습 단계에 적용한 DART† 변형도 보고.)

적용·평가

항목 내용
적용 모델 LLaVA-1.5(7B) 등 MLLM
데이터셋 GQA · MMBench(en/cn) · MME · POPE · SQA · VQAv2 · VizWiz · TextVQA · OCRBench 등
Task Image Understanding (VQA · OCR · 환각 등)
대표 결과 시각 토큰 88.9%↓ 성능 대등 · 전체 1.99×·prefill 2.99× 가속 · FlashAttention 호환(오버헤드 <0.08s)

결과

정량

Table 1. LLaVA-1.5-7B 이미지 이해 비교(토큰 192/128/64 유지 = 66.7%/77.8%/88.9%↓). DART는 ToMe·FastV·SparseVLM·PyramidDrop 등을 앞서며, 학습 적용 DART†는 원모델 100% 이상도 달성.
  • 고압축에 강함 — 토큰을 192/128/64로 줄여도(최대 88.9%↓) ToMe·FastV·SparseVLM·PyramidDrop을 앞선다. 192유지에서 평균 98.8%, 학습 적용 DART†는 100%+.
  • FLOPs ≠ 속도(Table 2). SparseVLM은 DART보다 FLOPs가 2.8% 적어도 속도는 21.6% 느리다(순차 처리). DART는 FlashAttention 통합으로 prefill 2.99×·전체 1.99× 가속.

정성

Figure 1. DART vs FastV 생성 비교. 빨강=원본 LLaVA-1.5-7B 환각, 초록=DART 환각, 파랑=FastV 환각. FastV는 '입에 칫솔을 물었다' 같은 환각을 내지만, DART는 원본에 가까운 정확한 묘사를 유지한다.
  • 환각 비교(Fig 1). 같은 농구 선수 이미지에서 FastV는 “칫솔을 물었다”는 환각을 내는 반면, DART는 “코에 밴드를 붙인 선수”처럼 원본에 가까운 묘사를 유지 — 중복 기반 선택이 답에 필요한 정보를 덜 잃는다.

한 줄 정리 & 의의

  • “중요한 토큰을 찾지 말고, 중복을 지워라.” pivot 토큰과의 중복이 낮은 토큰만 남기는 단순·고속·FlashAttention 호환 가지치기 — 중요도 기반이 random보다 못하다는 관찰에서 출발.
  • 차별점. FastV·SparseVLMattention 중요도로 자른다면, DART는 중복으로 자른다 — attention 행렬이 필요 없어 FlashAttention과 호환되고 실제 속도가 빠르다. (다양성으로 중복을 피하는 DivPrune와 문제의식이 통한다.)
  • 위치. LLM — LLM 얕은 층(layer 2 뒤)에서 줄인다. → Efficient VLM 개요