Parallèlement à son modèle d’IA générative Gemini, Google a dévoilé ce matin AlphaCode 2, une version améliorée de l’AlphaCode générateur de code introduit par le laboratoire DeepMind de Google il y a environ un an.
AlphaCode 2 est en fait alimenté par Gemini, ou du moins une variante de celui-ci (Gemini Pro) affinée sur les données des concours de codage. Et il est bien plus performant que son prédécesseur, affirme Google – au moins sur un point de référence.
Dans un sous-ensemble de concours de programmation hébergés sur Codeforces, une plateforme de concours de programmation, AlphaCode 2 – codant dans des langages couvrant Python, Java, C++ et Go – a obtenu de meilleurs résultats qu’environ 85 % des concurrents en moyenne, selon Google. Cela est comparé aux environ 50 % de concurrents que son prédécesseur a réussi à battre sur le même sous-ensemble.
« Nous avons sélectionné 12 concours récents avec plus de 8 000 participants, soit de la division 2, soit de la division la plus difficile « 1+2 ». Cela fait un total de 77 problèmes », lit-on dans un livre blanc technique sur AlphaCode 2. « AlphaCode 2 résout 43 % des problèmes en 10 tentatives, soit près de deux fois plus de problèmes que l’AlphaCode original (25 %). »
AlphaCode 2 peut comprendre les défis de programmation impliquant des mathématiques « complexes » et de l’informatique théorique. Et, entre autres techniques raisonnablement sophistiquées, AlphaCode 2 est capable de programmation dynamique, explique Rémi Leblond, chercheur chez DeepMind, dans une vidéo préenregistrée.
La programmation dynamique implique de simplifier un problème complexe en le décomposant encore et encore en sous-problèmes plus simples ; Leblond dit qu’AlphaCode 2 sait non seulement quand pour mettre en œuvre correctement cette stratégie, mais où pour l’utiliser. Cela est remarquable, étant donné que les problèmes de programmation nécessitant une programmation dynamique ont constitué un problème majeur pour l’AlphaCode original.
« [AlphaCode 2] doit montrer un certain niveau de compréhension, un certain niveau de raisonnement et de conception de solutions de code avant de pouvoir passer à la mise en œuvre réelle pour résoudre [a] problème de codage », a déclaré Leblond. « Et il fait tout cela sur des problèmes jamais vus auparavant. »
AlphaCode 2 résout les problèmes en exploitant d’abord une famille de « modèles de politique » qui génèrent un certain nombre d’échantillons de code pour chaque problème. Les échantillons de code qui ne correspondent pas à la description du problème sont filtrés et un algorithme de clustering regroupe les « échantillons de code sémantiquement similaires » pour éviter toute redondance. Enfin, un modèle de notation au sein d’AlphaCode 2 fait apparaître le meilleur candidat parmi chacun des 10 plus grands « clusters » d’échantillons de code, ce qui constitue la réponse d’AlphaCode 2 au problème.
Désormais, tous les modèles d’IA ont des défauts – et AlphaCode 2 ne fait pas exception. Selon le livre blanc, AlphaCode 2 nécessite de nombreux essais et erreurs, est trop coûteux à exploiter à grande échelle et repose en grande partie sur la capacité de filtrer les échantillons de code manifestement mauvais. La migration vers une version plus performante de Gemini, telle que Gemini Ultra, pourrait atténuer une partie de ce problème, spécule le livre blanc.
Quant à savoir si nous pouvons nous attendre à voir AlphaCode 2 atteindre un produit à un moment donné – AlphaCode n’a jamais été publié – lors d’un briefing, Eli Collins, vice-président des produits chez DeepMind, a fait allusion à cette possibilité.
« L’une des choses qui m’a le plus enthousiasmé dans les derniers résultats est que lorsque les programmeurs collaborent avec [AlphaCode 2 powered by] Gemini, en définissant certaines propriétés du code à suivre, les performances [of the model] devient encore meilleur », a déclaré Collins. « À l’avenir, nous voyons des programmeurs utiliser des modèles d’IA hautement performants comme outils collaboratifs qui facilitent l’ensemble du processus de développement logiciel, depuis le raisonnement sur les problèmes jusqu’à l’aide à la mise en œuvre. »