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

IA générative : l’Autorité de la concurrence pointe de sérieux risques

Dans un avis consultatif, l'Autorité de la concurrence a identifié les risques concurrentiels liés à…

2 jours ago

OpenAI signe un accord de contenu avec Time

OpenAI signe un « partenariat de contenu stratégique » avec Time pour accéder au contenu…

2 jours ago

Atos : David Layani (Onepoint) veut sortir du capital

Au lendemain du rejet de sa proposition de restructuration, David Layani annonce sa démission du…

2 jours ago

Évaluer les LLM, un défi : le cas Hugging Face

Après un an, Hugging Face a revu les fondements de son leaderboard LLM. Quels en…

3 jours ago

Mozilla face au dilemme de la GenAI dans Firefox

Mozilla commence à expérimenter divers LLM dans Firefox, en parallèle d'autres initiatives axées sur l'intégration…

3 jours ago

VMware tente d’orienter vers VCF les déploiements pré-Broadcom

VMware met VCF à jour pour y favoriser la migration des déploiements qui, sur le…

4 jours ago