Pour gérer vos consentements :

AutoDev : GPT-4 en agent autonome de développement logiciel

Vers des systèmes de développement logiciel totalement autonomes, tests et validations compris ? Microsoft y tend avec AutoDev.

Six de ses chercheurs ont développé ce framework qui s’inspire notamment d’Auto-GPT, de LATS et de Reflexion.

Auto-GPT associe GPT-3.5 et GPT-4 à un « bot compagnon » qui s’appuie sur eux pour réaliser les étapes nécessaires à l’accomplissement d’un objectif.
Le framework LATS (Language Agent Tree Search) exploite l’algorithme de recherche arborescente Monte-Carlo pour mutualiser les capacités de planification, de raisonnement et d’action de LLM.
La méthode Reflexion établit un système de « feedback linguistique » sans modification de poids : un agent réfléchit verbalement à partir de signaux et conserve cette réflexion dans une mémoire épisodique.

AutoDev synthétise ces éléments et les adapte au développement logiciel en les intégrant dans le flux des IDE. Il se compose de quatre grandes briques : un gestionnaire de conversation, une bibliothèque d’outils, un planificateur d’agents et un environnement d’évaluation.

AutoDev s’appuie sur Docker…

Les règles du système (nombre d’agents, responsabilités, commandes qui leur sont accessibles…) se configurent par des fichiers YAML.

Une fois l’objectif défini, le gestionnaire de conversation prend le relais. Il interprète les réponses que génèrent les agents, en extrayant commandes et arguments. Puis il les valide (syntaxe, sémantique, respect des permissions…) et, le cas échéant, invoque la bibliothèque d’outils pour déclencher les actions correspondantes.

Les résultats de l’évaluation (dans un environnement Docker) reviennent vers le gestionnaire de conversation. Celui-ci sélectionne les éléments importants, les résume éventuellement et ajoute un message structuré à la conversation, garantissant une forme d’explicabilité.

La boucle reprend jusqu’à ce que le gestionnaire détermine qu’il peut conclure la conversation. Cela peut se produire lorsqu’un agent signale que la tâche est accomplie. Mais aussi quand des problèmes sont détectés ou qu’on a atteint le nombre maximal d’itérations ou de tokens autorisé.

Le planificateur utilise trois algorithmes :

– Round-Robin (invocation séquentielle des agents, chacun pouvant exécuté un nombre prédéterminé d’opérations)
– Basé sur les tokens (un agent peut effectuer des opérations jusqu’à ce qu’il émette un token signifiant qu’il a accompli une tâche)
– Basé sur un ordre de priorité prédéfini

La bibliothèque d’outils donne accès à des commandes :

– D’édition (write, edit, insert, delete)
– De récupération (grep, find, ls)
– De build, run, test et validation
– D’opérations Git (commit, push, merge)
– De communication (talk pour envoyer des messages ; ask pour demander du feedback utilisateur)

… et sur GPT-4

L’évaluation des performances d’AutoDev s’est faite à partir du benchmark HumanEval. Celui-ci regroupe 164 problèmes contenant chacun une signature de fonction, un docstring et des tests unitaires (7,7 en moyenne).

Pour évaluer les performances en génération de code, on fournit à AutoDev un fichier contenant signature et docstring, l’objectif étant d’implémenter la méthode.
Pour la génération de tests, on enlève ceux du dataset et on demande à AutoDev de les recréer.

Les équipes de Microsoft ont opté pour une comparaison avec les méthodes LATS et Reflexion, en reprenant les données du leaderboard HumanEval. Ils y ont ajouté une baseline GPT-4 – issue du rapport technique d’OpenAI pour la partie code et déterminée à la main pour la partie test.

L’évaluation se fait avec une seule commande de communication : stop, avec laquelle un agent peut signaler qu’il a accompli une tâche. Donc sans feedback humain. Les résultats sont pris à la première tentative (Pass @1).

Combien ça coûte en tokens ?

La génération de code implique en moyenne 5,5 commandes, pour une conversation de 1656 tokens. Ces valeurs sont un peu plus élevées pour la génération de tests (environ 6,5 commandes et 1863 tokens).
Pour comparaison, la baseline GPT-4 consomme 200 tokens en génération de code et 373 en génération de tests. C’est l’environnement d’exécution qui entraîne les plus gros coûts de fonctionnement pour AutoDev. Exécuter les commandes CLI dans l’environnement utilisateur aurait économisé des ressources, mais les chercheurs ont privilégié la sécurité.

Le nombre un peu plus élevé d’actions nécessaires pour générer des tests tient, en particulier, à l’invocation de commandes indisponibles ou au format incorrect. La raison : une tendance des agents à mélanger langage naturel, code et commandes.

Vu la relative simplicité du dataset HumanEval, l’expérimentation s’est limitée à un seul agent GPT-4. On nous assure toutefois que « des résultats préliminaires indiquent l’impact positif d’une collaboration multiagents », Entre autres par l’implication d’un modèle réviseur, capable de suggérer des modifications au modèle développeur avant l’exécution de la validation.

En l’état, AutoDev s’utilise comme commande CLI, la conversation étant accessible dans VS Code. L’idée est d’intégrer complètement le système dans les IDE, sous forme de chatbot. Puis de viser l’intégration dans les pipelines CI/CD et les outils de révision de PR.

Illustration principale © Siqarus – Adobe Stock

Recent Posts

Cybersécurité : Darktrace dans l’escarcelle de Thoma Bravo

La société britannique de cybersécurité Darktrace a accepté une offre de rachat de 5,32 milliards…

7 heures ago

Étude Trends of IT 2024 : comment les managers IT développent leurs projets

Silicon et KPMG lancent la deuxième édition de l'étude Trends of IT. Cette édition 2024…

9 heures ago

Atos : l’Etat veut acquérir les activités souveraines

Le ministère de l'économie a adressé une lettre d'intention à la direction d'Atos pour racheter…

11 heures ago

Arnaud Monier – SNCF Connect & Tech : « Notre moteur, c’est l’innovation et nous procédons par incrémentation »

Directeur Technologie de SNCF Connect & Tech, Arnaud Monier lance une campagne de recrutement pour…

13 heures ago

Etats-Unis : les grands de l’IT licencient au nom de l’IA

Les grands de l'IT suppriment des milliers de jobs au nom du déploiement de. Une…

13 heures ago

Appel de Rome : Cisco rejoint Microsoft et IBM pour une IA éthique

Quatre ans après l’appel de Rome - un pacte présenté en 2020 par le Vatican…

14 heures ago