Cloudflare Workers AI: 大規模優化 Kimi 與 GLM 推論
Cloudflare 已實施三種主要的優化技術——KV cache 量化、模型權重壓縮以及快取完整性檢查——來服務如 Moonshot 的 Kimi K 系列與 Z.ai 的 GLM 等大型、長上下文混合專家模型(mixture-of-experts models)。透過利用 SGLang 推論框架與將 prefill 與 decode 階段分離的解耦架構(disaggregated architecture),Cloudflare 在維持模型準確度的同時,提高了請求的並行度與吞吐量。
KV Cache 量化以增加並行度
將 Key-Value (KV) cache 從 16 位元精度 (BF16) 量化為 8 位元浮點數 (FP8, e4m3),可使可用上下文記憶體翻倍,允許更多並行請求駐留在單一 GPU 上。
對於 Kimi K2.6 模型,FP8 量化將記憶體容量從約 686,000 個 token 增加到 137 萬個 token。雖然在低並行度下,BF16 的每個 token 速度略快,但 FP8 透過避免在高負載下的「記憶體不足」(out of memory)錯誤,實現了顯著更高的系統總吞吐量。在解耦 H200 部署的基準測試中,FP8 支援了 64 個並行請求,達到每秒 2,192 個 token,而 BF16 的並行請求峰值僅為 32 個。
Cloudflare 有選擇性地應用此優化:decode 階段使用 FP8 以最大化並行度,而 prefill 階段則維持在 BF16,因為 prefill 是計算密集型(compute-bound)而非記憶體密集型(memory-bound)。
模型權重壓縮以降低延遲
將模型權重從 8 位元浮點數 (FP8) 壓縮為 4 位元整數 (INT4),可減少模型的記憶體佔用,這能透過減少從 GPU 記憶體串流的數據量,直接加速 decode 階段。
對於 GLM 5.2,權重壓縮將 checkpoint 大小從 705 GB 減少到 421 GB。在 8 路張量並行(tensor-parallel)部署中,每 GPU 記憶體使用量從 88 GB 降至 52 GB,為額外的 118 萬個 token 的 KV cache 釋出了空間。這在 decode 階段帶來了顯著的延遲增益,特別是單一並行請求的每秒 token 數增加了 55%。
由於 INT4 權重在進行乘法運算前必須先進行展開,因此在 INT4 下的計算密集型 prefill 階段比 FP8 (10,160 tok/s) 慢 (8,660 tok/s)。因此,Cloudflare 使用 FP8 進行 prefill,並使用 INT4 進行 decode。
KV Cache 完整性檢查
增加共享單一 GPU 記憶體的請求數量會增加 paged attention 與 continuous batching 中帳目管理錯誤(bookkeeping errors)的風險。為了減輕此風險,Cloudflare 實施了 KV cache 完整性檢查層。
此系統會為每個物理快取頁面(physical cache page)分配一個標籤,該標籤會在重新分配時發生變化。伺服器會在 decode 操作從快取中讀取之前驗證這些標籤;如果偵測到不匹配,請求將被中止,以防止模型回傳錯誤頁面的數據。
對於中型生產模型而言,此安全檢查的效能開銷極小,吞吐量與 p95 延遲的變化維持在 1% 以下。驗證程序是以獨立的批次檢查(batch check)方式執行,以避免 attention kernel 內部的競態條件(race conditions)。
效能與準確度基準測試
Cloudflare 報告稱,無論是 KV cache 量化還是權重壓縮,在標準基準測試中都不會顯著影響模型品質。
Kimi K2.6 (BF16 vs FP8 KV Cache):
- GSM8K: 94.24 (BF16) vs 94.09 (FP8)
- MMLU: 89.11 (BF16) vs 89.04 (FP8)
- Tool-call 有效性: 92.2% (BF16) vs 92.6% (FP8)
GLM 5.2 (FP8 vs INT4 Weights):
- GSM8K (精確匹配): 94.39% (FP8) vs 93.56% (INT4)
- MMLU 平均值: 86.60% (FP8) vs 86.54% (INT4)
- ARC-Challenge 準確度: 64.93% (FP8) vs 64.85% (INT4)
社群觀點
雖然 Cloudflare 強調其缺乏準確度損失,但 Hacker News 上的部分社群成員對評估深度提出了疑慮:
"some model families are more sensitive to KV quantisation than others... the evaluation suite they use to claim that FP8 KV quantisation is indistinguishable is noticeably lacking coding benchmarks; in long-running tasks, minor tool call errors compound over time."
其他批評者認為,在模型登錄頁面未提供明確警告的情況下提供量化模型,可能會誤導需要處理如編碼代理(coding agents)等複雜任務時需要最高精度的使用者。
Sources
相關
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- 專案