- Introduction
- DIDACT : Formation de modèles d’IA basés sur les données de développement logiciel
- Les avantages de DIDACT pour les ingénieurs logiciels de Google
- Les fonctionnalités de DIDACT pour faciliter les activités de génie logiciel
- Le potentiel de DIDACT pour générer du code à partir de zéro
- Conclusion
Introduction
Dans le domaine du génie logiciel, la création d’un logiciel ne se fait pas d’un seul coup, mais étape par étape, jusqu’à ce qu’il soit prêt à être intégré dans un référentiel de code. Cela implique des tâches telles que l’édition, l’exécution des tests unitaires, la correction des erreurs de compilation, la réponse aux commentaires de révision de code, etc. Pour faciliter ces activités, Google AI a développé DIDACT, une technique permettant de former de grands modèles d’apprentissage automatique (ML) dans le contexte du génie logiciel.
DIDACT : Formation de modèles d’IA basés sur les données de développement logiciel
DIDACT se distingue des approches traditionnelles d’apprentissage automatique en utilisant les données de développement logiciel final et de l’ensemble du processus de développement. En exposant le modèle à ces données, il peut apprendre la dynamique du développement logiciel et se rapprocher des méthodes de travail des développeurs.
Pour collecter une quantité significative de données d’activité des développeurs, l’équipe de Google utilise l’instrumentation de développement logiciel de Google, permettant d’obtenir une variété et un volume de données bien supérieurs aux recherches précédentes.
Les avantages de DIDACT pour les ingénieurs logiciels de Google
Les ingénieurs logiciels de Google peuvent tirer parti des modèles d’apprentissage automatique de DIDACT, qui se basent sur les interactions entre les ingénieurs et les outils de développement pour proposer des suggestions et améliorations des actions effectuées lors des projets de génie logiciel.
L’équipe a défini un ensemble de tâches basées sur les actions d’un seul développeur, telles que la correction d’une compilation échouée, la prévision et la réponse à un commentaire de révision de code, le renommage d’une variable, la modification d’un fichier, etc. Chaque tâche est abordée selon le même formalisme, qui accepte un état (un fichier de code), une intention (des annotations spécifiques au travail, y compris des commentaires de révision de code ou des erreurs de compilation) et renvoie une action (la solution réelle au problème).
Ce formalisme permet de représenter de manière générique différentes tâches et utilise un langage de script appelé “DevScript” pour les implémenter. Le “DevScript” inclut des fonctionnalités telles que le formatage du code, les commentaires, le renommage des variables, la mise en évidence des erreurs, etc.
Les fonctionnalités de DIDACT pour faciliter les activités de génie logiciel
DIDACT offre de bonnes performances pour les activités d’assistance ponctuelles. En exploitant son caractère multimodal, DIDACT peut également proposer des fonctionnalités inattendues qui évoquent des comportements à plus grande échelle. Par exemple, l’amélioration de l’historique permet au modèle de fournir des recommandations plus informées aux développeurs en se basant sur leurs actions précédentes. L’autocomplétion de code améliorée par l’historique est un exemple efficace de tâche démontrant ce potentiel.
La capacité du modèle à déduire les prochaines étapes appropriées dans l’édition vidéo est grandement améliorée par la disponibilité du contexte. En se basant sur les modifications précédentes, le modèle peut décider où effectuer la prochaine édition, rendant ainsi les prédictions d’édition plus puissantes en s’appuyant sur l’historique.
Par exemple, lorsqu’un développeur supprime un paramètre de fonction, le modèle utilise l’historique pour prédire avec précision la mise à jour de la docstring qui supprime le paramètre supprimé, ainsi que la mise à jour d’une instruction dans la fonction d’une manière syntaxiquement (et potentiellement sémantiquement) correcte. Sans contexte, le modèle ne saurait pas si la suppression du paramètre était intentionnelle (dans le cadre d’une modification plus large) ou accidentelle (auquel cas il devrait être rétabli).
Le potentiel de DIDACT pour générer du code à partir de zéro
DIDACT présente également un potentiel pour générer du code à partir de zéro. En donnant au modèle un fichier vierge, il peut prédire les modifications à apporter pour générer un code complet. Étonnamment, le modèle génère un code logique étape par étape, compréhensible par un programmeur.
Il commence par développer une structure fonctionnelle comprenant les imports, les indicateurs et une fonction principale, puis l’étend pour inclure des fonctionnalités telles que la lecture et l’écriture de fichiers, le filtrage de lignes à l’aide d’une expression régulière fournie par l’utilisateur, nécessitant des modifications tout au long du fichier, comme l’ajout de nouveaux indicateurs.
Conclusion
DIDACT, la technique introduite par Google AI, ouvre de nouvelles perspectives pour le génie logiciel en utilisant des modèles d’apprentissage automatique formés à partir de données de développement logiciel réelles. En proposant des suggestions et des améliorations basées sur les interactions entre les ingénieurs et les outils de développement, DIDACT peut améliorer l’efficacité et la productivité des ingénieurs logiciels. Son utilisation du contexte et de l’historique des actions des développeurs permet au modèle de fournir des recommandations plus pertinentes. Grâce à DIDACT, le génie logiciel peut bénéficier des avancées de l’intelligence artificielle pour faciliter les activités de développement logiciel.
Pour plus d’article : https://www.moussasoft.com/tutoriels-electroniques