
真機實測通過本文實驗已在 RK3588 板端實測完成2026-09方法學與原始記錄見倉庫 docs 與《實驗腳本》目錄一句話導讀q8 KV 精度對照實驗fp32 與 q8 兩套 KV 走同一注意力公式板端實測輸出分量差約 0.01、端到端 PPL 損失小于 1%講清誤差來自步長而非偏置、這個量級為何劃算。9-1 說 q8 KV“near-lossless”9-2 說單遍內核優雅——可這兩個詞都得用數字說話KV 從 f16 壓到 int8 后注意力輸出到底差多少今天做對照實驗并給出“這個量級意味著什么”的判讀。1. 知識點怎么測“量化進注意力”的損失KV 量化誤差的傳播路徑比權重誤差更短K 只影響Q·K^T打分V 只影響加權求和兩者都在當次注意力內結束。所以對照實驗很干凈基線K/V 用原始 fp32走標準注意力Q·K^T → 穩定 softmax → 加權 V被測K/V 先按引擎規則量化成 int8每 token 每頭 max-abs/127再反量化回 fp32 做同一套注意力指標逐輸出維的|Δout|max 與 mean。兩者唯一差別就是“KV 先被量化過”——誤差即量化貢獻不含任何內核差異這是 5-3“對拍只改一個變量”紀律的又一次使用。2. 對應代碼量化規則以引擎為準實驗用的量化規則照抄 9-1 的引擎寫入路徑kv_quantize_per_head對每個 (token, 頭) 的 128 維求max_absscale max_abs/127q round(v/scale)鉗到 [-127,127]反量化v q × scale即KVQ_SCALE 1/127的逆vllm_safetensors.c 第 7358 行。注意力本體用引擎參考實現同一公式score Q·K^T / √128、減 max 穩定 softmax、加權 V。3. 改動后果板端實測 fp32-KV vs q8-KV 注意力輸出在板端跑對照RK3588 / gcc 11.4 / fp32 / 2026-09序列 256 token、hd128K/V 取確定性偽隨機 ~N(0, 1)L256 hd128 | fp32-KV vs q8-KV attention output: max|d_out| 0.01251 mean|d_out| 0.00856 out_f[0..3] 0.1889 0.0202 -0.2286 -0.1125 out_q[0..3] 0.1945 0.0275 -0.2178 -0.1038 (avg K per-token scale ~ 0.01719 - q8 step ~ 0.01719)怎么讀這組數判讀比數字本身更重要絕對量級輸出分量 ~0.1–0.23q8 引入的分量差 ~0.01——相對輸出幅值約幾個百分點且方向隨機過零附近的分量差看起來占比大但絕對值小誤差源是“步長”而非“偏置”平均 scale ~0.017max/127即量化步長約 0.017——每個反量化值的誤差 ≤ 半步 ~0.009與 mean|Δ| 0.0086 同量級誤差沒有放大softmax 的歸一化把逐點小誤差攤平成權重微擾引擎自己的更大規模背書代碼注釋記錄 8B 檔 INT8 KV 在 M4e/M4f 路徑PPL≈0.994–0.998vllm_safetensors.c 第 8213 行——即端到端困惑度損失 ~0.5%文本質量幾乎無損。合成實驗中那 ~0.01 的輸出差落進 128 維累加與后續 layer 后就是這個量級。結論q8 KV 的代價是“輸出分量級 ~0.01、端到端 PPL 損失 1%”換來緩存與 decode 掃描帶寬 ×0.529-1。對邊緣推理這是教科書式的劃算交易。若你的場景連這 0.5% 都敏感醫療/法務數值場景引擎仍留了 f32 鏡像緩存9-1 寫入代碼里那句“Also store in float cache”——量化與精確兩條路共存按場景選這也呼應 Day 23 起“可驗證推理”對數值可追溯的要求。更進一步的誠實本實驗是合成分布的“單元級”對照真實文本的 K/V 分布更尖long-tail量化誤差的 worst-case 會更大但概率更低引擎級驗證永遠以 PPL/greedy 口徑為準報告鏈接見任務。4. 學員調試任務A 檔板端動手復刻第 3 節實驗K/V ~N(0,1)L256hd128記錄你自己的max|d_out|與mean|d_out|把 K/V 幅度放大 3 倍再跑觀察誤差是否同步放大預期放大 → scale 變大 → 相對誤差基本不變驗證“按行定標”的抗幅度特性。B 檔純讀源碼讀kv_quantize_per_head實現確認“一個頭 128 維共用一個 scale”再在vllm_safetensors.c第 8213 行注釋里找到 PPL≈0.994–0.998 的原始語境復述它驗證的是哪條路徑。預期輸出你能用一組自己的數字說明“q8 KV 的輸出差 ~0.01、端到端 PPL 損失 1%”并解釋為什么這個量級“劃算”。收尾本篇源碼點名vllm_safetensors.ckv_quantize_per_head寫入路徑、KVQ_SCALE第 7358 行、8B PPL 注釋第 8213 行。開源倉庫Kestrel-LLM (Gitee)源碼可得雙許可學習 / 學術研究免費下篇預告q8 KV 單遍掃全量O(n) 也是 n——上下文到 8K 后每詞仍要掃 8K 的 KV。第 10 天上稀疏注意力能不能只掃“該看的塊”把 decode 從 O(n) 再往下壓關鍵詞q8 KV、精度對照、量化誤差、PPL、RK3588上一篇Day 9·2 flash_attn_single_q_q8_neon——單 q 單遍掃全 KV下一篇等待更新......