Hub Part X · VLM 加速
Part X · VLM 加速

视觉 token 90% 是冗余

典型 VLM 一张 $336^2$ 图就 576 token;AnyRes 高分辨率下 1080p = 数千 token。 Prefill 几乎全花在视觉部分, decode 时它们也参与 attention——可它们 90%+ 是背景。 本部按 "视觉 token 专属招 → 通用加速机制 → 系统部署" 组织: §10.1-§10.4视觉 token 维度的招(剪枝 / 合并 / 动态分辨率); §10.5-§10.10 是 LLM 那边的 6 大机制在 VLM 上的体现; §10.11-§10.12 给 LLM-移植对照、未解决问题。

§10.1视觉 token 的痛 · 算力被一张图吃掉了

典型 VLM(LLaVA-1.5 / Qwen2-VL / InternVL2.5): 一张 $336^2$ 图 → ViT 分 14×14 patch → 576 视觉 token。 高分辨率("AnyRes",动态切 tile)下,一张 1080p 图 = 数千 token。 这些 token 90%+ 是冗余背景。 Prefill 几乎全花在视觉部分,decode 时它们也参与 attention。

模型视觉 token 数分辨率
LLaVA-1.5576336×336
LLaVA-NeXT (AnyRes)2880up to 1344×336
InternVL 2.5 (dynamic tile)up to 12800up to 4K
Qwen2-VL (NaViT)~3000 typicalnatively any
Qwen2.5-VL · 视频 N=16 帧~30000任意
NVIDIA Nemotron Nano V2 VL动态 + Mamba 压缩any
DeepSeek-OCR~256 / page (高密度)document-optimized

当文本 prompt 才几十 token、视觉 token 几千上万时, 整个 LLM 都在为图像服务。视觉 token 也要走 80 层 transformer、 也要写 KV cache——它们和文本 token 没区别,但承载的信息密度低 10×。

直觉 · VLM 加速的两条主轴

(1) 视觉 token 维度: 剪 / 合 / 缓存视觉 token, 让它"少而精"——这是 VLM 独有的招(§10.2-§10.4)。
(2) LLM 维度: VLM 仍然是个 LLM, 所有 LLM 加速(spec / 量化 / MoE / 测试时算力 / serving)都适用—— 每条都有 VLM-specific 适配 (§10.5-§10.10)。

§10.2视觉 token 剪枝 · 浅层抛弃

最朴素的招:浅层之后丢掉冗余视觉 token, 让后续 LLM 层只算文本 + 关键视觉。 2024 年 FastV / VTW 开了头, 2026 H1 涌现了一波10+ 篇变种。

FastV — An Image is Worth 1/2 Tokens After Layer 2
ECCV 2024 Chen, Zhao, Zhang, Sun, Wang, Lin · USTC / Shanghai AI Lab · arXiv:2403.06764

经验观察:LLaVA 中, 第 2 层之后视觉 token 的 attention 权重急剧下降—— 它们已经把信息"喂"给开头几层。 FastV 在第 $k$ 层之后按 attention 分数选 top-$K$ 视觉 token 保留, 其余丢掉。 45% FLOPs 削减、几乎不掉点。

# FastV: 在第 k 层之后, 按累计 attention 分数选 top-R 视觉 token
def fastv_layer(x, layer, layer_idx, vision_token_mask, k=2, keep_ratio=0.5):
    out, attn_w = layer(x, return_attn=True)
    if layer_idx == k:
        score = attn_w[:, :, ~vision_token_mask][:, :, :, vision_token_mask].sum(dim=(0,1,2))
        n_keep = int(vision_token_mask.sum() * keep_ratio)
        keep_idx = score.topk(n_keep).indices
        out = drop_tokens(out, keep_idx, vision_token_mask)
    return out

2026 H1 剪枝家族 · 一张大表

工作关键想法arxiv
GRIP-VLMGroup-Relative Importance Pruning, 用组内相对重要性2605.13375
ERASEAdaptive 两阶段 token pruning2605.09982
F³AScaling laws for visual token pruning ("How many visual tokens?")2605.16359
RTPrune"Reading-Twice" inspired, 针对 DeepSeek-OCR 优化2605.00392
LearnPrunerRethink attention-based pruning2604.23950
DocPrune文档问答场景: 区分背景 / 问题 / 理解2604.22281
ST-PruneSpatio-Temporal pruning for AD VLM2604.19145
VisPCOBudget-Aware Pareto-Frontier Learning 配置 token 预算2604.15188
SVD-PruneTraining-Free, 用 SVD 选 token2604.11530
Decoupled SimilarityTask-Aware, 解耦 text-image 相似度2604.11240
ASAPAttention-Shift-Aware Pruning2603.14549
FastOCRDynamic Visual Fixation for Document Parsing2605.17447

路线分化清晰: (a) attention-score 派 (FastV, ASAP, FastOCR); (b) similarity / SVD 派 (Decoupled Similarity, SVD-Prune); (c) task-aware 派 (DocPrune, ST-Prune, RTPrune); (d) learning-based 派 (LearnPruner, VisPCO with Pareto); (e) scaling-law 研究 (F³A)。

§10.3token 合并 / 摘要 / 跨步缓存

剪枝是抛弃; 合并是压缩信息到更少 token; 缓存是跨 step 复用。 这一节是 §10.2 的补集。

VisionZip — Longer is Better but Not Necessary in Vision Language Models
CVPR 2025 Yang et al. · arXiv:2412.04467

两步: (1) dominant token — ViT 内 [CLS] 对 patch 的 attention 选 top-N; (2) contextual merge — 剩余聚成 N_ctx 个 cluster, 用簇心代表。 LLaVA-1.5 上 8× 加速, 零成本 (无需 LLM 重训)。

# VisionZip 的两步骤
def visionzip(vision_tokens, attn_weights, n_dominant=64, n_contextual=32):
    score = attn_weights.mean(dim=(0,1,2))   # [n_patches]
    dominant_idx = score.topk(n_dominant).indices
    dominant = vision_tokens[:, dominant_idx]
    remain = vision_tokens[:, ~one_hot(dominant_idx)]
    contextual = kmeans_means(remain, n_contextual)
    return torch.cat([dominant, contextual], dim=1)
SparseVLM / FrameFusion
2024 · SparseVLM

SparseVLM: 让 text query 选哪些视觉 token "值得留"——比 FastV 更 task-aware。 FrameFusion: 视频 VLM 里跨帧合并相似 token——30k token 砍到 5k。

KVCapsule — Sequential KV Cache Compression for VLMs with Asymmetric Reduction
2026-05 · arXiv:2605.16439

跨 step 的 KV 压缩——视觉 token 的 K 与 V 用不同压缩率(asymmetric), 类似 KIVI(§3.2)但针对 VLM 视觉 token 的 K/V 分布特性。 在多轮对话场景把 VLM KV 体积砍到 30%。

"Make Each Token Count" · "Make Your LVLM KV Cache Lightweight"
2026-05 · Make Each · Make Lightweight

长上下文 VLM 的 KV eviction 与精细 layout 优化—— 把 §3.3 LLM 的 KV 驱逐思想本地化到 VLM 的视觉-文本混合 KV。

Stateful Token Reduction · TimeViper
2026-02 / 2025-11 · Stateful Token Reduction · TimeViper

长视频 VLM 的跨帧 token reduction。 Stateful Token Reduction 维护一个 stateful summary; TimeViper 用 hybrid Mamba-Transformer。 跨 §10.3§10.6

§10.4原生动态分辨率 · 别再做 336×336 padding 了

NaViT · Qwen2-VL · Qwen2.5-VL
2023-07 / 2024-09 / 2025-01 · NaViT · Qwen2-VL

传统 ViT 强制方形 + 单一分辨率。 NaViT (Google 2023) 提出"packed sequence": 多张图打包到一条 sequence 里,按各自原始分辨率 patch 化, 用 2D RoPE 编码位置。 Qwen2-VL 把这套 batch 化进 VLM—— 1080p 输入用 1080p token 数,缩略图用缩略图 token 数。 再叠 FastV / VisionZip 是上述"按需 token"工程的最终形态。

2D RoPE · 位置不再是 1D 索引

普通 RoPE 把位置编码成一个 1D 索引 $p \in \mathbb{Z}$,作旋转角度。 对图像 patch 这不够——上下和左右是不同的轴。 2D RoPE 把 head_dim 拆两半,一半承载 $p_h$ 维(高度),一半承载 $p_w$ 维(宽度)。

# 2D RoPE: head_dim 拆成 (d_h_pos, d_w_pos)
def apply_2d_rope(q, k, h_pos, w_pos):
    d_half = q.shape[-1] // 2
    q_h, q_w = q[..., :d_half], q[..., d_half:]
    k_h, k_w = k[..., :d_half], k[..., d_half:]
    q_h, k_h = rope_1d(q_h, k_h, h_pos)
    q_w, k_w = rope_1d(q_w, k_w, w_pos)
    return torch.cat([q_h, q_w], dim=-1), torch.cat([k_h, k_w], dim=-1)

§10.5解码加速 · specdec / parallel / block-diffusion

VLM 的 specdec 是 2026 H1 最热的小 sub-field—— 视觉 token 长 prompt 意味着 prefill 很贵, decode 阶段又是 memory-bound, 双重瓶颈天然适合 specdec。

MMSpec — Benchmarking Speculative Decoding for Vision-Language Models
2026-03 · arXiv:2603.14989

第一个系统性 benchmark VLM specdec 的工作。 揭示视觉 token 的特殊性:drafter 容易在视觉 token 上"看错", 接受率比纯文本低 10-15%。 成为后续 VLM specdec 工作的基线。

Sparrow — Text-Anchored Window Attention with Visual-Semantic Glimpsing for Specdec
2026-02 · arXiv:2602.15318

关键洞察:visual tokens 让 drafter 难学准。 Sparrow 让 drafter "锚" 在 text token 上, 仅 "glimpse" 视觉 token—— 把 drafter 注意力锁定在文本侧, 接受率回到 LLM 水平。

SAGE — Entropy-Guided Adaptive Speculative Decoding for VLMs
2026-01 · arXiv:2602.00523

预测熵动态调整 drafter 步数: 高熵 (不确定) → 多 propose;低熵 → 少 propose, 避免浪费。 VLM 上比 fixed-K specdec 加速多 ~25%。

CoVSpec — Device-Edge Co-Inference VLM via Speculative Decoding
2026-05 · arXiv:2605.02218

端云协同:drafter 在 edge device 跑 (低延迟), verifier 在 cloud 跑 (大模型质量)。 把 specdec 和 P/D 解耦合一起做, 是 VLM 部署的新思路。

SpecEyes · TABED
2026-03 / 2026-01 · SpecEyes · TABED

SpecEyes: agentic 多模态 LLM 的 "speculative perception + planning"—— 让 agent 推测下一观察, 减少实际 vision encode 次数。 TABED: Test-Time Adaptive Ensemble Drafting, 动态切换 drafter。

Fast-dVLM — Block-Diffusion VLM via Direct Conversion from AR VLM
2026-04 · arXiv:2604.06832

把 AR VLM 转成 block-diffusion VLM——并行 NFE + KV cache 兼容。 本质和 BlockVLA (§11.5) 同一思路, 但聚焦 VLM 通用场景。

§10.6Attention 架构 + KV 压缩 · SSM / hybrid / capsule

VLM 的 attention 因为视觉 token 多, 平方代价更狠。 SSM / linear attention / KV 压缩都有 VLM 专属工作。

NVIDIA Nemotron Nano V2 VL
2025-11 · arXiv:2511.03929

NVIDIA 的开源 hybrid Mamba-Transformer VLM。 把 SSM 用在视觉 token 序列上—— 视觉 token 数千个时, Mamba 的 $O(N)$ 比 attention $O(N^2)$ 优势明显。 第一个 production-ready hybrid VLM。

TimeViper — Hybrid Mamba-Transformer VLM for Efficient Long Video Understanding
2025-11 · arXiv:2511.16595

长视频 VLM 场景: Mamba 处理时间维, Transformer 处理空间维。 比 dense attention 30× 快, FVD-style 长视频任务 SoTA。

CLIMP — Contrastive Language-Image Mamba Pretraining
2026-01 · arXiv:2601.06891

用 Mamba 替换 CLIP 的 Transformer encoder—— 证明 SSM 在 image-text 对齐预训练上也有效。 后续 VLM 可以"Mamba ViT + Transformer LM"或反过来。

Selective State Space Memory · Vision Inference Former
2024-12 / 2026-05 · Selective SSM · VIFormer

Selective State Space Memory 把 Mamba 的 selective scan 用作 VLM 的 long-context memory。 Vision Inference Former 是 2026-05 的最新工作, 维持多模态视觉一致性。

VLM KV 压缩

ASAP — Attention-Shift-Aware Pruning for Efficient LVLM Inference
2026-03 · arXiv:2603.14549

观察 attention 模式在 prefill / decode 间的shift, 据此动态剪 KV。 VLM 跨 prefill-decode 边界的 KV 优化。

KVCapsule (回顾 §10.3)
2026-05 · arXiv:2605.16439

§10.3 + §10.6——既是 token 合并的延伸, 又是 KV 压缩的实现。 Asymmetric K/V reduction 是 VLM-specific 设计。

§10.7量化 · joint quant + prune · 低秩近似

VLM 量化最有意思的方向是联合 quant + token pruning—— 视觉 token 既要压精度, 又要减数量。

Joint Quantization and Token Pruning of VLMs
2026-04 · arXiv:2604.17320

第一个把 quant 和 token pruning 联合设计的 VLM 工作。 Trade-off frontier 上比"先 quant 后 prune" 或 "先 prune 后 quant" 都好。

WSVD — Weighted Low-Rank Approximation for Fast Low-Precision VLM
2026-04 · arXiv:2604.02570

类似 SVDQuant (Diff §9.6), 把权重拆"低秩 + 残差", 残差走 INT4。 在 VLM 上的 SVDQuant 等价物。

MP-ISMoE — Mixed-Precision Interactive Side MoE for Efficient Transfer Learning
2026-04 · arXiv:2605.04058

量化 + MoE 的杂交—— side experts 走不同精度, router 根据任务选 precision-budget。 跨 §10.7 + §10.8

§10.8MoE · 模态 / 任务专家

VLM 的 MoE 自然按"模态/任务" 路由—— vision-heavy 任务 / text-heavy 任务 / 跨模态任务走不同 expert。

SMoES — Soft Modality-Guided Expert Specialization in MoE-VLMs
2026-04 · arXiv:2604.23996

Modality-guided routing: vision tokens / text tokens 倾向不同 expert。 Soft routing (不是 hard top-K)—— 专门为 VLM 的 modality imbalance 设计。

VisMMOE — Visual-Expert Affinity for Efficient Visual-Language MoE Offloading
2026-05 · arXiv:2605.05899

Visual feature 与 expert affinity 决定哪些 expert 上 GPU、哪些 offload CPU。 把 MoE offloading 思想(LLM 那边 expert offload 已有)VLM 适配。

ZAYA1-VL-8B
2026-05 · arXiv:2605.08560

8B MoE-VLM 开源 tech report—— 展示 MoE-VLM 已经进入工业级开源规模。

DIMoE-Adapters · Sparse Spectral LoRA
2026-Q1 · DIMoE · Sparse Spectral LoRA

DIMoE: Dynamic Expert Evolution for Continual Learning VLM——VLM lifelong learning 的 MoE 解。 Sparse Spectral LoRA: 把 LoRA 做成 MoE adapter, 用于医疗 VLM。

"Seeing but Not Thinking" — Routing Distraction in Multimodal MoE
2026-04 · arXiv:2604.08541

MoE-VLM 的负面研究: router 容易被视觉 token 分心, 导致选错 expert。提出 routing-aware loss 修正。 重要的"路由病"诊断。

§10.9测试时算力 · 多模态 reasoning

LLM 的 o1 已经把 test-time compute 推到主流; VLM 端版本是 "在视觉理解难时多想一会"。

OmniThoughtVis — Scalable Distillation Pipeline for Deployable Multimodal Reasoning Models
2026-05 · arXiv:2605.11629

把"多模态 reasoning" (类 o1) 蒸馏成可部署小模型。 数据 pipeline + 训练配方完整开放, 是 VLM 端 test-time compute 商业化的关键工作。

TAME — Test-Time Adversarial Prompt Tuning via MoE for VLMs
2026-05 · arXiv:2605.17577

在推理时动态调 prompt + 路由 MoE expert—— 既增 robustness 又利用 test-time compute。

GridProbe (再次引用 §12.9) — Posterior-Probing for Adaptive Test-Time Compute
2026-05 · arXiv:2605.10762

在长视频 VLM 上用 posterior probing 动态分配算力—— 简单帧少算, 难帧多算。跨 §10.9 与 WM §12.9

Test-Time Hinting for Black-Box VLMs
2026-05 · arXiv:2605.16410

黑盒 VLM (闭源 API) 上的 test-time compute—— 用 hint generation 在不能改模型的情况下提升性能。

§10.10Serving · 多模态 disaggregation

VLM 服务结构: image encode (ViT) → text+image prefill → text decode。 三个阶段算力 / 显存特性不同, 天然适合 P/D / EPD 解耦。

Cornserve · vLLM-Omni · EPD-Serve — 同 WM §12.10
2026 · Cornserve · vLLM-Omni · EPD-Serve

多模态生成 / 推理通用 serving 框架——VLM 是核心受益者。 Encoder / Prefill / Decode 三段独立 scale。

VRAM-Constrained xLM Inference on Clients
2026-04 · arXiv:2604.26334

客户端 (浏览器 / 移动) VRAM-受限场景的 VLM 推理。 通过 model partitioning + memory swapping 让 7B VLM 在 4GB 显存跑。

FastOCR · Starve to Perceive
2026-05 · FastOCR · Starve to Perceive

任务特化 serving 路径—— FastOCR 针对 document parsing; "Starve to Perceive" 针对 visual bandwidth-constrained scenes。

§10.11LLM 加速思想 → VLM 移植对照

和 VLA (§11.12) / WM (§12.12) 同款 4 张分类表。 特别注意:VLM 是 VLA 的 backbone, WM 是 VLA 的世界知识来源—— 三章移植表互相 cross-reference。

① 视觉 token 维度 · VLM 独有

方向VLM 状态
剪枝FastV, VisionZip, SparseVLM; 2026 wave: GRIP-VLM, ERASE, F³A, RTPrune, ASAP, ST-Prune, VisPCO 等 ~10+ 篇
合并 / 摘要✓ VisionZip dominant+contextual; FrameFusion 跨帧
跨 step KV 压缩✓ ★ KVCapsule (2605.16439), Make Each Token Count (2605.09649)
动态分辨率✓ NaViT / Qwen2-VL 原生
联合 quant + prune✓ ★ (2604.17320) 第一个 joint

② 解码加速类(对应 §10.5)

LLM trick所在节VLM 状态
Speculative decoding§4.1-§4.4✓ ★ MMSpec benchmark, Sparrow text-anchor, SAGE entropy-guided, CoVSpec edge-cloud, SpecEyes agentic, TABED ensemble
Block-diffusion VLM✓ ★ Fast-dVLM (2604.06832)
Early-exit / 跳层§4.4○ 半空白 — VLA 端有 DeeR-VLA, VLM 端跨用相同思路 (FastV 浅层抛 token $\approx$ partial early-exit)
MTP (Multi-Token Prediction)§4.4○ 半空白 — 未见专门 VLM MTP head

③ Attention / KV 类(对应 §10.6)

LLM trick所在节VLM 状态
SSM / Mamba / 线性 attention§2.6✓ ★ NVIDIA Nemotron Nano V2 VL (2511.03929), TimeViper hybrid, CLIMP, Selective SSM
NSA / sparse attention§2.6○ 半空白 — ASAP 是attention-shift 剪 KV 的近邻; 严格 NSA-VLM 还没
Hybrid linear + softmax§12.6✓ TimeViper (Mamba 时间 + Transformer 空间)
MLA latent KV§3.1○ 萌芽 — KVCapsule asymmetric 是 VLM-style 的近邻
KV eviction (StreamingLLM 类)§3.3✓ Make Each Token Count (2605.09649), Make LVLM KV Lightweight (2605.00789)

④ 量化 · MoE · 测试时算力 · Serving(对应 §10.7-§10.10)

LLM trick所在节VLM 状态
PTQ (GPTQ / AWQ)§5.2-§5.3✓ 通用 LLM 量化直接适用; WSVD 是 VLM 适配 SVDQuant
Joint quant + token prune✓ ★ VLM 独有 (2604.17320)
FP4 / NVFP4§5.1○ 半空白 — Blackwell 卡刚到, VLM 端适配中
MoE per-modality experts§6.3✓ ★ SMoES soft modality routing, VisMMOE offloading, ZAYA1-VL-8B, DIMoE continual
Test-time compute (o1 类)✓ OmniThoughtVis (2605.11629) 可部署 reasoning 模型; TAME, Test-Time Hinting
Continuous batching§7.1○ 半空白 — Cornserve / vLLM-Omni 已部分支持
P/D / EPD disaggregation§7.5✓ Cornserve / vLLM-Omni / EPD-Serve 三家
Edge-cloud co-inferenceCoVSpec (2605.02218) — 把 specdec 与 P/D 结合
RadixAttention prefix 共享§3.4○ 半空白 — 多对话共享 system prompt + image 完全可以做
CUDA Graph + torch.compile§13.1-§13.2✓ 部署默认
读法 · VLM 是 VLA / WM 的 "上游"

VLM 解决了视觉 token, VLA 接手把它接到动作, WM 把它推到视频生成。 所以 VLM 的加速工作经常被 VLA / WM 直接 inherit: FastV / VisionZip → ETA-VLA (VLA 视觉 token 剪枝); KVCapsule → VLA-Cache; SMoES → MoE-ACT; MMSpec → HeiSD / KERV; Cornserve → 全多模态通用。

最值得做的 VLM 真空地带: ① NSA-VLM(视觉 token 长 sequence 上的可训练稀疏 attention); ② MLA-VLM(视觉 latent KV 压缩); ③ VLM-RadixAttention(多对话共享 system prompt + 同图像 prefix); ④ VLM MTP(专门的 VLM 多 token 预测 head)。

§10.12VLM 还没解决的

站到 2026-05,把 VLM 推理 / 训练栈仍空着的坑显式列出来:

  • 视觉 token 数量的"原生"控制—— FastV / VisionZip 都是 post-hoc 剪枝; 把"视觉 token 数量"作为模型可控参数(input-budget aware)的 SoTA 还没出现。 F³A (2605.16359) 在 scaling laws 上起步, 但 actionable 设计还没。
  • NSA-VLM—— 视觉 token 几千上万个, 是稀疏 attention 最直接的应用场景, 但目前只有 ASAP 这种 attention-shift 的近邻方案, 没有真正的 trainable sparse attention for VLM。
  • MLA-VLM 视觉 latent KV—— 和 MLA-Video / MLA-VLA 一样空白。 KVCapsule asymmetric K/V 是萌芽。
  • 多对话 VLM serving 的 prefix 共享—— 多用户问同一张图的不同问题, 视觉 prefill KV 完全可以 share, 但 RadixAttention-VLM 没人做。
  • 跨模态评估指标—— VLM 的"reasoning" benchmark (MMMU / MMVet / OlympiadBench) 与 OmniThoughtVis 蒸馏出的 deployable 模型之间存在 gap, 缺更好的 metric。
  • "Seeing but Not Thinking" 揭示的路由病—— MoE-VLM router 容易被视觉 token 分心, 现在只有事后修正, 需要更原生的解。
  • 动态分辨率 + 量化 + 剪枝三联用—— 每个都有 SoTA, 但三者协同设计的 production-ready 解还没有。