SWE-bench (benchmark) (CS)
SWE-bench — je rozsáhlý benchmark (sada testovacích úloh) pro hodnocení schopností velkých jazykových modelů (LLM) v oblasti automatizovaného vývoje a ladění softwaru[1]. Byl vyvinut skupinou výzkumníků z Princetonské univerzity a dalších organizací a představen na konferenci ICLR 2024[2]. SWE-bench se od tradičních kódových benchmarků liší tím, že využívá reálné úlohy z praxe vývoje: testovací sada obsahuje 2294 úloh vycházejících z uzavřených issues a odpovídajících oprav (pull requestů) z 12 populárních open-source Python repozitářů na GitHubu[1][3]. Každá úloha obsahuje popis problému (issue) a poskytuje modelu přístup ke zdrojovému kódu příslušného projektu; cílem modelu je vygenerovat minimální změny v kódové základně (patch), které daný problém opraví[1][3].
Metodika a zvláštnosti hodnocení
SWE-bench modeluje reálný proces vývoje softwaru. Pro každou úlohu je modelu předložen text původního GitHub issue (popis problému) a snímek kódu repozitáře ve verzi před provedením opravy[4]. Model (nebo agent postavený na modelu) musí analyzovat zdrojový kód, pochopit povahu chyby nebo požadované změny a provést úpravy v příslušných souborech kódu, čímž problém odstraní[4][5]. Validace řešení je automatizovaná: ke každé úloze jsou přiřazeny reálné jednotkové testy z pull requestu, který daný problém uzavřel. Jsou mezi nimi jak „fail-to-pass" testy (testy, které na původním kódu neuspějí, ale po aplikaci správné opravy uspět mají), tak regresní testy (pass-to-pass, které původně procházejí a po provedení změn by měly procházet i nadále)[3]. Navržený patch je aplikován na kód, poté jsou spuštěny příslušné testy: pokud všechny fail-to-pass testy začnou procházet a přitom pass-to-pass testy nejsou narušeny, je úloha považována za správně vyřešenou[3]. Tento přístup k hodnocení umožňuje ověřit nejen schopnost modelu generovat syntakticky správný kód, ale i skutečnou schopnost vyřešit zadaný problém bez narušení stávající funkcionality. Model přitom musí pracovat s velkým kontextem (celý repozitář kódu), chápat vzájemné vazby mezi komponentami a koordinovat změny ve více souborech současně[1] — to vše je výrazně náročnější než typické úlohy spočívající v napsání funkce podle popisu.
Hodnocení v rámci SWE-bench se obvykle neúčastní pouze samotné LLM, ale agentní systémy, které model obalují pomocnými nástroji (například pro navigaci po souborech, spouštění kódu, použití ladicího programu apod.)[4][6]. Takový systém napodobuje reálný vývojový cyklus: model může postupně procházet soubory, spouštět testy nebo skripty a průběžně vylepšovat řešení, dokud nedosáhne úspěšného výsledku[4]. Je příznačné, že efektivita řešení úloh v SWE-bench do značné míry závisí na kvalitě tohoto „scaffoldingu" (infrastruktury agenta): stejné základní modely mohou vykazovat odlišné výsledky v závislosti na tom, jak je organizována interakce s repozitářem a nástroji[4][7]. SWE-bench tak slouží jako měřítko schopností kombinace modelu a jeho strategie řešení úloh, čímž přibližuje hodnocení reálným podmínkám práce autonomního AI vývojáře[4][7].
Varianty sady úloh
Autoři SWE-bench a komunita následně představili několik odvozených sad pro různé účely hodnocení:
- SWE-bench Lite — odlehčená verze benchmarku zahrnující ~300 úloh[8], vybraných tak, aby se snížila náročnost a výpočetní náklady na testování modelů. Tato podsada byla vytvořena pro rychlé experimentování s modely a vylučuje nejnáročnější validace, přičemž zachovává reprezentativnost hlavních problémů[7]. Lite v podstatě obsahuje jednodušší a kratší úlohy na opravu chyb a výsledky modelů na Lite jsou obvykle vyšší než na plné sadě, protože nejsložitější případy jsou vyloučeny[7].
- SWE-bench Verified — podsada filtrovaná manuální kontrolou, představená v srpnu 2024 ve spolupráci s OpenAI[7]. Výzkumníci zapojili 93 profesionálních vývojářů k analýze každé úlohy původního benchmarku a vyloučili případy, kde je původní popis problému příliš vágní nebo kde požadované chování dle testů zjevně nevyplývá ze zadání úlohy[7]. Byly také odstraněny úlohy, které jsou v praxi neřešitelné kvůli problémům s prostředím nebo nesprávným testům[7]. Výsledkem je sada 500 úloh, které jsou garantovaně řešitelné a správně formulované[7]. SWE-bench Verified má zajistit spolehlivější hodnocení schopností modelů odstraněním případů, kdy je i správné řešení odmítnuto kvůli nevhodným testům nebo zadání[7]. Tato sada nahradila původní testovací vzorky SWE-bench (plnou sadu i Lite) jako hlavní referenční bod pro srovnání modelů[7]. Spolu s Verified byly navíc zveřejněny odhady obtížnosti úloh (například byly vyčleněny „snadné" úlohy řešitelné člověkem za <15 minut a „těžké" vyžadující >1 hodinu)[7] a byl vydán nový nástrojový rámec na bázi Dockeru pro stabilnější a reprodukovatelnější spouštění testů[7].
- SWE-bench Multimodal — rozšíření benchmarku představené v lednu 2025 zahrnující úlohy, kde popis problému obsahuje nejen text, ale i vizuální prvky (například obrázky rozhraní, snímky obrazovky s chybami apod.)[8]. Tato sada (517 úloh[8]) ověřuje schopnost modelů a agentů chápat a využívat vizuální informace při řešení programátorských úloh. Hodnocení na multimodální sadě je organizováno analogicky, ale vyžaduje od modelu multimodální schopnosti (například rozpoznávání textu na obrázcích). Testovací část SWE-bench Multimodal je ponechána uzavřená (skrytá), aby se předešlo přizpůsobování řešení známým odpovědím; vývojáři mohou odesílat řešení na vzdálený leaderboard pro hodnocení svých modelů na těchto úlohách[2].
Kromě těchto hlavních variant se kolem SWE-bench vytvořil ekosystém nástrojů: SWE-agent — open-source softwarový „agent"-řešitel vykazující špičkové výsledky na úlohách benchmarku[2]; SWE-smith — framework pro trénování vlastních modelů-vývojářů; SWE-REX — nástroj pro rozšířenou extrakci a zpracování informací z repozitářů aj. Tyto projekty jsou zaměřeny na zjednodušení reprodukce výsledků a podporu výzkumu v oblasti autonomních programátorských systémů.
Výsledky a pokrok modelů
Při prvním uvedení SWE-bench odhalil značnou propast mezi tehdejšími LLM a dovednostmi zkušených programátorů. Autoři uváděli, že i nejsilnější modely počátkem roku 2023 zvládaly jen jednotky procent úloh: například model Claude 2 od společnosti Anthropic úspěšně řešil méně než 2 % úloh plné sady[1]. Speciálně natrénovaný model autorů benchmarku (na základě LLaMA, pojmenovaný SWE-Llama) a proprietární modely jako GPT-4 dokázaly řešit převážně jen nejjednodušší chyby[1]. Tato nízká počáteční čísla zdůraznila náročnost SWE-bench a posloužila jako podnět k rozvoji nových přístupů.
Během roku 2024, s příchodem pokročilejších modelů a agentních schémat, se výsledky výrazně zlepšily. Výzkumníci z Princetonu představili systém SWE-agent kombinující GPT-4 s vyhledáváním v kódu, plánováním a dalšími nástroji; dosáhl přibližně 12,5 % vyřešených úloh na plné sadě a stanovil nový referenční bod pro akademické modely[5]. Do poloviny roku 2024 nejlepší řešení na oficiálním leaderboardu SWE-bench (včetně proprietárních) dosahovala přibližně 20 % úspěšných řešení na plném benchmarku a až 43 % na zjednodušené sadě Lite[7]. Tento nárůst souvisí se zlepšením modelů (například příchodem GPT-4, Claude 2 a 3) a zejména s rozvojem scaffoldingu — externích strategií umožňujících modelu efektivně rozložit úlohu na kroky, číst dokumentaci, spouštět ladicí relace apod.[7]
Po zavedení sady Verified koncem roku 2024 (očištěné od nesprávných úloh) měřitelný výkon vzrostl ještě více. Model GPT-4 (varianta GPT-4o) okamžitě vykázal přibližně 33 % úspěšných řešení na Verified oproti ~16 % dříve na původní sadě[7]. Nejlepší open-source agentní frameworky (například Agentless) zdvojnásobily svůj výsledek z ~16 % na 32 % na Verified[7]. To potvrdilo předpoklad, že původní benchmark podhodnocoval výsledky kvůli přítomnosti neřešitelných případů[7]. Zároveň zlepšení výsledků na Verified ve srovnání s Lite není tak dramatické (nejlepší modely již dosahovaly ~43 % na Lite), což je logické: Lite původně vybíral jednodušší příklady, zatímco Verified odstranil nesplnitelné, ale ponechal složité úlohy[7]. Je důležité poznamenat, že nárůst výsledků při přechodu na Verified nastal ve všech kategoriích obtížnosti úloh, nikoli jen díky odstranění nejtěžších — filtrování tedy zbavilo sadu i skrytě nesplnitelných případů mezi relativně jednoduchými úlohami[7].
Na počátku roku 2025 přední AI systémy dosahují výkonu blížícího se lidskému na ověřené sadě úloh, i když strop 100 % je stále daleko. V lednu 2025 společnost Anthropic oznámila, že její nový model Claude 3.5 Sonnet v kombinaci s vylepšeným agentem vyřešil 49 % úloh SWE-bench Verified[4] a dočasně se dostal na první místo. Velké technologické společnosti i nezávislé týmy se také aktivně účastní neoficiálních soutěží na tomto benchmarku. Tým CodeStory například vyvinul vícemodální přístup s procházením variant („Midwit Agent"), který dosáhl rekordních 62,2 % vyřešených úloh na Verified (údaje z počátku roku 2025)[5][9]. Bylo poznamenáno, že k tomu bylo nutné výrazně navýšit výpočetní náklady ve fázi inference modelů (tzv. inference time scaling), spouštět velký počet pokusů o řešení a vybírat nejlepší výsledek[5]. Na druhé straně materiály OpenAI zmiňovaly experimentální systém GPT-03, kterému se při dostatečném škálování výpočtů údajně podařilo překročit hranici 70 % na Verified (neoficiální údaje)[5]. Nezávislé ověření těchto výsledků však chybí a tak vysoký ukazatel zůstává spíše orientačním cílem pro budoucí výzkum než dosaženou metou.
Podle výzkumu Microsoft Research (2025) ani nejnovější modely vybavené ladicími nástroji stále nepřekonávají hranici 50 % úspěšných oprav chyb ze sady SWE-bench Lite[6]. V tomto testu si nejlépe vedl Claude 3.7 Sonnet s ~48,4 % vyřešených úloh, zatímco systém na bázi GPT-4 (OpenAI o1) vyřešil přibližně 30 % a odlehčenější model o3-mini pouze 22 %[6]. Tyto výsledky zdůrazňují, že navzdory rychlému pokroku současné AI systémy stále zaostávají za zkušenými programátory: pro člověka je řešení podobných úloh (při znalosti kódu) jednoduché, zatímco model často nedokáže efektivně využívat ladicí nástroje nebo trpí nedostatkem trénovacích dat odrážejících vícekrokový proces opravy chyb[6].
Omezení a perspektivy
SWE-bench se stal standardizovanou platformou pro hodnocení inteligentních kódových agentů, avšak výzkumy odhalily i řadu jeho omezení. Hlavním problémem je neúplnost testování: sada ověřovacích testů ke každé úloze pochází z konkrétního pull requestu a obvykle zahrnuje pouze ty jednotkové testy, které byly změněny při opravě chyby[3]. Jak ukázala analýza skupiny vědců z Zhejiangské univerzity a Stuttgartské univerzity (Wang et al. 2025), ignorování ostatních testů projektu může skrýt nesprávnost některých řešení[3]. Přezkum řešení na plné sadě testů repozitáře odhalil, že v průměru 7,8 % patchů označených jako úspěšné v SWE-bench ve skutečnosti neprojde dalšími testy v projektu[3]. To vede k nadhodnocení metriky „vyřešených úloh" přibližně o 4–6 procentních bodů[3]. Ještě jemnějším případem je situace, kdy vygenerovaný patch projde všemi původními testy, ale přitom je neekvivalentní řešení vývojáře a mění chování programu jinak, než bylo očekáváno. Pomocí generování dodatečných testovacích případů (metodika PatchDiff) výzkumníci zjistili, že téměř 30 % navržených AI oprav se chová jinak než referenční patche a přibližně 11 % je jednoznačně chybných, ačkoli je existující testy neodhalí[3]. Skutečné schopnosti modelů tak mohou být nadhodnoceny, pokud se spoléháme pouze na průchod omezenou sadou testů. Tvůrci SWE-bench toto zranitelné místo uznávají a zdůrazňují, že benchmark musí se časem vyvíjet: zlepšovat pokrytí testy, přidávat kontroly absence nežádoucích vedlejších účinků, rozšiřovat sadu typů úloh[7]. Rozvoj takových hodnoticích nástrojů je důležitou součástí přípravy na příchod stále autonomnějších a výkonnějších AI vývojářů a zkušenost se SWE-bench ukazuje na nutnost pečlivého přístupu ke kvalitě benchmarků[7].
SWE-bench, jakožto pouhá statická sada úloh, nepokrývá absolutně všechny aspekty programování, ale stal se již de facto standardem pro srovnávací analýzu kódových modelů[3]. Je využíván ve vědeckých pracích k demonstraci nových metod a algoritmů, jakož i průmyslovými výzkumnými skupinami pro hodnocení potenciálu systémů určených k automatizaci programování[3]. Neustálý nárůst výsledků na SWE-bench v letech 2023–2025 názorně ukazuje rychle se zlepšující schopnosti LLM při řešení praktických vývojářských úloh. Zároveň slouží jako barometr náročnosti: i při přibližování se k 50–60 % vyřešených úloh jsou modely stále daleko od plnohodnotné náhrady člověka, zejména v podmínkách omezených informací a nutnosti jemného porozumění požadavkům[4][7]. Pokrok se nicméně nezastavuje — díky iniciativám jako SWE-bench komunita jasně vidí své cíle i omezení a pokračuje v pohybu ke vytvoření plnohodnotného AI vývojáře schopného autonomně chápat a opravovat programový kód na úrovni lidského experta[4][7].
Odkazy
- SWE-bench na GitHubu
- Oficiální leaderboard SWE-bench
Literatura
- Liang, P. et al. (2022). Holistic Evaluation of Language Models (HELM). arXiv:2211.09110.
- Chang, Y. et al. (2023). A Survey on Evaluation of Large Language Models. arXiv:2307.03109.
- Ni, S. et al. (2025). A Survey on Large Language Model Benchmarks. arXiv:2508.15361.
- Biderman, S. et al. (2024). The Language Model Evaluation Harness (lm-eval): Guidance and Lessons Learned. arXiv:2405.14782.
- Kiela, D. et al. (2021). Dynabench: Rethinking Benchmarking in NLP. arXiv:2104.14337.
- Ma, Z. et al. (2021). Dynaboard: An Evaluation‑As‑A‑Service Platform for Holistic Next‑Generation Benchmarking. arXiv:2106.06052.
- Goel, K. et al. (2021). Robustness Gym: Unifying the NLP Evaluation Landscape. arXiv:2101.04840.
- Xu, C. et al. (2024). Benchmark Data Contamination of Large Language Models: A Survey. arXiv:2406.04244.
- Liu, S. et al. (2025). A Comprehensive Survey on Safety Evaluation of LLMs. arXiv:2506.11094.
- Chiang, W.-L. et al. (2024). Chatbot Arena: An Open Platform for Evaluating LLMs by Human Preference. arXiv:2403.04132.
- Boubdir, M. et al. (2023). Elo Uncovered: Robustness and Best Practices in Language Model Evaluation. arXiv:2311.17295.
- Huang, L. et al. (2023). A Survey on Hallucination in Large Language Models. arXiv:2311.05232.
Poznámky
- ↑ 1.0 1.1 1.2 1.3 1.4 1.5 Jimenez, Carlos E. et al. «SWE-bench: Can Language Models Resolve Real-World GitHub Issues?». arXiv. [1]
- ↑ 2.0 2.1 2.2 «SWE-bench/SWE-bench». GitHub. [2]
- ↑ 3.00 3.01 3.02 3.03 3.04 3.05 3.06 3.07 3.08 3.09 3.10 Wang, Shuyang et al. «Are "Solved Issues" in SWE-bench Really Solved Correctly? An Empirical Study». arXiv. [3]
- ↑ 4.0 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 «Claude SWE-Bench Performance». Anthropic. [4]
- ↑ 5.0 5.1 5.2 5.3 5.4 Jain, Sulbha. «SWE Benchmark: LLM evaluation in Software Engineering Setting». Medium. [5]
- ↑ 6.0 6.1 6.2 6.3 Hatmaker, Taylor. «AI models still struggle to debug software, Microsoft study shows». TechCrunch. [6]
- ↑ 7.00 7.01 7.02 7.03 7.04 7.05 7.06 7.07 7.08 7.09 7.10 7.11 7.12 7.13 7.14 7.15 7.16 7.17 7.18 7.19 7.20 7.21 7.22 «Introducing SWE-bench Verified». OpenAI. [7]
- ↑ 8.0 8.1 8.2 «SWE-bench Leaderboard». [8]
- ↑ «SOTA on swebench-verified: relearning the bitter lesson». Hacker News (Y Combinator). [9]