Don't Ask the LLM: Visual Token Pruning with Spectral Structure and Semantic Relevance
Organizations: Sejong University, South Korea
Abstract
Large vision-language models (LVLMs) represent images and videos as long visual-token sequences, substantially increasing inference costs. These costs motivate visual-token pruning, whose effectiveness depends on both what signal is used for selection and when that signal becomes available. Our analysis reveals complementary limitations: visual-side [CLS] attention produces scattered, background-biased selections under aggressive compression, while stronger query-conditioned signals become available after substantial computation within the large language model (LLM). This raises a natural question: can structurally coherent, query-aware token selection be performed before consulting the LLM? We therefore propose ST-Pruner (Spectral-Textual Pruner), a training-free framework for pre-LLM visual-token selection. It combines attention-independent spectral saliency with inverted patch-text similarity through parameter-free multiplicative fusion. Across diverse LVLMs, ST-Pruner retains over 95% of full-token performance using at most 11.1% of visual tokens and achieves a 3.2x end-to-end speedup on LLaVA-NeXT. Code is available at https://github.com/sejong-rcv/ST-Pruner.
Figures & tables
| Method | VQA V2 | GQA | VizWiz | SQA | VQA Text | POPE | MME P | MMB | Avg. |
|---|---|---|---|---|---|---|---|---|---|
| Upper Bound, 576 Tokens ( 100% ) | |||||||||
| LLaVA-1.5-7B | 78.5 | 61.9 | 50.1 | 69.5 | 58.2 | 85.9 | 1506.5 | 64.7 | 100.0 |
| Retain 192 Tokens ( ) | |||||||||
| FastV (ECCV’24) | 67.1 | 52.7 | 50.8 | 67.3 | 52.5 | 64.8 | – | 61.2 | 89.9 |
| SparseVLM (ICML’25) | 75.6 | 57.6 | 50.5 | 69.1 | 56.1 | 83.6 | – | 62.5 | 97.1 |
| VisionZip (CVPR’25) | 76.8 | 59.3 | 50.5 | 68.9 | 57.3 | 85.3 | 1432.7 | 63.0 | 98.0 |
| Method | VQA V2 | GQA | VizWiz | SQA | VQA Text | POPE | MME P | Avg. |
|---|---|---|---|---|---|---|---|---|
| Upper Bound, 2880 Tokens ( 100% ) | ||||||||
| LLaVA-NeXT-7B | 81.3 | 62.7 | 54.7 | 72.1 | 60.3 | 86.5 | 1501.1 | 100.0 |
| Retain 640 Tokens ( ) | ||||||||
| FastV | 77.0 | 58.9 | 53.9 | 67.4 | 58.1 | 79.5 | 1412.6 | 94.7 |
| SparseVLM | 79.2 | 61.2 | 53.6 | 67.6 | 59.7 | 85.3 | 1456.8 | 97.3 |
| VisionZip | 79.1 | 61.2 | 57.1 | 68.1 | 59.9 | 86.0 | 1493.4 | 98.9 |
| Method | TGIF | MSVD | MSRVTT | Avg. |
|---|---|---|---|---|
| Upper Bound, 2048 Tokens ( 100% ) | ||||
| Video-LLaVA-7B | 47.1 | 69.8 | 56.7 | 100.0 |
| Retain 136 Tokens ( ) | ||||
| FastV (ECCV’24) | 23.1 | 38.0 | 19.3 | 45.8 |
| SparseVLM (ICML’25) | 44.7 | 68.2 | 31.0 | 82.4 |
| VisionZip (CVPR’25) | 42.4 | 63.5 | 52.1 | 91.0 |
| Method | GQA | SQA | POPE | Avg. |
|---|---|---|---|---|
| Upper Bound, 1296 Tokens ( 100% ) | ||||
| Qwen2.5-VL-7B | 62.0 | 87.8 | 88.2 | 100.0 |
| Retain 512 Tokens ( ) | ||||
| VisionZip (CVPR’25) | 58.1 | 86.2 | 83.3 | 95.4 |
| DivPrune (CVPR’25) | 61.3 | 87.9 | 87.4 | 99.4 |
| VisPruner (ICCV’25) | 60.8 | 87.3 | 86.7 | 98.6 |
| Variant | GQA | POPE | MME P | VQA Text |
|---|---|---|---|---|
| Retain 128 Tokens | ||||
| Semantic-only ( ) | 39.5 | 1.5 | 626.0 | 42.7 |
| Semantic-only ( ) | 59.6 | 86.9 | 1407.0 | 53.9 |
| Spectral-only | 58.5 | 85.9 | 1377.2 | 57.0 |
| ST-Pruner (Ours) | 59.4 | 87.3 | 1432.3 | 57.1 |
| Retain 64 Tokens | ||||
| Setting | ||
|---|---|---|
| Fusion Strategy | ||
| Entropy-weighted ( ) | 97.2 | 94.4 |
| Direct product (Ours) | 97.4 | 94.5 |
| Spectral Rank with Direct Product | ||
| 96.2 | 93.6 | |
| 97.0 | 94.2 | |
| Method | Retain | FLOPs (T) | Prefill (ms) | Decode (ms) | Total (ms) | KV (MB) | POPE F1 |
|---|---|---|---|---|---|---|---|
| LLaVA-NeXT-7B | 2880 | 34.92 | 679.2 | 48.8 | 727.9 | 1542 | 86.5 |
| SparseVLM (ICML’25) | 320 † | 7.81 ( ) | 299.3 ( ) | 44.1 ( ) | 343.4 ( ) | 359 | 76.9 |
| VisionZip (CVPR’25) | 320 | 4.53 ( ) | 142.5 ( ) | 36.0 ( ) | 178.4 ( ) | 200 | 82.3 |
| DivPrune (CVPR’25) | 320 | 4.53 ( ) | 187.5 ( ) | 33.6 ( ) | 221.1 ( ) | 200 | 83.4 |
| VisPruner (ICCV’25) | 320 | 4.53 ( ) | 163.0 ( ) | 34.9 ( ) | 197.9 ( ) | 200 | 81.3 |
| CDPruner (NeurIPS’25) | 320 | 4.53 ( ) | 177.7 ( ) | 34.2 ( ) | 211.9 ( ) | 200 | 85.8 |
| Setting | GQA | POPE | TextVQA | MME P | MMB | Avg. |
|---|---|---|---|---|---|---|
| Retain 192 Tokens | ||||||
| Entropy-weighted ( ) | 60.23 | 87.24 | 57.46 | 1462.73 | 62.24 | 98.23 |
| Entropy-weighted ( ) | 60.23 | 87.22 | 57.42 | 1439.85 | 62.41 | 97.96 |
| Entropy-weighted ( ) | 60.33 | 87.37 | 57.43 | 1430.01 | 62.33 | 97.88 |
| Entropy-weighted ( ) | 60.34 | 87.34 | 57.49 | 1435.92 | 62.24 | 97.95 |
| Entropy-weighted ( ) | 60.32 | 87.30 | 57.45 | 1438.44 | 62.24 | 97.95 |
| Rank | GQA | POPE | TextVQA | MME P | MMB | Avg. |
|---|---|---|---|---|---|---|
| Retain 192 Tokens | ||||||
| 60.15 | 86.31 | 55.03 | 1449.01 | 62.84 | 97.16 | |
| 60.43 | 87.03 | 57.15 | 1448.93 | 62.93 | 98.17 | |
| (Ours) | 60.26 | 87.29 | 57.59 | 1449.94 | 62.50 | 98.21 |
| 60.25 | 87.07 | 57.17 | 1455.17 | 62.16 | 97.98 | |
| 60.10 | 87.07 | 56.87 | 1435.42 | 62.59 | 97.70 | |
| Feature space | POPE | GQA | TextVQA | MME P | MMB |
|---|---|---|---|---|---|
| Retain 192 Tokens | |||||
| ViT-1024 (Ours) | 87.29 | 60.26 | 57.59 | 1449.94 | 62.50 |
| Projector-4096 | 87.02 | 60.42 | 57.55 | 1452.84 | 62.93 |
| Retain 128 Tokens | |||||
| ViT-1024 (Ours) | 87.26 | 59.38 | 57.06 | 1432.26 | 62.16 |
| Projector-4096 | 87.13 | 59.54 | 56.98 | 1437.73 | 61.99 |
| Weighting | GQA | POPE | TextVQA | MME P | MMB | Avg. |
|---|---|---|---|---|---|---|
| Retain 192 Tokens | ||||||
| (uniform) | 60.28 | 87.22 | 57.32 | 1446.14 | 62.41 | 98.03 |
| (Ours) | 60.26 | 87.29 | 57.59 | 1449.94 | 62.50 | 98.21 |
| (linear) | 60.34 | 87.25 | 57.23 | 1450.04 | 62.67 | 98.16 |
| (quadratic) | 56.61 | 82.98 | 49.53 | 1269.44 | 51.79 | 87.54 |
| Retain 128 Tokens | ||||||
| Method | Tokens | FLOPs (T) | Prefill (ms) | Decode (ms) | Total (ms) | KV (MB) | F1 |
| LLaVA-NeXT-7B | 2880 | 34.92 | 679.2 | 48.8 | 727.9 | 1542 | 86.5 |
| Retain 640 Tokens | |||||||
| SparseVLM (ICML’25) | 640 † | 11.05 ( ) | 368.4 ( ) | 44.8 ( ) | 413.1 ( ) | 505 | 85.3 |
| VisionZip (CVPR’25) | 640 | 8.33 ( ) | 222.7 ( ) | 34.5 ( ) | 257.2 ( ) | 368 | 86.0 |
| DivPrune (CVPR’25) | 640 | 8.33 ( ) | 286.5 ( ) | 32.5 ( ) | 319.0 ( ) | 368 | 86.0 |
| VisPruner (ICCV’25) | 640 | 8.33 ( ) | 267.9 ( ) | 36.8 ( ) | 304.7 ( ) | 368 | 85.9 |
Visual Token Pruning
Visual token pruning reduces the image and video patches processed by transformers to lower inference cost while preserving task-relevant information.
See all 278 papers