nouvelles

En tête de liste des ingénieurs logiciels d'IA open source, la solution sans agent de l'UIUC résout de vrais problèmes de programmation

2024-07-15

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

La rubrique AIxiv est une rubrique dans laquelle Machine Heart publie du contenu académique et technique. Au cours des dernières années, la rubrique Heart of the Machine AIxiv a reçu plus de 2 000 rapports, couvrant les meilleurs laboratoires des principales universités et entreprises du monde entier, favorisant efficacement les échanges et la diffusion académiques. Si vous souhaitez partager un excellent travail, n'hésitez pas à contribuer ou à nous contacter pour un rapport. Courriel de soumission : [email protected] ; [email protected] ;

Les auteurs de cet article font tous partie de l'équipe du professeur Zhang Lingming de l'Université de l'Illinois à Urbana-Champaign (UIUC), dont : Steven Xia, un doctorant de quatrième année, dont la direction de recherche est la réparation automatique de code basée sur l'IA grande modèles ; Deng Yinlin, doctorant de quatrième année, dont la direction de recherche est la génération de code basée sur de grands modèles d'IA ; Soren Dunn, stagiaire en recherche scientifique, actuellement étudiant junior à l'UIUC ; L'enseignant Zhang Lingming est actuellement professeur agrégé au Département d'informatique de l'UIUC, principalement engagé dans la recherche liée au génie logiciel, à l'apprentissage automatique et aux grands modèles de code.

Pour des informations plus détaillées, veuillez visiter la page d'accueil personnelle du professeur Zhang : https://lingming.cs.illinois.edu/

Depuis que Devin (le premier ingénieur logiciel d'IA entièrement automatique) a été proposé, la conception d'un agent AI pour l'ingénierie logicielle est devenue le centre de recherche. De plus en plus d'ingénieurs logiciels automatiques d'IA basés sur des agents ont été proposés et ont obtenu des résultats sur le banc SWE. ensemble de données. Il a obtenu de bonnes performances et a automatiquement résolu de nombreux problèmes réels avec GitHub.

Cependant, un système d'agent complexe entraînera une surcharge et une incertitude supplémentaires. Avons-nous vraiment besoin d'utiliser un agent aussi complexe pour résoudre les problèmes de GitHub ? Les solutions qui ne s'appuient pas sur des agents peuvent-elles se rapprocher de leurs performances ?

Partant de ces deux problèmes, l'équipe du professeur Zhang Lingming de l'Université de l'Illinois à Urbana-Champaign (UIUC) a proposé OpenAutoCoder-Agentless, une solution sans agent simple, efficace et entièrement open source qui peut résoudre un véritable problème GitHub pour seulement 0,34 $. Agentless a attiré plus de 300 stars de GitHub sur GitHub en quelques jours seulement et s'est classé parmi les trois premiers de la liste hebdomadaire des articles ML les plus en vogue de DAIR.AI.



Suivant : AGENTLESS : Démystifier les agents d'ingénierie logicielle basés sur LLM

Adresse papier : https://huggingface.co/papers/2407.01489

Code source ouvert : https://github.com/OpenAutoCoder/Agentless

Leo Boytsov, chercheur scientifique chez AWS, a déclaré : « Le framework sans agent a surpassé toutes les solutions d'agent open source et a presque atteint le niveau le plus élevé dans SWE Bench Lite (27 %). De plus, il a battu toutes les solutions open source à un coût nettement inférieur. L'approche de requête hiérarchique (poser des questions LLM pour trouver des fichiers, des classes, des fonctions, etc.) exploite LLM mais ne permet pas à LLM de prendre des décisions de planification.



Le sans agent est une approche automatisée des problèmes de développement logiciel qui utilise une approche simple en deux phases pour localiser et corriger les bogues dans votre base de code. Lors de la phase de localisation, Agentless utilise une approche hiérarchique pour se limiter progressivement aux fichiers, classes/fonctions et emplacements d'édition spécifiques suspects. Pour la réparation, il utilise un simple format de diff (référencé à partir de l'outil open source Aider) pour générer plusieurs correctifs candidats, les filtrer et les trier.



Les chercheurs ont comparé Agentless aux agents logiciels d’IA existants, y compris les projets open source et commerciaux/fermés de pointe. Étonnamment, Agentless peut surpasser tous les agents logiciels open source existants à moindre coût ! Le sans agent résout 27,33 % des problèmes, le plus élevé parmi les solutions open source, et ne coûte que 0,29 $ en moyenne pour résoudre chaque problème, et ne coûte qu'environ 0,34 $ en moyenne pour tous les problèmes (y compris les problèmes résolubles et non résolus).



Non seulement cela, mais le mode sans agent a le potentiel de s'améliorer. Le mode sans agent peut résoudre 41 % des problèmes en considérant tous les correctifs générés, une limite supérieure qui indique une marge d'amélioration significative dans les étapes de tri et de sélection des correctifs. De plus, Agentless est capable de résoudre certains problèmes uniques que même le meilleur outil commercial (Alibaba Lingma Agent) ne peut pas résoudre, ce qui suggère qu'il peut être utilisé en complément des outils existants.



Analyse de l'ensemble de données SWE-bench Lite

Les chercheurs ont également effectué une inspection manuelle et une analyse détaillée de l’ensemble de données SWE-bench Lite.

L'étude a révélé que 4,3 % des problèmes dans l'ensemble de données SWE-bench Lite donnaient des réponses complètes directement dans la description du problème, qui est le correctif correct. Les 10 % restants décrivent les étapes exactes menant à la bonne solution. Cela suggère que certains problèmes dans SWE-bench Lite peuvent être plus faciles à résoudre.

De plus, l'équipe de recherche a observé que 4,3 % des problèmes incluaient des solutions proposées par les utilisateurs ou des étapes dans la description du problème, mais que ces solutions n'étaient pas cohérentes avec les correctifs réels des développeurs. Cela révèle en outre un problème potentiel avec ce benchmark, car ces solutions trompeuses peuvent amener l'outil d'IA à générer des solutions incorrectes simplement en suivant la description du problème.

En termes de qualité de description des problèmes, les chercheurs ont observé que même si la plupart des tâches de SWE-bench Lite contiennent suffisamment d'informations et que de nombreuses tâches fournissent également des exemples d'échecs pour reproduire les erreurs, il reste encore 9,3 % des problèmes qui n'incluent pas suffisamment d'informations. Par exemple, vous devez implémenter une nouvelle fonction ou ajouter un message d'erreur, mais le nom de la fonction spécifique ou la chaîne du message d'erreur spécifique n'est pas indiqué dans la description du problème. Cela signifie que même si la fonctionnalité sous-jacente est correctement implémentée, le test échouera si le nom de la fonction ou la chaîne du message d'erreur ne correspond pas exactement.



Des chercheurs de l'Université de Princeton et l'un des auteurs de SWE-bench ont confirmé leurs conclusions à Ofir Press : « Agentless a effectué une belle analyse manuelle de SWE-bench Lite. Ils pensent que le score maximum théorique sur Lite pourrait être de 90,7 %. la limite supérieure réelle est probablement inférieure (environ 80 %). Certaines questions contiennent des informations insuffisantes et d’autres sont trop strictes.



SWE-bench Lite-S : un sous-ensemble de problèmes strict et filtré

En réponse à ces problèmes, les chercheurs ont proposé un sous-ensemble de problèmes strict SWE-bench Lite-S (contenant 252 questions). Plus précisément, nous avons exclu de SWE-bench Lite (contenant 300 questions) les questions qui contenaient des correctifs exacts, des solutions trompeuses ou ne fournissaient pas suffisamment d'informations dans la description du problème. Cela supprime les questions déraisonnables et standardise le niveau de difficulté du benchmark. Par rapport au SWE-bench Lite original, le benchmark filtré reflète plus précisément les véritables capacités des outils de développement logiciel automatisés.

Conclusion

Bien que le développement de logiciels basés sur des agents soit très prometteur, les auteurs estiment qu'il est temps pour la communauté technologique et de recherche de s'arrêter et de réfléchir à ses principales méthodes de conception et d'évaluation, plutôt que de se précipiter pour publier davantage d'agents. Les chercheurs espèrent que le mode sans agent pourra aider à réinitialiser les bases et l’orientation des futurs agents de génie logiciel.