DeepSeek 在 2026 年 9 月 10 日发布了 V4.1-Flash,随即登上 Hacker News 榜首。这份技术报告值得单独精读,因为它几乎是为「长上下文 Agent 服务」这一个问题写的——而这个问题在今天恰好是推理成本的主战场。
一句话概括动机:长周期 Agent 已经让 LLM 服务变成了输入密集型负载。反复 prefill、百万级上下文,把 KV 缓存压上了 HBM 容量、SSD 容量与带宽三重瓶颈。V4.1-Flash 的整套设计都在回答同一件事——在保持 1M 上下文的前提下,把这份缓存做小。
模型的骨架是:552B 主干参数、另有 196B Engram 参数、1M token 上下文,prefill 每 token 激活约 8B、decode 激活约 16B。它是一个多模态 MoE,原生处理图像与文本。权重以 MIT 许可开放,Hugging Face 上提供 vLLM、SGLang 与 Transformers 三条路径。
一、CED:让 prefill 少算一半
普通 Transformer 的 prefill 里,每个提示词 token 都要穿过所有层,而每一层都会生成自己的全局键值。
CED(Causal Encoder-Decoder)改掉了后半句。40 层主干被拆成 20 层因果编码器 + 20 层解码器,解码器的全局 KV 不由自身隐状态推导,而是用各解码层专属的投影权重,从编码器最终隐状态投影出来。
后果是提示词 token 在全局注意力路径上只需走完网络下半部分。报告给出的 prefill 复杂度近似为:
普通结构: O(N·L)
CED 结构: O(N·L/2 + n·L/2) # n 为局部窗口长度,N 远大于 n
用大白话说:当上下文远长于局部窗口时,prefill 计算近乎减半。这与早先的 YoCo 思路相关(同样在上层共享缓存表示),但 V4.1-Flash 加了自己的全局缓存投影、局部注意力路径与缓存重建机制。
解码器并非完全不算注意力。它在每一层都保留 128 token 窗口的滑动窗口注意力(SWA)。关键在于这些局部分片不再被持久化到 SSD——缺失部分通过只重放最近 128 个 token 来重建,这套机制叫 Decoder SWA Bounded Replay。一次未命中只需重算 128 个 token,而不是「层数乘窗口大小」。
二、CSA2:沿层轴压缩缓存
如果说 CED 是省算力,CSA2(Compressed Sparse Attention 2)就是省容量。它的思路很干脆:不是每一层都需要一份完整的全局 KV。
每个 CSA2 层保留自己的主查询和滑动窗口 KV,但全局缓存与稀疏选择按三种静态模式分配:
| 模式 | 主 KV | 索引键 | Top-K 索引 | 做什么 |
|---|---|---|---|---|
| Full | 新算 | 新算 | 新选 | 计算自己的主 KV,投影索引键,选出全新 Top-512 |
| Reindex | 复用上层 | 复用上层 | 重选 | 用自己的索引查询对复用缓存重新打分并重选 |
| Reuse | 复用上层 | 复用上层 | 复用 | 完全跳过索引器 |
发布配置的分配是:18 个 CSA2 编码层用压缩比 2,分 3 组、每组 6 层(1 层 Full + 5 层 Reuse);20 个解码层用压缩比 1,分 5 组、每组 4 层,第一组是 1 层 Full 加 3 层 Reuse,其余四组是 1 层 Reindex 加 3 层 Reuse。
解码器还有一个层级稀疏索引器(Hierarchical Sparse Indexer):第一个 Full 模式层对所有因果可见的全局位置打分,按块最大分选出候选池。发布配置里这个池是 2048 个块、每块 8 个位置,共 16,384 个候选位置。后续 Reindex 层只在这个固定池里检索,再选出 512 个位置。
这一点是设计上最聪明的地方:首次全局扫描仍然随上下文增长,但后续索引层的检索规模被候选池上界锁死了。深度索引成本因此与上下文长度解耦。
CSA2 相对前代 CSA 还去掉了重叠压缩模式与绝对位置嵌入,并把索引键改为从主 KV 条目推导,而不是走一条独立的隐状态压缩路径。
三、FP4 与部署侧的两个数字池
容量上的最后一刀落在存储格式上。主全局 KV 被量化为 FP4(E2M1),每 16 个通道配一个 E4M3 缩放——基本是去掉全局缩放的 NVFP4。它通过后训练阶段的量化感知训练引入,相对 V4 的 FP8 主 KV 几乎再省一半。局部滑动窗口 KV 则保留 FP8。
报告明确区分了两个概念,这个区分对部署方很关键:
- 运行时全局 KV:留在加速器显存里。
- 持久化 KV:放在 SSD 或主机内存,用于恢复或复用前缀。
组合起来的结果是 全局 KV 缓存约 890 字节每 token,约为上一代 V4-Flash 的四分之一;如果和初代模型比,报告称规模已缩小约 437 倍。持久化缓存则约为 V4-Flash 的八分之一。
部署层面还有两个细节影响实际体验:SWA KV 不再落 SSD,而是活在从 10% 主机 DRAM 划出的分布式池里,TTL 只有几分钟;全局 KV 则提供保证 72 小时的生存期。命中失败时,重建只重算 128 个 token。
其余架构件包括:Single-Pass mHC,把输入混合系数整体位移一个块,从而用融合的 Mega-mHC 内核把激活显存流量减半;Engram 条件记忆,两个稀疏访问模块挂在主干第 1 与第 14 层;DSpark 投机解码,在后训练之后、主干冻结的条件下训练;以及逐头 Muon。MoE 侧是每层 384 个路由专家加 1 个共享专家,每 token 激活 6 个路由专家,图像 token 与文本 token 使用各自独立的负载均衡修正偏置。
最终报告给出的代价曲线是:上下文从 4K 拉到 1M 时,单 token 解码 FLOPs 只上升约四分之一。这才是 1M 上下文能落地服务的经济学基础。
四、训练:没有新算法,只有数据工程
这部分反而最值得做产品的人读。
预训练规模是 45T 多模态 token,文本与多模态比例 7 比 1;稀疏注意力从零开始在 64K 序列上训练,不做密集预热;上下文在 34T token 处扩展到 1M。基座模型在世界知识与编程上追平 V4-Pro-Base,而总参数只用三分之一、激活参数用四分之一。
后训练没有引入任何新算法,仍是标准的 SFT → RL → 同策略蒸馏。所有实质性变化都在数据管线:大规模自动合成可验证的 Agent 任务与环境,并逐步扩展数据、任务与 rollout 规模。
这里有一个细节我认为是全篇最被低估的信息:RL 是在异质脚手架之间做的——报告点名的包括 Claude Code、Codex、OpenCode、Pi、mini-SWE 与自家的 DeepSeek Harness,同策略蒸馏则来自 40 多个教师。
这句话的含义是:模型的 Agent 能力,是在别人的 Agent 运行时里练出来的。这也解释了为什么跨脚手架的一致性会成为这一代模型的训练目标,而不是评测的副产品。
线上表现方面,第三方测试给出的数字包括 Codeforces 评分 3471、DeepSWE v1.1 74.2%、Terminal-Bench 2.1 90.6%。模型支持 1 到 100 的连续可调推理力度,用来在成本与准确率之间换取。
五、局限:报告自己承认的那一处
技术报告在给出漂亮数字之后,明确标注了一处需要更多工作的地方:缓存恢复边界(cache-resumption boundaries)仍需更多压力测试。
这不是小事。SWA 的有界重放是近似重建——精确重建需要把窗口逐层重放。报告称在其测试条件下退化可忽略,持久化缓存约为 V4-Flash 的八分之一。但当你的业务把「长会话恢复」放在核心链路上(例如跨天运行的编码 Agent、需要 overnight 任务的流水线),这类近似重建的边界行为就是你要自己验的东西。
另有三个工程变量值得预算时留出余量:
一、局部推理的显存反而变难。 552B 的体量让本地部署门槛上移,社区里已经在吐槽「闪电机型基础参数 552B、权重要占几百 GB」。
二、FP4 KV 是量化路径,长尾精度行为需要按你的任务实测,而不是照搬基准。
三、缓存命中价每百万 token 0.003 美元属于最优情形。真实成本取决于命中率——而命中率取决于你的请求模式是否真的复用前缀。
六、一句话结论
V4.1-Flash 这份报告的价值,在于它把「长上下文为什么贵」拆成了三个可分别优化的轴:算力(CED)、容量(CSA2 加 FP4)、以及持久化(有界重放)。三者叠加才有 890 字节每 token 和「上下文涨到百万、单 token FLOPs 只涨四分之一」这两条结论。
如果你在做 Agent 服务的成本模型,建议把这三个轴分别代入自己的负载画像测算——尤其是前缀复用率。同一个模型,命中率不同,账单可以差一个数量级。