DeepSeek-V4.1-Flash: Pushing the Limits of KV Cache Compression

发表时间: 2026-09 · Tech report by DeepSeek-AI (deepseek.com)

原文: https://huggingface.co/deepseek-ai/DeepSeek-V4.1-Flash

作者/机构:DeepSeek-AI research@deepseek.com

速读

一句话结论 本文提出了拥有 552B 参数且支持百万上下文的多模态 MoE 模型 DeepSeek-V4.1-Flash,通过联合优化模型架构与部署策略,将全局与持久化 KV Cache 分别压缩至前代的 1/4 和 1/8,在大幅降低长文本推理成本的同时,实现了比肩闭源前沿模型的智能体性能。

要解决什么问题 随着长周期智能体应用的普及,模型输入变得极长,频繁的工具调用产生了海量的 Prefill(预填充)请求,导致计算成本居高不下。同时,超长上下文产生的 KV Cache 对硬件的 HBM(高带宽内存)容量、SSD 存储空间以及数据传输带宽造成了极大的压榨。在原有的 DeepSeek-V4 架构中,注意力机制由全局分支和局部 SWA(滑动窗口注意力)分支组成。随着序列变长,全局 KV Cache 会占据绝大部分运行时内存;而为了支持多轮对话中的前缀复用,系统必须将 SWA KV 写入持久化存储(SSD 或主机内存)。原有做法为了在缓存未命中时精确恢复 SWA 状态,需要重新计算 $L \times n_{\mathrm{win}}$ 个 Token,高昂的重计算成本迫使部署时不得不保留庞大的 SWA KV 缓存。这种存储和通信带宽的瓶颈直接限制了系统的服务吞吐量,推高了部署成本,成为大规模落地长周期智能体任务的最大卡点。

怎么做的 核心思路是通过跨层共享、近似重计算以及架构精简,在序列、层和精度三个维度上极致压缩 KV Cache 并降低计算量。关键设计由四个核心部件构成。第一是 CED(因果编码器-解码器)架构,将前一半网络作为编码器,后一半解码器的全局 KV 直接由编码器最后一层的隐藏状态 $H_{L/2}$ 投影生成:

$$ C_l = H_{L/2} W_l^{KV}, \quad Z_l = H_{L/2} W_l^{Z}, \quad l > \frac{L}{2} $$

这一设计让模型在 Prefill 阶段只需激活 8B 参数,Decode 阶段激活 16B 参数,将预填充计算量几乎减半。第二是 CSA2(压缩稀疏注意力 2),它通过三种静态分配的模式实现跨层复用:Full 模式生成全局 KV 并计算 Top-K 索引;Reindex 模式复用前层的全局 KV,但重新计算索引;Reuse 模式直接复用前层的全局 KV 和索引。第三是分层稀疏索引器,在解码器中,由首个 Full 模式层筛选出一个候选池,后续层只在该池内检索,将极长上下文的索引计算复杂度从线性降为常数。第四是部署端的 SWA Bounded Replay(滑动窗口注意力有界重放)策略,新策略在缓存未命中时仅重放最近的 $n_{\mathrm{win}}$ 个 Token 来近似重建 SWA 状态。这使得 SWA KV 可以彻底从持久化存储中移除,仅保留全局 KV,并结合 FP4 量化进一步压缩主 KV 缓存的存储体积。此外,模型还引入了 Single-Pass mHC 将激活内存流量减半,并集成了 Engram 条件记忆模块与 DSpark 投机解码架构以进一步提升效能。

效果如何 模型拥有 552B 参数,在 45T Token 的多模态语料上完成预训练,并经过了大规模合成数据的强化学习后训练。实验对比了代表开源路线的 DeepSeek-V4-Pro、Kimi-K3、GLM-5.3,以及代表闭源前沿路线的 Opus-5、GPT-5.6 Sol。在量化结果上,DeepSeek-V4.1-Flash 在软件工程基准 DeepSWE v1.1 上取得了 74.2% 的解决率,在终端智能体基准 Terminal-Bench 2.1 上达到 90.6%,在数学基准 MathArena Apex 上达到 65.6%,均超越或比肩顶级闭源模型。在效率方面,全局 KV Cache 降至每 Token 890 字节(约为前代的 1/4),持久化 KV Cache 降至前代的 1/8。模型还提供了一个标量接口来控制推理努力程度(1到100),允许在部署时动态权衡算力成本与输出质量。代价与局限在于,尽管在日常任务中表现优异,但在需要专家级领域知识的科学类智能体任务(如 Terminal-Bench 4.0)上,与超大体量的闭源模型仍有差距;此外,SWA Bounded Replay 采用的近似状态重建机制,在尚未充分测试的极端边界条件下,可能会带来潜在的能力衰退风险。

主要贡献

随着长视界代理(long-horizon agents)的广泛应用,模型工作负载越来越偏向于输入密集型(input-heavy)。尽管先前的工作大幅降低了长上下文计算的成本,但预填充(prefill)阶段的计算仍然昂贵,且庞大的键值(KV)缓存持续对高带宽内存(HBM)、固态硬盘(SSD)容量以及数据传输带宽造成压力。这些计算、存储和带宽需求共同构成了进一步降低部署成本的主要瓶颈。

为了应对这一挑战,本文引入了DeepSeek-V4.1-Flash,这是一个拥有5520亿骨干参数并支持高达100万词元上下文的多模态混合专家(MoE)模型。其核心创新点包括:

  • 因果编码器-解码器(CED)架构:该模型在解码期间每个词元激活160亿参数,而在预填充期间仅激活80亿参数,大幅提高了代理工作负载的成本效率。
  • 压缩稀疏注意力2(CSA2)与FP4 KV缓存结合:通过跨层KV缓存复用与FP4精度缓存,将其全局KV缓存占用(始终驻留在HBM中)降低至每个词元890字节,约为DeepSeek-V4-Flash相应占用空间的1/4。
  • SWA有限重放(SWA Bounded Replay)部署优化:将其持久化KV缓存占用(始终位于SSD或主机内存中)减少至DeepSeek-V4-Flash的约1/8。
  • 精简架构与扩展:精简了DeepSeek-V4架构,并引入了单遍mHC(Single-Pass mHC)、Engram和DSpark等高效架构扩展。
  • 该模型在包含45万亿词元的多模态语料库上进行了预训练,并进行了全面的后训练,在多样化的基于文本和多模态的代理场景中实现了强大的性能,以极小的KV缓存占用提供了优于基线的表现。
图1 | (a) DeepSeek-V4.1-Flash及其对应模型在代理基准上的性能。(b) 跨代DeepSeek模型中每个词元的全局KV缓存大小(字节),突显了DeepSeek在降低上下文内存需求方面的持续努力。相对于DeepSeek-V4-Flash和DeepSeek-V1,DeepSeek-V4.1-Flash分别实现了约4倍和437倍的单词元全局KV缓存大小缩减。
图1 | (a) DeepSeek-V4.1-Flash及其对应模型在代理基准上的性能。(b) 跨代DeepSeek模型中每个词元的全局KV缓存大小(字节),突显了DeepSeek在降低上下文内存需求方面的持续努力。相对于DeepSeek-V4-Flash和DeepSeek-V1,DeepSeek-V4.1-Flash分别实现了约4倍和437倍的单词元全局KV缓存大小缩减。
图2 | 跨代DeepSeek模型中单词元解码FLOPs与上下文长度的关系。我们通过将BF16、FP8和FP4操作分别加权1、0.5和0.25来计算计算精度。随着上下文长度的增加,DeepSeek-V4.1-Flash保持几乎恒定的解码FLOPs,大幅降低了长上下文场景的计算成本。
图2 | 跨代DeepSeek模型中单词元解码FLOPs与上下文长度的关系。我们通过将BF16、FP8和FP4操作分别加权1、0.5和0.25来计算计算精度。随着上下文长度的增加,DeepSeek-V4.1-Flash保持几乎恒定的解码FLOPs,大幅降低了长上下文场景的计算成本。

方法细节

2. 架构

2.1 概览

多模态MoE模型架构概览:DeepSeek-V4.1-Flash是一个多模态混合专家(MoE)Transformer模型,接收图像和文本作为输入,并自回归地生成文本。其语言骨干包含40个因果Transformer层,组织为一个20层的因果编码器和一个紧随其后的20层解码器。除前两层仅使用滑动窗口注意力(SWA)外,每一层均结合了全局注意力和滑动窗口注意力。视觉编码器和MLP投影器将图像转换为视觉嵌入,与文本嵌入联合处理,在语言模型预训练的初始阶段便引入了多模态数据。总体而言,DeepSeek-V4.1-Flash拥有5520亿骨干参数和1960亿Engram参数,在预填充期间每个词元激活80亿参数,解码期间激活160亿参数。

图3 | DeepSeek-V4.1-Flash的整体架构。40层网络分为因果编码器和解码器,各20层。所有前馈层使用标准的DeepSeekMoE。前两个编码器层使用滑动窗口注意力(SWA);其余层使用压缩稀疏注意力2(CSA2),其中CSA2(ratio, mode)指定压缩率和模式。模型还使用了Single-Pass mHC、Engram、DSpark和层级稀疏索引器。
图3 | DeepSeek-V4.1-Flash的整体架构。40层网络分为因果编码器和解码器,各20层。所有前馈层使用标准的DeepSeekMoE。前两个编码器层使用滑动窗口注意力(SWA);其余层使用压缩稀疏注意力2(CSA2),其中CSA2(ratio, mode)指定压缩率和模式。模型还使用了Single-Pass mHC、Engram、DSpark和层级稀疏索引器。

CED与CSA2架构的互补作用:因果编码器-解码器(CED)架构和压缩稀疏注意力2(CSA2)解决了长上下文推理中互补的成本问题。CED从编码器输出构建解码器的全局键值(KV)缓存,使得大多数提示词元能够绕过完整的解码器计算,同时保留层局部的滑动窗口注意力。这几乎使预填充计算减半,降低了在上下文不断增长的代理工作负载中处理新输入或未缓存输入的成本。CSA2通过跨层共享全局KV来减少缓存存储,并复用稀疏选择以减少索引工作。在解码器中,层级稀疏索引器(Hierarchical Sparse Indexer)将后续索引器的搜索范围限制在较早索引器选择的候选池中,进一步减少了每个查询评分的条目数。

网络组件的保留与扩展:模型保留了DeepSeekMoE【14,Deepseekmoe: Towards ultimate expert specialization in mixture-of-experts language models+2024+arXiv】的共享和细粒度路由专家设计,并引入了针对图像和文本词元的特定模态负载均衡【73,Auxiliary-loss-free load balancing strategy for mixture-of-experts+2024+arXiv】。单遍mHC(Single-Pass mHC)【79,mhc: Manifoldconstrained hyper-connections+2026+URL】修改了残差流混合机制以实现更高效的内核融合,而Engram【12,Conditional memory via scalable lookup: A new axis of sparsity for large language models+2026+arXiv】增加了稀疏访问的条件记忆。在骨干预训练期间省略了MTP模块,并使用DSpark【11,Dspark: Confidence-scheduled speculative decoding with semi-autoregressive generation+2026+arXiv】进行投机解码,DSpark在骨干预训练阶段之后单独训练。此外,模型将主KV缓存压缩为FP4精度,以进一步降低存储开销。

2.1.1 多模态架构

多模态输入路径的处理流程:多模态输入路径由视觉编码器和MLP投影器组成。对于每张输入图像,视觉编码器生成视觉特征的空间网格。随后,一个$3 \times 3$的像素逆洗牌(pixel-unshuffle)操作沿通道维度重新排列每个局部邻域,在MLP投影器将特征映射到语言骨干的隐藏维度之前降低空间分辨率。最后,生成的视觉嵌入被插入到输入嵌入序列中对应的图像词元位置,并与文本嵌入一起由语言骨干联合处理。

DeepSeek-ViT的定制化设计:从头训练了一个名为DeepSeek-ViT的视觉编码器,以原生处理不同分辨率的图像。DeepSeek-ViT建立在Vision Transformer【24,An image is worth 16x16 words: Transformers for image recognition at scale+2021+ICLR】架构之上,并进行了几项修改。为了适应任意分辨率的输入,采用2D-RoPE替换了标准的绝对位置嵌入。为了使ViT更符合大语言模型(LLM)的设计原则,用线性投影替换了补丁嵌入层的卷积,以确保与Muon优化器兼容。同时采用RMSNorm【91,Root mean square layer normalization+2019+NeurIPS】进行归一化,使用SwiGLU【61,Glu variants improve transformer+2020+arXiv】作为激活函数。在将视觉特征送入LLM之前,应用$3 \times 3$下采样的像素逆洗牌操作,将视觉词元数量减少九倍,有效支持高达约$1344 \times 1344$像素的输入分辨率。

多模态无辅助损失的MoE负载均衡:图像和文本词元表现出不同的表示分布,并可能在MoE中引发不同的专家路由偏好。因此,平衡它们的总负载可能会掩盖特定模态的不平衡。为了解决这个问题,扩展了无辅助损失的负载均衡【73,Auxiliary-loss-free load balancing strategy for mixture-of-experts+2024+arXiv】,为文本和图像词元维护独立的专家级修正偏置。在路由期间,每个词元使用与其模态相关的修正偏置进行专家选择,同时保留原始路由分数以对所选专家的输出进行加权。在每个训练步骤之后,两组偏置根据各自的专家负载独立更新。这种设计平衡了每种模态内的专家利用率,有助于实现稳定高效的多模态训练。

2.2 因果编码器-解码器(CED)

代理工作流中的预填充计算挑战:在代理工作流中,频繁的工具调用会产生大量预填充请求,在KV缓存未命中时带来严重的计算开销。为了缓解这种预填充瓶颈,受到YoCo【65,You only cache once: Decoder-decoder architectures for language models+2024+NeurIPS】启发,提出了因果编码器-解码器(CED)架构。YoCo通过允许上半部分层直接共享下半部分层生成的KV缓存来减少预填充计算。基于此概念,CED引入了一系列结构改进,以提升整体KV缓存容量和KV生成的计算深度。因此,CED成功减少了近一半的预填充计算,同时保持了与基线相当的性能。

全局注意力的CED结构设计:对于全局注意力,CED将Transformer底部的$L / 2$层视为因果编码器。对于上半部分层(即解码器,$l > L / 2$),KV条目并非源自其各自的隐藏状态$H _ { l }$。相反,它们使用依赖于层的投影权重($W _ { l } ^ { K V }$和$W _ { l } ^ { Z }$)直接从第$( L / 2 )$层的隐藏状态$H _ { L / 2 }$投影而来:
$C _ { l } = H _ { L / 2 } W _ { l } ^ { K V } , \quad Z _ { l } = H _ { L / 2 } W _ { l } ^ { Z } , \quad l > \frac { L } { 2 } ,$
其中$C$和$Z$分别表示KV条目及其对应的压缩权重。这种设计使得CED在预填充阶段只需计算前一半的层,以极小的计算成本获取上层全局KV缓存。

滑动窗口注意力(SWA)的逐层计算与有限重放:对于滑动窗口注意力(SWA),CED在所有层中保持常规的逐层计算。具体而言,对于任意层$l$,局部键和值直接源自当前层的隐藏状态$H _ { l }$。这种设计有效增加了局部KV生成的计算深度。然而,维持这种逐层计算需要一个SWA重放(replay)过程。在预填充阶段,为解码器计算SWA KV缓存需要处理额外的$n _ { \mathrm { w i n } } \times L / 2$个词元(其中$n _ { \mathrm { w i n } }$表示窗口大小)。对于每轮提示较短的多轮交互,解码器中的这种计算开销变得不可忽视。幸运的是,先前的工作【8,Powerattention: exponentially scaling of receptive fields for effective sparse attention+2025+arXiv】表明,SWA的实际有效感受野远小于理论上的$n _ { \mathrm { w i n } } \times L / 2$。受此启发,引入了解码器SWA有限重放(Decoder SWA Bounded Replay),该机制仅预填充提示的最后$n _ { \mathrm { w i n } }$个词元进行SWA计算,从而显著降低了计算成本。

整体计算复杂度的降低:总体而言,对于序列长度$N \gg n _ { \mathrm { w i n } }$,CED将预填充复杂度从$O ( N L )$降低到$O ( N L / 2 + n _ { \mathrm { w i n } } \times L / 2 ) \approx O ( N L / 2 )$,有效地使整体计算减半。

2.3 压缩稀疏注意力2(CSA2)

长上下文推理成本的三维压缩:服务长上下文需要控制KV缓存存储和注意力计算。这些成本可以在三个乘法维度上进行降低:条目大小维度,其中GQA【1,Gqa: Training generalized multi-query transformer models from multi-head checkpoints+2023+arXiv】减少了KV头的数量,MLA【17,Deepseek-v2: A strong, economical, and efficient mixture-of-experts language model+2024+arXiv】在各头之间共享一个小型潜在向量;序列维度,其中每$m$个词元被压缩成一个条目,如DeepSeek-V4【20,Deepseek-v4: Towards highly efficient million-token context intelligence+2026+arXiv】中的CSA和HCA;以及层维度,其中一些层复用其他层的缓存【7,Reducing transformer keyvalue cache size with cross-layer attention+2024+NeurIPS】和选择,而不是保留自己的,或者完全被更高效的层取代。先前的工作表明,沿层维度的压缩是有效的:IndexCache【6,Indexcache: Accelerating sparse attention via cross-layer index reuse+2026+arXiv】跨层复用Top-K索引以削减索引器计算;YOIO【67,You only index once: Cross-layer sparse attention with shared routing+2026+arXiv】计算一次稀疏路由并在所有层共享;HySparse【27,Hysparse: A hybrid sparse attention architecture with oracle token selection and kv cache sharing+2026+arXiv】让稀疏层复用稠密层的KV缓存。然而,仅索引复用无法节省主KV存储,全网络路由共享限制了性能,混合设计仍然保留了全注意力层;更重要的是,这些方法都没有涵盖所有三个乘法维度。

CSA2的联合优化策略:CSA2联合利用了这三个维度:它跨层共享主KV和索引器K,并允许层复用Top-K索引,实现了缓存共享与索引复用的解耦。它将这些复用策略与简化的压缩器以及一个层级稀疏索引器结合,后者缩小了解码器中后续索引层的搜索域。

索引器与压缩器的精简设计:与CSA类似,CSA2包含一个轻量级索引器,该索引器使用索引器Q和索引器K对主KV条目进行评分,并为每个查询选择Top-K条目。每个Q与所选条目以及层局部的滑动窗口KV(SWA KV)共同进行注意力计算。CSA2还包含未压缩主KV设置作为压缩率为1的特例。同时,CSA2简化了压缩器和索引器。在CSA中,$m$的压缩率从$2m$个原始KV缓存条目中生成每个主KV条目,相邻压缩条目的源条目存在重叠。它还包含绝对位置嵌入以在压缩期间对这$2m$个条目的位置进行编码。CSA2移除了这种重叠和绝对位置嵌入。此外,CSA2通过投影主KV条目来获取索引器K,取代了CSA从隐藏状态分离的压缩路径。这两种设计都简化了实现并提高了训练效率。

跨层复用与层级索引的章节说明:第2.3.1节和第2.3.2节描述了跨层复用策略和层级稀疏索引器。

2.3.1 跨层KV与索引复用

CSA2的三种静态模式分配:每个CSA2层被静态分配三种模式之一:全量(Full)、重索引(Reindex)或复用(Reuse)。在所有三种模式中,该层都计算自己的查询和SWA KV,并将它们与选定的主KV条目一起使用以产生新的注意力输出。这些模式在如何获取主KV、索引器K和Top-K索引方面有所不同。图4说明了这三种模式。

图4 | CSA2的三种运行模式。这些模式在如何获取主KV、索引器K和Top-K索引方面有所不同。绿色块表示在当前层计算的量;黄色块表示从最近的全量模式层复用的主KV和索引器K;而红色块表示从最近的产生索引的层(全量或重索引模式)复用的Top-K索引。所有三种模式均在当前层计算主Q和SWA KV。
图4 | CSA2的三种运行模式。这些模式在如何获取主KV、索引器K和Top-K索引方面有所不同。绿色块表示在当前层计算的量;黄色块表示从最近的全量模式层复用的主KV和索引器K;而红色块表示从最近的产生索引的层(全量或重索引模式)复用的Top-K索引。所有三种模式均在当前层计算主Q和SWA KV。

全量模式(Full Mode)的工作机制:该层计算自己的主KV和索引器Q,从该主KV投影出索引器K,并运行索引器以产生新的Top-K索引。因此,它执行完整的CSA2计算路径,并具有与DeepSeek-V4中完整CSA层相同的组件职责。

重索引模式(Reindex Mode)的工作机制:该层复用来自前一层最近可用的主KV及其对应的索引器K。索引器计算自己的查询,对复用的键重新评分,并产生新的Top-K索引。这允许稀疏选择跨层改变,同时主KV和索引器K保持共享。

复用模式(Reuse Mode)的工作机制:该层复用前一层在全量或重索引模式下针对该主KV计算的最近可用主KV和最新Top-K索引。它直接使用此选择执行注意力计算,而不计算索引器Q或评估索引分数。

缓存共享与索引复用的综合优势:共享主KV和索引器K减少了缓存存储,而复用Top-K索引避免了额外的索引器计算。重索引模式保留了缓存共享,同时允许选择的条目跨层改变。当CSA2与CED结合时,分配给全量模式的解码器层从第$( L / 2 )$层(即因果编码器的最后一层)的隐藏状态计算其自身的全局KV。重索引和复用模式保持不变。

2.3.2 层级稀疏索引器

跨层索引复用的计算瓶颈:跨层索引复用减少了索引器评估的次数,但剩余的索引器仍然对整个因果可见的上下文进行评分。对于极长的上下文,这种成本仍然是一个主要的计算瓶颈。先前的工作引入了索引器稀疏性,通过在词元级索引之前对池化的块表示进行评分和修剪【81,Hisa: Efficient hierarchical indexing for fine-grained sparse attention+2026+arXiv】。发现在解码器中,较浅层索引器的信息可以自然地用于限制较深层索引器考虑的候选者,而不增加任何额外状态。

首个全量模式层的候选池构建:因此引入了层级稀疏索引器(Hierarchical Sparse Indexer),该索引器仅在CED的解码器中使用,以减少解码期间的这种重复评分。对于每个查询,分配给全量模式的第一层构建一个候选池,后续的重索引层将其用作搜索域。对于固定的候选池大小,这将较深层索引器的单查询成本从与上下文长度呈线性关系变为恒定值。该机制是训练感知的并在后训练阶段引入:在训练和推理期间相同地应用候选限制,因此较深的索引器在与推理时相同的搜索域下进行优化。

图5 | 层级稀疏索引器。每个正方形代表一个位置;绿色正方形标记选定的索引,蓝色矩形标记基于其最大索引器分数选定的块。解码器在全量模式下的第一个CSA2层选择其自身的Top-512索引,并从选定的块中为后续层构建一个共享候选池。处于重索引模式的CSA2层随后从该池中选择其Top-512索引。
图5 | 层级稀疏索引器。每个正方形代表一个位置;绿色正方形标记选定的索引,蓝色矩形标记基于其最大索引器分数选定的块。解码器在全量模式下的第一个CSA2层选择其自身的Top-512索引,并从选定的块中为后续层构建一个共享候选池。处于重索引模式的CSA2层随后从该池中选择其Top-512索引。

后续层的重索引与复用机制:这个第一个全量模式层对所有因果可见的主KV位置进行评分,并为其自己的注意力计算产生Top-K索引。它还执行分块的候选选择:每个块被分配其位置中的最大索引分数,并选择分数最高的块。然后它将选定块涵盖的位置收集到一个大于最终Top-K集合的候选池中。例如,选择2048个块(每个块8个位置)将产生16384个候选位置。这个池定义了后续索引器的搜索范围;最终的Top-K选择决定了每层读取哪些主KV条目。处于重索引模式的后续层仅对相应查询的候选位置进行评分,并在该池内选择其自身的Top-K条目。处于复用模式的层不执行新的索引,并使用针对它们所复用的主KV计算的最新Top-K索引。因此,候选池在索引层之间共享,而它们的最终选择可以不同。

层级索引的查询成本限制:对于固定的候选池大小,每个后续索引器单查询评分的位置数量受到独立于上下文长度的限制。第一个全量模式层仍然扫描整个因果可见范围。因此,层级索引降低了后续索引器评估的成本,同时保留了初始的全范围扫描。

2.4 高效架构扩展

2.4.1 单遍mHC (Single-Pass mHC)

mHC残差流的原始设计:在DeepSeek-V4中,引入了mHC【79,mhc: Manifoldconstrained hyper-connections+2026+URL】,它在相邻Transformer块之间维护$n$个残差流。对于每个词元,将这些流表示为$X _ { l } \in \mathbb { R } ^ { n \times d }$,其中$l$是块索引,$d$是隐藏维度。流的更新方式如下:
$X _ { l + 1 } = B _ { l } X _ { l } + C _ { l } { \mathcal { F } } _ { l } ( A _ { l } X _ { l } ) , \qquad ( A _ { l } , B _ { l } , C _ { l } ) = { \mathcal { H } } ( X _ { l } ) ,$
其中$A _ { l } \in \mathbb { R } ^ { 1 \times n }$、$C _ { l } \in \mathbb { R } ^ { n \times 1 }$和$B _ { l } \in \mathbb { R } ^ { n \times n }$是从$X _ { l }$预测的逐词元系数。系数预测器$\mathcal { H }$包括归一化和投影。

残差变换的理论下界与多遍实现:理想情况下,两个块之间的残差变换是从$\left( X _ { l - 1 } , Y _ { l - 1 } \right)$到$( X _ { l } , \hat { X } _ { l } )$的单一映射,其中$\hat { X } _ { l } = A _ { l } X _ { l }$是当前块输入,$Y _ { l - 1 } = \mathcal { F } _ { l - 1 } ( \hat { X } _ { l - 1 } )$是前一个块输出。这样的映射需要$( n + 1 ) d$次读取和$( n + 1 ) d$次写入,给出激活内存流量$( 2 n + 2 ) d$的下界。在实践中,DeepSeek-V4使用了(2)的多遍实现,具有三个由于数据依赖性而顺序执行的内核:
$X _ { l } = B _ { l - 1 } X _ { l - 1 } + C _ { l - 1 } Y _ { l - 1 } \qquad \text{残差更新,对} n \text{进行收缩}$
$( A _ { l } , B _ { l } , C _ { l } ) = { \mathcal { H } } ( X _ { l } ) \qquad \text{系数,对} n d \text{进行收缩}$
${ \hat { X } } _ { l } = A _ { l } X _ { l } \qquad \text{输入混合,对} n \text{进行收缩}$
这三个内核分别读取$( n + 1 ) d$、$n d$和$n d$个值,总共写入$( n + 1 ) d$个值。包括$\mathcal { F } _ { l }$中的预归一化,总激活内存流量为$( 4 n + 4 ) d$,是下界的两倍。

两遍实现的优化尝试:在$\mathcal { H }$中,归一化权重被离线折叠到投影权重中,RMS除法在投影后应用。因此,三个阶段中的两个可以共享对残差的一次遍历:残差更新不需要跨隐藏维度进行规约,因此可以计算$X _ { l }$的每个块,并立即用于累加计算RMS所需的投影输出和平方和。输入混合无法融合到这一遍中,因为在所有隐藏块上的规约完成之前$A _ { l }$不可用。因此它需要对$X _ { l }$进行第二次读取。这第二遍也可以合并输入预归一化。这种两遍实现总共需要$( 3 n + 2 ) d$次激活读写,与下界相比多读取了一次$X _ { l }$。

单遍mHC(Single-Pass mHC)的引入:因此引入了单遍mHC,它将输入混合系数移动一个块,即每个块消耗由前一个块产生的混合系数,从而消除了上述依赖关系:
$X _ { l + 1 } = B _ { l } X _ { l } + C _ { l } \mathcal { F } _ { l } ( A _ { l - 1 } X _ { l } ) , \qquad ( A _ { l } , B _ { l } , C _ { l } ) = \mathcal { H } ( X _ { l } ) .$
现在输入混合使用$A _ { l - 1 }$而不是$A _ { l }$,因此它不再依赖于从$X _ { l }$计算出的系数。因此,$X _ { l }$的每个块可以立即用于输入混合和系数预测,而无需等待完全规约。根据经验,这种移动带来的性能下降可以忽略不计。

Mega-mHC部署内核的单遍融合:在预训练中,保留了现有的多内核实现,因为这种移动仅改变了每个块应用的混合系数。对于部署,将残差更新、输入混合和系数预测融合到一个单一内核Mega-mHC中。该内核以$( 3 n + 2 ) d$次激活读写实现mHC,以$( 2 n + 2 ) d$次激活读写实现单遍mHC。Mega-mHC沿隐藏维度分块处理$X _ { l }$。每个块用于计算混合输入并累加预测下一个块的$\left( A _ { l } , B _ { l } , C _ { l } \right)$所需的量。该内核还合并了输入预归一化和FP8转换。残差由此被读取一次并写入一次,达到了理想映射的$( n + 1 ) d$次读取和$( n + 1 ) d$次写入,将原始实现的激活内存流量减半。

2.4.2 Engram

Engram条件记忆模块的集成与修改:为DeepSeek-V4.1-Flash配备了Engram【12,Conditional memory via scalable lookup: A new axis of sparsity for large language models+2026+arXiv】,这是先前工作中引入的条件记忆模块,用于将记忆与计算解耦。遵循原始的Engram设计——分词器压缩、多头哈希、上下文感知门控和多分支集成——并进行了两项修改。首先,省略了短因果卷积,因为其性能增益不足以证明在推理堆栈中增加复杂性是合理的。其次,使用基于动量的更新结合Sinkhorn平衡来优化Engram嵌入,详情见2.5节。

Engram参数分配与内存预取策略:将1960亿Engram参数平均分配在两个模块中。每个模块使用$N$-gram阶数$\{ 2 , 3 , 4 \}$,具有8个哈希头,每个阶数的总嵌入维度为2048。每个头索引一个约1600万条目的表,表大小被选择为不同的素数。嵌入表和键/值投影均使用FP8精度。模块放置在第1层和第14层(从零开始索引),以平衡训练管线阶段间的内存使用。在推理期间,确定性寻址允许通过后台RDMA传输从主机内存中预取嵌入,第一个模块的预取与第一个Transformer块中的计算重叠。关于Engram训练和推理的进一步实现细节在第3.1.3节中讨论。

2.4.3 DSpark

DSpark投机解码架构的组成:为DeepSeek-V4.1-Flash配备了DSpark【11,Dspark: Confidence-scheduled speculative decoding with semi-autoregressive generation+2026+arXiv】,这是一个将半自回归草稿生成与置信度调度验证相结合的投机解码模块。起草器(drafter)包含三个Transformer块,滑动注意力窗口为128个词元。通过这些块的单次前向传递并行计算五个草稿位置的基础对数几率(logits),同时一个轻量级马尔可夫头建模草稿词元之间的依赖关系。置信度头预测每个位置的条件接受概率,这些概率用于估计前缀存活概率。调度器将这些估计值与分析的引擎吞吐量曲线结合起来,动态选择每个请求的验证长度,旨在在当前系统负载下最大化预期的系统级词元吞吐量。

DSpark的独立训练与协同进化:与DeepSeek-V3【16,Deepseek-v3 technical report+2024+arXiv】中的MTP模块(在整个预训练期间与骨干联合训练)不同,DSpark在预训练之后的专用阶段引入。在此阶段,仅训练DSpark,同时保持骨干冻结。在后训练期间,继续与骨干一起训练DSpark,不将DSpark目标的梯度传播到骨干中。这使得DSpark与不断演进的策略保持一致,从而能够加速在线服务以及为强化学习(RL)和同策略蒸馏(OPD)生成推出(rollout)。

2.4.4 FP4主KV缓存 (FP4 Main KV Cache)

长上下文代理的缓存存储挑战与MXFP4格式:长上下文代理工作负载需要大量按请求分配的KV缓存,增加了服务成本。DeepSeek-V4已经对FP4索引器查询和键使用了量化感知训练(QAT)【35,Quantization and training of neural networks for efficient integer-arithmetic-only inference+2018+CVPR】,加速了索引计算并减小了索引器缓存大小。采用OCP标准的MXFP4格式【59,Microscaling data formats for deep learning+2023】,以支持尽可能多的硬件平台,尽管在实验中其他替代格式的精度更高。现在将QAT扩展到主KV缓存,其中FP4减少了存储空间,而不是加速矩阵乘法。在注意力计算之前对缓存值进行反量化,允许使用更精确的格式,而不需要对该格式的原生矩阵乘法支持,从而保留了跨硬件平台的兼容性。

E2M1格式的选择与动态范围分析:在评估的约四位格式中,选择E2M1格式,每16个通道一个E4M3缩放因子,遵循NVFP4【2,Introducing nvfp4 for efficient and accurate low-precision inference+2025+URL】但省略了其第二级全局缩放因子,以平衡精度和简单性。省略此缩放因子为主KV缓存留下了充足的动态范围:该格式支持的幅度高达$4 4 8 \times 6 = 2 6 8 8$,远高于缓存的幅度界限。在DeepSeek-V4.1-Flash中,训练后最大RMSNorm权重幅度约为1。RMS归一化后,512通道KV潜在向量的L2范数至多约为$\sqrt { 5 1 2 }$。RoPE保留了这一范数,因此旋转后跨通道的最大绝对值也受到约$\sqrt { 5 1 2 } \approx 2 2 . 6$的限制。此外,训练期间观察到的最大幅度约为10。因此,省略全局缩放因子不会导致可测量的精度下降,并简化了缓存布局。

主KV缓存的量化感知训练(QAT)实施:为了在DeepSeek-V4.1-Flash中启用FP4主KV缓存存储,在后训练期间引入QAT。非RoPE和RoPE组件使用相同的量化格式。在RoPE之后对缓存进行量化:在实验中,RoPE之前的量化仅带来微小的精度提升,并且会在解码期间引入额外开销。对于SWA KV缓存保留FP8,因为它对量化很敏感。与DeepSeek-V4中的FP8主KV缓存相比,这种格式几乎将存储占用减半,无论是在HBM中还是卸载到SSD时。

2.5 优化

基于架构设计的优化配置修改:在DeepSeek-V4中使用的优化配置基础上,进行了一些新的修改,以更好地契合架构设计。

逐头Muon(Head-wise Muon)的动机与优势:首先,使用逐头Muon(head-wise Muon),其中查询权重在应用Muon更新之前按头进行拆分。这里简要讨论这种设计的动机。将Muon视为预处理梯度下降,原始Muon为所有头使用一个预处理器,而逐头Muon为不同的头提供不同的预处理器。这种设计可以更好地处理注意力头之间的异质性【93,Why transformers need adam: A hessian perspective+2024+NeurIPS】【92,On the principles behind neural network optimizers+2026+arXiv】。结果观察到逐头Muon优于原始Muon。逐头Muon的经验优势在GLM 5【89,Glm-5: from vibe coding to agentic engineering+2026+arXiv】和Kimi-K3【69,Kimi k3: Open frontier intelligence+2026+arXiv】中也得到了验证。

Engram参数优化器状态内存的缩减:其次,将Adam应用于新引入的Engram参数会大幅增加优化器状态的内存占用。为了在训练期间减少内存使用,改为使用基于动量的更新结合Sinkhorn平衡来优化Engram嵌入表、词元嵌入和预测头。Sinkhorn平衡此前已应用于SinkGD中的线性层权重矩阵【60,Gradient multi-normalization for efficient LLM training+2025+NeurIPS】;在这里,将其扩展到这些大型参数矩阵。与Muon一样,这种方法仅需要一个动量缓冲区,同时在经验上优于Adam。

基础配置的详细参数:基础配置方面,保留AdamW【43,Decoupled weight decay regularization+2019+ICLR】用于归一化层权重和其他非矩阵参数,包括偏置和缩放因子。使用Muon【36,Muon: An optimizer for hidden layers in neural networks+2024】用于语言模型骨干中的线性变换权重矩阵、Engram投影层和视觉-语言投影器。使用逐头Muon用于查询和键权重。将解耦的权重衰减和Nesterov动量应用于Muon【52,A method of solving a convex programming problem with convergence rate $O ( 1 / k ^ { 2 } )$+1983+Soviet Mathematics Doklady】【42,Muon is scalable for LLM training+2025+arXiv】;归一化层权重也受权重衰减影响,而偏置和缩放因子则不受影响。Sinkhorn平衡更新也使用Nesterov动量但不应用权重衰减。在预训练期间,保持视觉编码器冻结,直到学习率衰减阶段,而其最终归一化层和视觉-语言投影器保持可训练。在学习率衰减开始时,解冻视觉编码器并以较小的学习率与LLM联合优化。

Engram/嵌入/预测头的Sinkhorn平衡更新流程:完整过程如下所述。在较高层面上,它遵循与Muon相同的工作流程,由Sinkhorn平衡取代Newton-Schulz正交化。用$m$表示较大的矩阵维度(对应于嵌入表和预测头的词汇表大小),用$n$表示隐藏维度。
给定Nesterov动量更新$\widehat { G } _ { t }$,Sinkhorn平衡寻找对角缩放矩阵$D _ { r }$和$D _ { c }$,使得:
$\Delta _ { t } = \sqrt { n } U ^ { ( K ) } = \sqrt { n } D _ { r } \widehat { G } _ { t } D _ { c } , \qquad \frac { 1 } { n } \sum _ { j = 1 } ^ { n } ( \Delta _ { t } ) _ { i j } ^ { 2 } \approx 1 , \qquad \frac { 1 } { m } \sum _ { i = 1 } ^ { m } ( \Delta _ { t } ) _ { i j } ^ { 2 } \approx 1 ,$
因此,该过程近似均衡了更新矩阵的逐行和逐列RMS。这里,一行对应一个词元索引或$\mathbf { n }$-gram身份;一列编码一个隐藏特征。Sinkhorn平衡通过沿行和列进行归一化来利用这种词元-特征结构。为了数值稳定性,满足$\rho _ { i } \leqslant \tau \bar { \rho }$的行被掩码。因子$\sqrt { n }$将单位行$\ell _ { 2 }$范数转换为单位逐行RMS。另外,调整有效学习率$\widetilde { \eta _ { t } } = \gamma \eta _ { t }$以匹配Adam的更新幅度。设置$\gamma = 0 . 1 8$,这接近Moonlight中使用的因子0.2【42,Muon is scalable for LLM training+2025+arXiv】。

Sinkhorn平衡与相关优化器的联系:更广泛地说,Sinkhorn平衡与利用矩阵或张量轴结构的优化器密切相关【62,Adafactor: Adaptive learning rates with sublinear memory cost+2018+ICML】【94,Adammini: Use fewer learning rates to gain more+2025+ICLR】【78,Sron: State-free llm training via row-wise gradient normalization+2025】【29,Memory-efficient llm pretraining via minimalist optimizer design+2025+arXiv】【22,Rmnp: Row-momentum normalized preconditioning for scalable matrix-based optimization+2026+arXiv】【85,Nora: Normalized orthogonal row alignment for scalable matrix optimizer+2026+arXiv】【80,On the width scaling of neural optimizers under matrix operator norms i: Row/column normalization and hyperparameter transfer+2026+arXiv】。例如,Adafactor以不同方式进行逐行和逐列归一化,而Adammini对嵌入表和预测头使用替代的逐行归一化。这些归一化策略在优化性能和通信开销上可能有所不同。更详细的调查留作未来方向。

3. 通用基础设施

3.1 训练基础设施

3.1.1 多模态训练基础设施

对比学习中的通信与计算重叠机制:视觉编码器在用生成式下一词元预测损失进行微调之前,首先用对比目标进行优化。在对比阶段,损失是在文本和视觉对的完整批次上计算的,因此两种模态的特征必须在数据并行等级上进行全收集(all-gathered),这会产生大量通信。因为文本特征的梯度仅依赖于收集到的视觉特征——对称地,视觉特征的梯度仅依赖于收集到的文本特征——每次全收集可以与前向或反向传递重叠,而不是停滞流水线:
$\begin{array} { r l } { \mathrm { F o r w a r d } ( V ) ~ \to ~ \left( \mathrm { F o r w a r d } ( T ) ~ \lVert ~ \mathrm { A l l G a t h e r } ( V ) \right) ~ \to ~ \nabla _ { \mathrm { T e e t } } } \\ { ~ \to ~ \left( \mathrm { B a c k w a r d } ( T ) ~ \lVert ~ \mathrm { A l l G a t h e r } ( T ) \right) ~ \to ~ \nabla _ { \mathrm { V i s i o n } } ~ \to ~ \mathrm { B a c k w a r d } ( V ) } \end{array}$
其中$V$和$T$表示视觉和文本特征,$\left( A \parallel C \right)$表示计算$A$与通信$C _ { \epsilon }$的重叠,$\nabla$表示梯度计算。在此调度中,视觉特征在文本前向传递期间收集,文本特征在文本反向传递期间收集,使得两次全收集完全隐藏在有用计算之后。

端到端并行处理与解耦编码器设计:为了处理视觉编码器和LLM之间的模型和数据异质性【95,Disttrain: Addressing model and data heterogeneity with disaggregated training for multimodal large language models+2025+ACM SIGCOMM】,采用了最近训练系统中使用的解耦编码器设计【71,Longcat-flash-omni technical report+2025+arXiv】【70,Kimi k2.5: Visual agentic intelligence+2026+arXiv】。视觉编码器在LLM参数树之外被复制,每个训练步骤分为三个阶段:视觉编码器前向、LLM前/反向以及视觉编码器反向。这种分离防止了视觉编码器和LLM计算之间的干扰。负载均衡的视觉处理仅限于第一和最后一个阶段,而LLM阶段保持无视觉计算,并保留纯文本训练的并行策略。

长序列多模态训练的瓶颈:DeepSeek-V4.1-Flash在多达一百万词元的序列上进行训练,在预训练和后训练阶段,大部分训练都发生在超长序列长度下。在这些序列长度下,多模态样本在I/O、CPU和内存上造成了严重的瓶颈。

平衡图像分片机制:在预训练期间,单个超长、图像密集的序列可能会在加载期间耗尽一台主机的I/O、CPU和内存,因此每个序列的图像在CP(Context Parallel)等级上进行负载均衡分片,并且每张图像仅加载一次。图像读取一次后,只要满足以下条件,加载就会隐藏在计算背后:
$\frac { N \times \rho } { B _ { \mathrm { I O } } } < \frac { N \times C } { B _ { \mathrm { G P U } } } \quad \Longleftrightarrow \quad \rho < \frac { B _ { \mathrm { I O } } } { B _ { \mathrm { G P U } } } C$
其中$N$是词元数,$\rho$是每个词元的原始字节数,$C$是每个词元的计算量,$B _ { \mathrm { I O } }$和$B _ { \mathrm { G P U } }$是文件系统和GPU带宽。由于$N$被抵消,该标准仅涉及逐词元量($\rho$和$C$),与序列长度和集群大小无关;$\rho$由视觉模块配置设定(例如分辨率上限或空间下采样)。因此,存储吞吐量仅对于具有低单词元计算量的小型模型(如消融实验中)成为瓶颈,而生产规模的模型仍然受限于计算。

增量图像传输与缓存策略:除了上述的平衡分片外,强化学习推出(rollout)过程仅以增量方式将图像传输到推理引擎,并将引擎在CPU端的解码和预处理输出缓存在分布式文件系统上,以供跨推出批次和后续训练复用。

3.1.2 CSA2的注意力共享训练

CSA2分布式训练的跨层协调挑战:在第2.3节中引入了CSA2,这是一种具有三种模式的注意力共享方法,其中一些模式涉及跨多层共享主KV、索引器K和Top-K索引中的一个或多个。在大型分布式训练中支持CSA2需要注意力计算本身之外的额外协调。特别是,共享注意力组件的层可能被放置在不同的流水线阶段,使得直接的模块复用与传统的阶段局部执行不兼容。因此,采用了几种设计来支持CSA2训练。

影子索引器(Shadow indexers)的副本设计:影子索引器通过在每个参与阶段放置一个轻量级的可执行副本,同时保留共享参数的单一逻辑所有者来解决此问题。所有者仍然负责优化和检查点保存,而参数同步和梯度聚合使影子副本在整个训练过程中保持一致。这种设计保留了原始模型语义,而不需要流水线调度器将共享层视为特殊的执行单元。

跨流水线边界的负载扩展:当源层和消费者层跨越流水线边界时,流水线负载扩展为下游消费者提供了所需的中间表示和稀疏路由信息。这些状态被合并到现有的点对点通信路径中,并与上下文并行一致地进行分区,避免了不必要的复制,同时保持相应的梯度流。

微批次级别的共享状态管理:微批次级别的共享状态管理跟踪与并发活动的流水线微批次相关的状态,并协调它们在前向执行、激活重计算和反向传播中的生命周期。共享状态一直保留到其最终消费者完成,然后迅速释放以限制额外的内存开销。相同的运行时抽象还处理阶段放置和源-消费者关系,允许注意力实现访问共享状态而不依赖于物理流水线布局。

与现有分布式训练接口的透明集成:结合对优化器、检查点保存、预热和计算图追踪工作流的轻量级适应,这些机制使CSA2能够在现有的分布式训练接口和流水线调度下透明运行。

3.1.3 Engram

Engram嵌入表的分区与内存预取:Engram嵌入表按照Engram并行大小的专用进程组按行进行分区。组大小控制单设备内存使用与嵌入查找通信范围之间的权衡。优化器状态进一步在每个表分区的副本之间进行分片。Engram查找索引仅依赖于输入词元序列。因此,在每个流水线阶段开始处理当前训练步骤的微批次之前,会为整个局部批次启动嵌入预取,从而最大限度地减少对流水线执行的干扰。嵌入梯度在反向传播期间被缓冲,并在骨干反向传播之后返回给其所属等级。

Engram表更新的Sinkhorn归一化融合:为了与多模态训练高效集成,嵌入预取和梯度传输被安排与视觉编码器的前向和反向计算重叠。嵌入以FP8格式存储和获取,检索到的值和缩放因子直接传递给后续的GEMM。对于Engram表更新,Sinkhorn归一化跨迭代维护行和列缩放向量,以避免重复写入完整的归一化矩阵。行归一化和部分列统计信息的累加被融合到一个单一内核中,以进一步减少内存流量。

强化学习部署中的Engram内存驻留:在RL推出期间,Engram嵌入表保留在GPU内存中。这种放置减少了主机内存压力,并有助于避免由主机内存碎片引起的内存不足(out-of-memory)故障。

3.2 推理系统

推理内核的高效融合与流水线化:DeepSeek-V4.1-Flash在设计时将推理效率置于首位。尽管其架构在概念上很复杂,但最终的推理内核流程却非常简洁。通过合理的内核融合,封装了复杂的操作,并使硬件资源在少数几个融合内核中充分流水线化——包括FlashMLA【41,Flashmla: Efficient multi-head latent attention kernels+2025+URL】中的fused-RoPE-attention-RoPE-cast内核,DeepGEMM【96,Deepgemm: clean and efficient fp8 gemm kernels with fine-grained scaling+2025+URL】中的Mega-Gate、Mega-mHC和Mega-MoE内核,TileKernels【74,Tilekernels+2026+URL】中的内核,以及DeepSelect【56,Deepselect: High-performance topk kernels for deepseek sparse attention and sampling+2026+URL】中的TopK内核。结果,绝大多数Transformer层——即CSA2在复用模式下运行的层——在预填充期间仅用15个内核执行,在解码期间仅用11个内核执行,从而实现了高吞吐量和低延迟推理。

EPD解耦部署策略:在部署层面,采用编码器-预填充-解码(EPD)解耦,使得视觉编码、预填充和解码能够独立扩展并重叠执行。

3.2.1 持久化KV缓存管理

持久化KV缓存占用缩减的核心因素:在相同的工作负载下,V4.1将持久化KV缓存的占用减少至V4的1/8。两个乘法因素促成了这一减少:持久化KV缓存不再存储SWA KV,这几乎使其大小减半;保留在其中的全局KV通过架构和精度优化进一步被压缩至V4占用的1/4。

V4部署中SWA KV缓存的存储开销与管理策略:在V4部署中,SWA KV占持久化KV缓存容量的近一半。在该缓存内,全局KV和SWA KV独立管理,受LRU驱逐策略约束。全局KV完整存储,命中时整个前缀被复用。相比之下,SWA KV缓存在两个特定点——提示的末尾和输出的末尾——以促进重新生成和多轮会话;命中允许计算从该缓存位置恢复。为了保持高命中率,在SSD上配置了足够大的持久化KV缓存,使得在典型工作负载下,两种类型的KV都能驻留超过72小时。尽管只在指定位置保留$n _ { \mathrm { W i n } }$个KV条目,未压缩的SWA KV缓存仍然产生巨大的存储开销,特别是在短轮次的多轮对话中。

持久化存储SWA KV的低效性与零SWA缓存的局限:持久化存储SWA KV既昂贵又低效,因为其访问模式与持久化KV缓存的长期保留策略不匹配。与表现出长尾复用特性的全局KV不同,SWA KV仅在活动会话内狭窄的分钟级窗口内被复用,一旦会话结束或下一轮开始就会变成死缓存。V4技术报告提出了零SWA缓存(Zero SWA Caching),通过重新计算缺失的SWA KV来避免存储开销。然而,精确恢复需要对$L \times n _ { \mathrm { w i n } }$个词元进行完整的前向传递,其成本在生产部署中被证明是令人望而却步的。

V4.1持久化KV缓存管理的修订策略(一):因此,V4.1对持久化KV缓存管理进行了如下修订:1. SWA KV不再缓存在持久化KV缓存中,而是存储在由每台机器$10\%$主机DRAM配置的分布式内存池中。尽管该池的总容量小得多,但其较短的TTL(仅几分钟)允许过期的条目立即回收用于新会话;在真实工作负载下,这种高周转率足以服务绝大多数并发活动会话。全局KV保留在持久化KV缓存中,保证寿命至少为72小时。

V4.1持久化KV缓存管理的修订策略(二):2. 驱逐SWA KV不可避免地会导致未命中,但由于轻量级回退机制——编码器SWA有限重放(Encoder SWA Bounded Replay,详见3.2.2节),这些未命中的成本依然可控。对于命中全局KV但未命中SWA KV的不可避免但不频繁的请求,它通过仅重新计算$n _ { \mathrm { w i n } }$个词元而不是完整的$L \times n _ { \mathrm { w i n } }$词元前向传递来恢复缺失状态。这种有限重放是设计的基石:它将灾难性的未命中转化为优雅、廉价的降级,从而证明了从持久化KV缓存中移除SWA KV的合理性。

3.2.2 SWA有限重放 (SWA Bounded Replay)

SWA有限重放(SWA Bounded Replay)的基本原理:由于SWA依赖性跨层累积,精确重建$L$层的SWA KV需要重放$L \times n _ { \mathrm { w i n } }$个词元。SWA有限重放则仅重放最近的$n _ { \mathrm { w i n } }$个词元,并将SWA截断到重放片段,接受近似状态:对于从位置$s$开始的重放,位置$i$的查询关注$\left[ \operatorname* { m a x } ( s , i - W + 1 ) , i \right]$中的SWA键。

编码器SWA有限重放的实现机制:编码器SWA有限重放使前缀缓存仅依赖于全局KV,允许将SWA KV从持久化KV缓存中移除。当编码器SWA KV缺失时,重放缓存前缀的最后$n _ { \mathrm { W i n } }$个词元,并将它们与未缓存的后缀一起处理。重放的词元仅重新生成SWA KV,复用缓存的全局KV而无需重新计算或覆盖,而未缓存的后缀生成全局KV和SWA KV。

编码器SWA重放的近似状态与质量保证:按照设计,重放的前缀状态是近似的,因此为未缓存后缀计算的全局KV和SWA KV依赖于缓存命中位置,在数学上不跨位置等效。令人鼓舞的是,实验证据证实这种有限重放策略几乎不损害响应质量。

解码器SWA有限重放的引入动机:解码器SWA有限重放将解码器前向传递限制为$n _ { \mathrm { w i n } }$个词元,几乎使总预填充计算减半。在CED下,解码器全局KV从最终的编码器隐藏状态投影而来。在编码器处结束预填充的唯一障碍是解码器SWA KV,它是从每个解码器层自身的隐藏状态生成的,并且是最初解码步骤所需要的。由于从不缓存解码器SWA KV,精确重建它需要通过$\frac { L } { 2 }$个解码器层运行最后$\frac { L } { 2 } \times n _ { \mathrm { w i n } }$个提示词元,当短的未缓存后缀跟随在长的缓存前缀之后时,这是昂贵的。

解码器SWA重放的具体执行与训练感知适配:因此,也将有限重放策略应用于此场景:在每次预填充时,重放提示的最后$n _ { \mathrm { W i n } }$个词元,在相同的SWA截断下将它们的编码器输出馈送通过解码器层,并将生成的解码器SWA KV仅用于解码,而不用于前缀缓存。按照设计,重建的解码器SWA KV在数学上不等同于完整解码器前向传递的结果。此外,发现该策略对响应质量的影响微乎其微。为了增加安全性,在后训练期间额外模拟了相同的重放,以进行训练感知的适配。

4.1 数据构建

文本数据的精细化整理与模型在环迭代:为了追求更高的智能,超越了小规模数据实验所反映的总体、样本级质量,更多地关注提供独特信息增益的不同语料库之间的整体交互。采用更系统和标准化的数据构建管线来提高数据质量并优化数据混合。具体而言,基于更全面的评估,精心设计了模型参数和训练数据的扩展阶梯,以指导大规模训练。过滤掉信息增益有限的模型生成内容,包括能力较弱模型的输出和低质量的机器翻译文本。将此类内容视为隐性重复,因为它在很大程度上重构了现有信息,并且在长训练周期内可能会产生不利影响。还探索了模型在环(model-in-the-loop)数据迭代方法,作为未来大规模合成数据的基础。此外,引入了更多领域专家以构建细粒度的数据质量评估维度。与先前版本相比,新语料库纳入了来自新发布的开源仓库、提交、库和新兴框架的更多近期代码,以覆盖更广泛的编程语言,并更好地反映当代现实世界软件工程场景。

多模态数据的原生利用与渐进式构建:多模态预训练数据集主要包括三种类型的数据:图像-文本对、交错的图像-文本数据和特定领域的数据。基于原始网络数据自然提供丰富多模态知识的前提,没有进行大规模的数据合成;相反,优先清理和利用数据的原生形式,以在预训练期间实现最直接和可扩展的视觉知识压缩。在初始数据收集期间,发现爬虫系统过于偏向以文本为中心的网络内容;因此,从Common Crawl重新启动它,以提高其对多模态源的覆盖率。对于图像-文本数据,从网页中提取图像及其相关的替代文本,通过应用图像-文本相关性阈值过滤它们,并基于图像语义进行去重。对于交错数据,主要从网页和PDF构建此子集。处理大规模多模态语料库通常比处理纯文本语料库产生更高的CPU和磁盘存储成本,这促使将交错数据的构建组织成渐进式更昂贵的阶段。在图像检索之前,应用启发式和统计过滤、去重以及质量模型来选择高价值文档。幸存的文档随后被组装成交错的图像-文本序列,其中过滤和去重以图像感知的方式再次应用。最后,使用SmolVLM【46,Smolvlm: Redefining small and efficient multimodal models+2025+arXiv】对图像-文本内容进行严格的质量评分,从而提取高质量的交错数据。在此过程中被过滤掉的文档部分通过筛选和重组被回收到额外的图像-文本对中。为了弥补网络收集数据的固有局限性,还纳入了特定领域的数据集,以提升模型在细粒度视觉感知(例如视觉定位和指向)、光学字符识别(OCR)以及长尾知识获取方面的能力。还收集了大量的图像-代码对和计算机使用轨迹,以提高多模态代理理解能力。

数据集成、去重与最优适配打包:由于纯文本和多模态数据通过不同的管线处理,因此将最终的训练语料库构建为两种数据源的并集。对于重叠样本,用其多模态对应物替换纯文本版本,并使用两种配置中较大的周期(epoch)数。替换后,生成的语料库使用7:1的纯文本到多模态数据词元比率。通过联合预取和分配训练样本,在预训练和上下文扩展期间最小化样本重叠。超长文档在混合前被确定性地预分割,以确保训练词元在数据分片和训练步骤中均匀分布。进一步增强了最优适配(best-fit)打包算法,实现了至多$1 0 ^ { - 4 }$的填充率。

5.1 后训练管线

后训练管线的标准范式与数据工程重心:在本次发布中,没有引入新颖的后训练算法。整体配方遵循监督微调(SFT)后接强化学习(RL)和同策略蒸馏(OPD)【30,Minillm: Knowledge distillation of large language models+2024+ICLR】【44,On-policy distillation+2025+URL】的标准范式,除了既定实践外没有任何算法修改。相反,努力几乎完全集中在模型训练的“内容”而不是如何“优化”上:投资于数据合成和环境构建的大规模、自动化管线。具体而言,该管线(i)合成多样化的、可验证的训练任务及其参考解决方案和奖励信号,(ii)程序化地构建和扩展交互式代理环境,在其中可以以低成本收集和评估轨迹,(iii)应用严格的过滤、去重和难度校准,以确保数据质量和课程平衡。发现,在固定且无奇特的优化程序下,合成数据和环境在规模、多样性和可验证性方面的系统性改进占据了几乎所有观察到的收益。这一观察呼应了一个更广泛的经验:在当前阶段,工程化数据和环境管线的边际回报大大超过了后训练中算法新颖性的回报。

5.1.1 大规模代理任务合成

任务构建与质量验证框架的建立:任务是代理学习的基础燃料。然而,构建高质量的训练任务传统上需要大量的人工努力。观察到模型已经开始表现出构建自身训练任务的能力,尽管这种能力还远未完美。认识到这一潜力,投入了大量精力来加强模型的任务构建和质量验证能力。将每个任务形式化为一个三元组(问题、环境、验证系统),并沿两个维度评估其质量:难度——确保任务并非微不足道——和正确性——保证这三个组成部分之间不存在关键缺陷。使用难度和正确性作为奖励信号,迭代训练模型以构建更好的任务。还在RL任务的整个生命周期中对其进行监控。每当任务在新的RL运行中使用时,生成的轨迹都会为质量重新审计提供新的证据。在此通用框架下,为两个核心场景建立了专用的训练环境生产管线:通用代理和编码代理。

通用代理(General Agent)环境的构建:对于通用代理,鼓励内部员工和外部合作伙伴将最新模型纳入其日常工作流中,并在自愿的基础上返回交互数据和反馈。基于返回数据中观察到的接口,构建了大量模拟工具,重现了现实世界工具和系统的接口和行为,包括其输入格式、输出结构、API模式和行为约束,涵盖了常用的SaaS和企业应用程序以及更专业的业务后端系统。同时,大规模收集内部员工提交的负面反馈和模型失败案例,并将其纳入管线,生成基于真实工作流的单轮和多轮代理环境。通过重建相关的工具上下文、用户交互模式和失败条件,该管线能够系统地重放失败,并针对观察到的模型弱点进行有针对性的强化学习。

编码代理(Coding Agent)环境的多智能体协同构建:编码代理训练环境建立在两个来源上:1)来自内部员工和外部合作伙伴的编码代理会话,经过过滤以保留高度复杂的任务或模型性能较差的任务,然后按轨迹进行去重;2)满足星标数阈值的公共GitHub仓库。环境构建由多个专用代理协作完成。首先,一个代理决定项目是否可以在容器内构建并完全运行,以及是否可以自动验证;如果是,它选择一个特定的轮次或提交作为任务起点,设计几个足够复杂的实现方向,并产生具体的评估点,包括由失败到通过(fail-to-pass)和通过到通过(pass-to-pass)的点,以及构建报告,根据需要从网络获取外部资源。接下来,一个单独的代理在隔离的容器中设置依赖项、初始工作目录、测试代码和任务描述,执行自我测试,删除任何可能泄露任务解决方案的痕迹,并将环境打包为新的镜像层。然后,多个不同的代理尝试该任务,一个独立的质量检查代理与解决代理的轨迹一起审查环境,检查环境问题、事实错误、评估点与任务描述之间的不匹配以及可破解性风险。如果检查未通过,修复代理会修复所有识别出的错误,调整过易或过难的评估点,任务重新进入验证。

自动化批处理与持续质量监控的统一系统:通过这些管线,可以自动批量生产正确、有区分度且在长度和难度上可控的RL训练数据。无论是通过通用代理环境中真实工作流的忠实重建,还是编码代理环境中编码任务的精确构建,两者最终都汇入一个统一的训练系统,在持续的质量监控下推动模型能力的迭代提升。

5.1.2 合成任务中的RL (RL in Synthesized Tasks)

合成任务中的大规模异步强化学习扩展:在合成任务中使用大规模异步RL来提高模型性能并塑造其在复杂场景中的行为。在两个维度上扩展RL运行,即训练计算和支架(scaffolds)数量。如图7和图8所示,随着累积RL步数增加计算量,性能持续提升,无论是在单个支架内扩展、在同一支架的变体间联合扩展,还是在异构支架间联合扩展。

图7 | 随着强化学习训练在DeepSeek Harness的Minimal模式中扩展,各种代码代理基准的性能得到提升。将最大上下文长度进一步扩展到100万词元,继续提高了在极长视界任务(如Terminal-Bench v3.0)上的性能。
图7 | 随着强化学习训练在DeepSeek Harness的Minimal模式中扩展,各种代码代理基准的性能得到提升。将最大上下文长度进一步扩展到100万词元,继续提高了在极长视界任务(如Terminal-Bench v3.0)上的性能。
图8 | 跨多个版本的Claude Code(左)以及跨异构支架(包括OpenCode、Pi和DeepSeek Harness的标准及PTC模式)(右)联合训练时,性能随累积强化学习步数提升。性能在DeepSWE v1.1上进行评估。较浅的曲线显示了单个支架版本或支架的评估。
图8 | 跨多个版本的Claude Code(左)以及跨异构支架(包括OpenCode、Pi和DeepSeek Harness的标准及PTC模式)(右)联合训练时,性能随累积强化学习步数提升。性能在DeepSWE v1.1上进行评估。较浅的曲线显示了单个支架版本或支架的评估。

跨多支架强化学习的解耦执行与沙盒卸载:对于跨多样化支架的RL训练,将代理推出执行解耦为代理沙盒和工作容器。沙盒运行支架及其工具,而工作容器提供了一个与支架无关的控制层,负责编排推出,将异构交互标准化为常见的轨迹模式,并与训练器通信。两者都在DSec(第5.1.3节)上运行,位于可抢占的GPU训练池之外,将长寿命的推出与细粒度的训练调度分离。在训练器抢占期间,推出执行可以被暂停并卸载,同时保留其完整状态以供稍后恢复,并释放CPU和GPU资源。这种设计能够在不修改底层算法的情况下跨异构支架实现稳定高效的RL。

通过模型合并扩展强化学习计算的跨运行收益:为了将有效RL计算扩展到单次训练运行之外,使用模型合并来重新初始化连续的RL运行。具体而言,合并来自不同支架或配置的运行的检查点,结合沿不同优化路径获得的改进。在图7和图8中,断开的曲线段反映了模型重新初始化后连续的RL运行。这在任务性能和词元效率上产生了进一步的增益,提供了一种简单实用的方法来聚合并行RL计算并跨连续运行继续扩展。

5.1.3 大规模运行代理:DSec (Running Agents at Massive Scale: DSec)

DSec沙盒平台的需求演进与规模挑战:随着从DeepSeek-V3过渡到V4,代理训练环境在数量和多样性上的迅速增长促使构建了DeepSeek Elastic Compute (DSec),这是一个用于大规模代理训练和评估的生产级沙盒平台。其初始设计解决了异构执行环境、可扩展图像分发、多种隔离后端、高密度资源管理、命令轨迹日志记录以及安全抢占恢复等问题。V4.1的训练进一步增加了需求,要求数百万个并发沙盒实例跨越不同的测试框架、平台、代码仓库、软件依赖项和特定任务服务。在这种规模下,主要瓶颈转移到了数据中心的可扩展性、工作负载隔离、单节点计算密度以及控制日益强大代理的异常行为上。

水平扩展计算与放宽一致性的调度设计:DSec通过两种互补机制进行扩展:分片和放宽一致性的调度。为了容纳大量机器,将计算节点划分为多个分片(所谓的规模单元)。这种分片还允许通过隔离来自不同实验的工作负载来减小爆炸半径,防止单个内存密集型任务耗尽无关工作共享的资源。DSec没有使用像Kubernetes这样的现成编排器,而是采用自定义的放置引擎来调度大量沙盒,通过牺牲强全局一致性来换取可扩展性。这一设计基于一个关键观察:代理沙盒放置只要求最终一致性,只要每个计算节点强制执行本地安全约束即可。为此,放置引擎部署在多个独立副本中,没有同步协调。每个副本根据最近的测量预测资源可用性,并做出足够好的放置决策。为了补偿这种一致性的损失,每个节点负责验证最终的放置决策,强制执行严格的准入约束,如果超过本地警告阈值则拒绝新的放置。整个设计使得DSec能够扩展到数百万个容器而不会在中央协调上产生瓶颈。

高密度沙盒运行与延迟敏感任务的干扰隔离:在节点层面,使用硬件支持的子NUMA分区,并将每个工作VM绑定到单独的NUMA域。容器在这些工作VM内运行,其CPU和内存分配限制在VM的本地NUMA资源内。这种设置在积极的内存超额分配与Linux内核锁争用之间取得了平衡,同时局部化了内存压力和运行时故障。在类似的工作负载配置下,它将支持的密度从大约1,000个增加到每个物理节点超过2,500个并发活动容器,然后才出现可测量的端到端性能下降。尽管如此,这种高密度部署可能会通过后台工作负载的干扰扭曲对时间敏感的评估。因此,DSec引入了延迟敏感(LS)执行类。对非LS任务应用SCHED_IDLE以最小化其调度优先级,并使用核心调度确保只有相同优先级类的任务在同级超线程上同时执行,以消除干扰。

异常行为代理的缓解与安全策略:在RL训练期间,经常观察到代理试图执行奖励黑客行为或无意中使环境崩溃。在某些尝试中,代理利用了最近披露的漏洞,包括XFS驱动程序的权限问题、AppArmor中的非法内存访问、从包镜像服务泄漏答案等。代理还因删除关键二进制文件、破坏系统文件甚至删除文件系统而臭名昭著。使用每沙盒AppArmor配置文件和基于eBPF的细粒度网络策略来防止此类尝试。如果代理使其环境崩溃,将崩溃视为失败的轨迹,并向RL框架报告“后遗症(repercussion)”信号。

5.1.4 RL中可控的推理努力程度 (Controllable Reasoning Effort in RL)

推理努力程度(Reasoning Effort)作为显式条件信号:除了模型架构和硬件的进步外,输出词元的数量是决定服务成本以及现实世界应用中成本-质量权衡的另一个关键因素。因此,在强化学习期间引入标量努力水平$b$作为显式的条件信号。该机制应用于单轮推理和多轮代理任务。具体而言,在系统提示前添加以下指令:
Reasoning Effort: {effort} (range 1–100; higher values request more thorough reasoning)
这里,$b \in \{ 1 , \dots , 1 0 0 \}$表示请求的努力水平。

特定努力水平下的响应采样与组内奖励计算:对于每个训练提示$x$,在每个努力水平$b \in { \mathcal { B } }$下采样$M _ { b }$个响应:
$z _ { b , j } \sim \pi _ { \boldsymbol { \theta } } ( \cdot \mid \boldsymbol { x } , b ) , \qquad b \in \mathcal { B } , \quad j = 1 , \ldots , M _ { b } .$
这里,$j$索引在努力水平$b$下采样的响应。共享相同$( x , b )$的响应形成一个子组,在子组内奖励被均值中心化以计算组相对优势。因此,不同努力水平的响应不直接进行比较。相反,通过使奖励的长度分量依赖于$b$,在每个子组内诱导依赖于努力程度的行为。

努力程度依赖的长度惩罚项设计:具体来说,将长度惩罚项$r _ { b , j } ^ { \mathrm { l e n } }$添加到响应$\boldsymbol { z } _ { b , j }$的奖励中:
$r _ { b , j } ^ { \mathrm { l e n } } = - \operatorname* { m i n } \left\{ C _ { \mathrm { m a x } } , \ k ( b ) \frac { \ell _ { b , j } } { L _ { \mathrm { n o r m } } } \right\} ,$
其中$\ell _ { b , j }$是推理词元的数量,$L _ { \mathrm { n o r m } }$是参考长度,$C _ { \mathrm { m a x } }$限制了应用于轨迹的最大扣除额。

指数衰减的词元惩罚系数:词元惩罚系数随着请求的努力程度呈指数下降:
$k ( b ) = k _ { 0 } \exp \left( - \frac { b - b _ { \mathrm { m i n } } } { \tau } \right) , \qquad \tau = \lambda \overline { { \Delta b } } ,$
其中$k _ { 0 }$是不同努力水平下的基本惩罚系数,$b _ { m i n }$是${ \mathcal { B } }$的最小值,${ \overline { { \Delta b } } }$是训练努力水平之间的平均间距,$\lambda$控制惩罚衰减的速率。将$b$增加$\tau$会使惩罚系数乘以$e ^ { - 1 }$。参数$k _ { 0 }$控制对较短推理的整体压力,而较小的$\tau$导致惩罚衰减得更快,并倾向于在努力水平之间产生更大的行为分离。附录C提供了$k ( b )$指数参数化的边际效用动机。

部署时的灵活控制接口与成本质量权衡:在部署时,标量$b$为模型的推理强度提供了一个灵活的控制接口。通过改变$b$,单个模型检查点可以在学习到的成本-质量前沿的不同运行机制之间移动,适应不同的延迟、词元预算和解决方案质量要求。尽管训练仅使用有限的一组努力水平,但可以在部署时使用中间值来引出插值的推理行为,为测试时资源分配提供细粒度且高效的机制。

公共API中的预设推理努力层级映射:在2026年9月推出的生产部署中,公共API暴露了三个预设的推理努力层级——max、high和low——它们直接映射到这个标量接口。如表2总结,这三个层级分别对应于努力值$b = 1 0 0$、$b = 7 5$和$b = 5 0$,因此API用户可以在学习到的成本-质量前沿选择一个操作点,而无需更改模型权重或解码配置。

表2 | 公共API推理努力层级与底层标量努力值$b$之间的映射。

API tier Effort value b
max 100
high 75
low 50

5.2 异步后训练基础设施

问题:同步 rollout 的长尾气泡:同步 RL 每一步要等整批样本全部生成完才能开始训练。LLM 的输出长度分布是重尾的,一批里绝大多数样本早已结束,最后几条超长样本仍在解码。这段时间里推理端的并发度不断下降、GPU 利用率随之塌陷,训练端也在空等。批次越大、任务越偏长视界(代理、长推理),这个气泡越大。

做法:用异步生成维持恒定并发:DeepSeek 把后训练基础设施扩展为允许异步生成样本(思路与 GLM-5【89,Glm-5: from vibe coding to agentic engineering+2026+arXiv】、Kimi K2.5【70,Kimi k2.5: Visual agentic intelligence+2026+arXiv】一致):不再以“一批”为单位等待,而是始终让足够多的样本处于生成中,一条结束就补一条,从而把长尾样本的等待时间摊到持续流动的生成过程里。目前几乎所有 RL 与 OPD 任务都已开启异步训练,rollout 效率大幅提升。

代价与本节结构:异步换来了效率,但带来三类新问题,本节依次处理:① 怎样稳定地维持目标并发(5.2.1);② 异步造成的长度偏置和离策略样本如何控制(5.2.2);③ rollout 被频繁打断以切换检查点时,如何做到“打断几乎零耗时、恢复如同未停”(5.2.3)。最后 5.2.4 说明这套基础设施如何支撑 40 余个教师的大规模 OPD。

5.2.1 整体工作流

同卡共置、分时执行:rollout 与训练放在同一批物理设备上,按时间片轮流执行。与 GLM-5 把训练引擎和推理引擎拆到不同 GPU 上的“解耦”方案不同,共置方案不需要人工决定两个阶段各分多少卡——生成多就多生成、该训练时整组卡切去训练,资源配比由时间片自然决定。每个任务只需指定一个参数:在飞样本数(in-flight samples)上限,系统在整个 rollout 阶段维持这个上限。

三种分发粒度的对比:为了把并发稳定在目标值,团队先后尝试了三种“何时往推理引擎里补新任务”的粒度:

分发粒度补发规则观察到的问题结论
批次级开始时多发几个批次,此后每完成一次训练迭代补一整批并发在“刚补完”和“快耗尽”之间大幅起伏,训练指标严重振荡粒度太粗,弃用
提示级某个 GRPO 组的全部样本完成后,才补发一个新提示一组里只要有一条长尾样本没结束,这个名额就一直补不出去,容易卡住,难以平滑维持目标并发受组内长尾牵制,弃用
样本级(最终方案)新完成的样本数一旦凑够下一个提示的 GRPO 组大小,就立即分发该提示,不管这些完成样本来自哪个组—并发在整个训练过程中保持稳定

样本级分发为什么稳:关键在于“腾出名额”与“组是否完成”脱钩。设 GRPO 组大小为 G、在飞上限为 C:只要任意来源累计结束了 G 条样本,就恰好空出 G 个名额,正好容纳一个新提示的 G 条生成。于是在飞样本数始终贴着 C 上下浮动不超过一个组的大小;某个组里个别样本拖得很长,也只占它自己那一个名额,不会冻结整组的补发。这正是提示级方案缺失的性质。

训练抢占 rollout:攒够一个训练批的样本后,训练阶段抢占正在进行的 rollout(因为两者共用同一批卡)。被打断的样本并不丢弃,而是在下一轮 rollout 中用新检查点接着生成。因此一条样本可能横跨多个检查点:前半段由版本 k 生成、后半段由版本 k+1 甚至更晚的版本生成。

级联路由重放(concatenated routing-replay):对 MoE 模型,训练前向若重新计算专家路由,选中的专家可能与生成该词元时实际用的专家不同,造成训推不一致;路由重放的做法是把 rollout 时记录的专家选择直接回放到训练前向中。跨检查点的样本在这里遇到额外问题:它的不同片段是在不同检查点下路由的。DeepSeek 的选择是把每个 rollout 片段各自产生的路由按顺序拼接起来作为整条样本的路由,而不是丢掉旧片段的路由、用新检查点重算。这样训练时每个词元用的都是它被生成时的真实专家选择,与 5.2.3 中“KV 缓存直接复用、不重新预填充”的做法在语义上保持一致。

5.2.2 缓解长度偏置和离策略副作用

两个副作用:异步生成虽然有效提升了 rollout 效率,但会引入两个可能损害训练质量的副作用,二者成因不同、需分别处理:

  • 长度分布偏置:短序列先完成,因而先进入训练批次。训练早期尤其明显——前几个训练批几乎全由短回答构成,模型看到的长度分布与真实策略分布明显不同。
  • 离策略样本:样本的部分或全部词元由较早的检查点生成。在飞时间越长的样本(往往就是长样本)跨越的版本越多,离策略程度越高。

长度偏置的两个缓解机制:

  • 按数据集限制并发:分发器可以为每个数据集单独设置在飞上限。不同数据集的典型输出长度差异很大(如简短问答与长视界代理任务),若不加限制,短任务数据集会凭“完成得快”在稳态训练批中占比过高。按数据集限流相当于控制样本来源的配比,间接压住长度偏斜。
  • 丢弃早返回的短样本:训练刚启动时,最先返回的那部分短样本可以被丢弃,让训练批次平滑过渡到稳态的长度分布,避免模型在训练初期对过短序列过拟合。

离策略问题的两层控制:DeepSeek 在“调度”和“损失”两个层面各放了一道闸:

  • 调度层:限制最大离策略比例。通过调整样本分发逻辑以及训练端等待样本的条件,可以给离策略程度设一个上界,保证训练数据不会偏离当前模型太远。直观地说,分发越激进、训练越不等待,吞吐越高但样本越旧;这两处控制逻辑就是在吞吐与新鲜度之间取舍的旋钮。
  • 损失层:按词元陈旧度做损失掩码。训练时对陈旧度过高的词元直接屏蔽其损失贡献,削弱陈旧样本对梯度更新的不利影响。由于一条样本可能横跨多个检查点,掩码作用在词元粒度上:同一条样本中较新的片段仍可正常参与训练,只剔除过旧的部分。

与同期方案的对照:GLM-5 的异步 RL 采用的是样本级丢弃——若一条样本最旧的 rollout 版本与当前版本之差超过阈值 τ,整条样本丢弃,同时用重要性采样比的双侧裁剪做词元级掩码;Kimi K2.5 则按对数比率显式限制离策略漂移。DeepSeek-V4.1 的方案把“限制有多旧”放在调度层、把“剔除过旧部分”放在词元级损失掩码,避免了整条长样本因开头几段过旧而全部作废。论文未给出离策略比例上界和陈旧度阈值的具体数值。

5.2.3 性能优化

目标:检查点切换无感化:在异步 RL 框架中,rollout 会被周期性打断以切换到更新的策略检查点。切换越频繁,样本越新鲜,但每次切换的开销也被放大。因此设计目标是两条:打断要近乎瞬时;被打断的 rollout 恢复后要像从未停过一样继续。

词元级中断:生成可以在任意词元边界停止,而不必等当前请求或当前批次跑完。一旦收集到足够训练数据,所有在飞样本几乎立即停下,系统随即进入训练阶段,没有等待尾巴。

按词元粒度持久化 rollout 状态:生成过程中,KV 缓存、专家路由等 rollout 状态按词元粒度持续保存。用新检查点恢复时直接复用这些状态,省掉了对已生成前缀重新预填充的开销,被中断的样本可以准确地从断点继续。这里有两点值得注意:

  • 对长视界任务,已生成前缀可能长达数十万词元,若每次切换都重新预填充,切换成本会随上下文长度线性增长,频繁切换就不可行。复用状态让切换成本与已生成长度基本无关。
  • 复用的 KV 缓存与路由是旧检查点下算出的,新检查点在此基础上续写。这与 5.2.1 的级联路由重放一致:整条样本记录的就是它实际被生成的过程,样本因此带有离策略成分,由 5.2.2 的机制兜底。

样本级垃圾回收:持久化意味着要同时保存所有在飞样本的状态,显存与存储压力很大。为此按样本粒度回收:每条样本一结束,立即释放它的全部状态,而不是等整批或整轮结束再统一清理。

顺带解决集群抢占:同一套快速中断、无缝恢复的机制,也让训练作业能及时响应集群调度器的抢占信号而不丢进度,从而提升整体集群利用率。这延续了 DeepSeek-V4 的可抢占 rollout 服务【20,Deepseek-v4: Towards highly efficient million-token context intelligence+2026+arXiv】:V4 为每个生成请求维护词元粒度的预写日志(WAL),抢占时暂停推理引擎并保存未完成请求的 KV 缓存,恢复时凭 WAL 与 KV 缓存继续解码;即便遇到致命硬件错误,也能用 WAL 中的词元重新预填充来重建 KV 缓存。V4 报告同时指出,被打断的请求若从头重新生成,在数学上是不正确的——短回答更容易在两次中断之间完成,从头重来会系统性地偏向短序列。V4.1 §5.1.2 还把代理任务的沙箱与 worker 容器部署在可抢占 GPU 训练池之外的 DSec 上,训练端被抢占时,rollout 执行可以挂起并卸载、保留全部状态以便之后恢复,同时释放 CPU 与 GPU 资源。

5.2.4 大规模同策略蒸馏 (Large-Scale On-Policy Distillation)

40 余个架构异构教师的全词表 OPD:后训练的最后一个阶段是全词表 OPD,在覆盖所有领域的数据集上使用超过 40 个教师模型训练(DeepSeek-V4 时为十余个),同样采用异步生成。之所以需要这么多教师,是因为各领域训练流程不同,每个领域的最佳教师可能来自模型开发的不同阶段;教师之间、教师与学生之间的架构也可能不同。后训练基础设施支持数量几乎不设上限的架构异构教师做全词表 OPD,并能以可忽略的成本在教师之间切换。

支撑多教师的机制(继承自 DeepSeek-V4):V4.1 在此处引用 V4 报告【20】,其中给出的实现要点如下:

  • 教师权重按需加载:全部教师权重卸载到中心化分布式存储,教师前向时按需加载,并用类似 ZeRO 的参数分片减轻 I/O 与 DRAM 压力。
  • 不物化教师 logits:词表超过 100k 时,为所有教师物化完整 logits 不可行,即便暂存到磁盘也不行。做法是教师前向时只把最后一层隐藏状态缓存到中心化缓冲区,训练时取回,再经对应教师的预测头即时重建完整 logits,重计算开销很小。
  • 按教师排序以限制显存:数据分发时按教师编号对训练样本排序,使每个教师的预测头在每个小批量中只加载一次,任意时刻设备上最多驻留一个教师头;参数与隐藏状态的装卸都在后台异步进行,不阻塞关键路径。
  • 专用 KL 内核:教师与学生 logits 之间的精确 KL 散度用专门的 TileLang 内核计算,既加速计算也减少动态内存分配。

异步下的动态重配置:OPD 阶段还需要边训练边调整配方:团队持续跟踪模型各项能力,并据此调整数据集配比、每个数据集的并发上限以及当前启用的教师。同步训练中,每个 rollout 批次天然就是配置边界,改配置很直接;异步设置下则没有这样的边界——旧配置下分发的样本仍在生成,新配置下的样本已经开始,两者在飞时并存。基础设施支持在配置之间一致地过渡,过程中不中断 rollout 和训练。论文未展开这一过渡机制的具体实现。

小结:问题与机制对照
问题机制所在小节
同步 rollout 长尾气泡异步生成 + 在飞样本数上限5.2
rollout / 训练资源配比同卡共置、分时执行5.2.1
并发起伏、组内长尾卡住补发样本级分发5.2.1
跨检查点样本的 MoE 路由一致性级联路由重放5.2.1
短样本先到导致的长度偏置按数据集限并发;丢弃早返回短样本5.2.2
离策略样本调度层限制最大离策略比例;词元级陈旧度损失掩码5.2.2
检查点切换开销词元级中断;KV 缓存与路由按词元持久化、免重新预填充;样本级垃圾回收5.2.3
集群抢占丢进度复用同一套中断/恢复机制5.2.3
40+ 异构教师的显存与 I/O按需加载权重、缓存隐藏状态重建 logits、按教师排序(沿用 V4)5.2.4
异步下改配方无批次边界配置间一致过渡5.2.4

实验环境

4.2 预训练设置

模型设置:将Transformer层数设置为40,隐藏维度$d$设置为5120。采用因果编码器-解码器架构,编码器20层,解码器20层。前两层使用纯滑动窗口注意力。其余18个编码器层使用压缩率为$m = 2$的CSA2。这些层分为三个相同配置的六层组。在每组中,第一层在全量模式下运行,其余五层在复用模式下运行。20个解码器层使用压缩率为$m = 1$的CSA2。这些层分为五组四层。在第一组中,第一层在全量模式下运行,其余三层在复用模式下运行。其余四组共享相同配置:第一层在重索引模式下运行,其余三层在复用模式下运行。对于所有CSA2层,将索引器查询头数设置为32,索引器头维度为128,用于稀疏注意力(即注意力top-$k$)的选定KV条目数设置为512。将查询头数设置为64,头维度为512,查询压缩维度为1280。对于层级稀疏索引器,选择最多2048个具有8个位置的块,总共产生多达16384个候选位置。输出投影组的数量设置为8,每个中间注意力输出的维度设置为1024。对于额外的滑动窗口注意力分支,窗口大小$n _ { \mathrm { W i n } }$设置为128。在所有Transformer块中使用MoE层,使用带有阈值为10的截断的SwiGLU激活函数【53,gpt-oss-120b & gpt-oss-20b model card+2025+arXiv】。每个MoE层包含1个共享专家和384个路由专家,其中每个专家的中间隐藏维度为2304。在路由专家中,每个词元将激活6个专家。至于mHC,扩展因子设置为4,Sinkhorn-Knopp迭代次数设置为20。对于视觉编码器,将其层数设置为32,隐藏维度为1024,注意力头数为16,图像块大小为14。视觉MLP投影器有2层,隐藏维度为5120。在此配置下,DeepSeek-V4.1-Flash包含5520亿骨干参数,预填充期间每个词元激活80亿参数,解码期间激活160亿参数。

训练设置:使用Muon优化器【36,Muon: An optimizer for hidden layers in neural networks+2024】【42,Muon is scalable for LLM training+2025+arXiv】用于线性变换参数,使用AdamW优化器【43,Decoupled weight decay regularization+2019+ICLR】用于所有RMSNorm模块的权重和其他非矩阵参数,并使用Sinkhorn平衡更新用于所有嵌入和预测头。对于AdamW,将其超参数设置为$\beta _ { 1 } = 0 . 9$,$\beta _ { 2 } = 0 . 9 5$,$\varepsilon = 1 0 ^ { - 2 0 }$,weight_decay $= 0 . 1$。对于Muon,将动量设置为0.95,权重衰减为0.1,并将每个更新矩阵的RMS重新缩放为0.18以复用AdamW学习率。对于Sinkhorn平衡更新,使用与Muon相同的动量系数和学习率修正因子,并设置$K = 1 1$,$\tau = 1 0 ^ { - 3 }$,$\varepsilon = 1 0 ^ { - 2 0 }$。学习率按$5 \times$缩放【12,Conditional memory via scalable lookup: A new axis of sparsity for large language models+2026+arXiv】。模型在45万亿词元的多模态数据上进行训练,没有出现不稳定性。在整个训练过程中,批大小固定为1.006亿词元。学习率在前2000步线性预热,然后保持在$2 . 6 \times 1 0 ^ { - 4 }$直到28T词元。在28T到40T词元之间,按照余弦调度将学习率衰减到$2 . 6 \times 1 0 ^ { - 5 }$。从40T到45T词元,将学习率保持在该值。模型在64K序列长度下从头开始使用稀疏注意力进行训练,并在34T词元时将序列长度扩展到1M。对于无辅助损失的负载均衡,将图像和文本词元的偏置更新速度设置为0.001,同时保留一个损失权重为0.0001的微小序列级平衡损失,以避免单个序列内的极端不平衡。与DeepSeek-V4类似,在预训练期间采用样本级注意力掩码。

视觉编码器独立训练阶段:DeepSeek-ViT在与语言骨干集成之前经历了一个单独的训练阶段。训练管线包含两个阶段:对比预训练和自回归微调。在对比预训练期间,使用SigLIP【90,Sigmoid loss for language image pre-training+2023+ICCV】引入的sigmoid对比损失,在源自替代文本数据的约470亿个图像-文本对上优化模型。为了有效地从如此庞大的数据集中学习视觉表示,通过在保持其纵横比的同时缩小较大图像,将最大输入分辨率限制为$2 2 4 \times 2 2 4$像素。在自回归微调阶段,将视觉编码器连接到一个4B MoE LLM,并使用下一词元预测目标,在包含图像标题、替代文本、图表和OCR的数据集上训练2360亿个词元。此阶段旨在增强编码器建模细粒度视觉特征的能力。因此,通过按比例缩放越界图像,将输入分辨率限制在$5 4 4 \times 5 4 4$和$1 3 4 4 \times 1 3 4 4$像素之间。此阶段结束后,丢弃LLM并仅保留优化的视觉编码器用于后续的预训练管线,其中保持相同的输入分辨率策略。

实验结果

4.3 预训练评估

预训练评估基准:比较了DeepSeek-V4.1-Flash-Base与其前代模型DeepSeek-V4-Flash-Base和DeepSeek-V4-Pro-Base。涵盖五个关键维度的基准:世界知识、语言理解与推理、编码与数学、长上下文和多模态能力。
世界知识基准包括AGIEval【97】、MMLU-Pro【75】、C-Eval【33】、MultiLoKo【34】、SimpleQAVerified【31】和SuperGPQA【25】。
语言理解与推理基准包括BigBench Hard (BBH)【68】、BigBench Extra Hard (BBEH)【37】、DROP【26】和HellaSwag【88】。
编码和数学基准包括BigCodeBench【98】、HumanEval【10】、GSM8K【13】、MATH【32】和MGSM【64】。
长上下文基准包括LongBench-V2【5】。
多模态基准包括MMMU-Pro【86】、DocVQA【49】、CVBench【72】和RefCOCO/RefCOCO$^+$ /RefCOCO-$^\mathrm { g }$【38】【51】【45】【84】。

预训练评估结果:在表1中详细比较了各基础模型。与DeepSeek-V4-Flash-Base和DeepSeek-V4-Pro-Base相比,最新基础模型显示出令人信服的效率提升。DeepSeek-V4.1-Flash激活的参数数量远少于DeepSeek-V4-Pro-Base,且占用大幅缩减的KV缓存,但其性能完全可与前代媲美。它在多模态语料上训练后,实现了与DeepSeek-V4-Pro相当的世界知识和理解能力。在推理和编码基准上表现出一致的进步。

表1 | DeepSeek-V4-Flash-Base、DeepSeek-V4-Pro-Base和DeepSeek-V4.1-Flash-Base之间的比较。所有模型均在内部框架中评估并共享相同设置。差距不超过0.3的分数被视为处于同一水平。

Benchmark (Metric) # Shots DeepSeek-V4-Flash Base DeepSeek-V4-Pro Base DeepSeek-V4.1-Flash Base
Architecture MoE MoE MoE
#Activated Params 13B 49B 8B/16B
# Backbone Params - 284B 1.6T 552B
World Knowl. AGIEval (EM) 3-5-shot 83.9 84.4 83.4
MMLU-Pro (EM) 5-shot 68.3 73.5 74.1
C-Eval (EM) 5-shot 92.1 93.1 92.1
MultiLoKo (LLM-Judge) 5-shot 42.6 50.9 45.5
Simple-QA verified (EM) 25-shot 30.1 55.2 42.3
SuperGPQA (EM) 5-shot 46.5 53.9 53.1
Lang. & Reas. BBH (EM) 3-shot 86.9 87.5 86.1
DROP (F1) 3-shot 87.0 89.1 89.7
BBEH (EM) 3-shot 25.6 29.7 27.9
HellaSwag (EM) 0-shot 85.7 88.0 87.2
Code & Math BigCodeBench (Pass@1) 3-shot 56.8 59.2 60.6
HumanEval (Pass@1) 0-shot 69.5 76.8 79.4
GSM8K (EM) 8-shot 90.8 92.6 93.0
MATH (EM) 4-shot 57.4 64.5 61.1
MGSM (EM) 8-shot 85.7 84.4 80.2
Long Context LongBench-V2 (EM) 1-shot 44.7 51.5 45.2
Multimodal MMMU-Pro (EM) 4-shot - - 56.5
CVBench (EM) 4-shot - - 77.9
DocVQA (LLM-Judge) 4-shot - - 95.6
RefCOCO-avg (Acc@0.5) 0-shot - - 86.0
图6 | DeepSeek-V4-Flash-Base、DeepSeek-V4-Pro-Base和DeepSeek-V4.1-Flash-Base在保留评估集上的每字节位数(BPB)比较。DeepSeek-V4.1-Flash-Base在所有任务上均达到最低BPB,并展示出作为强大基础模型的更大潜力。
图6 | DeepSeek-V4-Flash-Base、DeepSeek-V4-Pro-Base和DeepSeek-V4.1-Flash-Base在保留评估集上的每字节位数(BPB)比较。DeepSeek-V4.1-Flash-Base在所有任务上均达到最低BPB,并展示出作为强大基础模型的更大潜力。

5.3 后训练评估

后训练评估设置:后训练评估主要集中在推理和代理能力上。对于推理,在GPQA Diamond【57】、Humanity’s Last Exam【55】、Codeforces和MathArena Apex【21】上进行评估。对于代理能力,评估四个类别:编码代理(Terminal-Bench 2.1/3.0/4.0【50】【48】【47】、DeepSWE v1.1【15】、ProgramBench【83】、NL2Repo-Bench【23】);网络安全(SEC-Bench Pro【40】、CyberGym【77】、ExploitGym【76】);通用代理(AutomationBench【63】、Agents’ Last Exam【66】);视觉代理(Chartography【28】、BabyVision【9】、ZeroBench【58】)。为减轻编码代理评估中的奖励黑客行为,限制了互联网访问并剥离了环境中的Git历史记录。

后训练评估结果:如表3所示,DeepSeek-V4.1-Flash在推理和代理基准上较DeepSeek-V4-Flash展现出显著的性能升级。在核心推理任务中,达到了3471的Codeforces评分,超越了V4-Flash和V4-Pro。在代理任务中,DeepSWE v1.1达到$74.2\%$通过率,Terminal-Bench 2.1达到$90.6\%$。在网络安全任务上,确立了开源模型的新SOTA。在视觉代理任务中,展示了强大的图表分析和视觉推理能力。

表3 | DeepSeek-V4.1-Flash与闭源/开源模型的比较。最佳结果以粗体显示;次佳结果带下划线。

Benchmark (Metric) Opus-5 GPT-5.6 Sol K3 GLM-5.3 DS-V4-Pro DS-V4-Flash DS-V4.1-Flash
GPQA Diamond (Pass@1) 93.4 94.1 92.9 88.1 92.4 89.9 90.9
HLE (Pass@1) 56.3 44.5 43.5 42.0 42.7 37.8 36.8 (39.1$^\dagger$)
Codeforces (Rating) - - - - 3348 3289 3471
MathArena Apex (Pass@1) - - 65.6 - 65.3 58.6 65.6
Terminal-Bench 2.1 (Pass@1) 89.1 88.8 88.3 88.2 87.9 82.7 90.6
Terminal-Bench 3.0 (Pass@1) 43.3 34.4 17.7 28.3 - 11.8 30.0
Terminal-Bench 4.0 (Pass@1) 51.8 39.9 12.6 37.9 - 12.4 31.2
DeepSWE v1.1 (Resolved) 74.0 73.0 67.5 66.9 62.7 54.4 74.2
ProgramBench (Almost@1) 37.0 23.0 17.5 19.0 - 15.5 20.3
NL2Repo-Bench (Score) 75.3 56.8 58.0 58.0 - 61.5 65.4
SEC-Bench Pro (Pass@1) - 84.5 80.0 84.5 - 83.3 88.1
ExploitGym (Pass@1) - 74.3 - - - 56.4 62.8
CyberGym (Pass@1) 22.1 33.7 - 15.0 - 5.4 15.3
Automation-Bench (Pass@1) 63.6 50.3 59.8 62.5 - 60.0 63.9
Agents' Last Exam (Pass@1) 28.6 26.7 46.7 48.8 - 43.2 54.8
Chartography w/ tools (Pass@1) 84.0 79.9 68.1 28.5 - 25.7 31.8
BabyVision w/ tools (Pass@1) 94.1 88.9 85.7 - - - 78.9
ZeroBench-main w/ tools (Pass@5) 52.0 53.0 41.0 - - - 49.0

不同推理努力程度的性能:如图9所示,随着推理努力(Reasoning Effort)的增加,模型在推理密集型基准和软件工程任务上的输出长度和准确率稳定增加。在25到100之间提高努力度,以牺牲约$2.5\times$的输出词元为代价,大幅提升了准确率。收益前置:在60-80范围内已经恢复了最大设置下的大部分准确度。

图9 | 性能和输出长度作为推理努力程度的函数。每个面板绘制了Pass@1(实线,左轴)和每个响应的平均输出词元数(虚线,右轴)随推理努力值从25变化到100的情况。
图9 | 性能和输出长度作为推理努力程度的函数。每个面板绘制了Pass@1(实线,左轴)和每个响应的平均输出词元数(虚线,右轴)随推理努力值从25变化到100的情况。

跨代理支架的性能:评估涵盖了来自六个支架家族的八种配置:Claude Code【4】、Codex【54】、OpenCode【3】、Pi【87】、mini-SWE【82】和DeepSeek Harness (DSH)【19】。如表4和表5所示,模型的代理能力在具有不同提示和工具接口的支架家族中迁移良好。

表4 | 在最大推理努力下跨代理支架的性能。

Benchmark (Metric) Claude Code Codex OpenCode Pi mini-SWE DeepSeek Harness (Minimal) DeepSeek Harness (Standard) DeepSeek Harness (PTC)
DeepSWE v1.1 (Resolved) 69.8 65.6 65.5 66.2 74.2 72.6 70.5 67.6
Terminal-Bench v2.1 (Pass@1) 88.0 84.1 85.0 86.1 90.3 90.6 85.8 85.8

表5 | 在最大推理努力下跨Claude Code版本的性能。

Benchmark (Metric) v2.1.105 v2.1.238 v2.1.251 v2.1.259 Average
DeepSWE v1.1 (Resolved) 68.4 68.7 69.8 68.6 68.9
Terminal-Bench v2.1 (Pass@1) 87.3 88.4 88.0 87.6 87.8

多智能体协作性能:为了探索复杂任务上的多智能体协作,使用DeepSeek Harness的Agent Team模式进行了初步实验。如图10所示,在ProgramBench【83】和FrontierSWE v2【39】上,多智能体配置在每个截止时间点都优于其单智能体对应配置。

图10 | ProgramBench和FrontierSWE v2上单智能体和多智能体配置的测试时计算扩展,作为每次推出(rollout)挂钟截止时间的函数。
图10 | ProgramBench和FrontierSWE v2上单智能体和多智能体配置的测试时计算扩展,作为每次推出(rollout)挂钟截止时间的函数。

结论

在本文中,引入了DeepSeek-V4.1-Flash,这是一个支持高达100万词元上下文的多模态MoE模型。通过对模型架构、缓存精度和部署策略的联合优化,突破了KV缓存压缩的极限。其CED架构在预填充期间每个词元仅激活80亿参数,提升了输入密集型代理工作负载的成本效率。在同等序列长度下,CSA2中的跨层KV缓存复用和FP4 KV缓存将其全局KV缓存占用降低至每个词元890字节,约为DeepSeek-V4-Flash的1/4。SWA有限重放进一步将其持久化KV缓存占用减少至约1/8。尽管参数规模远小于当前开源模型,但DeepSeek-V4.1在关键基准上实现了可比甚至更优的性能。

尽管对若干架构组件进行了精简,但新引入的架构变化也产生了尚未完全表征的鲁棒性边界。潜在的选择错误和SWA重放中的近似状态重建仍可能在未测试的边界情况下导致能力下降。随着AI模型性能的提升,标准评估基准已趋于饱和,模型在最复杂、高难度的推理和边缘情况下的前沿能力评估仍需不断更新。未来将以DeepSeek-V4.1-Flash为新起点,继续探索模型能力的极限,并系统解决大规模数据合成和强化学习扩展中的关键挑战。

附录

附录B 评估细节

B.1 支架配置:所有支架均在Linux任务容器中运行。评估使用了各支架的本机工具接口和系统提示,未添加实验性系统提示。Claude Code测试了四个版本;Codex使用标准应用服务器模式;OpenCode使用构建代理;Pi使用RPC模式及搜索扩展;mini-SWE使用单bash工具;DeepSeek Harness使用了Minimal、Standard和PTC模式。

B.2 跨支架的推理努力:如图11所示,在所有六个面板中,提高推理努力设置一致延长了轨迹:每个轨迹的平均输出词元随每个支架-基准测试对中的努力单调增长。Pass@1仅松散地跟踪这种增长,整体有改善但并非单调的。不同支架的校准也有所不同。

图11 | 推理努力程度一致地驱动轨迹长度,但在不同编码支架中与准确率的相关性较弱。每个面板绘制了Pass@1(实线,左轴)和每个轨迹的平均输出词元数(虚线,右轴)随推理努力设置的变化。
图11 | 推理努力程度一致地驱动轨迹长度,但在不同编码支架中与准确率的相关性较弱。每个面板绘制了Pass@1(实线,左轴)和每个轨迹的平均输出词元数(虚线,右轴)随推理努力设置的变化。

B.3 跨推理努力的推理基准详细结果:如图12所示,推理努力设置对输出长度和准确率提供了平滑、表现良好的控制,在跨越竞赛数学、科学问答、开放域知识和代码的所有八个基准测试中表现一致。没有出现失控增长或异常,因此可以提前估计任何层级的计算成本。准确率遵循相同的平滑轨迹。

图12 | 八个推理密集型基准测试中,性能和输出长度作为推理努力程度的函数。每个面板绘制了Pass@1(实线,左轴)和每个响应的平均输出词元数(虚线,右轴)随推理努力值从25变化到100的情况。
图12 | 八个推理密集型基准测试中,性能和输出长度作为推理努力程度的函数。每个面板绘制了Pass@1(实线,左轴)和每个响应的平均输出词元数(虚线,右轴)随推理努力值从25变化到100的情况。

附录C 推理努力控制中的指数词元惩罚

惩罚函数的定义:对于在努力水平$b$下生成的具有$\ell$个推理词元的轨迹,长度扣除为:
$r ^ { \mathrm { l e n } } ( \ell , b ) = - \operatorname* { m i n } \left\{ C _ { \mathrm { m a x } } , k ( b ) \frac { \ell } { L _ { \mathrm { n o r m } } } \right\} ,$
其中$L _ { \mathrm { n o r m } }$是参考长度,$C _ { \mathrm { m a x } }$限制了扣除。

指数惩罚系数的定义:依赖于努力程度的词元惩罚系数为:
$k ( b ) = k _ { 0 } \exp \left( - \frac { b - b _ { \mathrm { m i n } } } { \tau } \right) ,$
其中$k _ { 0 }$是最低努力水平$b _ { \mathrm { m i n } }$下的惩罚系数,$\tau$控制惩罚衰减的速率。

最优推理长度的一阶条件推导:为了说明这一选择,考虑一个固定问题$x$。令$p _ { x } ( \ell )$表示在$\ell$个推理词元后解决该问题的概率。在未限制区域,通过下式定义偏好的推理长度$\ell _ { x } ^ { * } ( b )$:
$\ell _ { x } ^ { * } ( b ) \in \arg \operatorname* { m a x } _ { \ell \geqslant 0 } \left[ p _ { x } ( \ell ) - k ( b ) \frac { \ell } { L _ { \mathrm { n o r m } } } \right] .$
对于内部最优解,一阶条件为:
$p _ { x } ^ { \prime } \big ( \ell _ { x } ^ { * } ( b ) \big ) = \frac { k ( b ) } { L _ { \mathrm { n o r m } } } ,$
其中$p _ { x } ^ { \prime } ( \ell ) = d p _ { x } ( \ell ) / d \ell$是额外推理带来的解决概率的边际改善。

边际收益的指数衰减假设:假设这种边际收益在相关运行范围内近似呈指数衰减:
$p _ { x } ^ { \prime } ( \ell ) \approx a _ { x } \exp \left( - \frac { \ell } { s _ { x } } \right) ,$
其中$a _ { x } > 0$是依赖于实例的尺度,$s _ { x } > 0$决定了衰减率。

请求努力与偏好推理长度的仿射关系:将上述公式代入一阶条件得到:
$\ell _ { x } ^ { \ast } ( b ) \approx C _ { x } - s _ { x } \log k _ { 0 } + \frac { s _ { x } } { \tau } ( b - b _ { \mathrm { m i n } } ) ,$
其中$C _ { x } = s _ { x } \log ( a _ { x } L _ { \mathrm { n o r m } } )$独立于$b$。因此,在该局部模型下,指数惩罚调度在请求的努力和偏好的推理长度之间产生了简单的一阶仿射趋势。

预测长度差与参数控制作用:对于两个努力水平$b _ { 2 } > b _ { 1 }$,相应的预测长度差为:
$\ell _ { x } ^ { \ast } ( b _ { 2 } ) - \ell _ { x } ^ { \ast } ( b _ { 1 } ) \approx \frac { s _ { x } } { \tau } ( b _ { 2 } - b _ { 1 } ) .$
因此,$k _ { 0 }$主要控制对较短推理的整体压力,而$\tau$控制对努力程度的预测敏感性。

局部奖励级近似的局限性:该推导是一种局部奖励级近似,并非声称测量的平均长度必须是线性的或逐点单调的。实际实现的行为可能会有偏差,因为努力指令可以直接改变推理策略,生成是随机的,代理轨迹包含不同数量的轮次,且子组奖励归一化改变了优化强度。分析还假设了一个内部解,此时惩罚上限未激活。一旦达到上限,边际词元惩罚变为零,必须单独考虑受限区域。