VLMProbe: An Open-source Library for VLM Probing and Interpretation
Organizations: The University of British Columbia · Vector Institute
Abstract
Understanding how vision-language models use visual information requires connecting internal representations to model behavior. We present vlmprobe, an open-source library that integrates lens readouts, attention attribution, causal interventions, and sparse autoencoder (SAE) analysis within a common model interface. Shared adapters, calibration and checkpoint utilities, evaluation pipelines, and visualizations support systematic analysis across architectures. Using this framework, we compare methods across vision-language, language, and vision models through matched case studies and controlled evaluations of pretrained sparse dictionaries. The comparisons show that representation readouts and spatial explanations depend on the analysis objective and observation site, and that local attribution estimates can disagree with measured intervention effects. SAE evaluations further expose distinct trade-offs in reconstruction fidelity, concept readout, and spatial localization. Together, these results support combining multiple forms of evidence to evaluate an interpretation. vlmprobe provides a reusable basis for selecting methods, comparing their conclusions, and testing hypotheses about model behavior. The code is available on github.com/ubc-tea/vlm-probe
Figures & tables
| Model | Image grid | Architectural feature |
|---|---|---|
| SmolVLM-500M-Instruct | Compressed image tokens with a Llama decoder | |
| InternVL3-1B-hf | InternVL vision path with a Qwen2 decoder | |
| Qwen3-VL-2B-Instruct | Normalized Q/K and DeepStack visual additions | |
| Pixtral-12B | Pixtral patch encoder with a Mistral decoder | |
| LLaVA-1.5-7B | CLIP visual features projected into a Llama decoder |
| Source | Released identifiers | Analysis question |
|---|---|---|
| GQA | 07302654 / 19225230 | Is the shirt black or yellow? |
| MMVP | Images 1 / 2 | Are the butterfly’s wings open or closed? |
| VSR zero-shot | Test rows 0 / 1 | Car behind suitcase; cat under backpack |
| VisOnlyQA real | Row 0 of two splits | Connected triangle; chart-value extraction |
| Family | Methods demonstrated | Matched comparison |
|---|---|---|
| Lens | Logit, Tuned, Jacobian, Attention Lens; EmbedLens readout; Patchscope | Residual/head decoding on IOI; visual-token and transfer readouts on GQA |
| Attention | Rollout, Grad-CAM, ATTATTR, TAM, Beyond-H/C, generic relevance | Seven attribution methods on GQA across five VLMs; native ViT maps and deletion tests |
| Causal | Activation/attribution patching, knockout, path patching, EAP/EAP-IG, VSV steering | Exact versus approximate replacements; attention knockout; controlled sender paths; edge retention; generation changes across three VLMs |
| SAE | ReLU, TopK, Gated, JumpReLU, BatchTopK, Matryoshka; RA-SAE and SAE++ readouts | Frozen Pythia dictionaries; source-native spatial readouts across nine vision/VLM backbones; image–question attribution and feature removal in five decoder configurations |
| Activity / fidelity | Spatial response | |||||||
|---|---|---|---|---|---|---|---|---|
| Model | Recipe | FVU | Coverage | Point@1 | Shuffled | Mass | ||
| CLIP B/32 | ReLU | 1,413.14 | 0.0152 | 1,534 | 100.0 | 54.5 | 19.2 | 39.4 |
| CLIP B/32 | TopK | 64.00 | 0.2163 | 1,534 | 66.5 | 44.7 | 16.2 | 58.8 |
| CLIP B/32 | Gated | 107.80 | 0.1261 | 1,534 | 69.4 | 47.1 | 16.3 | 57.8 |
| DINO B/16 | ReLU | 1,083.63 | 0.0063 | 1,534 | 97.9 | 52.7 | 18.6 | 38.6 |
| DINO B/16 | TopK | 1,023.82 | 0.0085 | 1,534 | 65.4 | 35.5 | 15.6 | 44.4 |
Appendix figures & tables18 assets
Supplementary material from the paper’s appendix.
Appendix
| Checkpoint | Revision |
|---|---|
| HuggingFaceTB/SmolVLM-500M-Instruct | a7da5b986cb59b408707209984f360a5f4ad7e47 |
| OpenGVLab/InternVL3-1B-hf | 014c0583a0d4bedf29fbe2dbff4f865eb998e171 |
| Qwen/Qwen3-VL-2B-Instruct | 89644892e4d85e24eaac8bacfd4f463576704203 |
| mistral-community/pixtral-12b | c2756cbbb9422eba9f6c5c439a214b0392dfc998 |
| llava-hf/llava-1.5-7b-hf | b234b804b114d9e37bb655e11cbbb5f5e971b7a9 |
| Qwen/Qwen3.5-4B (appendix) | 851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a |
| Model | Layer | Initial KL | Selected KL | Epoch |
|---|---|---|---|---|
| SmolVLM | 7 | 14.3279 | 1.9050 | 11 |
| SmolVLM | 15 | 11.4524 | 1.4967 | 12 |
| SmolVLM | 23 | 6.0436 | 0.7889 | 11 |
| LLaVA | 7 | 7.8680 | 1.3609 | 12 |
| LLaVA | 15 | 5.9005 | 0.9137 | 12 |
| LLaVA | 23 | 4.5529 | 0.3782 | 11 |
| Backbone | Recipe | Native observation / input normalization | ||
|---|---|---|---|---|
| CLIP B/32 | ReLU | 768 | 49,152 | Block 11 residual; raw |
| CLIP B/32 | TopK | 768 | 49,152 | Block 11 residual; per-token sample normalization |
| CLIP B/32 | Gated | 768 | 49,152 | Block 9 MLP output; raw |
| DINO B/16 | ReLU | 768 | 49,152 | Block 11 residual; per-token sample normalization |
| DINO B/16 | TopK | 768 | 49,152 | Block 11 residual; per-token sample normalization |
| CLIP L/14-336 | Matryoshka | 1,024 | 65,536 | Block 22 residual; raw |
| Method | Source setting | FVU | AUROC@1 | AUROC@5 | ||
|---|---|---|---|---|---|---|
| ReLU + L1 | 468.80 | 0.0399 | 0.1145 | 0.9120 | 0.9329 | |
| ReLU + L1 | 227.06 | 0.0690 | 0.2493 | 0.9073 | 0.9362 | |
| ReLU + L1 | 77.71 | 0.1078 | 0.5796 | 0.8869 | 0.9270 | |
| TopK | 20.00 | 0.1081 | 0.5751 | 0.8412 | 0.9247 | |
| TopK | 80.00 | 0.0659 | 0.2080 | 0.9002 | 0.9318 | |
| TopK | 320.00 | 0.0182 | 0.0341 | 0.9239 | 0.9370 |
| Representation | AUROC@1 | AUROC@2 | AUROC@5 | Macro F1@5 |
|---|---|---|---|---|
| Raw neurons (768) | 0.8506 | 0.8929 | 0.9249 | 0.8038 |
| PCA (128) | 0.8511 | 0.9105 | 0.9481 | 0.8363 |
| Random projection (4,096) | 0.8773 | 0.9105 | 0.9286 | 0.7952 |
| Backbone / scope | Native grid | Calibration positions | Validation positions |
|---|---|---|---|
| CLIP B/32 | 24,500 | 49,000 | |
| DINO B/16 | 98,000 | 196,000 | |
| CLIP L/14-336 | 288,000 | 576,000 | |
| CLIP B/16 | 98,000 | 196,000 | |
| SigLIP B/16 | 98,000 | 196,000 | |
| DINOv2 B/14 | 128,000 | 256,000 |
| Category | Feature | Coverage | Point@1 | Mass (active) | |
|---|---|---|---|---|---|
| Backpack | 370 | 40 | 92.5 | 62.5 | 42.4 |
| Bench | 3276 | 45 | 68.9 | 60.0 | 77.8 |
| Bottle | 2167 | 79 | 64.6 | 41.8 | 56.8 |
| Bowl | 574 | 56 | 89.3 | 71.4 | 67.4 |
| Car | 2499 | 97 | 100.0 | 75.3 | 52.5 |
| Cell phone | 1195 | 36 | 72.2 | 50.0 | 59.2 |
| Dictionary | Scope | Width | FVU | Cosine | |
|---|---|---|---|---|---|
| BatchTopK | CLS | 16,384 | 24.35 | 0.2816 | 0.9709 |
| Matryoshka | CLS | 16,384 | 23.76 | 0.2956 | 0.9696 |
| VLM | Boundary | Hidden | Features | Source activation |
|---|---|---|---|---|
| Qwen2.5-VL-3B | L34 output | 2,048 | 65,536 | Raw TopK, |
| Qwen3.5-4B | L27 output | 2,560 | 65,536 | JumpReLU export |
| LLaVA-NeXT Llama3-8B | L24 output | 4,096 | 131,072 | ReLU + TopK, |
| LLaVA-v1.6-Mistral-7B | L24 input | 4,096 | 32,768 | ReLU, scale 8 |
| PaliGemma2-3B mix448 | L23 output | 2,304 | 16,384 | JumpReLU |
| Image | Question | Canonical / foil | Instance | Source |
|---|---|---|---|---|
| 14439 | What color is the jacket worn by the foreground child to the right of the large kite? | black / white | 1733380 | C |
| 14439 | What color are the trousers worn by the foreground child to the right of the large kite? | blue / red | 1733380 | C |
| 263463 | What part of the car surrounds the dog’s reflection? | side mirror / windshield | 145584 | C |
| 263463 | What color is the frame of the car’s side mirror in the foreground? | black / white | 145584 | C |
| 263463 | What animal is reflected in the car’s side mirror? | dog / cat | 10416 | C |
| 532575 | What shape is the dog tag? | heart / circle | 4318 | V |
| Model | Question | FVU | Relative error | Mean |
|---|---|---|---|---|
| Qwen2.5-VL-3B | Child jacket | 0.225 | 0.253 | 100.0 |
| Qwen2.5-VL-3B | Mirror part | 0.228 | 0.256 | 100.0 |
| Qwen2.5-VL-3B | Tag shape † | 0.221 | 0.254 | 100.0 |
| Qwen3.5-4B | Child jacket | 0.455 | 0.549 | 124.7 |
| Qwen3.5-4B | Mirror part | 0.489 | 0.563 | 118.0 |
| Qwen3.5-4B | Tag shape † | 0.407 | 0.534 | 124.9 |
| Model | Question | |||
|---|---|---|---|---|
| Qwen2.5-VL-3B | Child jacket | 4.972 | 0.008 | -0.0001 |
| Qwen2.5-VL-3B | Child trousers | 4.314 | 0.787 | 0.0006 |
| Qwen2.5-VL-3B | Mirror part | 1.982 | 0.027 | -0.0002 |
| Qwen2.5-VL-3B | Mirror frame | 5.274 | 0.713 | -0.0001 |
| Qwen2.5-VL-3B | Reflected animal | 5.725 | 0.229 | 0.0005 |
| Qwen2.5-VL-3B | Tag shape † | 2.452 | 0.572 | 0.0004 |
| Question | Qwen2.5-VL | Qwen3.5 | LLaVA Llama3 | LLaVA Mistral | PaliGemma |
|---|---|---|---|---|---|
| Child jacket | black | black | Brown | Brown | brown |
| Child trousers | black | blue | Blue | Blue | blue |
| Mirror part | mirror | mirror | Mirror | Mirror | mirror |
| Mirror frame | black | black | Black | Black | black |
| Reflected animal | dog | dog | Dog | Dog | dog |
| Tag shape † | heart | heart | Heart | Heart | heart |
| Model | Question | FVU | Max overlap | |||
|---|---|---|---|---|---|---|
| Qwen2.5-VL-3B | Child jacket | 0.225 | 0.001 | 2.766 | -0.200 | 0.000 |
| Qwen2.5-VL-3B | Child trousers | 0.225 | 0.006 | 0.789 | 0.468 | 0.000 |
| Qwen2.5-VL-3B | Mirror part | 0.228 | 0.010 | 2.169 | 2.234 | 0.926 |
| Qwen2.5-VL-3B | Mirror frame | 0.228 | -0.011 | 1.808 | 1.386 | 0.854 |
| Qwen2.5-VL-3B | Reflected animal | 0.228 | -0.021 | 4.627 | 0.229 | 0.000 |
| Qwen2.5-VL-3B | Tag shape † | 0.221 | -0.002 | 3.238 | 0.314 | 0.690 |
| Model | Question | ||||
|---|---|---|---|---|---|
| Qwen2.5-VL-3B | Child jacket | 207/207 | 14.3/14.3 | 652.70/652.70 | 46.65/46.65 |
| Qwen2.5-VL-3B | Child trousers | 295/295 | 16.7/16.7 | 1767.97/1767.97 | 54.76/54.76 |
| Qwen2.5-VL-3B | Mirror part | 296/296 | 16.0/16.0 | 901.80/901.80 | 41.48/41.48 |
| Qwen2.5-VL-3B | Mirror frame | 204/204 | 19.3/19.3 | 1825.23/1825.23 | 32.23/32.23 |
| Qwen2.5-VL-3B | Reflected animal | 119/119 | 16.7/16.7 | 1022.65/1022.65 | 32.66/32.66 |
| Qwen2.5-VL-3B | Tag shape † | 282/282 | 14.0/14.0 | 2148.47/2148.47 | 22.29/22.29 |
VLM Interpretability
Vision-language model interpretability explains how image and language representations shape predictions, evidence use, and multimodal reasoning.
See all 268 papers