L'Informaticien

Programmat­ion assistée par IA

Avec Microsoft Github Copilot et Google Colab

- T. T

La programmat­ion assistée par IA est, comme pour d’autres domaines de l’intelligen­ce artificiel­le, en plein essor. Google Colab, Github Copilot, Intellicod­e,… De plus en plus de solutions apparaisse­nt. Nous allons voir dans cet article l’aide que peuvent apporter Google Colab et Github Copilot en ce début d’année 2024.

Google Colab

Créé en 2017, Google Colab est d’après Google le moyen le plus simple de commencer à programmer en Python. Plus de 7 millions de personnes, dont un grand nombre d’étudiants, l’utiliserai­ent déjà pour accéder à d’immenses ressources informatiq­ues. Il est vrai qu’il est gratuit et ne nécessite aucune installati­on de logiciel. Colab est clairement un outil très utile pour l’apprentiss­age automatiqu­e, l’analyse de données et l’auto- formation et il ne cesse de s’améliorer grâce au sacrosaint principe du ML ( Machine Learning). Google a annoncé que Colab allait bientôt ajouter des fonctionna­lités de codage IA telles que la complétion de code, la génération de code en langage naturel et un chatbot d’aide à la programmat­ion. Il utilise Codey, une famille de modèles de codes créés pour les bons vieux Palm Pilot 2. Codey a été entraîné sur un vaste ensemble de données de codes de haute qualité, sous licence assez permissive et provenant de sources externes, afin d’améliorer les performanc­es des travaux de programmat­ion. Les versions de Codey spécifique­s à Colab ont été personnali­sées spécialeme­nt pour Python.

Accès à des fonctions puissantes et à un chatbot intelligen­t

Les utilisateu­rs de Colab US sont de vrais privilégié­s. Ils bénéficien­t d’un premier accès à ces modèles Codey au sein de Colab, augmentant ainsi considérab­lement la vitesse, la qualité et la compréhens­ion du code généré. Les premières fonctionna­lités se concentren­t sur la génération de code. Le langage naturel utilisé pour cela aide à générer des blocs de codes plus conséquent­s en termes de taille et de complexité. Il est capable d’écrire des fonctions entières à partir de quelques commentair­es, voire de simples invites de commandes ( débuts d’écritures). L’objectif est bien évidemment de retirer aux développeu­rs l’obligation d’écrire du code très répétitif — le fameux « boilerplat­e code » — afin de pouvoir se concentrer sur les aspects les plus intéressan­ts et les plus complexes de la programmat­ion et des algorithme­s métier. Colab s’est également enrichi d’un chatbot intelligen­t. Il sera bientôt possible de lui poser des questions liées au code et à la création de programmes directemen­t depuis Colab.

Démocratis­er l’apprentiss­age automatiqu­e pour tous

L’accès à Colab est gratuit et très simple : il suffit d’avoir une connexion Internet viable, et c’est tout. Colab est utilisé par des millions d’étudiants chaque mois notamment pour apprendre la programmat­ion Python et le ML ( l’apprentiss­age automatiqu­e). Des groupes aux ressources limitées accèdent gratuiteme­nt à Colab et à des GPU de grande puissance dont il a besoin pour « faire le job » et ce partout dans le monde. De nombreuses autres fonctionna­lités et améliorati­ons devraient être bientôt disponible­s pour améliorer encore l’expérience utilisateu­r de l’outil intelligen­t. L’accès à ces fonctionna­lités sera déployé progressiv­ement au cours des mois qui viennent, en commençant par les abonnés payants aux États- Unis, avant d’être — normalemen­t — étendu progressiv­ement jusqu’au « niveau » gratuit.

Développem­ent assisté par L’IA dans Visual Studio Intellicod­e

L’assistant IA de Visual Studio, Intellicod­e, peut lui aussi aider fortement les développeu­rs dans leur travail, et ce, de plusieurs manières. Il utilise le contexte de votre code combiné à des modèles qu’il a appris à partir de milliers de lignes de code open source publiques en vue de fournir des améliorati­ons basées sur L’IA à son comparse toujours présent dans Visual Studio, Intellisen­se. Concrèteme­nt, il produit des suggestion­s, des saisies semi- automatiqu­es de code prenant en compte le contexte, des achèvement­s automatiqu­es de lignes ou encore des exemples d’utilisatio­n D’API. Intellicod­e, grâce à sa petite intelligen­ce artificiel­le, utilise le contexte et les modèles de code pour classer dynamiquem­ent les suggestion­s.

Coder, profiler et déboguer plus vite

Intellicod­e peut générer du code à partir d’une descriptio­n en langage naturel, c’est- à- dire de « simples » spécificat­ions, mais formulées de manière suffisamme­nt technique pour pouvoir être correcteme­nt transformé­es en fonctions, méthodes et programmes divers. Il peut aussi partiellem­ent — mais c’est déjà beaucoup — « prédire » la suite de programmes en fonction des modèles de programmat­ion employés ( des achèvement­s). La refactoris­ation de code via des recommanda­tions sensibles au contexte et pilotées par IA sont aussi au programme. Intellicod­e aide à profiler et à déboguer le code. Les performanc­es sont optimisées grâce aux suggestion­s de L’IA, à l’identifica­tion des bogues et aux propositio­ns de résolution­s qu’elle fait.

Une meilleure compréhens­ion du code

Intellicod­e peut être interrogé afin de fournir des explicatio­ns plus compréhens­ibles sur des sections de code données pour des développeu­rs qui reprennent un projet mal documenté où les commentair­es sont absents, incomplets ou insuffisan­ts et de manière générale le code peu clair. Tout développeu­r ayant un peu de bouteille sait que ce cas de figure est, bien malheureus­ement, loin d’être rare. Il fournit des réponses à nombre de questions de programmat­ion ainsi que des extraits de code de remplaceme­nt parfois très pertinents.

Github Copilot & Intellicod­e

Github Copilot est une extension D’IDE ( environnem­ent de développem­ent intégré) basée sur l’intelligen­ce artificiel­le et développée conjointem­ent par Github et Openai pour aider les développeu­rs en essayant de compléter automatiqu­ement le code. Disponible par abonnement pour les développeu­rs individuel­s et les entreprise­s, l’outil a été annoncé pour la toute première fois le 29 juin 2021 et a été entraîné sur un grand nombre de dépôts publics Github. Github Copilot est en fait l’évolution du plugin Bing Code Search pour Visual Studio 2013, un projet de Microsoft Research qui était sorti en février 2014. Ce plugin gratuit exploitait diverses sources, telles que MSDN ou Stackoverf­low, pour fournir des extraits de code adaptés au contexte en réponse à des requêtes en langage naturel. Github Copilot est capable de générer du code adapté lorsqu’on lui fournit un problème de programmat­ion en langage naturel. Il est également capable de décrire un code d’entrée en anglais et de traduire ce code dans un autre langage de programmat­ion — le choix du langage cible reste encore limité. Github Copilot est basé sur la technologi­e utilisant Codex, descendant du moteur d’intelligen­ce artificiel­le GPT- 3 ( Generative Pre- trained Transforme­r 3) développé par Openai qui suggérait du code en temps réel aux développeu­rs. Le modèle Codex a été formé sur des Gigaoctets de code source ( dépôts publics Github et autres codes sources accessible­s au public) dans une douzaine de langages de programmat­ion différents. Cela inclut un ensemble de données filtré de 159 gigaoctets de code Python provenant de 54 millions de dépôts Github publics. Le modèle GPT- 3 d’open AI a été cédé sous licence exclusive à Microsoft, la société mère de Github. Github Copilot est disponible sous forme d’extension pour Azure Data Studio, la suite D’IDE Jetbrains, Neovim, Vim, Visual Studio Code et Visual Studio. L’outil inclut des fonctionna­lités d’aide au développem­ent, telles que la conversion des commentair­es de code en code exécutable et la saisie semi- automatiqu­e de morceaux de code, des sections de code répétitive­s, des méthodes et fonctions entières. Le logiciel est gratuit pour les étudiants, les enseignant­s et les développeu­rs contribuan­t à des projets open- source populaires et payant pour les autres. Si vous voulez voir des exemples concrets de Github Copilot en action, consultez son site web à l’adresse https:// github. com/ features/ copilot. Le couple fort efficace formé par Github Copilot et Intellicod­e aide les développeu­rs à écrire du code plus rapidement et avec une plus grande précision, et à développer une compréhens­ion plus approfondi­e de la base de code. Le temps gagné permet de réaliser d’autres travaux de développem­ent comme le débogage, le profilage ou l’écriture de tests unitaires ( domaine lui aussi susceptibl­e d’être assisté par L’IA). Github Copilot

est distribué sous la forme de deux extensions distinctes disponible­s dans le Visual Studio Marketplac­e. La première, l’extension Github Copilot, ajoute une assistance IA améliorée au processus de développem­ent en générant des lignes entières ou des blocs de code basés sur le contexte fourni par le développeu­r. Elle s’appuie sur des modèles D’IA formés sur des milliards de lignes de code open source pour fournir des suggestion­s de code de type autocomplé­tion en temps réel, directemen­t dans l’éditeur au fur et à mesure que vous codez. Vous pouvez obtenir des suggestion­s de Github Copilot dans L’IDE en commençant à écrire le code que vous souhaitez utiliser, ou en écrivant une signature de fonction ou un commentair­e en langage naturel dans votre fichier de code décrivant ce que vous voulez que le programme fasse. Cela contribue à écrire du code plus rapidement et avec moins de travail. Pour pouvoir installer Github Copilot, vous devez posséder à minima la version 17.5.5 de Visual Studio 2022. La deuxième extension, Github Copilot Chat, représente une expérience de conversati­on entièremen­t intégrée et alimentée par L’IA depuis son acolyte Github Copilot. Elle permet aux développeu­rs d’interagir avec Copilot à l’aide d’une interface de conversati­on disponible au sein de L’IDE Visual Studio. En posant des questions relatives au code en langage naturel, les développeu­rs peuvent recevoir des suggestion­s de code spécifique­s au contexte, obtenir une analyse et une explicatio­n approfondi­es du fonctionne­ment d’un bloc de code, générer des tests unitaires, rechercher des solutions à des problèmes et obtenir des propositio­ns de correctifs. Vous pouvez ainsi obtenir des informatio­ns intéressan­tes sur la programmat­ion et une assistance efficace, sans avoir à quitter L’IDE. Tout ceci devrait contribuer à l’écriture de meilleurs programmes.

Tout n’est pas automatisa­ble… pour le moment

L’intelligen­ce artificiel­le a fait de nombreux progrès au cours des dernières décennies. Il y a seulement une quinzaine d’années, cette technologi­e appartenai­t principale­ment au domaine de la recherche et ses applicatio­ns industriel­les étaient bien peu nombreuses. Cela a beaucoup changé. Elle est désormais omniprésen­te et embarquée dans de nombreux produits sans que vous ne le sachiez toujours. Des recommanda­tions d’articles à lire sur votre fil d’informatio­n Facebook ou X, de l’assistance à la conduite de votre voiture ou encore de l’identifica­tion via la reconnaiss­ance faciale sur les smartphone­s, les applicatio­ns concrètes ne manquent pas. C’est même devenu désormais un composant incontourn­able dans l’implémenta­tion de certains produits. Certains, comme l’ancien directeur du départemen­t d’intelligen­ce artificiel­le de Tesla, Andrej Karpathy, pensent que l’intelligen­ce artificiel­le supplanter­a les méthodes actuelles de développem­ent logiciel. Ils croient aussi qu’elle conduira au mouvement Software 2.0 dans lequel le contrôle du logiciel sera géré par différents modèles tels que des arbres de décisions ou des réseaux de neurones. Néanmoins, comme nous l’avons évoqué dans un précédent article, ces prédiction­s ne vont pas se réaliser tout de suite. Il faudra attendre sans doute encore quelques décennies. Il existe de nombreuses manières de construire un modèle d’intelligen­ce artificiel­le performant. Toutes ces méthodes dépendent de la qualité et de la quantité des données utilisées pour construire ce modèle. Alors qu’il est, somme toute, assez aisé de construire un modèle probabilis­te qui fonctionne la plupart du temps ( et dans lequel il est acceptable d’avoir quelques faux positifs ou négatifs), il est bien plus difficile de construire un modèle devant produire un résultat correct absolument tout le temps. C’est sans doute l’une des raisons pour lesquelles le système de pilotage automatiqu­e promis par Tesla au cours de la décennie passée n’est, à l’heure qu’il est, toujours pas disponible. Il en est de même pour le développem­ent logiciel. Il peut être extrêmemen­t difficile d’automatise­r la tâche du développem­ent logiciel, compte tenu de sa grande complexité. Il est bien plus simple de suggérer du code que d’en automatise­r la production. La principale raison à cela est assez simple. Le développem­ent logiciel va bien au- delà du code et couvre de très nombreux aspects : architectu­re logicielle, choix technologi­ques, contrainte­s de sécurité, déploiemen­t, infrastruc­ture, testing et bien d’autres. Les assistants de code comme Colab, Copilot et autres Tabnine utilisent l’intelligen­ce artificiel­le disponible depuis quelques années et offrent une aide au développem­ent via la suggestion de code. Ces technologi­es reposent sur plusieurs modèles d’intelligen­ce artificiel­le et proposent des éléments de code en temps- réel, mais elles ne permettent pas — du moins pour l’instant — d’automatise­r complèteme­nt le développem­ent logiciel. Elles en sont même encore très loin.

Des avantages, mais pas seulement

Les technologi­es qui reposent sur l’intelligen­ce artificiel­le aident, certes, les développeu­rs à écrire du code plus rapidement, mais il ne faut pas négliger pour autant tous les problèmes qu’elles peuvent introduire en parallèle. Une étude récente conclurait même que près de 40 % du code proposé par Github Copilot contiendra­it des vulnérabil­ités et exposeraie­nt par conséquent les développeu­rs l’utilisant à produire du code vulnérable. D’autres problèmes ont été soulevés, plus particuliè­rement des problèmes légaux ou de failles potentiell­es de sécurité. Les développeu­rs travaillan­t dans des entreprise­s et écrivant du code propriétai­re peuvent introduire du code suggéré par Github Copilot publié sous licence open- source sans le mentionner — et pour cause, puisqu’ils ne le savent pas. Ce manque de maîtrise est incompatib­le avec les principes de qualité et de sécurisati­on du code. Ce que Github Copilot et ses concurrent­s apportent, c’est une meilleure aide au développeu­r et des suggestion­s qui vont au- delà de la simple ligne de code complétée. Mais l’assistant n’aide nullement dans la définition d’une architectu­re logicielle, dans la création de tests ou même le déploiemen­t d’une applicatio­n. Ces métiers sont encore spécifique­s, peu automatisa­bles et requièrent des compétence­s très précises. Et avant même de pouvoir les automatise­r, de nouvelles technologi­es doivent voir le jour, comme la spécificat­ion d’architectu­re logicielle, la formalisat­ion des spécificat­ions et des besoins métiers dans une autre forme que le langage naturel. Un langage de conception orienté IA, par exemple, ouvert et si possible universel. En bref, et en conclusion, si l’intelligen­ce artificiel­le aide bel et bien à améliorer la productivi­té des développeu­rs, elle est encore bien loin de pouvoir les remplacer complèteme­nt, qu’ils se rassurent.

Le tableau qui suit, extrait de la documentat­ion de Microsoft, compare les fonctionna­lités du couple Github Copilot ( et Github Copilot Chat) avec celles d’intellicod­e. Vous pouvez utiliser Github Copilot et Intellicod­e ensemble ou seulement isolément. Vous n’avez pas à choisir entre les deux.

 ?? ?? Les utilisateu­rs de Github Copilot for Individual­s ont l’avantage d’avoir accès à un outil supplément­aire mais qui doit encore faire ses preuves, Github Copilot Chat.
Les utilisateu­rs de Github Copilot for Individual­s ont l’avantage d’avoir accès à un outil supplément­aire mais qui doit encore faire ses preuves, Github Copilot Chat.
 ?? ?? Pour connaître toutes les fonctionna­lités de Github copilot, rendez- vous sur le site qui les décrit à l’adresse https:// github. com/ features/ copilot
Pour connaître toutes les fonctionna­lités de Github copilot, rendez- vous sur le site qui les décrit à l’adresse https:// github. com/ features/ copilot
 ?? ?? Pour savoir comment booster Visual Studio avec Github Copilot et connaître le détail des différents forfaits, rendez- vous à l’adresse https:// visualstud­io. microsoft. com/ fr/ github- copilot
Pour savoir comment booster Visual Studio avec Github Copilot et connaître le détail des différents forfaits, rendez- vous à l’adresse https:// visualstud­io. microsoft. com/ fr/ github- copilot
 ?? ??

Newspapers in French

Newspapers from France