
Existing query-agnostic KV eviction only decides which original KV pairs to keep. RestoreKV adds a learned, budget-matched restoration: a single LoRA-adapted restore pass generates a compact, context-conditioned restore cache — recovering full-cache behavior under aggressive eviction while training only 0.4% of parameters (~2h on a single RTX PRO 6000) and adding <0.5% one-time overhead.
A single LoRA-adapted restore pass, trained offline by self-distillation, generates a compact restore cache that is merged with the retained context under the same total KV budget.


| Method | RULER-4K | QASPER | QuALITY | LongHealth | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0.2 | 0.1 | 0.05 | 0.2 | 0.1 | 0.05 | 0.2 | 0.1 | 0.05 | 0.2 | 0.1 | 0.05 | |
| KVzip | 91.4 | 80.1 | 38.2 | 38.2 | 33.9 | 18.0 | 66.0 | 58.5 | 46.3 | 71.5 | 70.0 | 61.0 |
| + RestoreKV | 93.5+2.1 | 88.8+8.7 | 73.2+35.0 | 39.0+0.8 | 37.7+3.8 | 28.7+10.7 | 67.0+1.0 | 63.3+4.8 | 52.4+6.1 | 75.8+4.3 | 73.8+3.8 | 67.5+6.5 |
| KVzip+ | 91.3 | 84.8 | 51.6 | 38.1 | 32.4 | 23.3 | 66.5 | 60.0 | 51.9 | 73.2 | 67.8 | 63.2 |
| + RestoreKV | 93.3+2.0 | 89.7+4.9 | 70.7+19.1 | 40.9+2.8 | 38.5+6.1 | 31.6+8.3 | 66.8+0.3 | 62.9+2.9 | 57.9+6.0 | 74.2+1.0 | 73.0+5.2 | 71.5+8.3 |
| ContrastKV | 91.6 | 80.7 | 38.0 | 40.1 | 31.9 | 17.8 | 66.2 | 62.2 | 50.7 | 74.2 | 69.0 | 49.0 |
| + RestoreKV | 92.3+0.7 | 84.3+3.6 | 40.2+2.2 | 40.9+0.8 | 36.0+4.1 | 21.6+3.8 | 67.6+1.4 | 63.3+1.1 | 51.9+1.2 | 75.2+1.0 | 70.5+1.5 | 54.0+5.0 |
| SnapKV | 33.8 | 20.6 | 12.7 | 22.4 | 19.0 | 14.3 | 53.9 | 53.0 | 42.5 | 41.0 | 36.8 | 36.2 |
| + RestoreKV | 37.7+3.9 | 26.3+5.7 | 14.3+1.6 | 29.9+7.5 | 24.0+5.0 | 20.7+6.4 | 59.4+5.5 | 51.8−1.2 | 49.9+7.4 | 51.8+10.8 | 41.8+5.0 | 38.5+2.3 |
| H2O | 8.0 | 3.5 | 3.2 | 22.0 | 13.8 | 14.4 | 59.2 | 50.4 | 41.5 | 60.2 | 48.8 | 37.0 |
| + RestoreKV | 17.3+9.3 | 11.6+8.1 | 5.7+2.5 | 30.4+8.4 | 24.7+10.9 | 21.3+6.9 | 60.9+1.7 | 54.9+4.5 | 47.7+6.2 | 64.8+4.6 | 59.0+10.2 | 46.8+9.8 |
Columns are the KV budget ratio r (fraction of the full cache retained). RestoreKV is a budget-matched plug-in — base and + RestoreKV use the same total budget. Colored subscripts show the absolute change from the corresponding baseline; gains are typically largest at the tightest budget (r = 0.05).

