7.4
深览指数
科技Bestblogs·Zhangheng Huang, Shunkang Zhang, Shangming Cai, Yanbo Yang, Ke Bao, Chao Shi, Zhiqiang Xie, Shuwen Wang, Tingwei Huang, Zhiyang Huang, Ishan Dhanani··AI 生成
HiCache 在多种并行模式与分布式服务中的应用
LMSYS 团队详解 HiCache 如何将基数树 KV 复用扩展到主机内存与外部存储,并解决上下文并行、流水线并行、推测解码、预填充解码分离下的缓存一致性问题。核心机制包括基于页面 ID 的 KV 分片保留逻辑所有权、逐层 all-gather 免物理重排读取、pp_sync 跨阶段同步以及草稿模型状态恢复。生产数据来自科大讯飞部署 GLM-5.1/5.2:95% 缓存命中率、中位 TTFT 低于 3 秒;CP 分片使 GPU token 命中率从 42.83% 升至 83.31%,平均预填充排队时间降 56.2%。原文 ↗
核心观点
- ▍HiCache 的核心贡献是在保持逻辑页面所有权不变的前提下,让 KV 缓存的复用跨越主机内存与外部存储,并在 CP、PP、推测解码、PD 分离等复杂分布式配置下维持缓存操作的一致性。
- ▍分布式场景下缓存不一致的根源是各阶段独立判断传输完成,因此需要显式的跨阶段同步协议(pp_sync)来保证队列条目和驱逐条件在各 rank 上一致。
- 01上下文并行按逻辑页面 ID(q mod Nr)分片,每个 rank 只保留自己拥有的页面,移除了重复的 KV 副本,同时共享同一棵逻辑基数树视图。
- 02逐层 all-gather 将各 rank 拥有的页面汇入按所有者排序的暂存缓冲区,注意力通过页面表映射读取逻辑序列,无需物理重排;两个交替缓冲区让 gather 与计算重叠。
- 03pp_sync 在 TP 组内使用 all_reduce(MIN),并通过点对点消息沿流水线传递就绪数量,确保异步传输下各阶段处理相同的队列条目。
- 04外部存储协调由后台线程计算各 rank 的最小命中长度与最小完成长度,按顺序发布 ACK,调度器通过 pp_sync 按相同顺序处理,保证各阶段使用相同的缓存前缀长度和剩余计算量。
- 05推测解码需要恢复草稿模型状态,HiCache 保存草稿模型的 KV、索引器缓冲区和循环状态,支持紧凑布局(复用目标模型主机内存池)和旁路布局(独立主机内存池并派生传输索引)两种集成方式。
- 06科大讯飞在生产环境部署 GLM-5.1/5.2 时,结合 HiCache 与外部存储实现 95% 缓存命中率,中位 TTFT 低于 3 秒。
- 07性能评估中,采用 CP 分片的 HiCache 将 GPU token 命中率从 42.83% 提升至 83.31%(+40.48 个百分点),GPU 与主机综合命中率维持在 93% 左右,平均预填充排队时间缩短 56.2%。
反方 / 局限
- — 文章未讨论 CP 分片下 all-gather 带来的跨 rank 通信开销如何随序列长度与并行度增长,这在实际部署中可能成为瓶颈。
- — 仅给出科大讯飞一个生产案例,且未披露硬件配置、模型规模与请求分布,95% 命中率的可复现性存疑。
- — pp_sync 依赖 TP 组内 all_reduce(MIN) 与点对点消息,若流水线阶段数较多或网络抖动,同步协议本身可能引入额外延迟,文章未给出这部分开销的量化分析。
5 分钟 · 6 卡片 · 16 资料
读原文 →