HeadGuard: Selective Head Protection for Low-Bit VLM KV-Cache Quantization
Mirrored from arXiv — Machine Learning for archival readability. Support the source by reading on the original site.
Computer Science > Machine Learning
Title:HeadGuard: Selective Head Protection for Low-Bit VLM KV-Cache Quantization
Abstract:Low-bit key-value (KV) cache quantization saves storage but can sharply degrade vision-language model (VLM) accuracy. We introduce HeadGuard, a composable head-protection method that augments a base KV-cache quantizer with a fixed high-precision mask. Image-sensitivity and output-sensitivity scores select physical KV heads offline, with approximately 1/8 protected in the main experiments; their image keys and optionally values remain in bfloat16 (BF16), while the base quantizes unprotected image entries. Across eight VLMs, three base quantizers, and eight benchmarks (six discriminative and two generative), HeadGuard recovers a substantial fraction of lost accuracy on weaker quantizers, with the strongest gains for Qwen and InternVL. At 2 bits, the six-task discriminative mean over eight models rises from 0.436 to 0.580 on the weakest base; protection can also improve generated answers and caption fidelity to BF16 outputs. Mean accuracy gains persist across all three quantizers with both tested calibration datasets. Keys-only protection retains substantial recovery at lower modeled storage cost. Evaluated through simulated quantization, HeadGuard offers a composable way to improve low-bit VLM accuracy without replacing the underlying quantizer.
| Subjects: | Machine Learning (cs.LG); Computer Vision and Pattern Recognition (cs.CV) |
| Cite as: | arXiv:2609.35800 [cs.LG] |
| (or arXiv:2609.35800v1 [cs.LG] for this version) | |
| https://doi.org/10.48550/arXiv.2609.35800
arXiv-issued DOI via DataCite
|
Access Paper:
- View PDF
- HTML (experimental)
- TeX Source
Ancillary files (details):
- MANIFEST.json
- README.md
- bootstrap_intervals.py
- build_archive.py
- calibration/budget_sweep/bits_2-3-4/mmbench/Hkv.npy
- calibration/budget_sweep/bits_2-3-4/mmbench/Hq.npy
- calibration/budget_sweep/bits_2-3-4/mmbench/L.npy
- calibration/budget_sweep/bits_2-3-4/mmbench/g.npy
- calibration/budget_sweep/bits_2-3-4/mmbench/g_kv.npy
- calibration/budget_sweep/bits_2-3-4/mmbench/hyb_kv.npy
- calibration/budget_sweep/bits_2-3-4/mmbench/qA.npy
- calibration/budget_sweep/bits_2-3-4/mmbench/qA_kv.npy
- calibration/budget_sweep/bits_2-3-4/mmbench/qS.npy
- calibration/budget_sweep/bits_2-3-4/mmbench/qS_kv.npy
- calibration/budget_sweep/bits_2-3-4/mmbench/qf.npy
- calibration/budget_sweep/bits_2-3-4/mmbench/qf_kv.npy
- calibration/budget_sweep/bits_2-3-4/mmbench/qfi.npy
- calibration/budget_sweep/bits_2-3-4/mmbench/qm.npy
- calibration/budget_sweep/bits_2-3-4/mmbench/qm_kv.npy
- calibration/budget_sweep/bits_2-3-4/pope/Hkv.npy
- calibration/budget_sweep/bits_2-3-4/pope/Hq.npy
- calibration/budget_sweep/bits_2-3-4/pope/L.npy
- calibration/budget_sweep/bits_2-3-4/pope/g.npy
- calibration/budget_sweep/bits_2-3-4/pope/g_kv.npy
- calibration/budget_sweep/bits_2-3-4/pope/hyb_kv.npy
- calibration/budget_sweep/bits_2-3-4/pope/qA.npy
- calibration/budget_sweep/bits_2-3-4/pope/qA_kv.npy
- calibration/budget_sweep/bits_2-3-4/pope/qS.npy
- calibration/budget_sweep/bits_2-3-4/pope/qS_kv.npy
- calibration/budget_sweep/bits_2-3-4/pope/qf.npy
- calibration/budget_sweep/bits_2-3-4/pope/qf_kv.npy
- calibration/budget_sweep/bits_2-3-4/pope/qfi.npy
- calibration/budget_sweep/bits_2-3-4/pope/qm.npy
- calibration/budget_sweep/bits_2-3-4/pope/qm_kv.npy
- calibration/full_kv/bits_2/pope/Hkv.npy
- calibration/full_kv/bits_2/pope/Hq.npy
- calibration/full_kv/bits_2/pope/L.npy
- calibration/full_kv/bits_2/pope/g.npy
- calibration/full_kv/bits_2/pope/g_kv.npy
- calibration/full_kv/bits_2/pope/hyb_kv.npy
- calibration/full_kv/bits_2/pope/qA.npy
- calibration/full_kv/bits_2/pope/qA_kv.npy
- calibration/full_kv/bits_2/pope/qS.npy
- calibration/full_kv/bits_2/pope/qS_kv.npy
- calibration/full_kv/bits_2/pope/qf.npy
- calibration/full_kv/bits_2/pope/qf_kv.npy
- calibration/full_kv/bits_2/pope/qfi.npy
- calibration/full_kv/bits_2/pope/qm.npy
- calibration/full_kv/bits_2/pope/qm_kv.npy
- calibration/full_kv/bits_3/pope/Hkv.npy
- calibration/full_kv/bits_3/pope/Hq.npy
- calibration/full_kv/bits_3/pope/L.npy
- calibration/full_kv/bits_3/pope/g.npy
- calibration/full_kv/bits_3/pope/g_kv.npy
- calibration/full_kv/bits_3/pope/hyb_kv.npy
- calibration/full_kv/bits_3/pope/qA.npy
- calibration/full_kv/bits_3/pope/qA_kv.npy
- calibration/full_kv/bits_3/pope/qS.npy
- calibration/full_kv/bits_3/pope/qS_kv.npy
- calibration/full_kv/bits_3/pope/qf.npy
- calibration/full_kv/bits_3/pope/qf_kv.npy
- calibration/full_kv/bits_3/pope/qfi.npy
- calibration/full_kv/bits_3/pope/qm.npy
- calibration/full_kv/bits_3/pope/qm_kv.npy
- calibration/keys_only/bits_2/pope/Hkv.npy
- calibration/keys_only/bits_2/pope/Hq.npy
- calibration/keys_only/bits_2/pope/L.npy
- calibration/keys_only/bits_2/pope/g.npy
- calibration/keys_only/bits_2/pope/g_kv.npy
- calibration/keys_only/bits_2/pope/hyb_kv.npy
- calibration/keys_only/bits_2/pope/qA.npy
- calibration/keys_only/bits_2/pope/qA_kv.npy
- calibration/keys_only/bits_2/pope/qS.npy
- calibration/keys_only/bits_2/pope/qS_kv.npy
- calibration/keys_only/bits_2/pope/qf.npy
- calibration/keys_only/bits_2/pope/qf_kv.npy
- calibration/keys_only/bits_2/pope/qfi.npy
- calibration/keys_only/bits_2/pope/qm.npy
- calibration/keys_only/bits_2/pope/qm_kv.npy
- compare_calibration.py
- evaluate.py
- experiments.json
- memory_estimates.py
- plot_budget.py
- reference/budget_sweep_mmbench.json
- reference/budget_sweep_pope.json
- reference/confidence_intervals.json
- reference/full_kv.json
- reference/keys_only.json
- render_capped_tables.py
- requirements-analysis.txt
- requirements.txt
- results_io.py
- run_budget_sweep.py
- run_full_kv.py
- run_grid.py
- run_keys_only.py
- summarize_results.py
- test_calibration_comparison.py
- test_numerics.py
- test_release.py
References & Citations
Bibliographic and Citation Tools
Code, Data and Media Associated with this Article
Demos
Recommenders and Search Tools
arXivLabs: experimental projects with community collaborators
arXivLabs is a framework that allows collaborators to develop and share new arXiv features directly on our website.
Both individuals and organizations that work with arXivLabs have embraced and accepted our values of openness, community, excellence, and user data privacy. arXiv is committed to these values and only works with partners that adhere to them.
Have an idea for a project that will add value for arXiv's community? Learn more about arXivLabs.
More from arXiv — Machine Learning
-
Algebraic Integer Quantization for Machine Learning Applications
Oct 12
-
CircuitTree: Composing Circuits into A Syllable Transcriber
Oct 12
-
Behind-the-Meter Photovoltaic Visibility from Net Smart Meters: Deployment Regimes and Operational Insights
Oct 12
-
GlucoPRISM: Protocol-Supervised Pretraining for Cross-Cohort Glucose Transfer
Oct 12
Discussion (0)
Sign in to join the discussion. Free account, 30 seconds — email code or GitHub.
Sign in →No comments yet. Sign in and be the first to say something.