SWE-bench (benchmark) (RO)
SWE-bench — este un benchmark la scară largă (set de sarcini de testare) pentru evaluarea capacităților modelelor lingvistice mari (LLM) în domeniul dezvoltării automate și depanării software[1]. A fost elaborat de un grup de cercetători de la Universitatea Princeton și alte organizații și prezentat la conferința ICLR 2024[2]. SWE-bench se distinge de benchmark-urile tradiționale de cod prin utilizarea sarcinilor reale din practica de dezvoltare: setul de testare include 2294 de sarcini, bazate pe probleme (issues) rezolvate și corecțiile corespunzătoare (pull request) din 12 repository-uri Python populare cu sursă deschisă pe GitHub[1][3]. Fiecare sarcină conține descrierea problemei (issue) și oferă modelului acces la codul sursă al proiectului respectiv; scopul modelului este să genereze modificări minime în baza de cod (patch), care să rezolve problema indicată[1][3].
Metodologie și particularități de evaluare
SWE-bench simulează procesul real de dezvoltare software. Pentru fiecare sarcină, modelului i se prezintă textul GitHub issue original (descrierea problemei) și un snapshot al codului din repository în versiunea anterioară aplicării corecției[4]. Modelului (sau agentului bazat pe model) i se cere să analizeze codul sursă, să înțeleagă natura erorii sau a modificării necesare și să efectueze corecțiile în fișierele de cod corespunzătoare, eliminând problema[4][5]. Validarea soluției este automatizată: fiecărei sarcini îi sunt asociate teste unitare reale din pull request-ul care a rezolvat problema respectivă. Printre acestea se numără atât teste „eșuate-trecute" (fail-to-pass, care nu trec pe codul original, dar trebuie să treacă după aplicarea corecției corecte), cât și teste de regresie (pass-to-pass, care inițial trec și trebuie să continue să treacă după efectuarea modificărilor)[3]. Patch-ul propus de model este aplicat la cod, după care sunt rulate testele corespunzătoare: dacă toate testele fail-to-pass încep să treacă și testele pass-to-pass nu sunt afectate, sarcina este considerată rezolvată corect[3]. Această abordare de evaluare permite verificarea nu doar a capacității modelului de a genera cod sintactic corect, ci și a abilității de a rezolva efectiv sarcina fără a afecta funcționalitatea existentă. Totodată, modelul trebuie să opereze cu un context extins (întregul repository de cod), să înțeleagă interdependențele dintre componente și să coordoneze modificările în mai multe fișiere simultan[1] — toate acestea sunt mult mai complexe decât sarcinile tipice de scriere a unei funcții după o descriere.
În evaluările SWE-bench participă de obicei nu modelele LLM în sine, ci sisteme agentice, care învelesc modelul cu instrumente auxiliare (de exemplu, pentru navigarea prin fișiere, executarea codului, utilizarea debugger-ului etc.)[4][6]. Un astfel de sistem imită ciclul real de dezvoltare: modelul poate vizualiza secvențial fișierele, rula teste sau scripturi și îmbunătăți treptat soluția până la obținerea unui rezultat de succes[4]. Este semnificativ faptul că eficiența rezolvării sarcinilor SWE-bench depinde în mare măsură de calitatea acestui „scaffolding" (infrastructura agentului): aceleași modele de bază pot obține rezultate diferite în funcție de modul în care este organizată interacțiunea cu repository-ul și instrumentele[4][7]. Astfel, SWE-bench servește drept măsură a capacităților ansamblului format din model și strategia sa de rezolvare a sarcinilor, apropiind evaluarea de condițiile reale de lucru ale unui dezvoltator IA autonom[4][7].
Variante ale setului de sarcini
Autorii SWE-bench și comunitatea au prezentat ulterior mai multe seturi derivate pentru diferite scopuri de evaluare:
- SWE-bench Lite — o versiune simplificată a benchmark-ului, incluzând ~300 de sarcini[8], selectate astfel încât să reducă complexitatea și costurile computaționale pentru testarea modelelor. Acest subset a fost creat pentru experimentarea rapidă cu modele și exclude cele mai laborioase validări, păstrând totodată reprezentativitatea problemelor principale[7]. În esență, Lite conține sarcini mai simple și mai scurte de corectare a erorilor, iar rezultatele modelelor pe Lite sunt de obicei mai mari decât pe setul complet, datorită excluderii celor mai dificile cazuri[7].
- SWE-bench Verified — un subset filtrat prin verificare manuală, prezentat în august 2024 împreună cu OpenAI[7]. Cercetătorii au angajat 93 de dezvoltatori profesioniști pentru a analiza fiecare sarcină din benchmark-ul original și au exclus cazurile în care descrierea originală a problemei este prea neclară sau comportamentul cerut de teste nu reiese explicit din enunțul sarcinii[7]. Au fost eliminate și sarcinile care în practică nu pot fi rezolvate din cauza problemelor de mediu sau a testelor incorecte[7]. În final, a fost constituit un set de 500 de sarcini, garantat rezolvabile și corect formulate[7]. SWE-bench Verified urmărește să asigure o evaluare mai fiabilă a capacităților modelelor, eliminând cazurile în care chiar și o soluție corectă este respinsă din cauza inadecvării testelor sau a enunțului[7]. Acest set a înlocuit selecțiile de testare originale SWE-bench (completă și Lite) ca principal punct de referință pentru compararea modelelor[7]. În plus, odată cu Verified au fost publicate evaluări ale dificultății sarcinilor (de exemplu, au fost identificate sarcini „ușoare", rezolvabile în <15 minute de către un om, și sarcini „dificile", care necesită >1 oră)[7], precum și un nou cadru de instrumente bazat pe Docker pentru rularea mai stabilă și reproductibilă a testelor[7].
- SWE-bench Multimodal — o extensie a benchmark-ului, prezentată în ianuarie 2025, incluzând sarcini în care descrierea problemei conține nu doar text, ci și elemente vizuale (de exemplu, imagini ale interfeței, capturi de ecran ale erorilor etc.)[8]. Acest set (517 sarcini[8]) verifică capacitatea modelelor și agenților de a înțelege și utiliza informația vizuală în rezolvarea sarcinilor de programare. Evaluarea pe setul multimodal este organizată similar, dar necesită din partea modelului capacități multi-modale (de exemplu, recunoașterea textului din imagini). Partea de testare a SWE-bench Multimodal a fost păstrată închisă (ascunsă) pentru a preveni adaptarea soluțiilor la răspunsurile cunoscute; dezvoltatorii pot trimite soluțiile pe un leaderboard la distanță pentru evaluarea modelelor lor pe aceste sarcini[2].
Pe lângă aceste variante principale, în jurul SWE-bench s-a format un ecosistem de instrumente: SWE-agent — un „agent"-rezolvator software cu sursă deschisă, care demonstrează rezultate de vârf pe sarcinile benchmark-ului[2]; SWE-smith — un framework pentru antrenarea propriilor modele-dezvoltator; SWE-REX — un instrument pentru extragerea și procesarea extinsă a informațiilor din repository-uri și altele. Aceste proiecte vizează simplificarea reproducerii rezultatelor și promovarea cercetărilor în domeniul sistemelor autonome de programare.
Rezultatele și progresul modelelor
La prima apariție, SWE-bench a evidențiat un decalaj semnificativ între modelele LLM contemporane și abilitățile programatorilor experimentați. Autorii raportau că până și cele mai puternice modele de la începutul anului 2023 rezolvau doar câteva procente din sarcini: de exemplu, modelul Claude 2 de la compania Anthropic rezolva cu succes mai puțin de 2% din sarcinile setului complet[1]. Modelul antrenat special de autorii benchmark-ului (bazat pe LLaMA, denumit SWE-Llama) și modelele proprietare de tipul GPT-4 puteau rezolva în principal doar cele mai simple erori[1]. Aceste metrici inițiale scăzute au subliniat dificultatea SWE-bench și au servit drept stimul pentru dezvoltarea unor noi abordări.
Pe parcursul anului 2024, pe măsură ce au apărut modele mai avansate și scheme agentice, rezultatele s-au îmbunătățit semnificativ. Cercetătorii de la Princeton au prezentat sistemul SWE-agent, care combină GPT-4 cu căutarea în cod, planificarea și alte instrumente; acesta a atins aproximativ 12,5% din sarcinile rezolvate pe setul complet, stabilind un nou punct de referință pentru modelele academice[5]. Până la mijlocul anului 2024, pe leaderboard-ul oficial SWE-bench, cele mai bune soluții (inclusiv cele proprietare) au atins circa 20% din rezolvările cu succes pe benchmark-ul complet și până la 43% pe setul simplificat Lite[7]. Această creștere este legată de îmbunătățirea modelelor (de exemplu, apariția GPT-4, Claude 2 și 3) și în special de dezvoltarea „scaffolding"-ului — strategii externe care permit modelului să descompună eficient sarcina în pași, să citească documentația, să ruleze sesiuni de depanare etc.[7].
După introducerea la sfârșitul anului 2024 a setului Verified (curățat de sarcinile incorecte), performanța măsurată a crescut și mai mult. Modelul GPT-4 (varianta GPT-4o) a obținut imediat circa 33% din rezolvările cu succes pe Verified față de ~16% anterior pe setul original[7]. Cele mai bune framework-uri deschise de agenți (de exemplu, Agentless) și-au dublat rezultatul de la ~16% la 32% pe Verified[7]. Aceasta a confirmat ipoteza că benchmark-ul original subevalua oarecum indicatorii din cauza prezenței unor cazuri nerezolvabile[7]. În același timp, îmbunătățirea rezultatelor pe Verified față de Lite nu este la fel de dramatică (cele mai bune modele ajunseseră deja la ~43% pe Lite), ceea ce este logic: Lite selecta inițial exemple mai ușoare, iar Verified a eliminat cele imposibil de executat, dar a păstrat sarcinile dificile[7]. Este important de menționat că creșterea indicatorilor la trecerea pe Verified s-a produs în toate categoriile de dificultate ale sarcinilor, nu doar prin eliminarea celor mai grele — adică filtrarea a curățat setul și de cazurile implicit neexecutabile printre sarcinile relativ simple[7].
La începutul anului 2025, sistemele IA de frunte demonstrează deja o eficiență apropiată de cea umană pe setul verificat de sarcini, deși plafonul de 100% este încă departe. În ianuarie 2025, compania Anthropic a anunțat că noul său model Claude 3.5 Sonnet, în combinație cu un agent îmbunătățit, a rezolvat 49% din sarcinile SWE-bench Verified[4], ocupând temporar primul loc. Marile companii tehnologice și echipele independente participă, de asemenea, activ la competiții neoficiale pe acest benchmark. Astfel, echipa CodeStory a dezvoltat o abordare multi-model cu explorare de variante („Midwit Agent"), care a atins un record de 62,2% din sarcinile rezolvate pe Verified (date de la începutul anului 2025)[5][9]. S-a remarcat că pentru aceasta a fost necesară o creștere substanțială a resurselor computaționale la etapa de inferență a modelului (așa-numitul inference time scaling), rulând multiple tentative de rezolvare și selectând cel mai bun rezultat[5]. La rândul său, în materialele OpenAI se menționa despre un sistem experimental GPT-03, care, cu o scalare suficientă a calculelor, ar fi reușit să depășească pragul de 70% pe Verified (date neoficiale)[5]. Cu toate acestea, verificarea independentă a acestor rezultate lipsește, iar un astfel de indicator ridicat rămâne mai degrabă un reper pentru cercetările viitoare decât o bară atinsă.
Conform unui studiu Microsoft Research (2025), chiar și cele mai noi modele, dotate cu instrumente de depanare, nu depășesc pragul de 50% din corecțiile de erori reușite din SWE-bench Lite[6]. În acest test, cel mai bun rezultat l-a obținut Claude 3.7 Sonnet cu ~48,4% din sarcinile rezolvate, în timp ce sistemul bazat pe GPT-4 (OpenAI 01) a rezolvat aproximativ 30%, iar modelul mai ușor 03-mini — doar 22%[6]. Aceste rezultate subliniază că, în ciuda progresului rapid, sistemele IA actuale sunt încă inferioare programatorilor experimentați: pentru un om, rezolvarea unor astfel de sarcini (cu o bună înțelegere a codului) nu reprezintă o dificultate, în timp ce modelul adesea nu știe să aplice eficient instrumentele de depanare sau suferă de lipsa datelor de antrenament care să reflecte procesul multi-pas de corectare a erorilor[6].
Limitări și perspective
SWE-bench a devenit o platformă standardizată pentru evaluarea agenților inteligenți de cod, însă cercetările au evidențiat și o serie de limitări ale sale. Principala problemă o constituie acoperirea incompletă a testelor: setul de teste de verificare pentru fiecare sarcină este preluat dintr-un pull request specific și include de obicei doar testele unitare care au fost modificate la corectarea erorii[3]. Așa cum a arătat analiza unui grup de cercetători de la Universitatea Zhejiang și Universitatea Stuttgart (Wang et al. 2025), ignorarea celorlalte teste ale proiectului poate ascunde incorectitudinea unor soluții[3]. Reverificarea soluțiilor pe setul complet de teste al repository-ului a evidențiat că în medie 7,8% din patch-urile marcate ca reușite în SWE-bench de fapt nu trec alte teste din proiect[3]. Aceasta duce la supraevaluarea metricii „sarcini rezolvate" cu aproximativ 4-6 puncte procentuale[3]. Un caz și mai subtil apare atunci când patch-ul generat trece toate testele originale, dar este neechivalent cu soluția dezvoltatorului și modifică comportamentul programului altfel decât se așteptase. Prin generarea de cazuri de test suplimentare (metodologia PatchDiff), cercetătorii au constatat că aproape 30% din corecțiile propuse de IA se comportă diferit față de patch-urile de referință, iar circa 11% sunt în mod cert eronate, deși nu sunt detectate de testele existente[3]. Astfel, capacitățile reale ale modelelor pot fi supraevaluate dacă ne bazăm exclusiv pe trecerea unui set limitat de teste. Creatorii SWE-bench recunosc această vulnerabilitate și subliniază că benchmark-ul trebuie să evolueze în timp: să se îmbunătățească acoperirea testelor, să se adauge verificări pentru absența efectelor secundare nedorite, să se extindă setul de tipuri de sarcini[7]. Dezvoltarea unor astfel de mijloace de evaluare reprezintă o parte importantă din pregătirea pentru apariția unor dezvoltatori IA din ce în ce mai autonomi și mai puternici, iar experiența cu SWE-bench demonstrează necesitatea unei atenții sporite față de calitatea benchmark-urilor[7].
SWE-bench, fiind doar un set static de sarcini, nu acoperă absolut toate aspectele programării, dar a devenit deja un standard de facto pentru analiza comparativă a modelelor de cod[3]. Este utilizat în lucrările științifice pentru demonstrarea unor noi metode și algoritmi, precum și de grupuri de cercetare industriale pentru evaluarea potențialului sistemelor destinate automatizării programării[3]. Creșterea continuă a rezultatelor pe SWE-bench în perioada 2023-2025 demonstrează în mod evident îmbunătățirea rapidă a capacităților LLM în rezolvarea sarcinilor practice de dezvoltare. Totodată, servește ca barometru al complexității: chiar și apropiindu-se de 50-60% din sarcinile rezolvate, modelele sunt în continuare departe de a înlocui complet un om, mai ales în condiții de informație limitată și cu necesitatea unei înțelegeri fine a cerințelor[4][7]. Cu toate acestea, progresul nu se oprește — datorită unor inițiative ca SWE-bench, comunitatea își vede clar obiectivele și limitările și continuă să se îndrepte spre crearea unui dezvoltator IA complet funcțional, capabil să înțeleagă și să corecteze autonom codul sursă la nivelul unui expert uman[4][7].
Referințe
- SWE-bench pe GitHub
- Leaderboard-ul oficial SWE-bench
Bibliografie
- 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.
Note
- ↑ 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]