DeepSeek V4.1 Flash上线引关注!小参数超越大模型,多维度优化揭秘
DeepSeek V4.1 Flash上线引热潮小参数超越大模型多维度优化揭秘前两天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 Astra69%持平略高于Grok 4.667%。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参数的“小肥鱼”超越了Pro的1.6T参数“大肥鱼”下面我们就基于其官方技术报告来进行一番解读。这是一篇围绕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。这套数字组合起来才是「552B干掉1.6T」的真正含义比较的核心是同样一次agent调用里模型要占多少显存、要从SSD搬多少数据、要重算多少次prefill。稀疏注意力之后贵的地方是存和搬要理解DeepSeek为什么把全部火力对准KV缓存得先看清楚瓶颈的变化。从V3.2的DSA到V4的CSA稀疏注意力已经把长序列的计算成本削得足够低。但长程agent的工作负载有个特点输入重input - heavy。一个跑几小时的编码agent每次工具调用都会产生一次新的prefill请求上下文只增不减真正需要生成的token反而是少数。于是当「算」不再是瓶颈之后「存」和「搬」就顶了上来。报告把这个新瓶颈拆成三块HBM容量限制了运行时能同时装下多少并发请求的全局KVSSD和主机内存容量限制了前缀缓存能存多久、命中率有多高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」这条不对称设计的来源。关键在于解码器那20层的全局KV是怎么来的常规Transformer里每层的K、V都从该层自己的隐藏状态算出来所以处理一段提示词必须把40层全部跑完。CED不这么做解码器各层的KV条目直接由第20层也就是编码器最后一层的隐藏状态用各自的投影矩阵映射得到。换句话说prefill阶段只需要跑前20层上半部分的全局KV缓存就已经以极低的代价拿到手了。序列长度远大于窗口时prefill的复杂度从O(NL)降到约O(NL/2)接近对半砍。这个思路继承自微软的YoCoYou 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管计算CSA2Compressed 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个tokenV4的技术报告里提出过「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。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个kerneldecode时只需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八个推理密集型基准的平均Pass1从67.1%升到76.3%DeepSWE v1.1从66.0%到74.2%Terminal - Bench 2.1从82.4%到90.6% 代价是约2.5倍的输出token 。但收益是前置的——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服务。DeepJIT一个轻量级、仅头文件的C20 JIT运行时面向NVIDIA CUDA GPU和华为昇腾NPU。它为C/Python扩展作者提供了一个共享接口用于在运行时编译内核源代码、缓存生成的二进制文件、将其加载到设备上并使用后端特定的选项启动它们。DeepSelect是DeepSeek稀疏注意力DSA用于DeepSeek V3.2、DeepSeek V4和DeepSeek V4.1模型中所用TopK内核以及采样器的高性能实现。与原生torch.topk相比它实现了2 ~ 20倍的加速。再顺带一提DeepSeek已经开始灰度语音交互了。