How OpenAI Codex learned to write and refactor JavaScript !?!
Publié le 22 novembre 2022 • Par Adrien Le BretonFondée en décembre 2015 par Elon Musk et Sam Altman, l’objectif d’OpenAI est de développer et de promouvoir une intelligence artificielle générale pouvant bénéficier à l’ensemble de l’humanité.
Un détail remarquable dans la description de l’objectif du projet est qu’il se veut “sans danger”, faisant ainsi écho aux déclarations d’Elon Musk quant à la dangerosité des l’intelligences artificielles et que ces dernières dépasseront l’être humain d’ici 5 ans (plus que 4 au moment où j’écris cet article 😱).
Elle est connue pour certains de ses produits comme par exemple DALL-E qui permet la génération d’images depuis du texte.
Mais au fait, c’est quoi une IA ?
Un programme informatique qualifié d’intelligence artificielle est un système capable d’imiter la pensée et les actions humaines, en étant souvent beaucoup plus performant.
Quelques exemples d’applications d’IA :
- Les assistants vocaux (Google Assistant, Alexa, Siri…)
- Les voitures autonomes (Tesla)
- Les robots humanoïdes autonomes (Ameca)
GPT-3, Codex and GitHub Copilot
GPT-3 : entrons dans le vif du sujet !
GPT-3 est la dernière version du “Generative Pre-trained Transformer” d’OpenAI. Il est l’évolution de GPT et GPT-2, sa capacité ayant augmenté de plus de 2 ordres de grandeur par rapport à son prédécesseur. C’est un modèle de langage entrainé avec 665 milliards d’unités textuelles. Les données d’entrainement étant globales, GPT-3 est capable de fonctionner avec toutes les langues (y compris les langages informatique, ce qui va s’avérer utile pour ce qui nous intéresse).
Il permet de générer du texte en assimilant ce que lui fournit l’utilisateur et de déterminer la suite la plus logique. Il s’avère particulièrement performant, à tel point qu’il est syntaxiquement impossible de faire la différence avec un texte écrit par un être humain.
Les chercheurs lui ont par exemple donné à lire la première phrase du roman 1984 de George Orwell :
« C’était une journée ensoleillée et froide du mois d’avril et les horloges affichaient 13h. »
GPT-2 a alors compris qu’il s’agissait d’une œuvre évoquant le passé et écrite sous la forme d’une fiction et a ajouté :
« J’étais dans ma voiture à Seattle en route pour mon nouveau travail. J’ai fait le plein, mis la clé sur le contact, et me suis laissé porter. J’ai imaginé à quoi ressemblerait ce jour. Dans cent ans à partir de ce jour. En 2045, j’étais professeur dans une école située dans une région pauvre de la Chine rurale. J’ai commencé avec l’Histoire de la Chine et l’Histoire de la science. »
Ils lui ont également présenté un article du Guardian sur le Brexit et l’IA a été capable d’inventer des citations crédibles du député Jeremy Corbyn, principal opposant à Theresa May, et d’évoquer des thématiques précises liées au sujet, comme celle de la frontière irlandaise.
De nombreux autres usages peuvent être imaginés, comme la synthèse de texte, la traduction, un chatbot… ou la génération de code.
OpenAI a par ailleurs mis à disposition un accès public à leur API (qui n’inclue pas encore Codex malheureusement), et même si le paramétrage reste assez restreint, on est rapidement bluffé par ce qu’arrive à faire l’IA.
OpenAI Codex
Question : Qu’est ce qui se passe à présent si on inclut GitHub dans l’entrainement de GPT-3 ?
- Réponse : En ajoutant quelques 54 millions de repos GitHub, on obtient une IA diablement efficace pour générer du code.
Bien que Codex soit un projet très récent (annoncé en 2021), les possibilités qu’il offre sont déjà immenses.
Il excelle tout particulièrement à faire le lien entre des problèmes simples et du code déjà existant, tâche décrite par les chercheurs et développeurs d’OpenAI comme étant une des moins intéressantes du processus de développement. Pour donner un exemple, c’est comme si au lieu d’effectuer une recherche sur Stack Overflow, et de réadapter la solution à un cas spécifique, on laissait l’IA “opérer sa magie”.
On peut par exemple imaginer des applications comme la génération de requêtes SQL, de regex, l’écriture automatique d’une fonction depuis un commentaire, l’édition ou l’amélioration des performances d’un code existant, etc.
Quelques démos impressionnantes peuvent être trouvées sur internet.
Petite parenthèse : GitHub Copilot
GitHub Copilot est un outil basé sur l’intelligence artificiel permettant d’assister les utilisateurs des IDE dans lesquels il est intégré (Visual Studio Code, JetBrains, Neovim) en autocomplétant leur code. Il est basé sur OpenAI Codex pour fournir les suggestions d’autocomplétion..
Conclusion
OpenAI est un projet incroyablement prometteur et en tant que développeur, son application à la génération de code qu’est Codex ne peut qu’attiser la curiosité.
Mais si dans les faits, les premiers résultats demeurent impressionnants, il arrive encore que l’IA ne comprenne pas bien ce que l’utilisateur lui demande, que le résultat fourni soit erroné ou sous-optimal. Une partie de ces problèmes vient du jeu de données d’entraînement, qui peut être par exemple du code de débutant ou du code contenant des failles de sécurité.
Dans tous les cas, l’évolution de ce projet au cours des prochaines années mérite l’attention et qui sait, peut être qu’Elon Musk a raison et que l’on sera dépassés / remplacés par des IA d’ici 5 ans. Ou pas. 🙃
Une conférence de Gerard Sans
Vous avez besoin d’être accompagnés ?
Nos équipes sont à l’écoute !