Introductie van SWE-2: Het Verleggen van de Pareto-front
Vandaag introduceren we SWE-2, ons meest geavanceerde coderingsmodel tot nu toe. Het verlegt de Pareto-front van capaciteit en kosten, waarbij het een score van 50,0% behaalt op FrontierCode 1.1 Main. Hiermee komt het model binnen één punt van Fable 5.1, terwijl het 64% goedkoper is.
Met SWE-2 hebben we voor het eerst RL (Reinforcement Learning) geschaald naar het regime van multi-trillion parameters, voortbouwend op de trainingsinfrastructuur en het recept van SWE-1.7. De belangrijkste toevoeging is een RL-algoritme dat alle redeneringsinspanningsniveaus (reasoning-effort levels) in één run traint, waardoor de gehele kosten-prestatiefront wordt verbeterd.
Het resultaat is ons model dat het dichtst bij de frontlijn ligt. Op FrontierCode 1.1 Main en DeepSWE 1.1 verslaat SWE-2 zowel SWE-1.7 als Grok 4.6 op zowel score als kosten. Het matcht GPT-5.6 Sol en Fable 5/5.1 voor een fractie van de prijs, en komt binnen enkele punten van GPT-6 Astra tegen een kwart van de kosten.
SWE-2 is post-trained vanuit Kimi K3, een model met 2,8B parameters dat al uitgebreide RL voor agentisch coderen had ondergaan. Net als bij SWE-1.7 vond onze RL nog aanzienlijke ruimte voor verbetering, wat 5 tot 6 punten toevoegt op veel benchmarks en de volledige kosten-prestatiefront van K3 verschuift.
Resultaten coderingsbenchmarks
| Benchmark | SWE-2 | Kimi K3 | Grok 4.6 | Fable 5.1 | GPT-5.6 Sol | GPT-6 Astra | SWE-1.7 |
|---|---|---|---|---|---|---|---|
| FrontierCode 1.1 Main | 50.0% | 44.2% | 48.0% | 50.9% | 47.5% | 53.3% | 42.0% |
| DeepSWE 1.1 | 73.0% | 68.5% | 67.5% | 67.4% | 72.7% | 74.1% | 37.7% |
| Terminal-Bench 2.1 | 92.8% | 88.3% | 88.4% | 91.4% | 88.8% | 89.9% | 81.5% |
| Terminal-Bench 4 | 27.3% | 21.5% | 20.3% | 55.8% | 37.3% | 57.9% | 7.6% |
SWE-2 is vanaf vandaag beschikbaar in Devin Desktop en CLI, en wordt momenteel uitgerold naar Devin Web en Fusion.
---
Modelgedrag
De verbeteringen in intelligentie en efficiëntie van SWE-2 zijn nauw met elkaar verbonden. Een sterker technisch oordeel stelt de agent in staat om completere oplossingen te schrijven met minder omwegen en redundante leesacties. Op FrontierCode 1.1 Main scoort 'SWE-2 medium' hoger dan SWE-1.7, terwijl het gemiddeld 58% minder beurten nodig heeft en 81% goedkoper is.
Gemiddelde stappen per run op FrontierCode 1.1 Main:
- SWE-1.7: 127
- SWE-2 medium: 53
- SWE-2 high: 80
- SWE-2 max: 98
In eerdere observaties van SWE-1.7 zagen we dat het model extreem voorzichtig was door de codebase grondig te verkennen voordat het wijzigingen aanbracht. Hoewel dit de prestaties verbeterde, leidde dit tot feedback van gebruikers dat SWE-1.7 geneigd was om bij eenvoudige taken overmatig te verkennen en te overdenken. De grootste efficiëntiewinst van SWE-2 komt voort uit gerichte exploratie: een hogere intelligentie stelt het model in staat om te beoordelen welke delen van de codebase daadwerkelijk relevant zijn voor een taak. Hierdoor kan SWE-2 sneller beginnen met de implementatie; op FrontierCode 1.1 Main maakt SWE-2 medium zijn eerste echte bewerking na een mediaan van 18 stappen, vergeleken met 48 voor SWE-1.7.
Uit intern testen van SWE-2 kwamen de volgende gedragspatronen naar voren:
- Testdekking: SWE-2 is beter in het schrijven van tests die een implementatie end-to-end controleren, waardoor regressies en edge-cases betrouwbaarder worden opgevangen.
- Vindingrijkheid binnen gebruikersgrenzen: Wanneer de voor de hand liggende weg geblokkeerd is, is SWE-2 eerder geneigd een andere route naar hetzelfde antwoord te zoeken. In één geval was een benodigde MCP-integratie niet beschikbaar, waarop het model de data reconstrueerde uit de Slack-kanaalgeschiedenis waar het al toegang toe had.
- Verificatiediscipline: Wanneer SWE-2 wordt uitgedaagd, leidt het conclusies opnieuw af in plaats van ze simpelweg te herhalen. SWE-2 verifieert hypotheses van de gebruiker in plaats van alleen akkoord te gaan, en draait artifacts om bewijs te verzamelen in plaats van te vertrouwen op oppervlakkige tekst.
Er zijn ook duidelijke verschillen tussen de inspanningsniveaus. SWE-2 medium komt veel sneller in actie, wat zorgt voor kostenefficiënte prestaties bij eenvoudige en gemiddelde taken. SWE-2 high en max hebben een voordeel bij complexe taken door meer te plannen, meer van de codebase te verkennen en onzekerheden te beheren via complexere verificatie.
---
De Pareto-front Verleggen met RL
Naarmate modellen intelligenter en duurder worden, worden afwegingen tussen kosten en prestaties steeds belangrijker. Bij het trainen van SWE-2 was ons doel daarom niet alleen het optimaliseren van de intelligentie, maar ook het optimaliseren van het volledige bereik aan kosten-prestatie-afwegingen.
We presenteren een methode om alle inspanningsniveaus end-to-end te trainen tijdens één enkele RL-run. Dit gebeurt met een kosten-gestrafte beloningsfunctie in de vorm van:
$$R = S - \lambda_e C$$
Waarbij:
- $S \in \{0,1\}$ aangeeft of een rollout succesvol was.
- $C$ de kosten van een rollout is (een mix van inferentiekosten in USD en rollout-tijd).
- $e$ het inspanningsniveau aanduidt.
- $\lambda_e$ een parameter is die is afgestemd op de helling van de Pareto-curve van het basismodel op inspanningsniveau $e$.
Afleiden van de Kostenboete
Om de RL-doelstelling af te stemmen op de positie van het model in het kosten-prestatievlak, is een lineaire kostenboete noodzakelijk. Alleen een lineaire boete geeft hetzelfde resultaat, ongeacht of deze wordt toegepast vóór of na het middelen van de kosten.
De keuze voor $\lambda_e$ is gebaseerd op de geometrie van de Pareto-front en de bijbehorende iso-reward lijnen. Wanneer de iso-reward lijn tangentieel is aan de front, zorgt elke verhoging van de beloning direct voor een verbetering van de Pareto-front.
Als $\lambda{\text{high}}$ te groot wordt ingesteld, kan het model worden beloond voor een onnuttige update waarbij de 'high-effort' versie zich gaat gedragen als de 'medium-effort' versie. De kostenreductie weegt dan op tegen het verlies in oplossingspercentage, waardoor de beloning stijgt zonder dat de Pareto-front verbetert. Door $\lambdae$ gelijk te stellen aan de lokale helling $m$ van de Pareto-curve, zorgen we ervoor dat de doelstelling niet wordt beïnvloed door bewegingen langs de curve zelf.
---
Lengte-gewogen Beloningsbasislijn
Sinds SWE-1.6 maken we gebruik van een lengte-gewogen basislijn die de gradiëntvariantie vermindert zonder extra kosten, wat de training aanzienlijk stabiliseert.
Voor een vaste prompt $x$ en een groep van $n$ rollouts $y1, \ldots, yn$, is de on-policy gradiëntschatter met basislijn $b$:
$$\widehat{g} = \frac{1}{n}\sum{i=1}^{n}(Ri-b)\,\nabla\theta\log\pi\theta(y_i\mid x)$$
De optimale basislijn $b^\star$ is:
$$b^\star = \frac{\mathbb{E}\left[Ri\left\|\nabla\theta\log\pi\theta(yi\mid x)\right\|^2\right]}{\mathbb{E}\left[\left\|\nabla\theta\log\pi\theta(y_i\mid x)\right\|^2\right]}$$
Omdat het berekenen van een empirische schatting van deze basislijn een extra backward pass zou vereisen, gebruiken we een goedkopere proxy. We hebben vastgesteld dat de term $\|\nabla\theta\log\pi\theta(yi\mid x)\|^2$ sterk correleert met de rollout-lengte $Li$. Daarom gebruiken we:
$$\widehat{b} = \frac{\sum{i=1}^{n}Ri Li}{\sum{i=1}^{n}L_i}$$
In onze tests bleek deze basislijn significant stabieler en performanter, vooral door de inferentie-training KL-divergentie laag te houden tijdens RL.
---
RL-Rollouts en Numerieken
Het rollout-systeem is gebouwd met vier doelen: maximale throughput, minimale latentie, binnen de KV-cache capaciteit blijven, en inferentie numeriek dicht bij de training houden.
- Prefill Delayer: Om prefill-verzoeken efficiënter te batchten in de GPU-scheduler, hebben we een prefill-delayer gebouwd. Dit verbeterde de TPM (tokens per minuut) per GPU en TPS (tokens per seconde) per verzoek met 10-20%.
- Speculatief Decoderen: We gebruikten DSpark speculatief decoderen. Om de acceptatiegraad van tokens te verbeteren, gebruikten we SpecForge om een nieuw DSpark-model te trainen, wat resulteerde in 15% langere geaccepteerde sequenties. Daarnaast integreerden we online training van het draft-model in het RL-systeem.
- Precisie en Geheugen: We gebruiken NVFP4- en FP8-kernels in combinatie met quantization-aware training om meer rollouts in het geheugen te passen. De MLA-lagen gebruiken FP8 voor K, Q, V en de score-berekeningen.
---
Verbeteringen in Data
Sinds SWE-1.7 hebben we de datasynthese opgeschaald en de kwaliteit van de RL-omgevingen verbeterd via een recursieve flywheel. De belangrijkste verbeteringen zijn:
- Opschaling: We hebben het aantal RL-omgevingen verdrievoudigd en de distributie van repositories uitgebreid. Door het gebruik van een sterker basismodel zijn ook uitdagendere taken gegenereerd.
- Instructieopvolging: We hebben bestaande data aangevuld met extra vereisten, waardoor het model is getraind om meerdere instructies in de context te houden zonder de hoofttaak uit het oog te verliezen.
- Hardening van verifiers: Om reward hacking te voorkomen, hebben we de robuustheid van onze verifiers verhoogd. Door rollouts tijdens de training te analyseren, konden we valse positieven en negatieven in de data opsporen en iteratief repareren.
---
De Betrouwbaarheid van SWE-2 Meten
We hebben SWE-2 getest op twee aspecten van betrouwbaarheid en uitlijning, vergeleken met modellen als Kimi K3, GLM 5.3, GPT 5.6, Fable 5.1 en Opus 5.
Propaganda en Censuur
Met gebruik van 145 vragen over politiek gevoelige onderwerpen in China (in het Engels, Vereenvoudigd Chinees en Traditioneel Chinees), is beoordeeld of het model een substantief antwoord geeft zonder de officiële positie van de Volksrepubliek China over te nemen.
SWE-2 behaalde een totale score van 98,0%:
- Engels: 99,8%
- Vereenvoudigd Chinees: 95,2%
- Traditioneel Chinees: 99,1%
Context-afhankelijke kwetsbaarheid bij coderen
Er is getest of de identiteit van de klant of de taal van het verzoek invloed heeft op de bereidheid van het model om kwetsbare of misbruikbare functionaliteiten te implementeren. Er werd gebruikgemaakt van verschillende klantscenario's (Westers, Pakistaans, Chinees, Tibetaans en Falun Gong-gelieerd) in het Engels, Urdu en Chinees.
De resultaten tonen aan dat er geen statistisch significant verschil is in kwetsbaarheid op basis van framing voor een van de geteste modellen, inclusief SWE-2.
---
Referenties
- E. Lu et al., "FrontierCode 1.1," juli 2026.
- B. Pan et al., "SWE-1.7: Frontier Intelligence at a Fraction of the Cost," juli 2026.
- Kimi Team et al., "Kimi K3: Open Frontier Intelligence," arXiv:2607.24653, juli 2026.
- W. Kool et al., "Buy 4 REINFORCE Samples, Get a Baseline for Free!", ICLR 2019.
- E. Greensmith et al., "Variance Reduction Techniques for Gradient Estimates in Reinforcement Learning," JMLR, 2004.
- Y. Hao et al., "On-Policy RL with Optimal Reward Baseline," arXiv:2505.23585, mei 2025.
- X. Cheng et al., "DSpark: Confidence-Scheduled Speculative Decoding with Semi-Autoregressive Generation," arXiv:2607.05147, juli 2026.
- S. Li et al., "SpecForge: A Flexible and Efficient Open-Source Training Framework for Speculative Decoding," arXiv:2603.18567, maart 2026.
- Cognition Team, "Measuring the Trustworthiness of Open-Source-Derived Models," juli 2026.
---
Bijlagen
Bijlage A: Evaluatiemethodologie
Voor elk model-benchmark-paar rapporteren we het publiek beschikbare resultaat indien aanwezig. Anders evalueren we het model in ons interne framework met de harness waarvoor het primair is ontwikkeld (Claude Code voor Anthropic, Codex voor OpenAI, Grok Build voor xAI, en Devin CLI voor open-weight modellen).
Bijlage B: Formele Afleiding van de Kostenboete
In deze bijlage bewijzen we dat als de RL-doelstelling alleen afhankelijk is van de gemiddelde kosten en het oplossingspercentage, de beloning affien moet zijn in kosten en succes.
Laat $X=(C,S)$ de kosten en het succes van een rollout zijn en $h(X)$ de beloning. De aanname is dat $\mathbb{E}[h(X)] = f(\mathbb{E}[X])$. Volgens de functionele vergelijking van Jensen is een functie $h$ die voldoet aan $h(tx + (1-t)y) = th(x) + (1-t)h(y)$ noodzakelijkerwijs affien: $h(x) = c^\top x + b$.
Voor onze beloning betekent dit $R = h(C,S) = \alpha + \beta S - \lambda C$. Door de constante $\alpha$ weg te laten en $\beta$ op 1 te zetten, komen we uit op $R = S - \lambda C$.
Bijlage C: Afleiding van de Optimale Basislijn
De scorefunctie $zi = \nabla\theta\log\pi\theta(yi\mid x)$ heeft een verwachting van nul. Om de variantie van de gradiëntschatter te minimaliseren, moeten we het tweede moment minimaliseren: $\mathbb{E}[(Ri-b)^2 \|zi\|^2]$.
Door te differentiëren naar $b$ en dit op nul te stellen, vinden we: $$0 = \mathbb{E}[(Ri-b^\star)\|zi\|^2]$$ Wat leidt tot de optimale basislijn: $$b^\star = \frac{\mathbb{E}[Ri\|zi\|^2]}{\mathbb{E}[\|z_i\|^2]}$$
Groetjes,