跳至主要内容

Store-h KV Cache

功能

不儲存每層的 K 和 V(每 token 每層 2 × D),改儲存 pre-QKV hidden state h(每 token 每層 1 × D)。在 attention 時重建 K = W_k · hV = W_v · h

壓縮模式

模式每 token 足跡(D=2048)KV 節省品質
FP16 K/V8,192 B基線
FP16-h4,096 B50%Bit-exact
INT8-h2,080 B~66%保留 greedy
INT4-h1,056 B78%評估/排序安全

重建流程

重建使用 block 現有的 attn_qkv 權重 — 不需要額外的投影矩陣。

用法

# FP16-h(bit-exact,節省 50%)
TINYLOOP_KV_H_MODE=1 tinyloop model.tinyloop generate --loops 8

# INT8-h(節省 66%)
TINYLOOP_KV_H_MODE=1 TINYLOOP_KV_INT8=1 tinyloop model.tinyloop generate --loops 8

# INT4-h(節省 78%,用於評估/排序)
TINYLOOP_KV_H_MODE=1 TINYLOOP_KV_INT4=1 tinyloop model.tinyloop generate --loops 8

為何僅 looped

標準 transformer 可以儲存 latent(如 DeepSeek MLA),但 MLA 需要訓練過的壓縮與解壓矩陣(額外參數)。Store-h 不需要額外參數 — 重建使用模型已有的 QKV 權重。這能成立是因為權重跨迭代共享,所以相同的投影在每個 cache 層都有效。