SWE-bench (benchmark) (FR)

From Systems analysis wiki
Jump to navigation Jump to search

SWE-bench est un benchmark (ensemble de tâches de test) à grande échelle pour évaluer les capacités des grands modèles de langage (LLM) dans les domaines du développement logiciel automatisé et du débogage de logiciels[1]. Il a été développé par un groupe de chercheurs de l'Université de Princeton et d'autres organisations, et présenté à la conférence ICLR 2024[2]. SWE-bench se distingue des benchmarks de code traditionnels par son utilisation de tâches réelles issues de la pratique du développement : l'ensemble de test comprend 2294 tâches basées sur des problèmes clos (issues) et des correctifs correspondants (pull requests) provenant de 12 dépôts Python open source populaires sur GitHub[1][3]. Chaque tâche contient la description d'un problème (issue) et fournit au modèle un accès au code source du projet correspondant ; l'objectif du modèle est de générer les modifications minimales dans la base de code (un patch) qui corrigent le problème spécifié[1][3].

Méthodologie et spécificités de l'évaluation

SWE-bench simule un processus de développement logiciel réel. Pour chaque tâche, le modèle reçoit le texte de l'issue GitHub originale (description du problème) et un instantané du code du dépôt dans sa version antérieure à l'application du correctif[4]. Le modèle (ou un agent basé sur le modèle) doit analyser le code source, comprendre la nature de l'erreur ou de la modification requise, et apporter des corrections aux fichiers de code appropriés pour résoudre le problème[4][5]. La validation de la solution est automatisée : chaque tâche est associée à des tests unitaires réels issus du pull request qui a résolu le problème. Parmi eux, on trouve des tests « fail-to-pass » (qui échouent sur le code original mais doivent réussir après l'application du correctif), ainsi que des tests de régression (pass-to-pass, qui réussissent initialement et doivent continuer à réussir après les modifications)[3]. Le patch proposé par le modèle est appliqué au code, puis les tests correspondants sont exécutés : si tous les tests fail-to-pass réussissent et que les tests pass-to-pass ne sont pas cassés, la tâche est considérée comme résolue correctement[3]. Cette approche d'évaluation permet de vérifier non seulement la capacité du modèle à générer du code syntaxiquement correct, mais aussi sa compétence à résoudre réellement le problème posé sans introduire de régressions. Pour ce faire, le modèle doit gérer un contexte large (un dépôt de code entier), comprendre les interdépendances entre les composants et coordonner les modifications dans plusieurs fichiers simultanément[1] — ce qui est considérablement plus complexe que les tâches typiques d'écriture de fonction à partir d'une description.

Dans les évaluations SWE-bench, ce ne sont généralement pas les LLM eux-mêmes qui sont testés, mais des systèmes d'agents qui encapsulent le modèle avec des outils auxiliaires (par exemple, pour la navigation dans les fichiers, l'exécution de code, l'utilisation d'un débogueur, etc.)[4][6]. Un tel système imite un cycle de développement réel : le modèle peut examiner séquentiellement des fichiers, exécuter des tests ou des scripts, et améliorer progressivement sa solution jusqu'à obtenir un résultat concluant[4]. Il est révélateur que l'efficacité de la résolution des tâches de SWE-bench dépende en grande partie de la qualité de ce « scaffolding » (l'infrastructure de l'agent) : les mêmes modèles de base peuvent obtenir des résultats différents en fonction de la manière dont l'interaction avec le dépôt et les outils est organisée[4][7]. Ainsi, SWE-bench sert à mesurer les capacités combinées d'un modèle et de sa stratégie de résolution de problèmes, rapprochant l'évaluation des conditions de travail réelles d'un développeur IA autonome[4][7].

Variantes de l'ensemble de tâches

Les auteurs de SWE-bench et la communauté ont par la suite introduit plusieurs ensembles de données dérivés pour divers objectifs d'évaluation :

  • SWE-bench Lite — une version allégée du benchmark, comprenant ~300 tâches[8], sélectionnées pour réduire la complexité et les coûts de calcul des tests de modèles. Ce sous-ensemble a été créé pour une expérimentation rapide avec les modèles et exclut les validations les plus coûteuses, tout en conservant une représentativité des problèmes principaux[7]. Essentiellement, Lite contient des tâches de correction de bugs plus simples et plus courtes, et les performances des modèles sur Lite sont généralement plus élevées que sur l'ensemble complet, en raison de l'exclusion des cas les plus difficiles[7].
  • SWE-bench Verified — un sous-ensemble filtré par vérification manuelle, présenté en août 2024 en collaboration avec OpenAI[7]. Les chercheurs ont fait appel à 93 développeurs professionnels pour analyser chaque tâche du benchmark original et ont exclu les cas où la description du problème était trop vague ou où le comportement attendu par les tests ne découlait pas explicitement de l'énoncé de la tâche[7]. Les tâches impossibles à résoudre en pratique en raison de problèmes d'environnement ou de tests incorrects ont également été retirées[7]. Le résultat est un ensemble de 500 tâches garanties comme étant solvables et correctement formulées[7]. SWE-bench Verified vise à fournir une évaluation plus fiable des capacités des modèles en éliminant les cas où une solution, même correcte, est rejetée en raison de l'inadéquation des tests ou de la tâche[7]. Cet ensemble a remplacé les échantillons de test originaux de SWE-bench (complet et Lite) comme principale référence pour la comparaison des modèles[7]. De plus, avec Verified, des évaluations de la difficulté des tâches ont été publiées (par exemple, en distinguant les tâches « faciles », résolues en <15 minutes par un humain, des tâches « difficiles », nécessitant >1 heure)[7], et un nouveau cadre d'outils basé sur Docker a été mis à disposition pour une exécution des tests plus stable et reproductible[7].
  • SWE-bench Multimodal — une extension du benchmark, présentée en janvier 2025, incluant des tâches où la description du problème contient non seulement du texte, mais aussi des éléments visuels (par exemple, des images d'interface, des captures d'écran d'erreurs, etc.)[8]. Cet ensemble (517 tâches[8]) teste la capacité des modèles et des agents à comprendre et à utiliser des informations visuelles pour résoudre des problèmes de programmation. L'évaluation sur l'ensemble multimodal est organisée de manière similaire, mais requiert des capacités multimodales du modèle (par exemple, la reconnaissance de texte dans les images). La partie test de SWE-bench Multimodal est privée (cachée) pour éviter le surapprentissage des solutions ; les développeurs peuvent soumettre leurs solutions à un leaderboard distant pour évaluer leurs modèles sur ces tâches[2].

Outre ces principales variations, un écosystème d'outils s'est formé autour de SWE-bench : SWE-agent, un « agent » solveur open source affichant des résultats de pointe sur les tâches du benchmark[2] ; SWE-smith, un framework pour l'entraînement de modèles-développeurs personnalisés ; SWE-REX, un outil pour l'extraction et le traitement étendus d'informations à partir des dépôts, et d'autres encore. Ces projets visent à simplifier la reproductibilité des résultats et à faire progresser la recherche dans le domaine des systèmes de programmation autonomes.

Résultats et progrès des modèles

Lors de sa première publication, SWE-bench a révélé un écart important entre les LLM de pointe et les compétences des programmeurs expérimentés. Les auteurs ont rapporté que même les modèles les plus puissants de début 2023 ne parvenaient à résoudre que quelques pourcents des tâches : par exemple, le modèle Claude 2 de la société Anthropic réussissait moins de 2 % des tâches de l'ensemble complet[1]. Un modèle spécifiquement entraîné par les auteurs du benchmark (basé sur LLaMA et nommé SWE-Llama) et des modèles propriétaires comme GPT-4 ne pouvaient résoudre principalement que les erreurs les plus simples[1]. Ces faibles métriques initiales ont souligné la difficulté de SWE-bench et ont stimulé le développement de nouvelles approches.

Au cours de l'année 2024, avec l'émergence de modèles et de schémas d'agents plus avancés, les résultats se sont considérablement améliorés. Des chercheurs de Princeton ont présenté le système SWE-agent, qui combine GPT-4 avec une recherche de code, une planification et d'autres outils ; il a atteint environ 12,5 % de tâches résolues sur l'ensemble complet, établissant une nouvelle référence pour les modèles académiques[5]. À la mi-2024, sur le leaderboard officiel de SWE-bench, les meilleures solutions (y compris propriétaires) atteignaient environ 20 % de réussite sur le benchmark complet et jusqu'à 43 % sur l'ensemble simplifié Lite[7]. Cette croissance est liée à l'amélioration des modèles (par exemple, l'arrivée de GPT-4, Claude 2 et 3) et surtout au développement du « scaffolding » — des stratégies externes permettant au modèle de décomposer efficacement une tâche en étapes, de lire la documentation, de lancer des sessions de débogage, etc.[7].

Après l'introduction fin 2024 de l'ensemble Verified (nettoyé des tâches incorrectes), les performances mesurées ont encore augmenté. Le modèle GPT-4 (la variante GPT-4o) a immédiatement montré environ 33 % de solutions réussies sur Verified, contre ~16 % auparavant sur l'ensemble original[7]. Les meilleurs frameworks-agents open source (par exemple, Agentless) ont doublé leur score, passant de ~16 % à 32 % sur Verified[7]. Cela a confirmé l'hypothèse que le benchmark original sous-estimait quelque peu les performances en raison de la présence de cas insolubles[7]. Parallèlement, l'amélioration des résultats sur Verified par rapport à Lite n'est pas aussi spectaculaire (les meilleurs modèles atteignaient déjà ~43 % sur Lite), ce qui est logique : Lite sélectionnait initialement des exemples plus faciles, tandis que Verified a supprimé les tâches irréalisables tout en conservant les tâches complexes[7]. Il est important de noter que l'augmentation des performances lors du passage à Verified s'est produite dans toutes les catégories de difficulté de tâches, et non seulement en éliminant les plus difficiles — le filtrage a donc également débarrassé l'ensemble de cas secrètement irréalisables parmi des tâches relativement simples[7].

Début 2025, les systèmes d'IA de pointe démontrent une efficacité proche de celle de l'homme sur l'ensemble de tâches vérifié, bien que le plafond de 100 % soit encore loin. En janvier 2025, la société Anthropic a annoncé que son nouveau modèle Claude 3.5 Sonnet, associé à un agent amélioré, avait résolu 49 % des tâches de SWE-bench Verified[4], prenant temporairement la première place. Les grandes entreprises technologiques et les équipes indépendantes participent également activement à des compétitions non officielles sur ce benchmark. Par exemple, l'équipe CodeStory a développé une approche multi-modèles avec une exploration de variantes (« Midwit Agent »), qui a atteint un record de 62,2 % de tâches résolues sur Verified (données de début 2025)[5][9]. Il a été noté que cela a nécessité une augmentation substantielle des ressources de calcul lors de l'inférence du modèle (appelée inference time scaling), en lançant de nombreuses tentatives de résolution et en sélectionnant le meilleur résultat[5]. De son côté, des documents d'OpenAI ont mentionné un système expérimental, GPT-03, qui, avec une mise à l'échelle suffisante des calculs, aurait réussi à dépasser le seuil de 70 % sur Verified (données non officielles)[5]. Cependant, il n'existe aucune vérification indépendante de ces résultats, et un score aussi élevé reste davantage un objectif pour les recherches futures qu'un jalon atteint.

Selon une étude de Microsoft Research (2025), même les modèles les plus récents, équipés d'outils de débogage, ne dépassent toujours pas le seuil de 50 % de corrections de bugs réussies sur SWE-bench Lite[6]. Dans ce test, Claude 3.7 Sonnet s'est avéré le meilleur avec ~48,4 % de tâches résolues, tandis qu'un système basé sur GPT-4 (OpenAI 01) en a résolu environ 30 %, et le modèle plus léger 03-mini seulement 22 %[6]. Ces résultats soulignent que, malgré des progrès rapides, l'IA actuelle reste inférieure aux programmeurs expérimentés : pour un humain, la résolution de telles tâches (avec une compréhension du code) ne présente pas de difficultés, alors que le modèle a souvent du mal à appliquer efficacement les outils de débogage ou souffre d'un manque de données d'entraînement reflétant le processus multi-étapes de correction des erreurs[6].

Limites et perspectives

SWE-bench est devenu une plateforme standardisée pour l'évaluation des agents de code intelligents, mais la recherche a également mis en évidence certaines de ses limites. Le principal problème est le caractère incomplet des tests : l'ensemble de tests de vérification pour chaque tâche est tiré du pull request spécifique et n'inclut généralement que les tests unitaires qui ont été modifiés lors de la correction de l'erreur[3]. Comme l'a montré une analyse menée par un groupe de scientifiques de l'Université du Zhejiang et de l'Université de Stuttgart (Wang et al., 2025), ignorer les autres tests du projet peut masquer l'inexactitude de certaines solutions[3]. Une nouvelle vérification des solutions sur l'ensemble complet des tests du dépôt a révélé qu'en moyenne, 7,8 % des patchs marqués comme réussis dans SWE-bench ne passent en réalité pas d'autres tests du projet[3]. Cela conduit à une surestimation de la métrique « tâches résolues » d'environ 4 à 6 points de pourcentage[3]. Un cas encore plus subtil est celui où un patch généré passe tous les tests initiaux, mais n'est pas équivalent à la solution du développeur et modifie le comportement du programme d'une manière inattendue. En utilisant la génération de cas de test supplémentaires (méthode PatchDiff), les chercheurs ont découvert que près de 30 % des correctifs proposés par l'IA se comportent différemment des patchs de référence, et qu'environ 11 % sont clairement erronés, bien que non détectés par les tests existants[3]. Ainsi, les capacités réelles des modèles peuvent être surestimées si l'on se fie uniquement à la réussite d'un ensemble limité de tests. Les créateurs de SWE-bench reconnaissent cette vulnérabilité et soulignent que le benchmark doit évoluer avec le temps : améliorer la couverture des tests, ajouter des vérifications sur l'absence d'effets secondaires indésirables, et élargir la gamme des types de tâches[7]. Le développement de tels outils d'évaluation est une partie importante de la préparation à l'émergence de développeurs IA de plus en plus autonomes et puissants, et l'expérience avec SWE-bench montre la nécessité d'une attention particulière à la qualité des benchmarks[7].

Bien que SWE-bench, en tant qu'ensemble statique de tâches, ne couvre pas absolument tous les aspects de la programmation, il est devenu un standard de facto pour l'analyse comparative des modèles de code[3]. Il est utilisé dans des travaux scientifiques pour démontrer de nouvelles méthodes et algorithmes, ainsi que par des groupes de recherche industriels pour évaluer le potentiel des systèmes destinés à automatiser la programmation[3]. La croissance constante des résultats sur SWE-bench entre 2023 et 2025 démontre de manière éclatante l'amélioration rapide des capacités des LLM à résoudre des problèmes pratiques de développement. En même temps, il sert de baromètre de la complexité : même en approchant les 50-60 % de tâches résolues, les modèles sont encore loin de pouvoir remplacer entièrement un humain, en particulier dans des conditions d'information limitée et de nécessité d'une compréhension fine des exigences[4][7]. Néanmoins, le progrès ne s'arrête pas — grâce à des initiatives comme SWE-bench, la communauté voit clairement ses objectifs et ses limites, et continue d'avancer vers la création d'un développeur IA à part entière, capable de comprendre et de corriger de manière autonome du code logiciel au niveau d'un expert humain[4][7].

Liens

Littérature

  • 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.

Notes

  1. 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. 2.0 2.1 2.2 «SWE-bench/SWE-bench». GitHub. [2]
  3. 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. 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. 5.0 5.1 5.2 5.3 5.4 Jain, Sulbha. «SWE Benchmark: LLM evaluation in Software Engineering Setting». Medium. [5]
  6. 6.0 6.1 6.2 6.3 Hatmaker, Taylor. «AI models still struggle to debug software, Microsoft study shows». TechCrunch. [6]
  7. 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. 8.0 8.1 8.2 «SWE-bench Leaderboard». [8]
  9. «SOTA on swebench-verified: relearning the bitter lesson». Hacker News (Y Combinator). [9]

Category:Artificial intelligence