Les IA de programmation en langage naturel simplifient le codage

« Apprenez à coder. » Ce péjoratif en trois mots est perpétuellement sur les lèvres et au bout des doigts des trolls Internet et des bros de la technologie chaque fois que des licenciements dans les médias sont annoncés. Un sentiment inutile en soi, mais avec l’avènement récent des IA générant du code, connaître les tenants et les aboutissants d’un langage de programmation comme Python pourrait bientôt être aussi utile que de savoir parler couramment une langue morte comme le sanskrit. En fait, ces genAI aident déjà les développeurs de logiciels professionnels à coder plus rapidement et plus efficacement en gérant une grande partie du travail fastidieux de programmation.

Comment fonctionne le codage

Java et Python sont deux des langages de codage les plus distribués et les plus écrits d’aujourd’hui. L’ancien a révolutionné presque à lui seul le fonctionnement multiplateforme lors de sa sortie au milieu des années 90 et pilote désormais « tout, des cartes à puce aux véhicules spatiaux », comme Magazine Java mettez-le en 2020 – sans parler de la fonction de recherche de Wikipedia et de tout Minecraft. Ce dernier est en fait antérieur à Java de quelques années et sert de base de code pour de nombreuses applications modernes comme Dropbox, Spotify et Instagram.

Ils diffèrent considérablement dans leur fonctionnement en ce que Java doit être compilé (son code lisible par l’homme étant traduit en code machine exécutable par ordinateur) avant de pouvoir s’exécuter. Python, quant à lui, est un langage interprété, ce qui signifie que son code humain est converti en code machine ligne par ligne au fur et à mesure de l’exécution du programme, ce qui lui permet de s’exécuter sans avoir été compilé au préalable. La méthode d’interprétation permet d’écrire plus facilement du code pour plusieurs plates-formes, tandis que le code compilé a tendance à se concentrer sur un type de processeur spécifique. Indépendamment de la façon dont ils s’exécutent, le processus d’écriture de code réel est presque identique entre les deux : quelqu’un doit s’asseoir, ouvrir un éditeur de texte ou un environnement de développement intégré (IDE) et écrire toutes ces lignes d’instructions. Et jusqu’à récemment, cette personne était généralement un humain.

Le processus d’écriture de « programmation classique » d’aujourd’hui n’est pas si différent du processus de l’ENIAC, avec un ingénieur logiciel prenant un problème, le décomposant en une série de sous-problèmes, écrivant du code pour résoudre chacun de ces sous-problèmes dans l’ordre, puis déboguez et recompilez le code à plusieurs reprises jusqu’à ce qu’il s’exécute. La « programmation automatique », en revanche, supprime le programmeur par un certain degré de séparation. Au lieu qu’un humain écrive chaque ligne de code individuellement, la personne crée une abstraction de haut niveau de la tâche pour que l’ordinateur génère ensuite un code de bas niveau à adresser. Cela diffère de la programmation « interactive », qui vous permet de coder un programme alors qu’il est déjà en cours d’exécution.

Les systèmes de codage d’IA conversationnels d’aujourd’hui, comme ce que nous voyons dans Copilot de Github ou ChatGPT d’OpenAI, éliminent encore plus le programmeur en cachant le processus de codage derrière un placage de langage naturel. Le programmeur indique à l’IA ce qu’il veut programmer et comment, et la machine peut générer automatiquement le code requis.

Parmi les premières de cette nouvelle génération d’IA de codage conversationnel se trouvait Codex, qui a été développé par OpenAI et publié fin 2021. OpenAI avait déjà implémenté GPT-3 (précurseur de GPT-3.5 qui alimente BingChat public) à ce stade, le grand langage modèle remarquablement apte à imiter la parole et l’écriture humaines après avoir été formé sur des milliards de mots du Web public. La société a ensuite affiné ce modèle en utilisant plus de 100 gigaoctets de données GitHub pour créer Codex. Il est capable de générer du code dans 12 langues différentes et peut traduire des programmes existants entre eux.

Codex est apte à générer de petits actifs simples ou reproductibles, comme « un gros bouton rouge qui secoue brièvement l’écran lorsqu’il est cliqué » ou des fonctions régulières comme le validateur d’adresse e-mail sur un formulaire Web Google. Mais quelle que soit la prose prose de votre prose, vous ne l’utiliserez pas pour des projets complexes comme le codage d’un programme d’équilibrage de charge côté serveur – c’est tout simplement trop compliqué.

DeepMind de Google a développé AlphaCode spécifiquement pour relever ces défis. Comme Codex, AlphaCode a d’abord été formé sur plusieurs gigaoctets d’archives de code GitHub existantes, mais a ensuite été confronté à des milliers de défis de codage tirés de compétitions de programmation en ligne, comme déterminer combien de chaînes binaires d’une longueur donnée ne contiennent pas de zéros consécutifs.

Pour ce faire, AlphaCode générera jusqu’à un million de candidats de code, puis rejettera tous sauf le 1% supérieur pour réussir ses cas de test. Le système regroupe ensuite les programmes restants en fonction de la similitude de leurs sorties et les teste séquentiellement jusqu’à ce qu’il trouve un candidat qui résout avec succès le problème donné. Selon une étude de 2022 publiée dans Science, AlphaCode a réussi à répondre correctement à ces questions de défi 34 % du temps (comparé au succès à un chiffre de Codex sur les mêmes critères de référence, ce n’est pas mal). DeepMind a même inscrit AlphaCode dans un concours de programmation en ligne de 5 000 concurrents, où il a dépassé près de 46 % des concurrents humains.

Maintenant, même l’IA a des notes

Tout comme GPT-3.5 sert de modèle fondamental pour ChatGPT, Codex sert de base pour Copilot AI de GitHub. Formé sur des milliards de lignes de code assemblés à partir du Web public, Copilot propose des fonctionnalités de saisie semi-automatique de codage assistées par l’IA basées sur le cloud via un plug-in d’abonnement pour les environnements de développement intégrés (IDE) Visual Studio Code, Visual Studio, Neovim et JetBrains.

Initialement publié en tant qu’aperçu pour les développeurs en juin 2021, Copilot a été parmi les toutes premières IA capables de coder à atteindre le marché. Plus d’un million de développeurs ont exploité le système au cours des deux années qui ont suivi, a déclaré à Engadget le vice-président des produits de GitHub, Ryan J Salva. Avec Copilot, les utilisateurs peuvent générer du code exécutable à partir d’entrées de texte en langage naturel ainsi que des sections de code et des fonctions de programmation fréquemment répétées automatiquement.

Salva note qu’avant la sortie de Copilot, les précédentes suggestions de codage générées par la machine de GitHub n’étaient acceptées par les utilisateurs que 14 à 17 % du temps. « Ce qui est bien », a-t-il dit. « Cela signifie que cela aidait les développeurs. » Au cours des deux années qui ont suivi les débuts de Copilot, ce chiffre est passé à 35 %, « et cela représente un peu moins de la moitié de la quantité de code en cours d’écriture. [on GitHub] – 46% par IA, pour être exact.

« [It’s] pas seulement une question de pourcentage de code écrit », a précisé Salva. « C’est vraiment une question de productivité, de concentration, de satisfaction des développeurs qui créent. »

Comme pour les sorties de générateurs de langage naturel comme ChatGPT, le code provenant de Copilot est largement lisible, mais comme tout grand modèle de langage formé sur Internet ouvert, GitHub s’est assuré d’incorporer des protections supplémentaires contre le système produisant involontairement du code exploitable.

« Entre le moment où le modèle produit une suggestion et le moment où cette suggestion est présentée au développeur », a déclaré Salva, « nous effectuons au moment de l’exécution […] une analyse de la qualité du code pour le développeur, à la recherche d’erreurs ou de vulnérabilités courantes dans le code, telles que les scripts intersites ou l’injection de chemin.

Cette étape d’audit vise à améliorer la qualité du code recommandé au fil du temps plutôt que de surveiller ou de contrôler à quoi le code pourrait être utilisé. Copilot peut aider les développeurs à créer le code qui constitue le malware, le système ne l’empêchera pas. « Nous avons adopté la position que Copilot est là comme un outil pour aider les développeurs à produire du code », a déclaré Salva, pointant les nombreuses applications White Hat pour un tel système. « Mettre un outil comme Copilot entre leurs mains […] en fait des chercheurs en sécurité plus compétents », a-t-il poursuivi.

Alors que la technologie continue de se développer, Salva voit le codage IA génératif s’étendre bien au-delà de ses limites technologiques actuelles. Cela inclut « prendre un gros pari » sur l’IA conversationnelle. « Nous voyons également le développement assisté par l’IA s’infiltrer vraiment dans d’autres parties du cycle de vie du développement logiciel », a-t-il déclaré, comme l’utilisation de l’IA pour réparer de manière autonome les erreurs de construction d’un CI/CD, corriger les vulnérabilités de sécurité ou faire réviser l’IA par l’homme. code.

« Tout comme nous utilisons des compilateurs pour produire du code au niveau machine aujourd’hui, je pense qu’ils finiront par atteindre une autre couche d’abstraction avec l’IA qui permettra aux développeurs de s’exprimer dans un langage différent », a déclaré Salva. « C’est peut-être un langage naturel comme l’anglais, le français ou le coréen. Et cela est ensuite « compilé » en quelque chose que les machines peuvent comprendre », libérant ainsi les ingénieurs et les développeurs pour qu’ils se concentrent sur la croissance globale du projet plutôt que sur les rouages ​​de sa construction.

Des codeurs aux bavards

Avec la prise de décision humaine toujours fermement ancrée dans la boucle de programmation de l’IA, du moins pour l’instant, nous n’avons pas grand-chose à craindre d’avoir un logiciel d’écriture de logiciels. Comme l’a noté Salva, les ordinateurs le font déjà dans une certaine mesure lors de la compilation du code, et les gourdes grises numériques n’ont pas encore pris le relais à cause de cela. Au lieu de cela, les défis les plus immédiats auxquels est confrontée la programmation de l’IA reflètent ceux de l’IA générative en général : biais inhérents faussant les données de formation, sorties de modèles qui violent le droit d’auteur et préoccupations concernant la confidentialité des données des utilisateurs lorsqu’il s’agit de former de grands modèles de langage.

GitHub est loin d’être le seul dans ses efforts pour créer un compagnon de programmation d’IA. ChatGPT d’OpenAI est capable de générer du code, tout comme les innombrables variantes indépendantes construites sur la plate-forme GPT. Il en va de même pour le système AWS CodeWhisperer d’Amazon, qui fournit une grande partie de la même fonctionnalité de saisie semi-automatique que Copilot, mais optimisé pour une utilisation dans le cadre AWS. Après plusieurs demandes d’utilisateurs, Google a également intégré des capacités de génération de code et de débogage dans Bard en avril dernier, avant son pivot à l’échelle de l’écosystème pour adopter l’IA à I/O 2023 et la sortie de Codey, la réponse d’Alphabet à Copilot. Nous ne pouvons pas encore être sûrs de ce que deviendront les systèmes de codage génératifs ou de leur impact sur l’industrie technologique – nous pourrions examiner les premières itérations d’une technologie de démocratisation transformatrice, ou ce pourrait être Clippy pour une nouvelle génération.

Tous les produits recommandés par Engadget sont sélectionnés par notre équipe éditoriale, indépendante de notre maison mère. Certaines de nos histoires incluent des liens d’affiliation. Si vous achetez quelque chose via l’un de ces liens, nous pouvons gagner une commission d’affiliation. Tous les prix sont corrects au moment de la publication.

Source-145