DeepSeek V4.1 Flash 大规模推理部署实践
原文:DeepSeek 知乎文章 · 2026-10-20 · 作者:DeepSeek
一句话总结:DeepSeek 把视觉编码、预填充和解码拆开部署,用分层负载均衡、跨节点 KVCache 存储与有界重算协调吞吐、延迟和资源弹性;这是一份生产系统设计说明,文中的线上规模和收益数字是作者自报值。
阅读范围:已用本地知乎抓取工具取得并阅读文章正文;原文中的架构图和性能图未逐一核对。因此,下文只引用正文明确写出的机制与数字,不据图片推算额外性能结论。相关开源入口是 DeepInfer 和 deepseek-recipe;文章同时说明,KVCache 管理与负载均衡组件尚未完整开源。
系统怎样组织
请求先经过 DeepSeek Recipe:它把不同 API 协议转换为统一对话格式,显式插入的 special token 直接映射为专用 ID,用户文本中看似相同的字串仍按普通文本编码,以免越过消息或工具调用边界。普通文本在已知 special token 边界处分段并行编码;输出则用跨 chunk 状态机处理不完整的 UTF-8 字符、思考标记和工具参数。这里的系统问题是:上下文变长以后,CPU 分词与流式协议解析也会进入首 token 延迟路径。
计算侧把 Vision Encoder、Prefill、Decode 分离。文章给出的部署取向是:Prefill 尽量用较小 EP/DP 规模,Decode 用 64~128 卡的宽专家并行,以增大批次并改善 MoE 矩阵乘法效率。分离后各阶段可以独立扩缩容,但也引入跨阶段状态传递、请求路由和专家负载不均的问题。作者称单集群服务吞吐达到 155 万亿 token/天,并报出按谷价计算的 每卡每小时 38 美元收入;文章未给出可独立复算这两个总量所需的完整流量、成本与容量明细,不能把它们当成通用硬件效率基准。
四层负载均衡与弹性
Prefill 路由先按输入长度分四档,再按估计计算量给档位分配引擎;组间由有余量的 DP 组拉取请求,组内选当前估计负载最小的 rank。单卡调度给每一步设时间预算,用拟合的 cost(q, c) 模型反解本次可处理的新 token 数 q,其中 c 是已有前缀长度。这使切块大小随请求与剩余预算变化。由于文章声称任意引擎都能从共享存储命中任意前缀,组间路由不需要绑定某个前缀的计算节点。
Decode 路由同时看请求数和各卡 KVCache 总长度,分别近似每步批量与注意力代价;视觉编码按图片 patch 数分配;MoE 专家负载则用冗余专家和周期性重排缓解热点。这些是不同层级的平衡目标:均衡请求数并不能自动均衡长上下文的注意力工作量,均衡注意力也不能自动消除专家热点。
自动扩缩容分别按未命中的 Prefill token 数和 Decode 中的请求数估算需求,并保留现成机器和在线实例冗余。Decode 缩容先给一分钟宽限,仍未完成的请求连同 KVCache 转给其他实例。作者选择请求级重新路由与冗余配额来覆盖分钟级重启;这说明缩容延迟和缓存迁移成本需要一起纳入容量规划。
两种 KVCache 的生命周期
文章把可长期复用的 Block KVCache 放在独立的 3FS SSD 集群,把短期复用的 SWA KVCache 留在产生它的机器内存。Block 以 128 token 分页,由 Decode 写入共享存储;前缀匹配先在本地元数据上完成,取回 KV 和换入 HBM 尽量异步化。独立存储让 Prefill 节点不必为某个前缀固定路由,也让缓存寿命与计算节点故障、扩缩容解耦。作者给出的量级是约 100 PiB SSD、Agent 流量 3 天 TTL、Chatbot 流量 7 天 TTL;这些是其生产部署陈述,不能直接移植到其他负载。
SWA KVCache 的复用窗口则是分钟级。作者报告约 180 秒 TTL 下命中率超过 98%,因此不再把这部分状态长期落盘;缺失时只重算最近 128 个 token,并用受限窗口近似恢复 SWA 状态。命中长度先由 Block KVCache 决定,再检查末尾 SWA 状态;若该状态缺失,就退回一个 128-token block 重算。这一取舍用有界计算替换长期 SSD 占用,但近似恢复对模型输出质量的影响需要结合技术报告和实际负载另行核对。
解码路径上的其他优化
文章还描述了变长推测验证:根据各 draft token 的接受概率和硬件吞吐曲线选择验证长度,称相对固定验证 5 个 token 的线上吞吐提高 6%。CPU 的下一步调度与 GPU 的当前步前向、采样重叠,以减少逐 token 同步空转;结构化输出的语法编译放在独立机器,推理时只执行约束状态更新和 token mask。这些优化作用于不同路径,不能把各自收益简单相加。
与现有论文笔记的关系
- DualPath-SIGCOMM26 也从分离式 Prefill/Decode 的 KV 读取路径入手,重点是借用 Decode 节点的闲置存储网卡;本博客说明 DeepSeek 整体服务中共享 3FS、缓存生命周期和多层负载均衡如何配合,但没有给出与 DualPath 同条件的直接对照。
- LMetric-OSDI26 在实例路由中权衡前缀复用与队列负载;本博客通过独立存储让任意 Prefill 引擎可复用前缀,把路由重点转向估计计算量。两种设计的前提不同,应先比较缓存可达性和取回开销。
- Strata-OSDI26 讨论分层缓存命中后的搬运成本;本博客将 Block KV 的匹配、取回和 HBM 换入拆成不同阶段,提醒我们把命中率与命中后的延迟一起测量。
待核对:图中的离线基准和生产统计尚未逐图检查;cost(q, c) 的拟合误差、跨机 SWA 取回成本、缓存元数据规模,以及有界重算对输出的影响,正文没有提供足够数据供独立复算。