Cloudflare Workers AI: 大规模优化 Kimi 和 GLM 推理

Cloudflare 实施了三种主要的优化技术——KV cache 量化、模型权重压缩和缓存完整性检查——来服务像 Moonshot 的 Kimi K 系列和 Z.ai 的 GLM 这样的大型、长上下文混合专家模型(MoE)。通过利用 SGLang 推理框架和将 prefill(预填充)与 decode(解码)阶段分离的解耦架构,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 通过避免在高负载下的“内存不足”错误,显著提高了系统的总吞吐量。在解耦 H200 部署的基准测试中,FP8 支持 64 个并发请求,达到每秒 2,192 个 token,而 BF16 的并发请求峰值仅为 32 个。

Cloudflare 选择性地应用此优化:decode 阶段使用 FP8 以最大化并发量,而 prefill 阶段保持使用 BF16,因为 prefill 是计算密集型而非内存密集型。

模型权重压缩以降低延迟

将模型权重从 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 在 prefill 阶段使用 FP8,而在 decode 阶段使用 INT4。

KV Cache 完整性检查

增加共享单个 GPU 内存的请求数量会增加 paged attention 和 continuous batching 中记录错误(bookkeeping errors)的风险。为了缓解这一问题,Cloudflare 实施了 KV cache 完整性检查层。

该系统为每个物理缓存页分配一个标签(tag),该标签在重新分配时会发生变化。服务器在 decode 操作从缓存中读取数据之前会验证这些标签;如果检测到不匹配,请求将被中止,以防止模型返回来自错误页面的数据。

对于中型生产模型,此安全检查带来的性能开销可以忽略不计,吞吐量和 p95 延迟的变化保持在 1% 以内。验证过程作为独立的批处理检查运行,以避免 attention kernel 内部的竞态条件。

性能与准确性基准测试

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

相关