Forecasting.ai

Le blog de Forecasting AI

Blog

>

Actualités

>

AlphaCode de DeepMind se mesure à des programmeurs humains

AlphaCode de DeepMind se mesure à des programmeurs humains

Par G.H.

|

17 mars 2022

|

Actualités

|

fren

Les problèmes de programmation du monde réel peuvent-ils être résolus par une IA de pointe ? En février, DeepMind s'est penché sur cette question, confrontant le monde à une nouvelle perspective sur la programmation, ainsi que sur les capacités et les limites de l'intelligence artificielle.


Mais ce qui est tout aussi intéressant, ce sont les leçons qu'ils ont tirées en cours de route - sur ce qui peut et ne peut pas être automatisé, et sur les erreurs dans nos ensembles de données actuels.

Et même si les solutions générées par l'IA n'étaient pas meilleures que celles des programmeurs humains, elles ont déjà soulevé quelques questions sur ce que cela signifie pour l'avenir.

Un nouveau concurrent prometteur


Basée à Londres, DeepMind, la filiale d'IA d'Alphabet, la société mère de Google, a déjà franchi des étapes historiques, en surpassant les humains aux échecs et au Go, et en se révélant meilleure pour prédire la façon dont les protéines se plient.

Ce mois-ci, DeepMind a annoncé qu'elle avait également mis au point un système appelé AlphaCode pour participer à des concours de programmation, évaluant ses performances dans 10 concours de programmation différents organisés par le site de programmation compétitif CodeForces - chacun comptant au moins 5 000 participants différents.

Les résultats ? AlphaCode "s'est classé à peu près au niveau du concurrent médian", rapporte un billet de blog de DeepMind, "marquant la première fois qu'un système de génération de code d'IA a atteint un niveau de performance compétitif dans des concours de programmation".

DeepMind a souligné que les entreprises du monde réel utilisent ces concours pour le recrutement - et présentent des problèmes similaires aux candidats à l'emploi lors des entretiens de codage.

Dans le billet de blog, Mike Mirzayanov, fondateur de CodeForces, est cité comme ayant déclaré que les résultats d'AlphaCode ont dépassé ses attentes. Il a ajouté : "J'étais sceptique, car même dans les problèmes concurrentiels simples, il est souvent nécessaire non seulement d'implémenter l'algorithme, mais aussi (et c'est la partie la plus difficile) de l'inventer."

"AlphaCode a réussi à se hisser au niveau d'un nouveau concurrent prometteur. Je suis impatient de voir ce qui nous attend !"

Un article des chercheurs de DeepMinds reconnaît qu'il a fallu une énorme puissance de calcul. Un petaFLOP correspond à un nombre impressionnant de 1 000 000 000 000 d'opérations à virgule flottante par seconde. Une journée pétaflopique maintient ce rythme pendant chaque seconde d'une journée de 24 heures, soit un total d'environ 86 400 000 000 000 000 000 000 d'opérations.

"L'échantillonnage et l'entraînement de notre modèle ont nécessité des centaines de jours pétaflopiques".

Une note de bas de page ajoute que les centres de données de Google qui effectuent ces opérations "achètent une énergie renouvelable égale à la quantité consommée."

Comment fonctionne AlphaCode


Les chercheurs expliquent leurs résultats dans un article de 73 pages (encore non publié ou examiné par des pairs). Les auteurs écrivent que leur système a d'abord été "pré-entraîné" sur du code dans des dépôts publics GitHub, tout comme l'outil de suggestion de code à base d'IA Copilot. (Pour éviter certaines des controverses qui ont surgi autour de la méthodologie de Copilot, AlphaCode a filtré les ensembles de données sur lesquels il s'est entraîné, en sélectionnant le code qui a été publié sous des licences permissives).

Les chercheurs ont ensuite "affiné" leur système sur un petit ensemble de données de problèmes de programmation compétitifs, de solutions et même de cas de test, dont beaucoup ont été extraits directement de la plate-forme CodeForces.

Une chose qu'ils ont découverte ? Il y a un problème avec les ensembles de données actuellement disponibles sur les problèmes et les solutions des concours de programmation. Au moins 30 % de ces programmes passent tous les tests, mais ne sont pas réellement corrects.


Les chercheurs ont donc créé un ensemble de données comprenant un plus grand nombre de cas de test afin de vérifier rigoureusement l'exactitude des programmes. Ils pensent que cela réduit considérablement le nombre de programmes incorrects qui réussissent quand même tous les tests - de 30 % à seulement 4 %.

Lorsque le moment est enfin venu de concourir sur les défis de programmation, "nous créons une quantité massive de programmes C++ et Python pour chaque problème", indique le billet de blog de DeepMind. "Ensuite, nous filtrons, regroupons et reclassons ces solutions en un petit ensemble de 10 programmes candidats que nous soumettons à une évaluation externe."

"Les capacités de résolution de problèmes requises pour exceller dans ces compétitions dépassent les capacités des systèmes d'IA existants", argumente le billet de blog de DeepMind, créditant "les progrès des modèles de transformation à grande échelle (qui ont récemment montré des capacités prometteuses pour générer du code)" combinés à "l'échantillonnage et au filtrage à grande échelle."

Selon le billet de blog, les résultats des chercheurs démontrent le potentiel de l'apprentissage profond, même pour des tâches qui nécessitent un esprit critique - exprimer des solutions à des problèmes sous forme de code. Dans son billet de blog, DeepMind décrit le système comme faisant partie de la mission de l'entreprise consistant à "résoudre l'intelligence" (ce que son site Web décrit comme "le développement de systèmes de résolution de problèmes plus généraux et plus performants" - également connu sous le nom d'intelligence artificielle générale).

Le billet de blog ajoute : "Nous espérons que nos résultats inspireront la communauté de la programmation compétitive".

Réaction des programmeurs humains


Le billet de blog de DeepMind comprend également des commentaires de Petr Mitrichev, identifié comme étant à la fois un ingénieur logiciel de Google et un programmeur compétitif de "classe mondiale", qui a été impressionné qu'AlphaCode puisse même faire des progrès dans ce domaine.

"Résoudre des problèmes de programmation compétitive est une chose vraiment difficile à faire, qui exige à la fois de bonnes compétences en codage et de la créativité dans la résolution de problèmes", a déclaré Mitrichev.

Mitrichev a également fourni des commentaires pour six des solutions, notant que plusieurs soumissions avaient également inclus des morceaux de code "inutiles mais inoffensifs".

Dans l'une des solutions, AlphaCode a déclaré une variable de type entier nommée x, puis ne l'a jamais utilisée. Dans un autre cas de traversée de graphe, AlphaCode a inutilement trié tous les sommets adjacents en premier (en fonction de la profondeur du graphe à laquelle ils mènent). Pour un autre problème (nécessitant une solution de type "force brute" exigeant de nombreux calculs), le code supplémentaire d'AlphaCode a rendu sa solution 32 fois plus lente.

En fait, AlphaCode se contentait souvent de mettre en œuvre une solution massive de force brute, écrit Mitrichev.

Mais le système d'IA échoue même comme un programmeur, note Mitrichev, citant une soumission où, lorsque la solution lui échappe, AlphaCode "se comporte un peu comme un humain désespéré." Il a en fait écrit un code qui fournit simplement toujours la même réponse que celle fournie dans le scénario d'exemple du problème, a-t-il écrit, "en espérant que cela fonctionne dans tous les autres cas."

"Les humains font cela aussi, et un tel espoir est presque toujours erroné - comme c'est le cas dans cette affaire".

Quelle a été la qualité des résultats d'AlphaCode ? CodeForce calcule le classement d'un programmeur (en utilisant le système de classement standard Elo également utilisé pour classer les joueurs d'échecs) - et AlphaCode a obtenu un classement de 1 238.

Mais ce qui est plus intéressant, c'est de voir où cette note apparaît sur un graphique de tous les programmeurs en compétition sur CodeForce au cours des six derniers mois. Le document des chercheurs note que la note estimée d'AlphaCode "se situe dans les 28 % supérieurs parmi ces utilisateurs".

Tout le monde n'a pas été impressionné. Dzmitry Bahdanau, chercheur en IA et professeur adjoint à l'université McGill de Montréal, a souligné sur Twitter que de nombreux participants à CodeForce sont des lycéens ou des étudiants - et que les contraintes de temps qui pèsent sur leur résolution de problèmes ont moins d'impact sur un système d'IA pré-entraîné.

Mais surtout, le processus d'AlphaCode consiste à filtrer un torrent de codes générés par l'IA pour en trouver un qui résout réellement le problème posé, de sorte que "la grande majorité des programmes qu'AlphaCode génère sont faux."

Donc, bien qu'il s'agisse d'une direction prometteuse à explorer, Bahdanau ne pense pas qu'il s'agisse d'un jalon de programmation : "Ce n'est pas AlphaGo pour ce qui est de battre les humains, ni AlphaFold pour ce qui est de révolutionner tout un domaine scientifique. Nous avons encore du travail à accomplir."