01-整体观-DeepSeek-V4.1-Flash全貌解读

第一观·整体观:DeepSeek-V4.1-Flash 全貌解读

看见,是理解一切的起点。本篇站在高处鸟瞰这个模型------它是什么、在生态中处于什么位置、代码结构如何组织、遵循什么设计理念、整体流程如何运转。

读完本篇,你应当能在脑中画出一张完整的"认知地图"。


一、总述:一句话看清它是什么

DeepSeek-V4.1-Flash 是一个为"极限压缩 KV cache"而生的多模态混合专家(MoE)大模型 。它拥有 552B 主参数(backbone parameters)、196B 的 Engram 条件记忆参数,原生支持图像 + 文本输入,并能处理长达 100 万 token(1M)的上下文。

它最鲜明的性格,浓缩在标题里------Pushing the Limits of KV Cache Compression(把 KV cache 压缩推向极限)。整篇报告的所有努力,都围绕一个朴素而深刻的问题展开:

在长期运行的智能体(long-horizon agent)时代,如何让"记住更长上下文"这件事,不再是一件昂贵到无法大规模部署的事?

报告给出的答案是"三管齐下"的联合优化------架构(Architecture)× 缓存精度(Cache Precision)× 部署策略(Deployment)。其结果是一组震撼的数字:

  • global KV cache 单 token 降到 890 bytes ,约为上一代 DeepSeek-V4-Flash 的 1/4 ,是第一代 DeepSeek-V1 的 约 1/437;
  • 持久化 KV cache(SSD/主机内存)降到约 1/8,靠的是 SWA Bounded Replay;
  • prefill 每 token 只激活 8B 参数、decode 激活 16B------输入阶段比输出阶段更省,恰好匹配"输入重、输出轻"的智能体负载;
  • 而所有这些"省",没有牺牲能力:在 DeepSWE v1.1(74.2%)、Terminal-Bench 2.1(90.6%)等主流智能体基准上与闭源前沿模型并驾齐驱,甚至部分反超。

一句话总结本书的终极价值主张:用更少的存储、带宽与激活计算,交付更好或同等的智能。


二、生态定位:它在家族与江湖中的位置

2.1 DeepSeek 家族的内部坐标

要理解 V4.1-Flash,必须先看它站在哪一段历史的肩膀上。DeepSeek 系列的演进,本质上是一条**"持续降低上下文存储成本"的技术主线**,V4.1-Flash 是这条线上的最新、最激进的一棒。
#mermaid-svg-BTSXUmetD2GPxsTC{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-BTSXUmetD2GPxsTC .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-BTSXUmetD2GPxsTC .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-BTSXUmetD2GPxsTC .error-icon{fill:#552222;}#mermaid-svg-BTSXUmetD2GPxsTC .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-BTSXUmetD2GPxsTC .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-BTSXUmetD2GPxsTC .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-BTSXUmetD2GPxsTC .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-BTSXUmetD2GPxsTC .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-BTSXUmetD2GPxsTC .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-BTSXUmetD2GPxsTC .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-BTSXUmetD2GPxsTC .marker{fill:#333333;stroke:#333333;}#mermaid-svg-BTSXUmetD2GPxsTC .marker.cross{stroke:#333333;}#mermaid-svg-BTSXUmetD2GPxsTC svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-BTSXUmetD2GPxsTC p{margin:0;}#mermaid-svg-BTSXUmetD2GPxsTC .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-BTSXUmetD2GPxsTC .cluster-label text{fill:#333;}#mermaid-svg-BTSXUmetD2GPxsTC .cluster-label span{color:#333;}#mermaid-svg-BTSXUmetD2GPxsTC .cluster-label span p{background-color:transparent;}#mermaid-svg-BTSXUmetD2GPxsTC .label text,#mermaid-svg-BTSXUmetD2GPxsTC span{fill:#333;color:#333;}#mermaid-svg-BTSXUmetD2GPxsTC .node rect,#mermaid-svg-BTSXUmetD2GPxsTC .node circle,#mermaid-svg-BTSXUmetD2GPxsTC .node ellipse,#mermaid-svg-BTSXUmetD2GPxsTC .node polygon,#mermaid-svg-BTSXUmetD2GPxsTC .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-BTSXUmetD2GPxsTC .rough-node .label text,#mermaid-svg-BTSXUmetD2GPxsTC .node .label text,#mermaid-svg-BTSXUmetD2GPxsTC .image-shape .label,#mermaid-svg-BTSXUmetD2GPxsTC .icon-shape .label{text-anchor:middle;}#mermaid-svg-BTSXUmetD2GPxsTC .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-BTSXUmetD2GPxsTC .rough-node .label,#mermaid-svg-BTSXUmetD2GPxsTC .node .label,#mermaid-svg-BTSXUmetD2GPxsTC .image-shape .label,#mermaid-svg-BTSXUmetD2GPxsTC .icon-shape .label{text-align:center;}#mermaid-svg-BTSXUmetD2GPxsTC .node.clickable{cursor:pointer;}#mermaid-svg-BTSXUmetD2GPxsTC .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-BTSXUmetD2GPxsTC .arrowheadPath{fill:#333333;}#mermaid-svg-BTSXUmetD2GPxsTC .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-BTSXUmetD2GPxsTC .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-BTSXUmetD2GPxsTC .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-BTSXUmetD2GPxsTC .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-BTSXUmetD2GPxsTC .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-BTSXUmetD2GPxsTC .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-BTSXUmetD2GPxsTC .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-BTSXUmetD2GPxsTC .cluster text{fill:#333;}#mermaid-svg-BTSXUmetD2GPxsTC .cluster span{color:#333;}#mermaid-svg-BTSXUmetD2GPxsTC div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-BTSXUmetD2GPxsTC .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-BTSXUmetD2GPxsTC rect.text{fill:none;stroke-width:0;}#mermaid-svg-BTSXUmetD2GPxsTC .icon-shape,#mermaid-svg-BTSXUmetD2GPxsTC .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-BTSXUmetD2GPxsTC .icon-shape p,#mermaid-svg-BTSXUmetD2GPxsTC .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-BTSXUmetD2GPxsTC .icon-shape .label rect,#mermaid-svg-BTSXUmetD2GPxsTC .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-BTSXUmetD2GPxsTC .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-BTSXUmetD2GPxsTC .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-BTSXUmetD2GPxsTC :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} V1

标准稠密 + 标准KV

每token全局KV基线
V2

MLA 多头潜在注意力

KV入口压缩(共享隐空间)
V3

DeepSeekMoE + 无辅助损失负载均衡

  • MTP多token预测
    V4

稀疏注意力CSA/HCA

  • SWA + 混合架构
    V4.1-Flash

CED + CSA2 + FP4 KV

890 bytes/token

图注 :DeepSeek 从 V1 到 V4.1-Flash 的演进主线------每一代都在"KV cache 压缩"上更进一步。V2 引入 MLA 压缩 KV 的"入口尺寸",V3 引入 MoE 提升参数效率,V4 首次在"序列维度"做稀疏注意力,V4.1-Flash 则同时在入口、序列、层三个维度联合压缩。图中隐去了一代之间"总参数"的波动,因为那条主线始终是上下文成本。

在 V4 时代,DeepSeek 已经分出了"Flash"(轻量高效)与"Pro"(能力拉满)两条产品线:

  • DeepSeek-V4-Flash:284B 主参数,激活 13B,KV 缓存较大;
  • DeepSeek-V4-Pro:1.6T 主参数,激活 49B,能力最强但代价最大;
  • DeepSeek-V4.1-Flash :552B 主参数,激活 8B/16B,KV 缓存却最小------"更大却更省"。

这组对比极具张力:V4.1-Flash 的总参数比 V4-Flash 大了近一倍,但 KV 缓存只有它的 1/4、持久化 KV 只有 1/8,且能力更强。它用"更大的容量"换来"更极致的压缩",成为撬动成本的起点。

2.2 江湖坐标:与外部模型的相对位置

把视线拉远,V4.1-Flash 处在一个明确的位置------开源阵营里"能力-效率"最优性价比的那个点:

  • 对比开源顶流 Kimi-K3、GLM-5.3:在视觉推理、专业图表理解上超越 Kimi-K3;Codeforces rating 达 3471,超过 DeepSeek-V4-Pro(3348)与 V4-Flash(3289),与 Kimi-K3 在 MathArena Apex(65.6%)打平。
  • 对比闭源前沿 Opus-5、GPT-5.6/Sol:在 DeepSWE v1.1、Terminal-Bench 2.1、Automation-Bench、Agents' Last Exam 上追平甚至反超;但在"科学型长尾任务"(如 Terminal-Bench 4.0)与最难的 reasoning 边缘仍存在差距。
  • 多元能力画像:推理(数学/竞赛编程)强、智能体(日常编码/白领工作流)强、多模态(视觉推理/专业图表/前端开发)强;弱项集中在需要"专家级领域知识"的科学智能体任务。

一句话:它不是为了在每一个榜单登顶,而是要成为那个"能力够用、成本极低、可大规模铺开"的日常智能体底座------能完成 95% 以上的真实世界任务。


三、整体代码结构:一张架构拓扑图

3.1 一句话描述拓扑

40 层因果 Transformer,被竖切成两半:下半 20 层是因果编码器(Causal Encoder) ,上半 20 层是解码器(Decoder);前 2 层只用滑窗注意力(SWA),其余层用 Compressed Sparse Attention 2(CSA2);所有前馈层都是 DeepSeekMoE;外部还挂着 DeepSeek-ViT 视觉编码器、Engram 条件记忆、DSpark 推测解码三个"附件模块"。
#mermaid-svg-CGVpHBcnMdHh0tbI{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-CGVpHBcnMdHh0tbI .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-CGVpHBcnMdHh0tbI .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-CGVpHBcnMdHh0tbI .error-icon{fill:#552222;}#mermaid-svg-CGVpHBcnMdHh0tbI .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-CGVpHBcnMdHh0tbI .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-CGVpHBcnMdHh0tbI .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-CGVpHBcnMdHh0tbI .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-CGVpHBcnMdHh0tbI .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-CGVpHBcnMdHh0tbI .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-CGVpHBcnMdHh0tbI .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-CGVpHBcnMdHh0tbI .marker{fill:#333333;stroke:#333333;}#mermaid-svg-CGVpHBcnMdHh0tbI .marker.cross{stroke:#333333;}#mermaid-svg-CGVpHBcnMdHh0tbI svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-CGVpHBcnMdHh0tbI p{margin:0;}#mermaid-svg-CGVpHBcnMdHh0tbI .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-CGVpHBcnMdHh0tbI .cluster-label text{fill:#333;}#mermaid-svg-CGVpHBcnMdHh0tbI .cluster-label span{color:#333;}#mermaid-svg-CGVpHBcnMdHh0tbI .cluster-label span p{background-color:transparent;}#mermaid-svg-CGVpHBcnMdHh0tbI .label text,#mermaid-svg-CGVpHBcnMdHh0tbI span{fill:#333;color:#333;}#mermaid-svg-CGVpHBcnMdHh0tbI .node rect,#mermaid-svg-CGVpHBcnMdHh0tbI .node circle,#mermaid-svg-CGVpHBcnMdHh0tbI .node ellipse,#mermaid-svg-CGVpHBcnMdHh0tbI .node polygon,#mermaid-svg-CGVpHBcnMdHh0tbI .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-CGVpHBcnMdHh0tbI .rough-node .label text,#mermaid-svg-CGVpHBcnMdHh0tbI .node .label text,#mermaid-svg-CGVpHBcnMdHh0tbI .image-shape .label,#mermaid-svg-CGVpHBcnMdHh0tbI .icon-shape .label{text-anchor:middle;}#mermaid-svg-CGVpHBcnMdHh0tbI .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-CGVpHBcnMdHh0tbI .rough-node .label,#mermaid-svg-CGVpHBcnMdHh0tbI .node .label,#mermaid-svg-CGVpHBcnMdHh0tbI .image-shape .label,#mermaid-svg-CGVpHBcnMdHh0tbI .icon-shape .label{text-align:center;}#mermaid-svg-CGVpHBcnMdHh0tbI .node.clickable{cursor:pointer;}#mermaid-svg-CGVpHBcnMdHh0tbI .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-CGVpHBcnMdHh0tbI .arrowheadPath{fill:#333333;}#mermaid-svg-CGVpHBcnMdHh0tbI .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-CGVpHBcnMdHh0tbI .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-CGVpHBcnMdHh0tbI .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-CGVpHBcnMdHh0tbI .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-CGVpHBcnMdHh0tbI .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-CGVpHBcnMdHh0tbI .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-CGVpHBcnMdHh0tbI .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-CGVpHBcnMdHh0tbI .cluster text{fill:#333;}#mermaid-svg-CGVpHBcnMdHh0tbI .cluster span{color:#333;}#mermaid-svg-CGVpHBcnMdHh0tbI div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-CGVpHBcnMdHh0tbI .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-CGVpHBcnMdHh0tbI rect.text{fill:none;stroke-width:0;}#mermaid-svg-CGVpHBcnMdHh0tbI .icon-shape,#mermaid-svg-CGVpHBcnMdHh0tbI .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-CGVpHBcnMdHh0tbI .icon-shape p,#mermaid-svg-CGVpHBcnMdHh0tbI .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-CGVpHBcnMdHh0tbI .icon-shape .label rect,#mermaid-svg-CGVpHBcnMdHh0tbI .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-CGVpHBcnMdHh0tbI .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-CGVpHBcnMdHh0tbI .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-CGVpHBcnMdHh0tbI :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 附件模块 Auxiliary
视觉通路 Vision Pathway
输入线索 Input
语言主干 40层 Language Backbone (552B)
global KV 投影
解码器 Decoder (20层)
CSA2 (m=1)

Full + 层次化稀疏索引器
CSA2 (m=1) · Reindex/Reuse
因果编码器 Causal Encoder (20层)
第0-1层 · 纯SWA
第2-19层 · CSA2 (m=2)

Full/Reuse
文本 Text
图像 Image
DeepSeek-ViT

32层 · 1024维 · 2D-RoPE
Pixel-Unshuffle 3×3

视觉token减为1/9
MLP投影器

2层 · 5120维
文本嵌入 Text Embedding
Single-Pass mHC
Engram 条件记忆 (196B)
DSpark 推测解码
自回归输出 Autoregressive Text

图注:这是 DeepSeek-V4.1-Flash 的整体拓扑(对应报告 Figure 3)。关键阅读点有三处:① 图像先经 DeepSeek-ViT + unshuffle + MLP 投影压成与文本同维的嵌入;② 主干被竖切成编码器/解码器两半,解码器的 global KV 从编码器最后一层"投影"而来(粗箭头);③ 三个附件模块(MHC 残差混合、Engram 记忆、DSpark 解码)挂在主干之外,可插拔、可独立优化。

3.2 逐个模块的"职责清单"

模块 规模/配置 职责(一句话) 解决什么瓶颈
DeepSeek-ViT 32 层 · d=1024 · 16 头 从图像抽视觉特征,用 2D-RoPE 支持任意分辨率(~1344×1344) 多模态输入
MLP 投影器 2 层 · d=5120 把视觉特征映射到语言骨干的隐藏维 模态对齐
Causal Encoder(20 层) 前 2 层纯 SWA,后 18 层 CSA2(m=2) 只跑一次,产出可复用的 global KV prefill 计算
Decoder(20 层) CSA2(m=1),Full/Reindex/Reuse 消费编码器产出的 global KV,逐 token 解码 decode 计算
DeepSeekMoE 层 1 共享专家 + 384 路由专家,激活 6 个 每 token 只激活一小撮专家 参数效率
Single-Pass mHC 扩展因子 4 精简残差流混合,内核可融合为单 pass 激活内存流量
Engram 196B · N-gram{2,3,4} · 8 哈希头 稀疏查找式条件记忆,把"记忆"与"计算"解耦 长尾知识记忆
DSpark 3 个 Transformer block 半自回归草稿 + 置信度调度验证 解码吞吐
FP4 KV Cache E2M1 · 每16通道 E4M3 scale 把 main KV cache 量化为 4 bit 存储/带宽

要点:这个结构最值得记住的,不是"有多少层、多少参数",而是**"谁能被复用、谁只能算一次"**。编码器算一次、解码器复用它的 global KV;Full 模式算一次 main KV、Reindex/Reuse 模式复用------这套"算一次、用多次"的分工,是理解后面一切设计的钥匙。


四、设计理念:一条主线,三个乘法维度

4.1 主线:KV cache 压缩

DeepSeek-V4.1-Flash 的所有设计,都可以归结为一个问题定义:

长上下文 serving 的真正瓶颈,早已不是 attention 的 FLOPs(前代稀疏注意力已经把它压下去了),而是KV cache 的存储容量(HBM / SSD)与数据搬移带宽(I/O、互联)。

于是核心目标非常纯粹:把 KV cache 的字节数压到最小。报告用一张跨代对比图(Figure 1(b))直接点题------global KV cache 单 token 字节数一路从 V1 的高位,砍到 V4.1-Flash 的 890 bytes。

4.2 压缩的三个"乘法维度"

KV cache 成本可以沿三个互相独立的维度被削减,而且它们是相乘的关系:
#mermaid-svg-RIEUqHBnbhHndhrC{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-RIEUqHBnbhHndhrC .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-RIEUqHBnbhHndhrC .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-RIEUqHBnbhHndhrC .error-icon{fill:#552222;}#mermaid-svg-RIEUqHBnbhHndhrC .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-RIEUqHBnbhHndhrC .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-RIEUqHBnbhHndhrC .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-RIEUqHBnbhHndhrC .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-RIEUqHBnbhHndhrC .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-RIEUqHBnbhHndhrC .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-RIEUqHBnbhHndhrC .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-RIEUqHBnbhHndhrC .marker{fill:#333333;stroke:#333333;}#mermaid-svg-RIEUqHBnbhHndhrC .marker.cross{stroke:#333333;}#mermaid-svg-RIEUqHBnbhHndhrC svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-RIEUqHBnbhHndhrC p{margin:0;}#mermaid-svg-RIEUqHBnbhHndhrC .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-RIEUqHBnbhHndhrC .cluster-label text{fill:#333;}#mermaid-svg-RIEUqHBnbhHndhrC .cluster-label span{color:#333;}#mermaid-svg-RIEUqHBnbhHndhrC .cluster-label span p{background-color:transparent;}#mermaid-svg-RIEUqHBnbhHndhrC .label text,#mermaid-svg-RIEUqHBnbhHndhrC span{fill:#333;color:#333;}#mermaid-svg-RIEUqHBnbhHndhrC .node rect,#mermaid-svg-RIEUqHBnbhHndhrC .node circle,#mermaid-svg-RIEUqHBnbhHndhrC .node ellipse,#mermaid-svg-RIEUqHBnbhHndhrC .node polygon,#mermaid-svg-RIEUqHBnbhHndhrC .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-RIEUqHBnbhHndhrC .rough-node .label text,#mermaid-svg-RIEUqHBnbhHndhrC .node .label text,#mermaid-svg-RIEUqHBnbhHndhrC .image-shape .label,#mermaid-svg-RIEUqHBnbhHndhrC .icon-shape .label{text-anchor:middle;}#mermaid-svg-RIEUqHBnbhHndhrC .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-RIEUqHBnbhHndhrC .rough-node .label,#mermaid-svg-RIEUqHBnbhHndhrC .node .label,#mermaid-svg-RIEUqHBnbhHndhrC .image-shape .label,#mermaid-svg-RIEUqHBnbhHndhrC .icon-shape .label{text-align:center;}#mermaid-svg-RIEUqHBnbhHndhrC .node.clickable{cursor:pointer;}#mermaid-svg-RIEUqHBnbhHndhrC .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-RIEUqHBnbhHndhrC .arrowheadPath{fill:#333333;}#mermaid-svg-RIEUqHBnbhHndhrC .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-RIEUqHBnbhHndhrC .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-RIEUqHBnbhHndhrC .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-RIEUqHBnbhHndhrC .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-RIEUqHBnbhHndhrC .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-RIEUqHBnbhHndhrC .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-RIEUqHBnbhHndhrC .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-RIEUqHBnbhHndhrC .cluster text{fill:#333;}#mermaid-svg-RIEUqHBnbhHndhrC .cluster span{color:#333;}#mermaid-svg-RIEUqHBnbhHndhrC div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-RIEUqHBnbhHndhrC .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-RIEUqHBnbhHndhrC rect.text{fill:none;stroke-width:0;}#mermaid-svg-RIEUqHBnbhHndhrC .icon-shape,#mermaid-svg-RIEUqHBnbhHndhrC .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-RIEUqHBnbhHndhrC .icon-shape p,#mermaid-svg-RIEUqHBnbhHndhrC .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-RIEUqHBnbhHndhrC .icon-shape .label rect,#mermaid-svg-RIEUqHBnbhHndhrC .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-RIEUqHBnbhHndhrC .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-RIEUqHBnbhHndhrC .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-RIEUqHBnbhHndhrC :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} KV Cache 总成本
① 入口尺寸 Entry Size

每个KV头的字节数
② 序列维度 Sequence

每m个token压成1个条目
③ 层维度 Layer

多少层共享同一份KV
GQA 减少KV头数

MLA 共享潜在表示
CSA / HCA 稀疏注意力

Top-K 选择
跨层复用 Cross-Layer Reuse

索引复用 Index Reuse

图注 :KV cache 压缩不是"选一条路走到黑",而是三个维度的联合乘法 。前人往往只做其中一维(GQA/MLA 做入口、CSA 做序列、CLA/YOCO 做层),而 CSA2 的核心贡献在于同时覆盖三个维度,且让"缓存共享"与"索引复用"解耦。

这个"三维度乘法"框架,是理解 DeepSeek 系列(乃至整个长上下文系统研究)的最通用心智模型。往后看任何一篇 KV cache 压缩的论文,你都可以问:"它动的是哪一维?"

4.3 理念的核心张力:存储 ↔ 计算 ↔ 带宽

压缩从来不是免费的------省了存储,往往要付出计算(重算)或带宽(搬移)的代价。V4.1-Flash 的设计理念,本质上是在这三者之间做精细的、逐场景的权衡:

  • CSA2 用"跨层复用 + 索引复用"省存储,但代价是少数层要承担 Full/Reindex 的索引计算;
  • SWA Bounded Replay 用"只重放 n_win 个 token"省持久化存储,但代价是少量 prefill 重算;
  • FP4 用更低精度省存储,但代价是反量化后再做 attention(换来不改变计算)。

报告最漂亮的一处,是把这种权衡显式地量化为"新的一维 trade-off":SWA Bounded Replay 允许"不把 SWA KV 持久化到 SSD,而只付出一点点 prefill 重算"------这是一个此前没人清晰刻画过的"存储-计算"新权衡点。


五、实现原理概述:CSA2 × FP4 × SWA Bounded Replay

在进入第二观的细节之前,先建立对三大机制的轮廓级认识(图详见文档二):

  1. CSA2(Compressed Sparse Attention 2) :一种稀疏注意力,用轻量 indexer 给每个 query 在全球可见的 KV 里选出 Top-K(=512)个条目做注意力,其余忽略。它有三种静态分配的模式------
    • Full:自己算 main KV、自己建索引(做完整活);
    • Reindex:复用上一层的 main KV 与 indexer K,但用自己的 Q 重新打分、换一批 Top-K 索引(换汤不换药);
    • Reuse:连 Top-K 索引都复用前一层,直接做稀疏注意力(只吃不做)。
  2. FP4 KV Cache:把 main KV cache 用 QAT(量化感知训练)压成 4 bit(E2M1),配合"省略二级全局 scale"的简化布局,存储近乎减半且无明显精度损失。
  3. SWA Bounded Replay:把滑窗注意力的 KV 状态从持久化缓存里"踢出去",遇到 miss 时只重放最近 n_win=128 个 token 做近似重建,把灾难性 miss 变成廉价降级。

三者叠加的效果:global KV(常驻 HBM)= 890 bytes/token;持久化 KV(SSD)= 上一代 1/8;single-token Decode FLOPs 几乎不随上下文增长(4K→1M 只涨 1/4)。


六、整体流程:从 45T token 到线上的一个请求

6.1 端到端生命周期

#mermaid-svg-JfLbD5sE75jM2dEo{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-JfLbD5sE75jM2dEo .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-JfLbD5sE75jM2dEo .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-JfLbD5sE75jM2dEo .error-icon{fill:#552222;}#mermaid-svg-JfLbD5sE75jM2dEo .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-JfLbD5sE75jM2dEo .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-JfLbD5sE75jM2dEo .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-JfLbD5sE75jM2dEo .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-JfLbD5sE75jM2dEo .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-JfLbD5sE75jM2dEo .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-JfLbD5sE75jM2dEo .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-JfLbD5sE75jM2dEo .marker{fill:#333333;stroke:#333333;}#mermaid-svg-JfLbD5sE75jM2dEo .marker.cross{stroke:#333333;}#mermaid-svg-JfLbD5sE75jM2dEo svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-JfLbD5sE75jM2dEo p{margin:0;}#mermaid-svg-JfLbD5sE75jM2dEo .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-JfLbD5sE75jM2dEo .cluster-label text{fill:#333;}#mermaid-svg-JfLbD5sE75jM2dEo .cluster-label span{color:#333;}#mermaid-svg-JfLbD5sE75jM2dEo .cluster-label span p{background-color:transparent;}#mermaid-svg-JfLbD5sE75jM2dEo .label text,#mermaid-svg-JfLbD5sE75jM2dEo span{fill:#333;color:#333;}#mermaid-svg-JfLbD5sE75jM2dEo .node rect,#mermaid-svg-JfLbD5sE75jM2dEo .node circle,#mermaid-svg-JfLbD5sE75jM2dEo .node ellipse,#mermaid-svg-JfLbD5sE75jM2dEo .node polygon,#mermaid-svg-JfLbD5sE75jM2dEo .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-JfLbD5sE75jM2dEo .rough-node .label text,#mermaid-svg-JfLbD5sE75jM2dEo .node .label text,#mermaid-svg-JfLbD5sE75jM2dEo .image-shape .label,#mermaid-svg-JfLbD5sE75jM2dEo .icon-shape .label{text-anchor:middle;}#mermaid-svg-JfLbD5sE75jM2dEo .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-JfLbD5sE75jM2dEo .rough-node .label,#mermaid-svg-JfLbD5sE75jM2dEo .node .label,#mermaid-svg-JfLbD5sE75jM2dEo .image-shape .label,#mermaid-svg-JfLbD5sE75jM2dEo .icon-shape .label{text-align:center;}#mermaid-svg-JfLbD5sE75jM2dEo .node.clickable{cursor:pointer;}#mermaid-svg-JfLbD5sE75jM2dEo .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-JfLbD5sE75jM2dEo .arrowheadPath{fill:#333333;}#mermaid-svg-JfLbD5sE75jM2dEo .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-JfLbD5sE75jM2dEo .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-JfLbD5sE75jM2dEo .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-JfLbD5sE75jM2dEo .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-JfLbD5sE75jM2dEo .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-JfLbD5sE75jM2dEo .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-JfLbD5sE75jM2dEo .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-JfLbD5sE75jM2dEo .cluster text{fill:#333;}#mermaid-svg-JfLbD5sE75jM2dEo .cluster span{color:#333;}#mermaid-svg-JfLbD5sE75jM2dEo div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-JfLbD5sE75jM2dEo .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-JfLbD5sE75jM2dEo rect.text{fill:none;stroke-width:0;}#mermaid-svg-JfLbD5sE75jM2dEo .icon-shape,#mermaid-svg-JfLbD5sE75jM2dEo .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-JfLbD5sE75jM2dEo .icon-shape p,#mermaid-svg-JfLbD5sE75jM2dEo .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-JfLbD5sE75jM2dEo .icon-shape .label rect,#mermaid-svg-JfLbD5sE75jM2dEo .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-JfLbD5sE75jM2dEo .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-JfLbD5sE75jM2dEo .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-JfLbD5sE75jM2dEo :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 阶段三 · 部署 Deployment
阶段二 · 后训练 Post-Training
阶段一 · 预训练 Pre-Training (45T tokens)
多模态语料构建

文本+图文对+交错图文+领域数据
稀疏注意力从零训练

64K 序列 · 34T时扩展至1M
SFT 监督微调
RL 强化学习(GRPO)

大规模任务合成 + DSec沙箱
OPD 在线策略蒸馏

(40+teacher模型)
EPD 分离式推理

Encoder-Prefill-Decode
持久化KV管理

  • SWA Bounded Replay

图注 :V4.1-Flash 的完整生命周期分三段。值得注意两处:① 预训练"从零"就用稀疏注意力(64K),没有任何稠密注意力 warm-up 阶段;② 后训练阶段报告明确说"无算法创新",全部精力投入数据与环境管线的规模化------SFT → RL(GRPO)→ OPD 是标准范式,变的是"喂什么",不是"怎么喂"。

6.2 一次推理请求的数据流

  • 视觉编码(Vision Encode):图像 → DeepSeek-ViT → unshuffle → MLP 投影 → 视觉嵌入。
  • 编码器 prefill(Encoder Prefill):文本+视觉嵌入穿过下 20 层,产出 global KV(含 main KV 与 indexer K)。
  • 解码器 prefill(Decoder Prefill) :上 20 层从编码器最后一层隐状态投影出自己的 global KV,并生成 layer-local 的 SWA KV(SWA Bounded Replay 只重放最近 n_win 个 token)。
  • 逐 token decode:每个新 token 只在激活的 6 个专家 + 本地 SWA + 被 indexer 选中的 Top-512 个 global 条目上做注意力,反复直到结束符。
  • 缓存回收与命中的话:若命中持久化的 global KV 则直接复用前缀,未命中 SWA 则触发有界重放。

这条流程的精妙在于:"算"与"存"被清晰地分离------编码器负责"算一次",解码器与缓存负责"用多次"。


七、总结:这张认知地图上该留下什么

回望全文,DeepSeek-V4.1-Flash 的整体画像可以用一段话收束:

它是一个站在 DeepSeek 家族"KV cache 压缩"主线最激进一棒上的多模态 MoE 模型 ------40 层因果编码器-解码器结构 + 稀疏注意力 CSA2 + FP4 量化 + SWA 有界重放,把 KV cache 在入口、序列、层三个维度上联合压缩到前代的 1/4 乃至 1/8,同时把"算一次、用多次"的复用工学贯彻到底,从而以更小的激活与存储代价交付更强的智能体能力。

如果你此刻能记住三件事,第一观的使命就完成了:① 它是为"极致压缩 KV cache"而生;② 它靠"三管齐下"(架构×精度×部署)实现;③ 它的组织原则是"算一次、用多次"。

带着这张地图,下一篇我们潜入水下,看 CED、CSA2、FP4 这些名字背后真正发生了什么。

相关推荐
是真的小外套1 小时前
2023年软考中级信息安全工程师|选择题考点+5道案例分析真题解析(含答案)
java·服务器·网络
一条泥憨鱼3 小时前
【计算机网络】| 从 MAC 到 NAT 的跨网段通信全链路
服务器·网络·学习·计算机网络·macos
workflower3 小时前
超算中心聚焦高性能计算场景(HPC)
大数据·网络·人工智能·机器人·云计算·汽车
Nebula_g3 小时前
SpringBoot企业级实战项目—云禾外卖—SpringBoot常用注解解析
java·网络·数据库·spring boot·后端·spring·javase
草莓熊Lotso3 小时前
【C++ 基于微服务的即时通讯系统】Elasticsearch 从安装到 C++ 客户端二次封装全落地
linux·网络·数据库·c++·elasticsearch·微服务
海量计划3 小时前
网络基础
网络
Nebula_g4 小时前
云禾外卖补充—项目整体后端运行逻辑-对流程的更深层次理解
java·开发语言·网络·数据库·状态模式·javase
一次旅行5 小时前
DeepSeek‑V4.1‑Flash‑1017完整解读:模型升级+Search/Fetch搜索API开放,Agent开发者要注意哪些坑
前端·网络·人工智能
.Bryce.5 小时前
你了解 Blackboard(黑板系统)吗?听说过基于黑板系统实现的智能体吗?
java·网络·gpt·php·agent·codex·黑板系统