Vision par ordinateurIA générativeActualités et analyses de l'IAVision par ordinateurIA générativeActualités et analyses de l'IA
Vision par ordinateur7 min de lecture

Le nouveau générateur de code d’OpenAI : GitHub Copilot (et Codex)

Découvrez comment cette IA génère du code à partir de mots. Si les données sont échantillonnées aléatoirement sur GitHub, comment savoir si le code fonctionne et est bien écrit ?

Mis à jour le 25 sept. 2021
Le nouveau générateur de code d’OpenAI : GitHub Copilot (et Codex)
Sommaire

À retenir

  • GitHub Copilot est surtout utile comme assistant de programmation, et non pour remplacer la compréhension du code que vous mettez en production.
  • Le gain de productivité vient de la création plus rapide des premières versions, du code répétitif, des tests et des exemples, mais la révision appartient toujours au développeur.
  • Une bonne utilisation des outils de programmation par l’IA repose sur un contexte clair, de petites tâches, des diffs lisibles et des tests capables de détecter les erreurs silencieuses.

Vous avez probablement entendu parler du récent outil Copilot de GitHub, qui génère du code pour vous. Vous pouvez le voir comme une complétion automatique++ pour le code. Vous lui donnez le nom d’une fonction avec quelques renseignements supplémentaires, et il génère le code pour vous avec une assez bonne précision ! Mais il ne se contente pas de compléter automatiquement votre fonction. Il tente plutôt de comprendre ce que vous cherchez à faire afin de la générer. Il peut aussi produire des fonctions beaucoup plus grandes et complètes que les outils classiques de complétion automatique. C’est parce qu’il utilise un modèle semblable à GPT-3, un modèle de langage naturel extrêmement puissant que vous connaissez certainement.

Si vous n’êtes pas certain de son fonctionnement ou ne vous en souvenez pas, vous devriez lire l’article que j’ai écrit il y a un an lors de la sortie de GPT-3.

[

GPT-3 peut-il vraiment vous aider, vous et votre entreprise ?

Si vous vous êtes déjà demandé ce qu’est GPT-3 et comment il peut vous être utile, à vous ou à votre entreprise, voici l’article que vous cherchiez.

Exemple visuel tiré de Le nouveau générateur de code d’OpenAI : GitHub Copilot (et Codex)

](/fr/can-gpt-3-really-help-you/)

D’accord, comme vous le savez, GPT-3 est un modèle de langage. Il n’a donc pas été entraîné sur du code, mais sur le langage humain naturel. Si vous tentez de générer du code avec le modèle GPT-3 principal de l’API d’OpenAI, cela ne fonctionnera pas. En fait, dans leur nouvel article scientifique publié pour GitHub Copilot, OpenAI a testé GPT-3 sans aucun entraînement supplémentaire sur du code, et le modèle a résolu exactement 0 problème d’écriture de code Python. Comment ont-ils donc pris un modèle de génération de langage aussi puissant, mais complètement inutile pour produire du code, et l’ont-ils transformé pour l’adapter à cette nouvelle tâche de génération de code ?

Exemple visuel tiré de Le nouveau générateur de code d’OpenAI : GitHub Copilot (et Codex)

La première partie est facile. Le modèle devait comprendre ce que l’utilisateur voulait, une tâche dans laquelle GPT-3 est déjà assez bon, comme vous pouvez le voir dans mon article ci-dessus. La deuxième partie est difficile, puisque GPT-3 n’avait jamais vu de code, ou du moins très peu. Comme vous le savez, pour devenir un modèle de langage aussi puissant, GPT-3 a été entraîné sur pratiquement tout le texte d’Internet. OpenAI et GitHub tentent maintenant de créer un modèle semblable, mais destiné à générer du code. Sans entrer dans tous les dilemmes de confidentialité découlant des questions de droit d’auteur sur le code utilisé pour l’entraînement sur GitHub, il serait difficile de trouver un meilleur endroit pour le faire. Je reviendrai à ces enjeux de confidentialité à la fin !

Exemple visuel tiré de Le nouveau générateur de code d’OpenAI : GitHub Copilot (et Codex)

Statistiques de GitHub montrant le nombre de dépôts publics. https://githut.info/

Comme GPT-3 est le modèle de langage le plus puissant qui existe actuellement, ils sont partis de là. À l’aide d’un modèle très semblable, ils se sont attaqués à la deuxième partie du problème, la génération de code, en entraînant ce modèle GPT sur des milliards de lignes de code public provenant de GitHub plutôt que sur des textes aléatoires d’Internet. La puissance de GPT-3 vient principalement de la quantité d’information qu’il peut apprendre. Reprendre la même méthode en la spécialisant dans le code devait donc produire des résultats incroyables. Plus précisément, ils ont entraîné ce modèle GPT adapté sur 54 millions de dépôts de logiciels publics hébergés sur GitHub ! Nous avons maintenant un immense modèle entraîné sur énormément d’exemples de code. Le problème, comme vous le savez, est qu’un modèle peut seulement être aussi bon que les données sur lesquelles il a été entraîné. Si les données sont échantillonnées aléatoirement sur GitHub, comment savoir si le code fonctionne et est bien écrit ? Il est impossible d’en être certain, ce qui peut créer beaucoup de problèmes. Ils ont toutefois trouvé une excellente façon d’améliorer encore les aptitudes de programmation du modèle : faire son fine-tuning avec du code provenant de sites de programmation compétitive et de dépôts qui utilisent l’intégration continue. Ce code est donc probablement bon et bien écrit, mais disponible en plus petite quantité.

Exemple visuel tiré de Le nouveau générateur de code d’OpenAI : GitHub Copilot (et Codex)

Image tirée de « Dive Into Deep Learning », Fig. 13.2.1 Fine-tuning. (https://d2l.ai/)

Ils ont fait le fine-tuning du modèle avec ce nouveau jeu de données d’entraînement de façon supervisée. Autrement dit, ils ont entraîné le même modèle une deuxième fois sur un jeu de données plus petit et spécialisé composé d’exemples sélectionnés. Le fine-tuning est une puissante technique souvent utilisée pour améliorer les résultats en fonction de nos besoins précis plutôt que de repartir de zéro. Un modèle est souvent beaucoup plus puissant lorsqu’il est entraîné sur davantage de données, même si elles ne sont pas toutes utiles pour notre tâche, puis adapté à celle-ci, que lorsqu’un nouveau modèle est entraîné à partir de rien avec peu de données sélectionnées. Avec les données et l’apprentissage profond, plus il y en a, mieux c’est dans la plupart des cas.

Les descendants de ce modèle sont ceux qu’utilisent GitHub Copilot et les modèles Codex dans l’API d’OpenAI. Bien sûr, Copilot n’est pas encore parfait et possède de nombreuses limites. Il ne remplacera pas les programmeurs de sitôt, mais il a produit des résultats incroyables et peut accélérer le travail de nombreux développeurs lorsqu’ils programment des fonctions et des classes simples, mais fastidieuses. Comme je l’ai mentionné, ils ont entraîné le modèle de Copilot sur des milliards de lignes de code public, peu importe la licence, et comme il a été créé en collaboration avec OpenAI, ils vendront évidemment ce produit.

Exemple visuel tiré de Le nouveau générateur de code d’OpenAI : GitHub Copilot (et Codex)

C’est tout à fait correct qu’ils veuillent gagner de l’argent avec un puissant outil qu’ils ont créé, mais cela peut entraîner certaines complications si celui-ci a été construit avec votre code protégé par des licences restrictives. Si vous voulez en apprendre davantage sur cet enjeu lié au droit d’auteur, à la licence GPL et aux conditions d’utilisation, je vous recommande fortement l’excellente vidéo publiée par Yannic Kilcher il y a quelques jours. Vous trouverez le lien dans les références ci-dessous.

Merci d’avoir lu cet article !


Venez discuter avec nous dans notre communauté Discord : Learn AI Together et partagez vos projets, vos articles scientifiques et les meilleures formations, trouvez des coéquipiers pour Kaggle et bien plus encore !

Si vous aimez mon travail et voulez rester au courant des nouveautés en IA, vous devriez vraiment me suivre sur mes autres réseaux sociaux, comme LinkedIn et Twitter, et vous abonner à mon infolettre hebdomadaire sur l’IA !

Pour me soutenir :

  • La meilleure façon de me soutenir est de devenir membre de ce site Web ou de vous abonner à ma chaîne YouTube si vous aimez le format vidéo.
  • Soutenez financièrement mon travail sur Patreon

Références :

Discussion

Commentaires

Chargement

Aucun compte requis. Votre nom et votre commentaire seront publics, alors n'incluez pas de renseignements privés. Consultez la page de confidentialité pour les détails.

Continuez à apprendre

Vous voulez le côté pratique de l'IA, sans le brouillard marketing ?

Je partage ce qui est utile sur YouTube, Substack et dans mes guides d'ingénierie IA.

FAQ

Qu’est-ce que GitHub Copilot ?

GitHub Copilot est un assistant de programmation par l’IA qui suggère du code, des complétions, des tests et des idées d’implémentation dans le workflow d’un développeur.

Comment GitHub Copilot peut-il aider les développeurs ?

Il peut accélérer le code répétitif, les exemples, les structures de tests, les extraits de documentation et les premières versions de fonctions simples.

Que doivent toujours vérifier les développeurs ?

Vérifiez l’exactitude, la sécurité, les risques liés aux licences, les cas limites, les performances, les dépendances et la conformité du code au style du projet.

Les débutants peuvent-ils utiliser GitHub Copilot ?

Oui, mais ils devraient exécuter le code, tenter de le briser, l’expliquer et le comparer à la documentation afin que l’assistant ne remplace pas leur apprentissage.

Quelle est l’erreur courante avec les assistants de programmation par l’IA ?

L’erreur consiste à accepter du code parce qu’il semble plausible. Le bon workflow est de donner un prompt, examiner, tester et réviser.