演讲嘉宾:许文杰(Mooncake 核心开发者、Mooncake Store Maintainer)
演讲主题:Mooncake Store 的多层存储演进:分层 KV Cache 与大模型权重管理
大会:2026 C++ 及系统软件技术大会 · 北京
参会报名:https://boolan.com/enroll/c1051/event/1162?channel=seo
一、引言:从"分离式缓存"到"统一存储层"
Mooncake 在大模型推理领域以分离式 KV Cache 架构闻名,其核心创新在于把 KV Cache 从 GPU 显存中"抽离"出来,交给独立的分布式存储层管理。而这一次,许文杰带来的主题是 Mooncake 的进一步演进——Mooncake Store 从单一的分布式 DRAM,扩展为跨越 DRAM、SSD、NVMe-oF 与远端 DFS 的多层存储,并以统一 Store 同时支撑 KV 数据分层与大规模权重流转。
二、分层 KV Cache:用存储层级换命中率
大模型推理中,KV Cache 的规模与成本是核心矛盾:缓存越大,命中率越高,但显存与 DRAM 成本也越高。
Mooncake 的解法是引入存储层级,让"热"与"冷"的 KV 数据各得其所。
| 存储层级 | 角色 | 时延特征 | 成本 |
|---|---|---|---|
| DRAM | 热数据低时延访问 | 微秒级 | 高 |
| 本地 NVMe | 扩大 KV 工作集 | 百微秒级 | 中 |
| NVMe KV / NVMe-oF | 共享容量层 | 亚毫秒级 | 中低 |
| 远端 DFS | 冷数据、权重持久化 | 毫秒级 | 低 |
核心逻辑是:用 SSD 的低成本换取更大的可保留 KV 工作集,减少数据淘汰,从而提升多轮对话与长上下文场景下的缓存命中率。
KV Cache 数据在不同存储层级间的流动 ┌─────────┐ 命中回迁 ┌─────────┐ │ DRAM │ ◄───────── │ NVMe │ │ (热数据) │ ────────► │ (工作集) │ └─────────┘ 异步下刷 └─────────┘ │ │ │ 逐出落盘 │ 批量 I/O ▼ ▼ ┌─────────────────────────────────┐ │ NVMe-oF / 远端 DFS(冷数据) │ └─────────────────────────────────┘2.1 关键机制
- 对象副本管理:为 KV 对象维护多副本,兼顾可靠性与读带宽
- 异步下刷:DRAM 中的数据异步持久化到 SSD,不阻塞请求路径
- 逐出落盘:被淘汰的热数据不直接丢弃,而是下刷到 SSD 层,提升未来命中
- SSD 命中回迁:命中 SSD 层的 KV 数据,回迁到 DRAM 供低时延访问
- 批量 I/O:聚合小对象读写,摊薄 SSD 的随机 I/O 开销
三、万亿参数权重管理:checkpoint 的工程挑战
当模型参数规模达到Kimi K3 等万亿参数级别时,权重本身的管理就成为一个巨大的存储与传输工程问题。
3.1 TB 级 checkpoint 导入
万亿参数模型的 checkpoint 动辄 TB 级,其导入面临三个难题:重复读盘、中间副本、跨节点分发。
Mooncake 通过以下手段解决:
权重加载优化路径 Manifest 清单 ──► 分块对象 ──► 范围读取 ──► 多缓冲区传输 (避免全量扫描) (按需加载) (按需切片) (流水线并行)- Manifest:维护权重对象的元数据清单,避免全量扫描存储
- 分块对象:权重按块组织,支持按需加载而非全量读入
- 范围读取:只读取所需的字节范围,减少无效 I/O
- 多缓冲区传输:用流水线并行传输,隐藏网络与磁盘延迟
3.2 并行布局转换(Reshard)
万亿参数模型在不同并行策略(TP 张量并行、PP 流水并行、EP 专家并行、DP 数据并行)下,权重的物理分布完全不同。切换并行布局时,需要做Reshard(重分片)。
# Reshard 传输计划生成的核心思路(伪代码)defplan_reshard(src_layout,dst_layout,weights):# N 维重叠规划:让跨节点的传输尽量与计算重叠plan=NDimOverlapPlanner(src_layout,dst_layout).plan(weights)# 运行时绑定:把传输任务绑定到具体的节点与通道returnRuntimeBinder().bind(plan)Mooncake 通过N 维重叠规划与运行时绑定,生成 Reshard 传输计划,让权重在不同并行布局间的流转尽可能高效、无重复副本。
四、统一 Store 的设计哲学
Mooncake Store 演进背后的设计哲学,可以归纳为一句话:以统一的存储抽象,同时支撑"缓存型"的 KV 数据与"持久型"的权重数据。
| 数据类型 | 访问模式 | 存储诉求 | Store 支撑 |
|---|---|---|---|
| KV Cache | 高频读写、逐出频繁 | 低时延、分层 | 多层缓存 |
| 模型权重 | 大块读、布局变换 | 高吞吐、切片 | 分块+范围读取 |
这两类看似不同的数据,在统一 Store 中被同一套对象、副本、传输机制管理,避免了"一套 KV 存储 + 一套权重存储"的重复建设。
五、对推理系统工程师的启示
许文杰的分享为推理基础设施团队带来三点启示:
- 存储分层是性价比的杠杆:不必把所有数据都放在 DRAM,用 SSD 扩大工作集往往更划算
- 权重管理是万亿模型的隐形瓶颈:checkpoint 导入与 Reshard 的工程开销,可能比推理本身更棘手
- 统一抽象优于专用系统:KV 与权重共享存储层,能显著降低系统复杂度
六、分层存储的一致性保障
多层存储引入了一个新的工程难题:数据在多层级间流动时,如何保证一致性与正确性?
| 机制 | 解决的问题 | 关键设计 |
|---|---|---|
| 对象副本管理 | 多副本数据一致 | 版本/租约控制 |
| 异步下刷 | DRAM 崩溃丢数据 | 崩溃一致性协议 |
| 逐出落盘 | 淘汰数据不丢失 | 原子下刷 |
| 命中回迁 | SSD 命中回 DRAM | 正确性校验 |
以 KV Cache 为例,一个关键约束是:从 DRAM 异步下刷到 SSD 的数据,在回迁时必须是完整、一致的。若下刷中途发生崩溃,必须保证回迁的数据要么完整可用,要么被正确判定为失效,绝不能出现"半份 KV"被误用的情况。
许文杰强调,Mooncake Store 的一致性设计,是它能在生产环境支撑 Kimi K3 强化学习训练的基础——分层存储的价值,建立在每一层数据都可信赖的前提之上。
七、总结
从分离式 KV Cache 到多层存储 Store,Mooncake 正在把"推理系统的存储"从辅助角色推向核心基础设施。分层 KV Cache 用存储层级换取命中率,统一 Store 则让万亿参数模型的权重流转有了工程化的答案。
2026 年 C++ 及系统软件技术大会上,许文杰将完整呈现这套统一 Store 支撑 KV 数据分层与大规模权重流转的技术细节。
大会信息
2026 奇点智能技术大会 + C++ 及系统软件技术大会
时间:2026 年 11 月 20-21 日
地点:中国·北京万达文华酒店
参会报名:https://boolan.com/enroll/c1051/event/1162?channel=seo
立即报名,与 Mooncake 核心开发者面对面交流!