跳到主内容
爱游戏官方入口

DeepSeek V4.1 Flash用了哪些黑科技?竟让Flash(差点)逼退Pro

2026-09-14 · 周晨曦 · 更新于 2026-09-17

几天前,DeepSeek V4.1 Flash 正式发布,凭借其快速且强大的性能,迅速吸引了大量关注与测试热潮。

例如,知名评测机构 Artificial Analysis 在对 V4.1 Flash 进行详尽测试后,给出了 40 分的指数评分,这一成绩超越了 DeepSeek 旗下参数规模更大的 V4 Pro。

当然,这并不令人意外,因为 DeepSeek 自身也得出了类似结论,并曾计划让 V4 Pro 下线,将相关请求直接路由至 V4.1 Flash。值得一提的是,DeepSeek 已两次更改决定,先是推迟了 V4 Pro 的下线时间:

随后又放弃了 V4 Pro 的下线计划,并继续提供其 API 调用服务:

此外,Artificial Analysis 的系统评测中还包含其他亮点:

  • DeepSeek V4.1 Flash 在智能体能力和长上下文推理方面取得了显著进步。
  • DeepSeek V4.1 Flash 以 69% 的成绩在 AutomationBench-AA 上排名第一,与 GPT-6 Astra(69%)持平,略高于 Grok 4.6(67%)。
  • DeepSeek V4.1 Flash 是其测试过的冗长度最高的模型之一,每个 Intelligence Index 任务消耗 89k Tokens。
  • 尽管冗长度较高,DeepSeek V4.1 Flash 每个 Intelligence Index 任务仅花费 0.27 美元。这主要得益于其低定价策略。

Sebastian Raschka 甚至认为,DeepSeek V4.1 Flash 的创新程度之大,足以命名为 DeepSeek V5。

那么,DeepSeek V4.1 Flash 究竟是如何实现的?它是如何凭借 552B 参数的较小模型,超越拥有 1.6T 参数的 Pro 版本?下面我们将基于其官方技术报告进行解读。

报告地址:https://huggingface.co/deepseek-ai/DeepSeek-V4.1-Flash/blob/main/DeepSeek_V41_Tech_Report.pdf

这是一篇围绕 KV 缓存展开的报告

先看技术报告的标题:「DeepSeek-V4.1-Flash: Pushing the Limits of KV Cache Compression」。推动 KV 缓存压缩的极限。 翻看架构章节,我们发现这并非修辞手法,几乎每一项设计都指向同一个目标:降低 KV 缓存。

先看几个数字。V4.1-Flash 的全局 KV 缓存(始终常驻 HBM 的部分)被压缩至每 token 890 字节,约为 V4-Flash 的1/4;若与 DeepSeek-V1 的 389,120 字节相比,则相差 437 倍。持久化 KV 缓存(存储在 SSD 或主机内存中,用于前缀复用的部分)则被压缩至 V4-Flash 的约1/8。

模型本身是一个拥有 552B 主干参数和 196B Engram 参数的多模态 MoE,原生支持 100 万 token 上下文,在 45T token 的多模态语料上预训练,prefill 阶段每 token 仅激活 8B 参数,decode 阶段激活 16B。

DeepSeek 历代模型每 token 全局 KV 缓存大小对比

这套数字组合起来,才是「552B 战胜 1.6T」的真正含义:比较的核心在于同样一次 agent 调用中,模型需要占用多少显存、从 SSD 搬运多少数据、以及重算多少次 prefill。

稀疏注意力之后,瓶颈在于存储和搬运

要理解 DeepSeek 为何全力聚焦 KV 缓存,必须先看清瓶颈的变化。

从 V3.2 的 DSA 到 V4 的 CSA,稀疏注意力已将长序列的计算成本大幅降低。但长程 agent 的工作负载有一个特点:输入重(input-heavy)。

一个运行数小时的编码 agent,每次工具调用都会触发一次新的 prefill 请求,上下文只增不减,而实际需要生成的 token 反而较少。

于是,当「计算」不再是瓶颈后,「存储」和「搬运」便成为新的限制。

报告将这一新瓶颈分解为三个方面:

  • HBM容量限制了运行时能同时容纳的并发请求的全局 KV;
  • SSD和主机内存容量限制了前缀缓存的存储时长和命中率;
  • IO与互联带宽则限制了缓存迁移和加载的速度。

这三个问题共同决定了一个 agent 服务的吞吐上限和单位成本。V4 时代 DeepSeek 已通过 CSA 与 HCA 混合实现序列维度的压缩,而 V4.1-Flash 则选择在架构、精度、部署三个层面同时发力。

CED:将一半 prefill 计算直接削减

V4.1-Flash 的语言主干有 40 层,但被分为两半:前 20 层是因果编码器(Causal Encoder),后 20 层是解码器。这个结构称为Causal Encoder-Decoder,简称CED。这也是 DeepSeek 官方发布页上「输入激活 8B、输出激活 16B」这一不对称设计的来源。

有趣的是,Arena 的 Peter Gostev 还让 Astra 阅读了 DeepSeek v4.1 Flash 的论文,并用 3D 模型将其架构与原始 Transformer 架构进行了直观对比。他将其分享出来,你可以放大并排查看每一个元素:

https://transformer-architecture.petergostev.chatgpt.site/

关键在于解码器那 20 层的全局 KV 是如何生成的?

在常规 Transformer 中,每层的 K、V 都从该层自身的隐藏状态计算得出,因此处理一段提示词必须跑完所有 40 层。

CED 则不同:解码器各层的 KV 条目直接由第 20 层(即编码器最后一层)的隐藏状态,通过各自的投影矩阵映射得到。换句话说,prefill 阶段只需运行前 20 层,上半部分的全局 KV 缓存就能以极低成本获得。当序列长度远大于窗口时,prefill 的复杂度从 O(NL) 降至约 O(NL/2),几乎减半。

这一思路继承自微软的 YoCo(You Only Cache Once),但 CED 在结构上进行了增强:YoCo 让上半部分直接共享下半部分生成的同一份 KV 缓存,而 CED 则为每一层配置独立的投影权重,在保持「只计算一半」的前提下,扩大了 KV 的有效容量和生成深度。

不过,这也带来了代价,主要体现在滑动窗口注意力上。SWA 仍需逐层计算,每层的局部 K、V 都来自本层隐藏状态,以维持局部信息的计算深度。但这意味着 prefill 时解码器仍需额外处理 n_win × L/2 个 token 来补齐 SWA 状态,对于多轮短提示的场景反而成为新开销。

DeepSeek 的处理方式是「近似」:既然已有研究表明 SWA 的实际有效感受野远小于理论上的 n_win × L/2,那就只回放提示词最后的 n_win 个 token。这就是后面要讲的 Decoder SWA Bounded Replay。

CSA2:三个压缩维度首次同时被充分利用

CED 负责计算,CSA2(Compressed Sparse Attention 2) 则负责存储。

报告将 KV 缓存的压缩空间归纳为三个相互乘数的维度:条目大小(GQA 减少 KV 头数、MLA 让各头共享一个小 latent)、序列维度(每 m 个 token 压成一条,V4 的 CSA 和 HCA 属于此类)、以及层维度(让部分层复用其他层的缓存和选择结果)。

报告中还介绍了三项之前的成果:

  • IndexCache 跨层复用 Top-K 索引,节省的是索引器的算力而非缓存;
  • YOIO 将稀疏路由算作一次全网共享,但全网共享会损害性能;
  • HySparse 让稀疏层复用稠密层的 KV 缓存,但它仍保留了完整的注意力层。

三者都没有覆盖全部三个维度,而 CSA2 的目标是同时充分利用所有维度。

它的做法是为每个 CSA2 层静态分配三种模式之一。

  • Full 模式:自行计算 main KV 和索引器 Q,从 main KV 投影出索引器 K,运行完整的索引流程以生成新鲜的 Top-K 索引。
  • Reindex 模式:复用前面某层的 main KV 和索引器 K,但使用自己的索引器 Q 重新打分,选出属于自己的 Top-K——缓存共享,但选择权归自己。
  • Reuse 模式:最为节省,main KV 和 Top-K 索引全部沿用,直接进行稀疏注意力,连索引器 Q 都不计算。

三种模式的共同点是,每层仍保留自己的全局 Q 和 SWA KV,因此层与层之间的表达能力并未被抹平。具体配置参见原报告。

FP4 与 Bounded Replay

架构之外,还有两项改进。

第一项在精度上。V4 已对索引器的 Q、K 进行了 FP4 量化感知训练,V4.1-Flash 则将 FP4 扩展到 main KV 缓存。格式上选用 E2M1 搭配每 16 通道一个 E4M3 缩放因子,接近 NVFP4 但省去了其二级全局缩放。报告也严谨地论证了这一做法,感兴趣的读者可自行查阅。

第二项在部署上,即前面提到的 SWA Bounded Replay。由于 SWA 的依赖会逐层累积,精确重建 L 层的 SWA KV 需要回放 L × n_win 个 token,V4 的技术报告中曾提出「Zero SWA Caching」的思路,但该代价在生产部署中被证明过高。V4.1-Flash 则直接接受近似:只回放最近的 n_win 个 token(配置中 n_win = 128),并将 SWA 截断至回放段内。

这个「接受近似」带来的收益非常明显。在 V4 的部署中,SWA KV 占据了持久化缓存近一半的容量,但其访问模式与持久化缓存的长留存策略根本不匹配——全局 KV 具有长尾复用价值,而 SWA KV 仅在一个活跃会话内的分钟级窗口中有用,会话结束后便是无用数据。

因此,V4.1-Flash 将 SWA KV 整体移出持久化缓存,改为放入由每台机器 10% 主机 DRAM 组成的分布式内存池,TTL 仅几分钟,依靠高周转服务绝大多数并发会话;全局 KV 则继续留在 SSD 上,保证至少 72 小时的生命周期。

偶尔出现全局 KV 命中而 SWA KV 未命中的请求,就用 bounded replay 重算 n_win 个 token 兜底。报告称,这将一次灾难性的缓存未命中转变为一次廉价的优雅降级,持久化 KV 缓存也因此降至 V4-Flash 的约 1/8。

所有这些措施叠加的效果:上下文从 4K 扩展到 1M、放大 256 倍,V4.1-Flash 的单 token decode FLOPs 仅增加了 1/4。

各代 DeepSeek 模型单 token decode FLOPs 随上下文长度的变化

Single-Pass mHC、Engram 与 DSpark

熟悉 DeepSeek 这一年论文节奏的读者,会在架构章节中看到许多熟悉的面孔。

mHC(流形约束超连接) 来自今年元旦发布的一篇论文,旨在解决超大规模训练的稳定性问题。

V4.1-Flash 将其升级为Single-Pass mHC。

在原始实现中,输入混合系数 A 必须等待隐藏维度上的规约完成才能获取,导致残差更新、系数预测、输入混合三个 kernel 只能串行执行,激活访存量是理论下界的两倍。

新版本的做法是将混合系数错开一个 block——每个 block 消费上一个 block 产出的混合系数,依赖关系就此消失,三步可以融合进一个名为 Mega-mHC 的 kernel 中,激活访存从 (4n+4)d 降至 (2n+2)d,正好减半。报告称,这种错位带来的性能损失可以忽略。

Engram 则是今年 1 月 DeepSeek 与北京大学合作提出的条件记忆模块,思路是利用 N-gram 哈希实现 O(1) 复杂度的静态知识检索,将「记忆」从昂贵的 GPU 显存卸载到廉价的 DRAM,让 MoE 专注于组合推理。

V4.1-Flash 中它首次进入正式版模型:196B 参数平均分配给两个模块,放置在第 1 层和第 14 层,采用 {2, 3, 4} 阶 N-gram、8 个哈希头、每阶总嵌入维度 2048,每个头索引约 1600 万条目,表大小取互不相同的质数。嵌入表和投影均使用 FP8,推理时通过确定性寻址从主机内存后台 RDMA 预取,第一个模块的预取直接与第一个 Transformer block 的计算重叠。相比原始 Engram 设计,此处去掉了短因果卷积,原因是其收益不足以抵消推理栈的复杂性。

投机解码模块 DSpark 由三个 Transformer block 组成,滑动窗口 128 token,一次前向并行给出五个草稿位置的 base logits,再用一个轻量的 Markov 头建模草稿 token 之间的依赖,另有一个置信度头预测逐位置的接受概率,由调度器结合引擎吞吐曲线动态决定每个请求的验证长度。与 V3 中全程与主干联合训练的 MTP 不同,DSpark 是在预训练之后单独训练的,后训练阶段跟随主干但不回传梯度,其好处是能持续对齐不断演化的策略,同时加速线上服务和 RL 的 rollout 生成。

优化器层面也有两处调整:Q、K 权重采用按头切分的 head-wise Muon,以处理注意力头之间的异质性;Engram 嵌入表、token 嵌入和预测头则使用动量更新配合 Sinkhorn 平衡替代 Adam,仅需一个动量缓冲,节省了大量优化器状态显存。

这些优化效果显著:占绝大多数的 Reuse 模式层,prefill 时仅需执行 15 个 kernel,decode 时仅需 11 个。

后训练:「没有算法创新」

DeepSeek 在后训练章节坦率地表示:这一版本没有引入新的后训练算法,流程是标准的 SFT 加 RL 加 on-policy 蒸馏,没有超出成熟实践的改动。所有改动都集中在数据管线上,此处不再赘述,详见原论文。

一个有趣的点是,后训练引入了一个对用户直接可见的设计:reasoning effort。

训练时,将一个 1 到 100 的标量 effort 显式写入系统提示,同一 effort 下的多个采样构成一个子组,组内进行奖励中心化,而长度惩罚系数随 effort 指数衰减:effort 每增加一个特征尺度,惩罚系数乘以 1/e。这样一来,同一份权重就能在成本-质量曲线上滑动。DeepSeek API 暴露的 max、high、low 三档,对应的正是 b=100、75、50。

这也解释了开头 Artificial Analysis 那条「最冗长模型之一」的观察:它测试的是 max 档,而 max 档在设计上正是这条曲线最右端的点。

报告给出的数据显示,effort 从 25 提升至 100,八个推理密集型基准的平均 Pass@1 从 67.1% 升至 76.3%,DeepSWE v1.1 从 66.0% 升至 74.2%,Terminal-Bench 2.1 从 82.4% 升至 90.6%,代价是约 2.5 倍的输出 token。

性能与输出长度随 reasoning effort 的变化

但收益是前置的——60 到 80 这一档已经能用不到一半的 token 预算获得接近满档的准确率,而从 80 走到 100 会让 agent 轨迹再长 1.6 到 1.8 倍,换来的只是边际提升。报告建议将 max 留给最难的任务。

结语

通读这份报告,最值得注意的是三个层次被拧在同一个方向上:架构层通过 CED 削减一半 prefill、通过 CSA2 实现跨层复用的三个维度全覆盖,精度层将 main KV 压缩至 FP4,部署层则通过 bounded replay 将 SWA KV 整体移出持久化缓存。

任何单独一项都只能带来百分之几十的改善,叠加在一起才效果显著。

顺便一提,DeepSeek 还开源了一些新的代码仓库,以便更轻松地部署 V4.1 Flash 及后续开源模型:

  • deepseek-recipe:是一组 Rust 库和 Python bindings,可将不同格式的 API 请求统一转换为 Conversation 格式,将其编码为 DeepSeek 模型的提示,并将模型输出转换为相应格式的响应。使用这些组件将推理后端连接到支持多种格式的 API 服务。https://github.com/deepseek-ai/deepseek-recipe
  • DeepJIT:一个轻量级、仅头文件的 C++20 JIT 运行时,面向 NVIDIA CUDA GPU 和华为昇腾 NPU。它为 C++/Python 扩展作者提供了一个共享接口,用于在运行时编译内核源代码、缓存生成的二进制文件、将其加载到设备上,并使用后端特定的选项启动它们。https://github.com/deepseek-ai/DeepJIT
  • DeepSelect:是 DeepSeek 稀疏注意力(DSA)(用于 DeepSeek V3.2、DeepSeek V4 和 DeepSeek V4.1 模型)中所用 TopK 内核以及采样器的高性能实现。与原生 torch.topk 相比,它实现了 2 ~ 20 倍的加速。https://github.com/deepseek-ai/DeepSelect

再顺便一提,DeepSeek 已开始灰度测试语音交互。

本文来自微信公众号“机器之心”(ID:almosthuman2014),作者:Panda,36氪经授权发布。

更多文章