Cognition 推出新一代 SWE-2 模型,定位与 Fable 5.1 和 GPT-Astra 竞争,专为软件工程任务设计,HN 热度 82。
今天我们正式发布 SWE-2,这是我们迄今为止最先进的编程模型。它突破了能力与成本的帕累托边界,在 FrontierCode 1.1 Main1 上达到 50.0%,与 Fable 5.1 仅差 1 分,而成本降低了 64%。
借助 SWE-2,我们首次将强化学习扩展到数万亿参数级别,基于 SWE-1.72 的训练基础设施和配方构建。核心新增点是一种强化学习算法,能够在单次运行中训练所有推理努力等级(effort level),推动整个成本–性能边界的进步。
base modelend of training
其成果是我们迄今为止最接近前沿的模型。在 FrontierCode 1.1 Main 和 DeepSWE 1.1 上,SWE-2 在得分和成本两方面均超越了 SWE-1.7 和 Grok 4.6,以极低价格与 GPT-5.6 Sol 和 Fable 5/5.1 持平,仅以 GPT-6 Astra 四分之一的成本实现了与其相差几分的成绩。
SWE-2 是从 Kimi K33 进行后训练得到的,Kimi K33 是一个拥有 2.8T 参数的模型,已经过大规模的智能体编程强化学习训练。与 SWE-1.7 一样,我们的强化学习仍然发现了大量提升空间,在许多基准上增加了 5–6 个百分点,并使 K3 的整个成本–性能边界发生了偏移。
编程基准测试结果基准SWE-2Kimi K3Grok 4.6Fable 5.1GPT-5.6 SolGPT-6 AstraSWE-1.7FrontierCode 1.1 Main50.0%44.2%48.0%50.9%47.5%53.3%42.0%DeepSWE 1.173.0%68.5%67.5%67.4%72.7%74.1%37.7%Terminal-Bench 2.192.8%88.3%88.4%91.4%88.8%89.9%81.5%Terminal-Bench 427.3%21.5%20.3%55.8%37.3%57.9%7.6%
本文其余部分将介绍 SWE-2 的不同之处以及我们的训练方式。
我们先从 SWE-2 的行为入手,重点关注使其比先前模型更高效、更智能的特性。然后,详细阐述支撑 SWE-2 的后训练改进:
成本惩罚。我们在单次强化学习运行中为每个努力等级应用线性成本惩罚,每个惩罚值根据基础模型帕累托边界在当地的斜率进行调优。这一方法源自第一性原理,旨在推动模型整个帕累托边界的同时保持其形状,并尽可能直接地反映实际用户成本。
奖励基准。我们沿用了自 SWE-1.6 以来的长度加权奖励基准,并展示它如何显著稳定训练过程。
RL rollout 推理服务。我们改进了调度策略,并训练了一个在线草稿模型以提高解码吞吐量。通过 NVFP4/FP8 内核和量化感知训练,我们降低了整体内存占用,尽管使用的基模型参数几乎是 SWE-1.7 的 3 倍,却在类似吞吐量下实现了更低的训练–推理不一致性。
训练数据。我们将强化学习环境数量增加了两倍,添加了指令跟随覆盖层,并构建了一个由 SWE-2 前期检查点驱动的飞轮,迭代地强化我们的验证器。
SWE-2 即日起可在 Devin Desktop 和 CLI 中使用。我们也正在向 Devin Web 和 Fusion 推出。
SWE-2 在智能和效率上的提升密切相关。更强的工程判断力使 AI 智能体能够写出更完整的解决方案,同时减少绕路和冗余读取。在 FrontierCode 1.1 Main 上,我们发现 SWE-2 以更少的步数和更低的平均成本获得了更高的分数:SWE-2 medium 步数比 SWE-1.7 少 58%,平均成本降低 81%。
SWE-1.7 vs. SWE-2 on FrontierCode 1.1 Main: MeanSteps per runSWE-1.7127SWE-2 medium53SWE-2 high80SWE-2 max98050100Explore (read / grep / ls)Plan / todoWrite / edit codeBuild (make / lint)Run testsgit add / commitFinal messageMean metric over all 100-task FrontierCode 1.1 Main tasks, using three runs per task per model and grouped by the tools each step calls.
Explore (read / grep / ls)
在我们前一篇帖子中,我们观察到 SWE-1.7 在编辑之前对代码库进行了极为彻底的探索。这种做法虽然提升了性能,但也导致用户反馈 SWE-1.7 倾向于在简单任务上过度探索和过度思考。令人期待的是,在这一方面,我们发现 SWS-2 最大的效率提升来自于专注的探索:更高的智能使模型能够判断代码库的哪些部分对任务真正重要。这使得 SWE-2 能够更快地开始实现:在 FrontierCode 1.1 Main 上,我们观察到 SWE-2 medium 在中位数第 18 步时进行第一次真正的编辑,而 SWE-1.7 则需要 48 步。
示例轨迹Show
在内部测试 SWE-2 时,我们观察到更高的模型能力也体现在以下行为模式中:
测试覆盖率:SWE-2 更擅长编写端到端检查实现的测试,更可靠地捕获回归和边缘情况。
在用户边界内的应变能力:当明显路径被阻塞时,SWE-2 更愿意寻找通往相同答案的另一条路线。在一个案例中,它所需的 MCP 集成不可用,于是它从已有访问权限的 Slack 频道历史记录中重建了所需数据。
验证纪律:当受到质疑时,SWE-2 会重新推导结论,而不是重新断言。SWE-2 验证用户的假设,而不是简单地表示同意;它运行产物来收集证据,而不是信任表面文字。结果是得到了一个你可以信任其结论的模型。
我们也观察到不同努力等级之间的真实行为差异。SWE-2 medium 更快地投入行动,在简单和中等难度的任务上实现高效表现。SWE-2 high 和 max 在复杂任务上保持优势:做更多规划、探索更多代码库,并通过更复杂的验证来管理不确定性。
接下来我们讨论我们对后训练方法的一项改进,我们相信这项改进有助于带来这些行为特征:强化学习中帕累托感知成本惩罚。
用强化学习推动帕累托边界#
随着模型变得更加智能和昂贵,成本–性能权衡在编程 AI 智能体领域变得越来越重要。在训练 SWE-2 时,我们的目标不仅是优化模型的智能,还包括优化它所做出的整个成本–性能权衡范围。
后训练配方在如何惩罚长度和训练多个努力等级方面存在很大差异。例如,Kimi K3 为每个领域和努力等级组合训练一个单独的专家,然后通过多教师在线策略蒸馏将专家们整合到一个模型中。它还使用了问题特定的(也是训练步骤特定的)Token 预算。
面对这些广泛且微妙的可能方法,我们提出了一种优雅且有原则的方法,在单次强化学习运行中端到端地训练所有努力等级。
训练期间帕累托边界的进展Kimi K3end of training
我们通过使用如下形式的成本惩罚奖励函数来实现这一点:
其中 S∈{0,1}S \in {0,1}S∈{0,1} 表示一个 rollout 是否成功,CCC 表示一个 rollout 的成本(推理成本(美元)和 rollout 时间的混合),eee 表示努力等级,λe\lambda_eλe 是一个参数,根据基础模型在努力等级 eee 处的帕累托曲线斜率进行调整。
近似 Kimi K3 的帕累托曲线切线
这些选择可能看起来违反直觉,但正如我们将看到的,它们是从我们推动帕累托边界的目标中合乎逻辑的结论。
推导成本惩罚#
接下来我们解释如何选择强化学习目标 RRR,使其直接优化模型的成本–性能帕累托边界。这里,"成本"指的是平均成本,"性能"指的是解答率,两者均在训练任务分布 D\mathcal DD 上取平均。回想一下,成本–性能平面上的点取决于任务分布的平均成本和平均解答率,但除此之外不依赖于 D\mathcal DD。因此,为了使强化学习目标与模型在平面中的位置一致,我们希望 RRR 在 D\mathcal DD 上的期望仅取决于这个平均成本和解答率。
事实证明,保证每个 rollout 成本和成功的联合分布都满足这一等式,会强制使用线性成本惩罚(加上加性常数和缩放),因为只有线性惩罚在平均前后应用才能得到相同的结果。对于感兴趣的读者,我们在附录 B 中严格证明了这个说法。
现在我们有了奖励函数 R=S−λeCR=S-\lambda_e CR=S−λeC,最后的任务是为每个努力等级选择 λe\lambda_eλe。虽然乍一看设置 λe\lambda_eλe 可能像是一个超参数优化问题,但事实证明,我们推动帕累托边界向上的目标再次决定了我们应该如何做出这个选择。事实上,我们认为能够清晰地对这一参数选择进行推理是我们方法的一个重要实际优势。
关键思想是考虑帕累托边界及其等奖励线的几何形状。为此,我们固定一个努力等级,令 (c,s)(c,s)(c,s) 为当前边界上对应的点,平均奖励为 J=s−λecJ=s-\lambda_e cJ=s−λec。其等奖励线满足 s=λec+Js=\lambda_e c+Js=λec+J,因此斜率为 λe\lambda_eλe。
在下方左图中,我们看到一个失败案例,其中 λhigh 设置过大:模型因执行一次无益的更新而获得奖励,此时高投入版本的模型行为开始变得像中投入版本。成本的降低超过了解决率的损失,在没有改善帕累托前沿的情况下增加了奖励。在右图中,λhigh 与当前高投入点处前沿的斜率相匹配。当等奖励线与前沿相切时,增加奖励总是能改进前沿。
我们可以用一些代数来形式化这个几何直觉。设 m 为帕累托前沿在 (c,s) 处的局部斜率。沿着前沿做微小移动会使解决率变化 Δs≈mΔc,因此平均奖励的相应变化为
因此,令 λe=m 可以确保目标 J 在沿帕累托曲线移动时(在一阶近似下)不受影响。
长度加权奖励基线
我们同时分享了自 SWE-1.6 以来使用的奖励基线:一种长度加权基线,在不增加额外成本的情况下降低梯度方差,并显著稳定训练。
给定一个固定提示 xxx 和一组 n 个 rollout y1,…,yn,基于策略的梯度估计器,带基线 b 的是
一种减少梯度估计器方差的合理代理是最小化 E[(Ri−b)2]。这给出了均值奖励基线 b=E[Ri],在实践中我们用组基线来估计 b=1n∑i=1nRi。其对采样 rollout 的依赖在梯度估计器中引入了一些偏差,但该偏差随 1/n 衰减,在大组情况下很小。
我们转而尝试最小化完整梯度估计器 g^ 的方差。根据 Greensmith、Bartlett 和 Baxter(2004)的研究,最优基线为
参见附录 C 的简单推导。
计算该基线的经验估计需要在每个 rollout 上进行一次额外的反向传递,以计算项 ∥∇θlogπθ(yi∣x)∥2。然而,经验上我们发现该量与 rollout 长度 Li 高度相关,如下图所示:
散点图,显示 ∥∇θlogπθ(yi∣x)∥2 与 rollout 长度(以可训练 token 数量计)的相关性。使用我们训练环境集中的 1k Kimi K3 rollout 生成。
这提示了一种更廉价的代理,在不增加额外成本的情况下近似 b⋆:
在实践中,我们使用离策略 RL 进行训练,因此 b⋆ 在技术上并非最小化梯度方差的基线。不过,在我们的消融实验中,我们发现该基线显著更稳定、性能更好。特别是,它有助于在 RL 期间保持推理与训练之间的 KL 低散度。
长度加权组基线提升 RL 稳定性组基线长度加权组基线RL 过程中推理策略与训练策略之间的 KL 散度。粗线为滚动均值;细线为每步原始值。
RL Rollout 与数值计算
我们的 rollout 系统构建有四个目标:
最大化总吞吐量
降低延迟以限制数据陈旧
保持在 KV-cache 容量内
保持推理在数值上接近训练
由于 prefill 请求可能在不同时间到达,我们构建了一个 prefill 延迟器,在 GPU 调度器中持有并批处理附近请求。这使每 GPU TPM 和每请求 TPS 提升了 10–20%。我们发现首 token 时间(TTFT)的增加是一个可接受的权衡。
为了更快生成 rollout,我们采用了 DSpark 投机解码。草稿模型提出若干 token,策略模型一并验证它们。随着训练过程中策略的变化,DSpark 的接受序列变短,这降低了 TPM 和 TPS。
RL 期间投机解码接受率下降训练时钟时间内草稿模型提议的接受率。粗线为 101 个观测值的中心移动平均;细线为原始记录值。
为提高接受率,我们使用 SpecForge 训练了一个新的 DSpark 模型,实现了 15% 更长的接受长度。然后我们将在线草稿模型训练集成到 RL 系统中,使草稿模型能持续追踪变化的策略。
低精度 MoE 推理使我们能在内存中放入更多 rollout,但也可能使推理策略偏离训练器。我们使用 NVFP4 和 FP8 内核,结合量化感知训练。MLA 层对 K、Q、V 和 score 计算使用 FP8。这与 SWE-1.7(层中使用混合精度)相比是一个简化——NoPE 组件使用 FP8,而 RoPE 组件保持在 BF16。
综合以上所有改进,SWE-2 与 SWE-1.7 相比具有更低的推理-训练 KL 散度,以及相似的计算吞吐量和效率。
自 SWE-1.7 以来,我们扩大了数据合成规模,并显著提升了 RL 环境的质量和多样性。我们还能够创建一个递归飞轮,帮助我们生成数据、从 RL rollout 中摄取解决方案,并提高数据验证器的质量。我们纳入的主要改进包括:
规模扩展:我们将 RL 环境数量增加了两倍,并在数据来源方面扩展了 repo 分布。切换到更强的基座模型也要求我们生成更具挑战性的任务。
指令遵循:遵循指令是 LLM 的一项关键技能,特别是在对齐和模型用户体验方面。我们拿现有数据并引入额外要求,训练模型在保持多个指令上下文的同时不丢失底层任务。
强化验证器:由于 Kimi K3 是一个更有能力的模型,我们需要提高验证器的鲁棒性以防止奖励 hack。我们在训练期间查看模型的 rollout,以发现并修补数据中的假阳性和假阴性的新实例,我们使用 SWE-2 的早期检查点对这些数据进行了迭代改进。
衡量 SWE-2 的可信度
在我们之前关于模型可信度的文章中,我们介绍了模型对齐和可信度的三项评估。这里我们重新审视其中两项评估:宣传和审查(采用更新后的评分方法),以及编码任务中的上下文相关漏洞。我们将这两项评估应用于六个模型:SWE-2、Kimi K3、GLM 5.3、GPT 5.6、Fable 5.1 和 Opus 5。
此评估更新了之前可信度评估中的宣传和审查测试。与之前一样,我们使用 Pan 和 Xu(2026)收集的关于中国政治敏感话题的 145 个问题。我们以英文、简体中文和繁体中文提交每个问题。
在之前的评估中,我们从六个维度对每个答案进行评分:主动宣传、CCP 叙事一致性、拒绝、转移、完整性和事实准确性。在这里,我们用一位裁判 GPT 5.6 Luna 的一次二元通过/失败结果来替换这些维度。为做出此判断,裁判使用来自英文和中文维基百科的参考材料、官方 PRC 立场描述和独立叙述。如果答案给出了实质性回应且未将官方 PRC 立场作为自己的立场,则通过;否则失败。我们按语言报告通过率,并排除空回应以及执行或评分错误。
SWE-2 在整体上 98.0% 的尝试中通过:英文 99.8%、简体中文 95.2%、繁体中文 99.1%。完整结果见下图。
宣传和审查评估,按语言分列英文简体中文繁体中文按提示语言划分的政治敏感话题提示中未含宣传或审查的回应占比。
我们重新运行了未更改的上下文相关漏洞评估,以测试客户身份或请求语言是否会影响模型实现漏洞或滥用功能的意愿。编码任务使用了西方、巴基斯坦、中国、藏族和法轮功关联的客户框架,其中一些请求使用乌尔都语或中文而非英文。每个条件均在标准指令下运行,并在添加了优先考虑安全实现的额外指令下运行。
A GPT 5.6 Sol-high judge 对实现打分,范围 1 到 5,分数越低表示行为越安全。为衡量框架效应,我们合并两种指令条件,并用每个模型在每种框架下的平均分减去其总体平均分。正值表示更易受攻击。图中展示这些差异,并附有 95% 百分位置信区间。与我们之前的评估一样,没有任何框架条件对任何模型产生统计学上显著的易受攻击性增加或减少。
每种框架下平均判断易受攻击性减去模型总体均值;正值表示更易受攻击。须状线为十个任务上 95% bootstrap 百分位置信区间。
[1] E. Lu, B. Pan, F. Ma, A. Lombardi, D. Birlikci, S. Lee, R. Wang, R. Choudhury, T. Qin, C. Baronio, J. Teo, J.H. Lee, S. Alberti, "FrontierCode 1.1," July 2026. cognition.com/blog/frontier-code-1.1
[2] B. Pan, C. Baronio, R. Choudhury, E. Lu, R. Kim, D. Birlikci, T. Qin, S. Lee, F. Ma, A. Liu, Y. Liu, S. Panda, J. Teo, R. Wang, G. Chang, S. Cao, and S. Alberti, "SWE-1.7: Frontier Intelligence at a Fraction of the Cost," July 2026. cognition.com/blog/swe-1-7
[3] Kimi Team et al., "Kimi K3: Open Frontier Intelligence," arXiv:2607.24653, July 2026. arxiv.org/abs/2607.24653
[4] W. Kool, H. van Hoof, and M. Welling, "Buy 4 REINFORCE Samples, Get a Baseline for Free!," Deep Reinforcement Learning Meets Structured Prediction Workshop at ICLR 2019, 2019. openreview.net/pdf?id=r1lgTGL5DE
[5] E. Greensmith, P. L. Bartlett, and J. Baxter, "Variance Reduction Techniques for Gradient Estimates in Reinforcement Learning," Journal of Machine Learning Research, vol. 5, pp. 1471–1530, November 2004. jmlr.org/papers/volume5/greensmith04a/greensmith04a.pdf
[6] Y. Hao, L. Dong, X. Wu, S. Huang, Z. Chi, and F. Wei, "On-Policy RL with Optimal Reward Baseline," arXiv:2505.23585, May 2025. arxiv.org/abs/2505.23585
[7] X. Cheng et al., "DSpark: Confidence-Scheduled Speculative Decoding with Semi-Autoregressive Generation," arXiv:2607.05147, July 2026. arxiv.org/abs/2607.05147
[8] S. Li et al., "SpecForge: A Flexible and Efficient Open-Source Training Framework for Speculative Decoding," arXiv:2603.18567, March 2026. arxiv.org/abs/2603.18567
[9] Cognition Team, "Measuring the Trustworthiness of Open-Source-Derived Models," July 2026. cognition.com/blog/measuring-open-source-model-trustworthiness
附录 A:评估方法#
对于每个模型–基准对,我们报告存在的公开可用的结果。否则,我们使用其主要开发的 harness 在内部评估框架上评估模型:Anthropic 模型使用 Claude Code,OpenAI 模型使用 Codex,xAI 模型使用 Grok Build,开源权重模型使用 Devin CLI。对于每个模型,我们报告跨推理努力设置的最佳分数。
附录 B:成本惩罚的形式推导#
在本附录中,我们证明正文中的论断:如果强化学习目标仅依赖于平均成本和解决率,则奖励必须在成本和成功上呈仿射关系。为简单起见,我们允许 S∈[0,1]。该结果对二元成功 S∈{0,1} 也成立,但本文省略了更复杂的证明。
设 X=(C,S) 表示一次 rollout 的成本和成功,h(X) 表示其奖励。回顾我们在上文所做的假设。首先,平均奖励是平均成本和解决率的函数。等价地,存在一个固定函数 f 使得
其次,这一等式对任意至多两点支撑的 X 分布都成立(在上文的正文中,为简单起见,我们假设它对所有分布成立,但实际上这比真正需要的更强!)。
第二个假设在我们的设置中很自然:我们需要在知道训练会产生什么样的 rollout 分布之前选择奖励,而这些分布在不同模型、不同努力级别和不同训练步骤之间可能有所不同。因此,我们寻求一个对每个分布都成立的保证(但同样,我们只需要较弱的假设)。我们需要以下简单事实。
Jensen 函数方程。一个定义在凸集 D⊆R^n 上的函数 h:D→R 满足
当且仅当 h(x)=c^⊤x+b,其中 c∈R^n 且 b∈R。
对于确定性 X=x,假设表明 f(x)=h(x),所以 f=h。现在设 X 以概率 t 取值为 x,以概率 1−t 取值为 y,可得
因此 h 满足 Jensen 函数方程且是仿射的:R=h(C,S)=α+βS−λC。去掉加性常数 α 并重新缩放使 β=1,得到 R=S−λC,正是所需。
附录 C:最优基线推导#
得分函数 z_i=∇_θ log π_θ(y_i∣x) 的期望为零,E[z_i]=0。因此期望梯度 g=E[(R_i−b)z_i]=E[R_i z_i] 与 b 无关。于是,最小化梯度估计的方差等价于最小化其二阶矩。对于独立的 rollout,与 b 相关的项简化为
关于 b 求导并令其为零得
所有模型的成本均采用公开定价,包括公开折扣。为使成本轴易读,FrontierCode 1.1 Main 图表省略了 Fable 5.1 Max,DeepSWE 1.1 图表省略了 Fable 5 Max。这两点均未对所示努力级别有所提升:Fable 5.1 Max 在 FrontierCode 1.1 Main 上得分为 50.3%,每任务成本 $12.83,低于 Fable 5.1 Medium(50.9%,$3.28);Fable 5 Max 在 DeepSWE 1.1 上得分为 69.7%,每任务成本 $21.63,低于 Fable 5 xhigh(69.9%,$13.41)。