AI Ordbog
SWE-bench
En benchmark der tester AI-modellers evne til at løse rigtige softwareproblemer fra GitHub.
Skrevet og redigeret af Kristian Primdal · Sidst opdateret 18. marts 2026Indhold
Hvad er SWE-bench?
SWE-bench (Software Engineering Benchmark) er en benchmark der tester AI-modellers evne til at løse rigtige softwareproblemer. Hvor de fleste kodningsbenchmarks beder modellen om at skrive korte, isolerede funktioner, giver SWE-bench modellen et virkeligt issue fra et populært open source-projekt og en kodebase med tusindvis af filer, og beder den producere et patch der løser problemet.
Benchmarken blev introduceret i 2023 af Carlos E. Jimenez et al. fra Princeton University og er hurtigt blevet den vigtigste benchmark for at vurdere AI-kodningsassistenter og agentic coding-værktøjer.
SWE-bench er fundamentalt anderledes end HumanEval og lignende benchmarks. Den tester ikke bare om en model kan skrive kode. Den tester om modellen kan forstå et problem beskrevet i naturligt sprog, finde rundt i en stor kodebase, identificere de relevante filer og funktioner, og producere en korrekt ændring der løser problemet uden at bryde noget andet.
Hvordan fungerer SWE-bench?
Opgaveformat
Hver SWE-bench-opgave består af:
1. Et GitHub issue: En reel bug-rapport eller feature request fra et open source-projekt. Beskrevet i naturligt sprog, ofte med fejlmeddelelser, forventet adfærd og reproduktionstrin.
2. En kodebase: Det fulde repository i den tilstand det var på tidspunktet for issuet, typisk tusindvis af filer og hundredtusinder af linjer kode.
3. Et reference-patch: Den faktiske løsning som en menneskelig udvikler skrev (bruges til evaluering, ikke givet til modellen).
4. Tests: Automatiserede tests der verificerer at løsningen er korrekt, både at den løser det specifikke problem og at den ikke bryder eksisterende funktionalitet.
Processen
1. Modellen modtager: Issue-beskrivelse + fuld kodebase
2. Modellen skal: Forstå problemet, gennemsøge koden, finde relevante filer
3. Modellen producerer: Et patch (diff) der ændrer de nødvendige filer
4. Evaluering: Patchen anvendes, og automatiserede tests køres
5. Resultat: Pass (alle tests består) eller fail
Et typisk eksempel
Issue fra Django (forenklet):
Titel: QuerySet.only() combined with select_related()
produces wrong query
Beskrivelse: When using .only('field1').select_related('relation'),
the generated SQL includes all fields from the related model
instead of only the specified fields.
Steps to reproduce:
1. Create a model with a ForeignKey relation
2. Query with Model.objects.only('name').select_related('author')
3. Observe that the SQL includes all author fields
Modellen skal:
- Forstå at der er en bug i Djangos ORM query-generering
- Gennemsøge Djangos kodebase (tusindvis af filer)
- Finde den relevante kode i f.eks.
django/db/models/sql/compiler.py - Producere et patch der fikser query-genereringen
- Sikre at patchen ikke bryder andre tests
De inkluderede projekter
SWE-bench henter issues fra populære Python-projekter:
| Projekt | Beskrivelse | Typiske issues |
|---|---|---|
| Django | Web-framework | ORM-bugs, template-fejl, migrations |
| scikit-learn | ML-bibliotek | Algorithme-fejl, API-inkonsistens |
| matplotlib | Visualisering | Plotting-bugs, layout-problemer |
| sympy | Symbolsk matematik | Beregningsfejl, forenklingsproblemer |
| requests | HTTP-bibliotek | Encoding-fejl, session-håndtering |
| flask | Web-framework | Routing-bugs, kontekst-problemer |
| pytest | Testframework | Plugin-konflikter, fixture-fejl |
| astropy | Astronomi | Enhedskonvertering, koordinatberegning |
| sphinx | Dokumentation | Build-fejl, formatering |
| xarray | Data-arrays | Indeksering, merge-operationer |
SWE-bench varianter
SWE-bench (fuld)
Den originale benchmark med ~2.294 opgaver. Bruges primært til forskning. Mange opgaver er ekstremt svære eller kræver domænespecifik ekspertise.
SWE-bench Lite
En kurateret delmængde af 300 opgaver, udvalgt til at være mere repræsentative og evaluerings-venlige. De fleste leaderboard-rapporteringer bruger SWE-bench Lite. Opgaverne er filtreret for at undgå tvetydige issues, tests der er svære at køre, og problemer der kræver information uden for kodebasen.
SWE-bench Verified
En endnu strengere delmængde hvor hvert issue er manuelt verificeret af mennesker for at sikre at det er klart formuleret, har en entydig løsning, og kan evalueres korrekt med de tilgængelige tests. SWE-bench Verified er den mest pålidelige variant og den foretrukne til at sammenligne frontier-modeller.
SWE-bench scorer
Aktuelle resultater
| System | SWE-bench Verified | Tilgang |
|---|---|---|
| Frontier agentic systemer | ~70-80% | Multi-step agents med tool use |
| Stærke enkeltmodeller | ~40-55% | Direkte patch-generering |
| Ældre modeller | ~5-15% | Begrænset kodeforståelse |
Scorerne er steget hurtigt. I begyndelsen af 2024 scorede de bedste systemer under 20%. I starten af 2026 har de bedste agentiske systemer passeret 79% på SWE-bench Verified. Men selv 80% betyder at modellen fejler på 1 ud af 5 rigtige softwareproblemer.
Hvad betyder scorerne?
En SWE-bench Verified score på f.eks. 70% betyder at systemet kan løse 7 ud af 10 præsenterede issues korrekt. Det er et stærkt resultat når man betænker at systemet skal forstå et problem beskrevet i naturligt sprog, finde rundt i en ukendt kodebase med hundredtusinder af linjer, og producere en præcis kodeændring. Alt sammen automatisk.
Agentiske systemer vs. rå modeller
De højeste SWE-bench-scorer kommer ikke fra modeller der genererer et patch i ét forsøg, men fra agentiske systemer. Det er AI-systemer der kan:
- Læse og gennemsøge filer i kodebasen
- Køre kode og tests
- Iterere på deres løsning baseret på fejlmeddelelser
- Bruge værktøjer til at søge i koden
- Planlægge deres tilgang over flere trin
Disse systemer kombinerer en stærk sprogmodel med et scaffold der giver modellen adgang til de samme værktøjer en menneskelig udvikler ville bruge.
Hvorfor er SWE-bench vigtig?
Den mest realistiske kodningstest
SWE-bench er den tætteste tilnærmelse til virkelig softwareudvikling i en benchmark. I modsætning til HumanEval, der tester isolerede funktioner, tester SWE-bench den fulde workflow: forstå et problem, find den relevante kode, skriv en løsning, verificer at den virker.
Direkte relevant for AI-kodningsværktøjer
SWE-bench-scorer korrelerer direkte med brugbarheden af AI-kodningsassistenter i praksis. Et system der scorer højt på SWE-bench er sandsynligvis også godt til at hjælpe udviklere med at løse rigtige bugs og implementere features i deres kodebaser.
Langt fra satureret
Hvor HumanEval er nær-satureret (de bedste modeller scorer over 95%), er SWE-bench stadig udfordrende. Selv de bedste systemer fejler på 20-30% af opgaverne. Det giver plads til at differentiere mellem modeller og måle reel fremgang i AI-kodningsevner.
Driver agentic AI-udvikling
SWE-bench har været en primær driver for udviklingen af agentic coding-systemer. For at score højt på SWE-bench er det ikke nok bare at have en god model. Man har brug for et system der kan bruge værktøjer, iterere og ræsonnere over flere trin. Det har accelereret udviklingen af de agentiske kodningsværktøjer vi ser i dag.
Begrænsninger ved SWE-bench
Kun Python
SWE-bench inkluderer kun Python-projekter. Den siger intet om modellens evne til at arbejde med JavaScript, TypeScript, Rust, Go, Java eller andre sprog. Udvidelser til andre sprog er under udvikling men endnu ikke standardiserede.
Open source bias
Alle opgaver kommer fra populære open source-projekter. Disse projekter har typisk god kodeorganisering, comprehensive tests og klar dokumentation. Mange virksomheders kodebaser er langt mere rodede, dårligere dokumenterede og sværere at arbejde med.
Testdækning som proxy
SWE-bench bruger automatiserede tests til at evaluere løsninger. Det betyder at en løsning der består testene men er suboptimal (f.eks. en hack i stedet for en elegant fix) stadig tæller som korrekt. Kvaliteten af løsningen (læsbarhed, vedligeholdbarhed, performance) evalueres ikke.
Issue-kvalitet
Ikke alle issues er lige klare. Nogle har detaljerede reproduktionstrin og fejlmeddelelser, andre er vage. Modellens performance kan variere markant afhængigt af issue-kvaliteten, og SWE-bench Verified adresserer dette delvist men ikke helt.
Evaluerings-udfordringer
Det er teknisk krævende at evaluere SWE-bench korrekt. At sætte det korrekte testmiljø op for hvert projekt i den præcise version fra tidspunktet for issuet kræver omhyggelig infrastruktur. Fejl i evalueringssetup’et kan give falske positiver eller negativer.
SWE-bench vs. andre benchmarks
| Dimension | SWE-bench | HumanEval | Chatbot Arena (kodning) |
|---|---|---|---|
| Opgavetype | Rigtige GitHub-issues | Isolerede funktioner | Frie kodningsopgaver |
| Kodebase | Tusindvis af filer | Ingen kontekst | Varierende |
| Evaluering | Automatiserede tests | Unit tests | Menneskelig præference |
| Realisme | Meget høj | Lav | Medium |
| Sværhed | Meget svær | Let-middel | Varierende |
| Saturering | Nej | Næsten | Nej |
SWE-bench komplementerer andre benchmarks. HumanEval viser om en model kan skrive korrekt kode overhovedet. SWE-bench viser om den kan løse rigtige problemer i rigtige kodebaser. Arena-kodning viser hvad mennesker foretrækker i frie kodningsopgaver.
SWE-bench i praksis
For udviklere der vælger kodningsværktøjer
SWE-bench-scorer er den bedste tilgængelige indikator for et AI-kodningsværktøjs evne til at hjælpe med virkelig softwareudvikling:
- Tjek SWE-bench Verified-scoren: den mest pålidelige variant
- Vær opmærksom på agentisk vs. enkelt-model: agentiske systemer scorer typisk højere fordi de kan iterere
- Husk begrænsningerne: SWE-bench er kun Python og kun open source
- Test selv: SWE-bench er et godt udgangspunkt, men test altid på din egen kodebase og dine egne opgaver
For modeludviklere
SWE-bench er nu en obligatorisk benchmark for enhver model der positionerer sig som god til kodning. Resultater rapporteres typisk for både SWE-bench Lite og SWE-bench Verified, og ofte opdelt i agentisk og enkelt-model tilgang.
For virksomheder
SWE-bench-scorer giver en hurtig indikation af AI-kodningsværktøjers kapabilitet, men virksomheder bør supplere med evaluering på egne kodebaser, i egne teknologistacks, og med egne kodestandarder og workflows.
Ofte stillede spørgsmål
Hvad er SWE-bench?
SWE-bench (Software Engineering Benchmark) er en benchmark der tester AI-modellers evne til at løse rigtige softwareproblemer fra populære GitHub-projekter. Modellen modtager et issue (bug-rapport eller feature request) og en fuld kodebase med tusindvis af filer, og skal producere et patch der løser problemet og består automatiserede tests. SWE-bench er den mest realistiske og udfordrende kodnings-benchmark og den primære målestok for AI-kodningsværktøjer.
Hvad er en god SWE-bench score?
I starten af 2026 scorer de bedste agentiske systemer omkring 79% på SWE-bench Verified, mens stærke enkeltmodeller scorer 40-55%. Til sammenligning scorede de bedste systemer under 20% i begyndelsen af 2024. Udviklingen har været hurtig, men selv 79% betyder at systemet stadig fejler på ca. 1 ud af 5 rigtige softwareproblemer.
Hvad er forskellen på SWE-bench og HumanEval?
HumanEval tester om modellen kan skrive korte, isolerede Python-funktioner baseret på en beskrivelse (typisk 5-20 linjer kode uden kontekst). SWE-bench tester om modellen kan løse rigtige problemer i store kodebaser med tusindvis af filer, hvilket kræver at forstå et issue, gennemsøge koden, identificere relevante filer og producere et korrekt patch. HumanEval er nær-satureret (95%+), mens SWE-bench stadig er udfordrende (ca. 79% for de bedste agentiske systemer).
Hvorfor bruger de bedste SWE-bench systemer agentisk AI?
Fordi SWE-bench-opgaver kræver mere end at generere kode i ét forsøg. For at løse et rigtigt issue skal systemet gennemsøge en stor kodebase (læse filer, søge efter relevante funktioner), forstå konteksten, generere en løsning, og ofte iterere efter at have kørt tests og set fejl. Agentiske systemer der kan bruge værktøjer (fillæsning, kodesøgning, testkørsel) over flere trin scorer markant højere end systemer der forsøger at generere et patch direkte.
Relaterede termer
Nævnt i Ugens AI
- Opus 4.7 og pull requests der dør · 19. april 2026