PixelPrune: 基于预测编码的像素级自适应视觉 Token 约简 PixelPrune: Pixel-Level Adaptive Visual Token Reduction via Predictive Coding
利用像素级冗余在 ViT 前约简视觉 token,无需训练即可实现 4.2× 推理加速
前置知识
Vision-Language Models (VLMs)
视觉-语言模型是将视觉编码器与大型语言模型结合的多模态模型,通过投影层将视觉 token 映射到语言模型的语义空间,实现图像理解和跨模态推理。VLMs 需要将图像分割成多个 patch,每个 patch 生成一个视觉 token,token 数量直接影响计算成本。
PixelPrune 针对 VLMs 在高分辨率场景下的计算瓶颈问题,需要理解 ViT 编码器的工作机制和 token 处理流程才能明白其加速原理。
Predictive Coding
预测编码是一种无损压缩技术,通过预测像素值并编码预测误差来减少数据冗余。PNG 和 JPEG-LS 等格式都基于此原理,使用空间邻域信息预测当前像素。预测规则包括简单预测(如使用左邻居)和复杂预测(如边缘检测预测器)。
PixelPrune 的核心创新是将图像压缩中的预测编码思想应用到视觉 token 约简,理解这一技术有助于理解其理论保证和可恢复性。
NaViT-style Vision Encoders
NaViT (Native Resolution Vision Transformer) 是一种在图像原始分辨率上处理图像的视觉编码器,不强制将图像缩放到固定分辨率。这种方法能保留图像的原始细节,但会导致不同图像产生差异巨大的 token 数量,高分辨率图像可能产生数万个 patch。
PixelPrune 主要针对 NaViT-style 编码器(如 Qwen-VL 系列)在文档和 GUI 场景下的高计算负担,理解这种架构才能明白为什么需要在 ViT 之前进行 token 约简。
研究动机
现有的视觉-语言模型在处理文档理解和 GUI 交互等高价值应用时面临极大的计算负担。这些场景需要高分辨率输入来呈现细粒度文本和小型 UI 元素,导致产生数万个视觉 token。论文分析了文档和 GUI 基准测试,发现典型文档页面在预处理后平均为 1775x2082 像素,产生超过 14000 个 ViT patch,经过 2x2 合并后仍有约 3600 个 LLM token。更大的问题是,在 Qwen3-VL-8B 模型中,当图像分辨率为 4096x4096 时,视觉编码器占总 prefill 延迟的 75%。现有方法主要在特征层面或 ViT 之后进行 token 约简,无法解决 ViT 编码器自身的计算开销,这部分占据了大部分延迟。
本文的目标是本文的目标是开发一种参数无关的方法,能够在视觉 token 进入 ViT 编码器之前就进行约简,从而加速整个推理流程,包括 ViT 编码器、patch 合并器和 LLM 解码器。方法应该能够在文档和 GUI 图像上保持任务准确性的同时,显著减少计算开销。理想的方法应该是训练无关的,不需要可学习参数,并且理论上能够保证信息的可恢复性。此外,方法应该支持像素无损压缩和受控的有损压缩,以适应不同应用场景的需求。
与已有工作不同的是,本文的独特切入角度在于从像素层面而非语义或特征层面发现和利用冗余。作者观察到在文档和 GUI 图像中,只有 22-71% 的图像块在像素上是唯一的,其余都是同一图像中其他块的精确重复。这些冗余主要来自文档的白边、统一的页面背景,以及 GUI 截图中的纯色面板、工具栏和状态栏。与现有方法在特征层面进行约简不同,PixelPrune 直接利用像素级冗余,在没有任何神经网络计算之前就进行 token 选择,从而能够加速整个推理流程。这种方法的独特之处在于它不需要学习到的表示,仅依赖原始像素内容就可以做出有效的约简决策。
核心方法
PixelPrune 的整体思路是将图像压缩中的预测编码技术应用到视觉 token 约简。直觉上,文档和 GUI 图像包含大量像素完全相同的区域,这些区域在视觉上不提供额外信息,因此可以安全地删除。技术路线上,PixelPrune 对每个 patch 从其空间因果邻居进行预测,如果预测匹配(在阈值 tau 内),则该 patch 被标记为冗余并被省略。因为该方法在像素空间操作,位于任何神经网络计算之前,所以能够加速整个流程。方法的关键创新在于 patch 级别的预测编码框架,能够提供理论上的可恢复性保证。具体实现上,PixelPrune 以 32x32 像素块为单位,对应 Qwen3-VL 的 ViT patch 大小 p=16 和合并因子 M=2,按照固定顺序扫描并预测每个块,当预测足够接近时省略该块。
核心创新点是将图像无损压缩中的预测编码思想从单个像素扩展到 patch 块级别。与现有方法依赖学习到的特征表示或注意力权重不同,PixelPrune 直接利用原始像素内容的冗余性。这使它能够在 ViT 编码器之前进行约简,而不需要任何前向传播。另一个关键区别是,PixelPrune 的约简决策完全基于局部空间信息,不需要全局理解,因此计算复杂度是 O(N) 而非 O(N^2)。此外,与 IndexPrune 等需要训练神经预测器并依赖 OCR 注释的方法不同,PixelPrune 是完全参数无关的。与 ShowUI 在 ViT 自注意力内部进行 token 跳过的方法不同,PixelPrune 在 ViT 之前的像素空间操作,因此能够节省整个 pipeline 的计算,包括 ViT 编码器本身的注意力计算。
方法步骤详情
PixelPrune 的完整工作流程包括以下步骤:第一步是输入预处理,将输入图像分割为 N = (H/p) x (W/p) 个大小为 p x p 的非重叠 patch,其中 p=16 是 ViT 的 patch 大小。第二步是块级预测,将 ViT patch 按照 M x M 分组,形成 Mp x Mp = 32 x 32 的像素块,每个块对应一个 LLM token,这是最小的可独立移除单元。第三步是扫描和预测,按照固定顺序扫描每个块,对每个块 Pr,c 从其因果邻居(已经访问过的块)计算预测值。第四步是冗余判断,使用匹配准则判断是否省略该块,其中 tau >= 0 控制匹配严格ness,默认 tau=0 表示精确像素相等。第五步是位置保持,只保留被选中的 patch-位置对,每个保留的 token 保持其原始 2D 网格坐标,确保位置编码正确反映空间布局。第六步是后续处理,将约简后的 token 序列输入到 ViT 编码器、patch 合并器和 LLM 解码器,每个阶段都由于 token 数量减少而加速。在 tau=0 的默认情况下,像素相等具有传递性,整个操作可以在 GPU 上向量化,延迟可忽略不计。
技术新颖性
PixelPrune 的技术新颖性体现在多个方面。首先是预测编码框架从像素级别到 patch 块级别的扩展,这是首个将经典图像压缩技术直接应用于视觉 token 约简的方法。其次是理论保证的提供,证明了在 tau=0 时原始 patch 序列可以通过确定性解码器从压缩表示中完全恢复,这在现有 token 约简方法中是少见的。第三是在 ViT 之前的约简位置,使其能够加速整个推理流程而不仅仅是 LLM 部分,这在高分辨率场景中尤为重要,因为 ViT 编码器可能占据高达 86% 的 prefill 延迟。第四是参数无关性,不需要任何可学习参数或外部注释,可以直接应用于预训练模型。最后是多模式的兼容性,支持从训练无关应用到知识蒸馏和从头训练的全流程集成,提供了部署的灵活性。
实验结果
论文在文档理解和 GUI 理解两个领域进行了全面的实验评估。在文档理解方面,PixelPrune 在 DocVQA、InfoVQA、ChartQA、AI2D、OCRBench、MMLongBench-Doc 和 olmOCRBench 七个基准测试上,使用 Qwen3-VL-2B/4B/8B 三个模型规模,实现了与完整 token 相当的准确性,同时实现了 23-50% 的 token 约简。例如,在 Qwen3-VL-8B 上,PixelPrune 的平均准确率为 75.3%,而完整 token 为 75.5%,仅相差 0.2 个百分点。不同基准测试的保留率差异很大,MMLongBench-Doc 和 olmOCRBench 保留 50-57% 的 token,而 InfoVQA 和 ChartQA 保留 73-77%。在 GUI 理解方面,训练无关应用在 ScreenSpot V2 和 ScreenSpot Pro 上的表现显示,GUI 图像比文档图像具有更高的冗余性,保留率显著更低(Web 39.7%,Mobile 49.1%,Desktop 61.9%)。知识蒸馏恢复了大部分准确率差距,PixelPrune (+KD) 在 ScreenSpot Pro 上达到 47.6%,而完整 token 为 50.2%,差距仅 2.6 个百分点。效率分析表明,在 ScreenSpot Pro Scientific(单页,26.2% 保留)和 MMLongBench-Doc(多页,50.3% 保留)上,PixelPrune 实现了 3.0-4.2x 的 TTFT 加速,3.5-6.6x 的 FLOPs 减少,以及 45-63% 的 KV 缓存内存节省。在训练效率方面,使用 40.8% 的平均保留率,PixelPrune 实现了 2.0x 的前向和后向传播加速,将训练时间从 49.1 小时减少到 25.3 小时(1.9x),峰值 GPU 内存减少 33.6%(57.8 到 38.4 GB)。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| Document Understanding (Qwen3-VL-8B) | Average Accuracy | 75.3% | 75.5% (Full) | 仅差 0.2 个百分点,保留 23-50% token |
| GUI Understanding - ScreenSpot V2 (Qwen3-VL-2B +KD) | Average Grounding Accuracy | 90.6% | 90.6% (Full) | 完全匹配,保留 39.7-61.9% token |
| GUI Understanding - ScreenSpot Pro (Qwen3-VL-2B +KD) | Average Grounding Accuracy | 47.6% | 50.2% (Full) | 差 2.6 个百分点,保留 26.3-65.6% token |
| Inference Speedup (ScreenSpot Pro Scientific) | TTFT Speedup | 4.2x | 1.0x (Full) | 保留 26.2% token,KV 缓存节省 63% |
| Training Efficiency (GUI from scratch) | Wall Time Reduction | 25.3h | 49.1h (Full) | 1.9x 加速,内存减少 33.6% |
局限与改进
作者承认 PixelPrune 在某些场景下存在局限性。在 GUI 理解任务中,训练无关应用在位置敏感的 grounding 任务上存在准确率差距,虽然通过知识蒸馏可以恢复大部分基准测试,但不是所有任务都能完全恢复。例如,CAD 任务从 40.2% 下降到 30.3%,可能由于训练集中 CAD 风格数据稀疏。此外,作者在附录 F 中评估了通用领域图像,发现 PixelPrune 的约简率在自然图像上显著低于文档和 GUI 图像,这意味着其压缩效果高度依赖于图像的结构特性。另一个潜在限制是方法对空间布局敏感,在对位置精度要求极高的任务中,即使微小的误差也可能导致性能下降,这在 ChartQA 的敏感性中已经体现。
独立分析的弱点
独立分析 PixelPrune 的弱点可以发现几个改进方向。首先,方法完全基于像素级信息进行决策,忽略了语义重要性。在某些场景中,语义关键的区域可能在像素上与背景相似(如低对比度的文字或细微的 UI 元素),这些区域可能被错误地约简。改进方向可以结合轻量级的语义提示或 OCR 检测来保护关键区域。其次,固定预测规则可能无法适应所有图像类型,某些图像可能需要更复杂的预测策略才能捕获冗余模式。改进方向可以是开发可学习的预测器或自适应预测规则选择机制。第三,在有损压缩模式下,虽然 Max 距离度量表现优于 MAE,但阈值的设置仍然是手动的,可能需要针对不同任务进行调优。改进方向可以是自适应阈值选择或基于任务感知的压缩策略。第四,方法在多模态推理中的长上下文场景下的效果还需要进一步验证,特别是当多个图像或长视频序列被同时处理时,token 约简可能会影响跨帧或跨图像的推理能力。
未来方向
作者提出的未来工作方向包括进一步研究在通用领域图像上的性能,以及探索更复杂的预测策略。基于论文成果,可以延伸出多个研究方向。一是将 PixelPrune 与其他 token 约简方法结合,形成多阶段压缩流水线,例如在像素级约简后再进行特征级或注意力级的进一步约简。二是探索任务感知的压缩策略,根据具体任务的需求动态调整压缩参数,在关键区域保留更多 token 而在背景区域更激进地约简。三是研究可学习的压缩算法,将 PixelPrune 的参数无关性作为初始化,通过少量微调学习任务特定的压缩模式。四是将方法扩展到视频理解场景,在时间维度上也应用类似的预测编码策略,进一步压缩视频 token。五是探索在更广泛的多模态任务中的应用,如图文生成、图像描述等,评估 PixelPrune 对生成质量的影响。六是研究将 PixelPrune 集成到模型训练流程中,探索在预训练阶段就使用压缩 token 的可行性,这可能产生更加 token 高效的模型架构。
复现评估
PixelPrune 的复现性较强,论文声称代码已开源,提供了完整的实现和实验脚本。实验使用了 Qwen3-VL 系列模型(2B、4B、8B Dense 变体),这些都是公开可用的模型。数据集方面,文档理解使用了 DocVQA、AI2D、ChartQA、InfoVQA、OCRBench、MMLongBench-Doc 和 olmOCRBench,这些都是标准基准测试,公开可获取。GUI 理解使用了 ScreenSpot V2 和 ScreenSpot Pro,也是公开的数据集。训练实验使用了 Jedi 数据集的坐标包含子集。算力方面,推理实验使用了 8 张 NVIDIA H20 GPU,批量大小为 1;训练实验使用 NVIDIA H20 GPU 和 DeepSpeed ZeRO-2 配置。论文提供了详细的训练配置在附录 B 中,包括步骤数、GPU 数量和损失函数。所有关键的超参数都有明确说明,如默认的 tau=0、32x32 块大小、Pred-2D 预测策略等。消融研究详细展示了不同预测策略、距离度量和阈值的性能,使得结果验证相对容易。总体而言,论文提供了充分的信息和代码,复现难度中等。
论文图表
图展示了 PixelPrune 在文档图像和 GUI 截图上的 patch 选择效果。保留的 patch 以原始颜色显示,被丢弃的 patch 用灰色表示。文档图像实现了 70% 的 token 约简,GUI 截图实现了 93% 的约简。从图中可以清晰地看到,文档中被丢弃的区域主要是白色边距和统一背景,GUI 中被丢弃的区域是大型纯色面板、工具栏和状态栏。
这张图对理解论文非常重要,因为它直观地展示了 PixelPrune 如何利用像素级冗余,以及约简后的图像在视觉上的效果。特别是它清楚地显示了文档和 GUI 图像中冗余区域的分布差异,这解释了为什么 GUI 图像能够实现更高的约简率(93% vs 70%)。
图展示了 Qwen3-VL 在三个模型规模和五个分辨率下的 prefill 延迟分解。每个条形分为两部分:红色表示视觉编码器(包括 ViT 和 patch 合并器),蓝色表示 LLM prefill。从图中可以看出,在高分辨率(4096x4096)下,视觉编码器占总 prefill 时间的 86%(2B 模型)、72%(4B 模型)和 75%(8B 模型)。
这张图对理解论文的核心动机至关重要。它量化了视觉编码器在高分辨率场景下的计算负担,解释了为什么需要在 ViT 之前进行 token 约简。图中的数据支持了作者的观点,即现有方法专注于减少 LLM 的 token 而忽略 ViT 编码器是一个重大盲点。