Dès que Tom Smith a mis la main sur Codex, une nouvelle technologie d'intelligence artificielle qui écrit ses propres programmes informatiques, il lui a accordé un entretien d'embauche.
Il a demandé s'il pouvait relever les «défis de codage» auxquels les programmeurs sont souvent confrontés lors d'entretiens pour des emplois importants dans des entreprises de la Silicon Valley telles que Google et Facebook. Pourrait-il écrire un programme qui remplace tous les espaces d'une phrase par des tirets ? Mieux encore, pourrait-il en écrire un qui identifie les codes postaux invalides ?
Il a fait les deux instantanément, avant de terminer plusieurs autres tâches. "Ce sont des problèmes qui seraient difficiles à résoudre pour beaucoup d'humains, moi y compris, et cela taperait la réponse en deux secondes", a déclaré Smith, un programmeur chevronné qui supervise une startup d'IA appelée Gado Images. "C'était effrayant à regarder."
Le Codex semblait être une technologie qui allait bientôt remplacer les travailleurs humains. Alors que Smith continuait à tester le système, il s'est rendu compte que ses compétences allaient bien au-delà d'un talent pour répondre aux questions d'entretien prédéfinies. Il pourrait même traduire d'un langage de programmation à un autre.
Pourtant, après plusieurs semaines de travail avec cette nouvelle technologie, Smith pense qu'elle ne représente aucune menace pour les codeurs professionnels. En fait, comme de nombreux autres experts, il y voit un outil qui finira par augmenter la productivité humaine. Cela peut même aider une toute nouvelle génération de personnes à apprendre l'art des ordinateurs, en leur montrant comment écrire de simples morceaux de code, presque comme un tuteur personnel.
"C'est un outil qui peut rendre la vie d'un codeur beaucoup plus facile", a déclaré Smith.
Le Codex, construit par OpenAI, l'un des laboratoires de recherche les plus ambitieux au monde, donne un aperçu de l'état de l'intelligence artificielle. Bien qu'un large éventail de technologies d'IA se soient améliorées à pas de géant au cours de la dernière décennie, même les systèmes les plus impressionnants ont fini par compléter les travailleurs humains plutôt que de les remplacer.
Grâce à l'essor rapide d'un système mathématique appelé réseau de neurones, les machines peuvent désormais acquérir certaines compétences en analysant de grandes quantités de données. En analysant des milliers de photos de chats, par exemple, ils peuvent apprendre à reconnaître un chat.
Il s'agit de la technologie qui reconnaît les commandes que vous prononcez dans votre iPhone, traduit entre les langues sur des services comme Skype et identifie les piétons et les panneaux de signalisation lorsque les voitures autonomes roulent à toute vitesse sur la route.
Il y a environ quatre ans, des chercheurs de laboratoires comme OpenAI ont commencé à concevoir des réseaux de neurones qui analysaient d'énormes quantités de prose, y compris des milliers de livres numériques, des articles de Wikipédia et toutes sortes d'autres textes publiés sur Internet.
En identifiant des modèles dans tout ce texte, les réseaux ont appris à prédire le mot suivant dans une séquence. Lorsque quelqu'un tapait quelques mots dans ces "modèles de langage universels", il pouvait compléter la pensée avec des paragraphes entiers. De cette façon, un système - une création OpenAI appelée GPT-3 - pourrait écrire ses propres publications, discours, poésie et articles de presse sur Twitter.
À la grande surprise même des chercheurs qui ont construit le système, il pouvait même écrire ses propres programmes informatiques, même s'ils étaient courts et simples. Apparemment, il avait appris d'un nombre incalculable de programmes publiés sur Internet. OpenAI est donc allé plus loin en formant un nouveau système – Codex – sur une énorme gamme de prose et de code.
Le résultat est un système qui comprend à la fois la prose et le code - jusqu'à un certain point. Vous pouvez demander, en langage clair, de la neige tombant sur un fond noir, et cela vous donnera un code qui crée une tempête de neige virtuelle. Si vous demandez une balle rebondissante bleue, elle vous en donnera aussi.
"Vous pouvez lui dire de faire quelque chose, et il le fera", a déclaré Ania Kubow, une autre programmeuse qui a utilisé la technologie.
Codex peut générer des programmes dans 12 langages informatiques et même traduire entre eux. Mais il fait souvent des erreurs, et bien que ses compétences soient impressionnantes, il ne peut pas raisonner comme un humain. Il peut reconnaître ou imiter ce qu'il a vu dans le passé, mais il n'est pas assez agile pour penser par lui-même.
Parfois, les programmes générés par Codex ne s'exécutent pas. Ou ils contiennent des failles de sécurité. Ou ils sont loin de ce que vous voulez qu'ils fassent. OpenAI estime que Codex produit le bon code 37 % du temps.
Lorsque Smith a utilisé le système dans le cadre d'un programme de test "bêta" cet été, le code qu'il a produit était impressionnant. Mais parfois, cela ne fonctionnait que s'il apportait une petite modification, comme modifier une commande pour l'adapter à sa configuration logicielle particulière ou ajouter un code numérique nécessaire pour accéder au service Internet qu'il essayait d'interroger.
En d'autres termes, Codex n'était vraiment utile qu'à un programmeur expérimenté.
Mais cela pourrait aider les programmeurs à faire leur travail quotidien beaucoup plus rapidement. Cela pourrait les aider à trouver les éléments de base dont ils ont besoin ou les orienter vers de nouvelles idées. Grâce à cette technologie, GitHub, un service en ligne populaire pour les programmeurs, propose désormais Copilot, un outil qui suggère votre prochaine ligne de code, un peu comme les outils de "complétion automatique" suggèrent le mot suivant lorsque vous tapez des textes ou des e-mails.
"C'est une façon d'écrire du code sans avoir à écrire autant de code", a déclaré Jeremy Howard, qui a fondé le laboratoire d'intelligence artificielle Fast.ai et a aidé à créer la technologie de langage sur laquelle le travail d'OpenAI est basé. "Ce n'est pas toujours correct, mais c'est juste assez proche."
Howard et d'autres pensent que Codex pourrait également aider les novices à apprendre à coder. Il est particulièrement efficace pour générer des programmes simples à partir de brèves descriptions en anglais. Et cela fonctionne également dans l'autre sens, en expliquant le code complexe en langage clair. Certains, dont Joel Hellermark, un entrepreneur en Suède, tentent déjà de transformer le système en outil pédagogique.
« Nous pensions que ces outils allaient supprimer complètement le besoin d'humains, mais ce que nous avons appris après de nombreuses années, c'est que ce n'était pas vraiment possible ; vous aviez toujours besoin d'un humain qualifié pour examiner la sortie », a déclaré Smith. « La technologie se trompe. Et cela peut être biaisé. Vous avez toujours besoin d'une personne pour examiner ce qu'elle a fait et décider de ce qui est bon et de ce qui ne l'est pas.
Le Codex étend ce qu'une machine peut faire, mais c'est une autre indication que la technologie fonctionne mieux avec des humains aux commandes.