Et si 45% de la réalisation de vos projets IT étaient générées automatiquement grâce à l’Intelligence Artificielle ? AIDA (Artificial Intelligence for Development Assistant) représente la première squad d’agents intelligents pour soutenir les développeurs dans leur quotidien.
La solution d’assistant de développement AIDA utilise les avancées de pointe dans le domaine du traitement du langage naturel pour aider les entreprises à accélérer leur processus de développement et optimiser le flux de projet dans l’ensemble. La fiabilité de notre développeur est rendue possible grâce à un travail important de modélisation. Chez Novelis, nous considérons les assistants de développement comme un ajout essentiel aux outils de développement en raison de leur efficacité. Nous croyons que les assistants de développeur seront un facteur de grands changements dans la façon dont les organisations conçoivent, structurent et mènent des projets dans un avenir proche.
AIDA constitue l’un de nos principaux travaux dans le cadre de notre programme de Smart Programming visant à concevoir et mettre en place des développeurs artificiels pour simplifier le développement informatique, dépasser les limites et contraintes technologiques et éliminer le travail répétitif. AIDA est capable d’échanger en langage naturel avec les développeurs pour générer du code et ainsi créer des applications.
En quelques mots :
- Projet autour du Smart Programming dans la philosophie No/Low code
- Des architectures complexes utilisant notamment du NLP et le traitement d’image de l’IA
- Repenser la façon dont un développeur interagit pour générer des applications
La modélisation, un pilier pour l’aspect Compréhension
La modélisation consiste à transformer un problème en une représentation structurée et utilisable. En quelque sorte, c’est une manière de reformuler le problème en une sortie standard afin de prendre des actions et des décisions en aval.
Dans AIDA, la modélisation a lieu dans son module EntityIdentifier, qui vise à encoder l’entrée en langage naturel en diagrammes de langage de modélisation unifié (UML) à l’aide de techniques d’extraction de connaissances.
Extraction de connaissances des données
L’extraction de connaissances est un sous-domaine très innovant du traitement du langage naturel. C’est le processus d’élaboration d’informations structurées et concises à partir de textes naturels. À partir d’un article, d’un journal, d’un e-mail ou même d’une description de produit, on peut extraire une cartographie des organisations, des personnes, des lieux et des entités à l’aide de techniques d’extraction de connaissances. Pour accomplir l’extraction de connaissances, diverses méthodes telles que les méthodes basées sur des pipelines de règles, les transformateurs et les approches d’apprentissage par renforcement ont été explorées par la recherche, ce qui rend la technologie encore plus sophistiquée.
Dans notre travail, l’extraction de connaissances est responsable de la collecte des éléments clés pour les aspects orientés objet d’un projet. Par exemple, dans un projet de site de vente en ligne, la description des produits en vente en langage naturel déclenchera un module d’extraction de connaissances pour extraire des informations sur ces produits à partir de la description et comprendre comment ils sont liés afin de générer des représentations de classes dans un format UML normalisé.
Langage de modélisation unifié
Le langage de modélisation UML (Unified Modeling Language) est utilisé dans le processus de modélisation d’AIDA pour garantir une cohérence et une standardisation des informations échangées.
Le choix d’UML comme langage de modélisation est justifié par sa capacité à représenter de manière cohérente le système modélisé. UML couvre à la fois l’aspect structurel et comportemental d’un système. La structure est représentée à travers des « diagrammes UML structurels »; un ensemble de diagrammes (diagramme de classe, diagramme de composants, etc.) qui décrivent les entités du système à différents niveaux de détail. En revanche, le comportement est décrit à travers des « diagrammes UML comportementaux » (diagramme d’activité, diagramme de communication, etc.), qui encapsulent les interactions entre les entités, leurs états et les événements pouvant survenir.
La modélisation dans l’assistant AIDA de Novelis
La modélisation est un instrument essentiel dans notre travail, sans elle, le modèle ne sera pas en mesure de bien comprendre une demande, rendant ainsi difficile pour les générateurs de produire une réponse fiable. UML, associé à des techniques d’extraction de connaissances de pointe, permet une représentation approfondie du problème, ce qui résout ce problème.
De plus, Novelis utilise un ensemble de techniques basées sur des règles pour limiter la propagation des erreurs et augmenter la précision de sa solution. Une couche d’analyse syntaxique est utilisée pour construire un graphe de dépendance à partir de la syntaxe de l’entrée afin de mieux comprendre la demande de l’utilisateur. Un résolveur de coréférence basé sur Roberta est utilisé pour vérifier à nouveau s’il reste des coréférences dans le texte. Enfin, un module de détection des modificateurs quantificatifs vérifie la cardinalité des entités extraites avant d’encoder les informations dans un diagramme de classe UML.
Il est certain que l’avenir de l’informatique passe par le développement des applications où l’effort de « code » sera de moins en moins important, a minima pour une partie d’entre elles. En témoigne l’intérêt des géants du secteur comme Microsoft ou l’actualité des professionnels du secteur.
AIDA détient un modèle LLM pour générer le code demandé
Les LLM, ou modèles de langage de grande taille, ont été utilisés avec succès pour générer du code informatique pour une application. Grâce à leur capacité à comprendre le langage naturel et à générer des textes de manière fluide, les LLM peuvent être utilisés pour créer du code qui suit les instructions données en langage naturel. En utilisant cette approche, le processus de développement de l’application peut être accéléré, car les programmeurs n’ont plus besoin de passer autant de temps à coder manuellement chaque ligne de code. Cela permet également de réduire les erreurs de codage et d’améliorer la qualité globale de l’application. En résumé, l’utilisation de LLM pour la génération de code informatique peut être une approche efficace pour les développeurs qui cherchent à améliorer l’efficacité et la qualité de leur travail.
À qui s’adresse un projet comme AIDA ?
- Pour les développeurs
- Pour les analystes fonctionnels
- Pour les utilisateurs citoyens
- Pour les étudiants, etc.
En réalité, AIDA s’adresse en premier lieu aux informaticiens, mais il s’agit bien entendu d’une première étape car l’évolution de ce type d’interface Homme-Machine a vocation à faciliter l’accès au plus grand nombre. C’est en cela qu’AIDA participe également pleinement aux mouvements « citizens developers » qui émergent mais qui doivent encore faire leurs preuves.