Les IA de programmation en langage naturel simplifient le codage

Les IA de programmation en langage naturel simplifient le codage

« Apprendre à programmer ». Ce péjoratif en trois mots est perpétuellement sur les lèvres et sur le 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 de l’IA génératrice de code, connaître les tenants et les aboutissants d’un langage de programmation comme Python pourrait bientôt être aussi utile que de 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 gros travail de programmation.

Comment fonctionne le codage

Deux des langages de codage les plus distribués et écrits aujourd’hui sont Java et Python. L’ancien a presque à lui seul révolutionné le fonctionnement multiplateforme lors de son lancement au milieu des années 90 et gère désormais “tout, des cartes à puce aux véhicules spatiaux”, tels que 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 telles que Dropbox, Spotify et Instagram.

Ils diffèrent considérablement dans leur fonctionnement en ce que Java doit être compilé (faire traduire son code lisible par l’homme en code machine exécutable par ordinateur) avant de pouvoir être exécuté. Pendant ce temps, Python est un langage interprété, ce qui signifie que votre code humain est converti en code machine ligne par ligne au fur et à mesure que le programme s’exécute, ce qui lui permet de s’exécuter sans le compiler 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 sont exécutés, le processus réel d’écriture de code est presque identique entre les deux : quelqu’un doit s’asseoir, ouvrir un éditeur de texte ou un IDE, et taper toutes ces lignes d’instructions. Et jusqu’à récemment, cette personne était typiquement un humain.

Le processus d’écriture de “programmation classique” d’aujourd’hui n’est pas si différent du processus 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éboguer et reconstruire à plusieurs reprises le code jusqu’à ce qu’il s’exécute. La “programmation automatique”, en revanche, supprime le programmeur par un 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 du code de bas niveau à traiter. 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 sur le copilote de Github ou le ChatGPT d’OpenAI, suppriment davantage 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 premiers de cette nouvelle génération d’IA de codage conversationnel se trouvait Codex, développé par OpenAI et publié fin 2021. Ce modèle est remarquablement apte à imiter la parole et l’écriture humaines après avoir été formé sur des milliards de mots du site Web public. La société a ensuite affiné ce modèle en utilisant plus de 100 gigaoctets de données de 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 fonctionnalités régulières comme le validateur d’adresse e-mail sur un formulaire Web Google. Mais aussi prolifique que soit 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 une question trop compliquée.

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 de fichiers de code GitHub existants, 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 vos cas de test. Le système regroupe ensuite les programmes restants en fonction de la similitude de leurs résultats 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 battu près de 46 % des concurrents humains.

Maintenant, même l’IA a des notes

Tout comme GPT-3.5 sert de modèle de base pour ChatGPT, Codex sert de base à Copilot AI de GitHub. Alimenté par des milliards de lignes de code assemblés à partir du Web public, Copilot offre une auto-complétion de codage assistée par l’IA basée 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 premières IA capables de coder à arriver sur le marché. Plus d’un million de développeurs ont profité du système au cours des deux années qui ont suivi, a déclaré à Engadget le vice-président du produit GitHub, Ryan J Salva. Avec Copilot, les utilisateurs peuvent générer du code exécutable à partir de la saisie de texte en langage naturel, ainsi que compléter automatiquement des sections de code et des fonctions de programmation fréquemment répétées.

Salva souligne qu’avant la sortie de Copilot, les conseils de codage générés par les anciennes machines GitHub n’étaient acceptés par les utilisateurs que 14 à 17 % du temps. “Ce qui est bien,” dit-il. “Cela signifie qu’il aidait les développeurs.” Au cours des deux années qui ont suivi les débuts de Copilot, ce nombre est passé à 35 %, “et c’est un peu moins de la moitié de la quantité de code écrite”. [on GitHub] – 46% par IA, pour être exact.

“[It’s] ce n’est pas 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 qu’ils créent.”

Comme pour la sortie de générateurs de langage naturel comme ChatGPT, le code provenant de Copilot est largement lisible, mais comme tout modèle de langage ouvert formé sur Internet, GitHub s’est assuré d’intégrer des protections supplémentaires contre le système qui produit involontairement du code exploitable.

“Entre le moment où le modèle produit un indice et le moment où cet indice est présenté au développeur”, a déclaré Salva, “au moment de l’exécution, nous exécutons […] une analyse de la qualité du code pour le développeur, à la recherche de bogues ou de vulnérabilités courants dans le code, tels que les scripts intersites ou l’injection de route.

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’arrêtera pas. “Nous avons adopté la position selon laquelle Copilot existe en tant qu’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 […] cela 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 que le codage génératif de l’IA s’étendra bien au-delà de ses limites technologiques actuelles. Cela inclut “faire un gros pari” dans l’IA conversationnelle. “Nous constatons également que le développement assisté par l’IA s’infiltre 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 corriger de manière autonome les erreurs de compilation CI/CD, corriger les vulnérabilités de sécurité ou rendre l’examen de l’IA humain. écrits. 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 une langue naturelle 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 aspects pratiques de sa construction.

Des codeurs aux bavards

La prise de décision humaine étant toujours fermement ancrée dans le cycle de programmation de l’IA, du moins pour l’instant, nous n’avons pas grand-chose à craindre de l’écriture de logiciels. Comme l’a souligné Salva, les ordinateurs le font déjà dans une certaine mesure lors de la compilation du code, et les boues 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 qui faussent les données d’entraînement, sortie de modèle qui viole le droit d’auteur et préoccupations concernant la confidentialité des données de l’utilisateur lorsqu’il s’agit d’entraîner de grands modèles de langage.

GitHub est loin d’être 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 de l’Alphabet à Copilot. Nous ne savons toujours pas ce que deviendront les systèmes de codage génératif ni comment cela pourrait affecter l’industrie technologique ; nous pourrions voir les premières itérations d’une technologie transformatrice et démocratisant, 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 société 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.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*