3 points par GN⁺ 2025-05-15 | 1 commentaires | Partager sur WhatsApp
  • AlphaEvolve est un agent de génération d’algorithmes évolutif qui combine des LLM et un évaluateur automatique
  • Il a démontré des résultats concrets dans les domaines des mathématiques, de l’informatique, de l’IA et de la conception matérielle, et est appliqué à l’ensemble de l’infrastructure de Google
  • En combinant Gemini Flash et Gemini Pro, il explore à la fois l’étendue et la profondeur des idées
  • Dans l’ordonnancement des datacenters, la conception des TPU et l’optimisation des kernels IA, il apporte des gains de vitesse et des économies de ressources
  • Il s’attaque aussi à plus de 50 problèmes mathématiques difficiles, en proposant de nouveaux algorithmes et, dans certains cas, en améliorant les solutions existantes

AlphaEvolve : agent d’évolution d’algorithmes basé sur Gemini

Vue d’ensemble

  • AlphaEvolve est un agent de codage basé sur des grands modèles de langage (LLM) développé par Google DeepMind
  • La génération créative de code est assurée par les modèles Gemini, tandis que la validation est effectuée par un évaluateur automatique
  • Grâce à un algorithme évolutif, il améliore de manière itérative les meilleurs candidats de code

Domaines d’application réels et résultats

Optimisation de l’infrastructure de calcul de Google

  • AlphaEvolve est utilisé à travers les datacenters, le matériel et les logiciels de Google
  • Les gains d’efficacité produisent des effets positifs continus sur l’ensemble de l’infrastructure IA

Amélioration de l’ordonnancement des datacenters

  • Proposition de nouvelles heuristiques pour Borg, le gestionnaire de clusters de Google
  • Déjà utilisé en production depuis plus d’un an, il a contribué à récupérer 0,7 % des ressources de calcul mondiales
  • Le code restant compréhensible par des humains, la maintenance est facilitée

Support à la conception matérielle

  • Proposition d’optimisations de circuits de multiplication matricielle écrits en Verilog
  • Intégration prévue dans la conception future des TPU de Google
  • Favorise la collaboration avec les ingénieurs hardware

Accélération de l’entraînement et de l’inférence IA

  • Découpage de la multiplication matricielle en problèmes plus petits → gain de 1 % sur la vitesse d’entraînement de Gemini
  • Temps d’optimisation des kernels réduit de plusieurs semaines à quelques jours
  • Amélioration de vitesse jusqu’à 32,5 % sur les kernels FlashAttention
  • Des gains supplémentaires restent possibles même dans des zones déjà fortement optimisées par le compilateur

Innovation en mathématiques et en algorithmique

Découverte d’un nouvel algorithme de multiplication matricielle

  • Découverte d’une méthode meilleure que l’algorithme de Strassen (1969)
  • Traitement de matrices complexes 4x4 avec seulement 48 multiplications scalaires

Exploration de problèmes mathématiques difficiles

  • Expérimentation sur plus de 50 problèmes en analyse, géométrie, combinatoire, théorie des nombres, etc.

    • Dans 75 % des cas, redécouverte de la meilleure solution connue
    • Dans 20 % des cas, obtention de résultats supérieurs aux solutions existantes
  • Exemple : découverte d’une nouvelle borne inférieure pour le problème du kissing number

    • Nouveau record en dimension 11 avec une configuration de 593 sphères

Fonctionnement

  1. Un échantillonneur de prompts génère les entrées
  2. Les modèles Gemini Flash/Pro génèrent le code
  3. Un évaluateur automatique mesure quantitativement la précision et la qualité
  4. Les codes les plus performants évoluent selon une approche d’algorithme génétique
  5. Le code optimal peut être réutilisé, déployé et étendu

Prochaines étapes

  • AlphaEvolve continuera d’être amélioré à mesure que ses capacités de codage progresseront
  • Développement en cours d’une interface utilisateur en collaboration avec l’équipe People + AI Research
  • Ouverture prévue aux chercheurs académiques via l’Early Access Program
    S’inscrire

Potentiel d’application

  • Applicable à tout domaine où la solution peut être définie comme un algorithme et évaluée
  • Exemples : développement de nouveaux matériaux, découverte de médicaments, durabilité, résolution de problèmes technologiques et business

Liens de référence

1 commentaires

 
GN⁺ 2025-05-15
Avis Hacker News
  • D’après ce qui est cité dans l’article, l’application répétée de l’algorithme de Strassen nécessite 49 multiplications pour la multiplication de matrices 4x4, mais AlphaEvolve a trouvé la première méthode permettant d’effectuer une multiplication de matrices complexes 4x4 avec seulement 48 multiplications. Si l’on essaie de multiplier directement les matrices, on a l’impression de répéter plusieurs fois des calculs similaires. Par exemple, pour calculer la taille de l’union de deux ensembles, il faut soustraire la partie en double. L’algorithme de Strassen consiste à garder la trace des calculs nécessaires pour les étapes suivantes, un peu comme une forme de programmation dynamique. Ce qui est intéressant, c’est que ce gain supplémentaire n’apparaît que pour les nombres complexes ; il semble donc y avoir dans la méthode simple une sorte de double comptage sur le plan complexe
    • En cherchant sur Google « 4x4 matrices multiplication 48 », j’ai trouvé un billet sur math.stackexchange. Il y était déjà fait mention en 2019 de la possibilité de multiplier des matrices 4x4 en 48 multiplications, avec un lien vers une thèse de doctorat. Je pense qu’il est possible que ce résultat soit déjà connu (je n’ai pas encore vérifié le détail de l’algorithme)
    • Il semble y avoir une confusion au sujet de l’algorithme de Strassen. D’abord, Strassen n’est pas de la programmation dynamique mais un exemple classique de diviser pour régner. Ensuite, l’algorithme de Strassen fonctionne aussi avec des nombres réels, pas seulement complexes
  • Il est indiqué qu’AlphaEvolve a obtenu jusqu’à 32,5 % d’accélération sur le kernel FlashAttention des modèles d’IA basés sur Transformer. Il est aussi mentionné que, dans 75 % des cas, il a redécouvert la meilleure solution existante, et que dans 20 % des cas, il a encore amélioré le meilleur résultat connu. C’est vraiment impressionnant, mais je suis curieux de savoir concrètement quelle méthode a été utilisée et quelles améliorations ont été apportées. Je me demande aussi si ce gain de 32,5 % ne concerne qu’un cas extrême, et j’aimerais voir les vrais benchmarks
    • Les GPU ont une hiérarchie de cache, donc choisir une taille de bloc optimale peut apporter un gain énorme, mais en pratique cela demande beaucoup de kernels différents, de GPU différents et d’efforts de tuning. Il y a aussi les questions de fusion de kernels et de frontières d’API. Les résultats d’AlphaEvolve sont très impressionnants, mais ce n’est ni de la magie ni une astuce
    • AlphaEvolve a accéléré de 23 % un kernel clé de l’architecture Gemini en divisant intelligemment de grandes opérations de multiplication de matrices en sous-problèmes plus maniables, et a réduit de 1 % le temps total d’entraînement de Gemini
    • Ces chiffres semblent dernièrement exagérés à l’excès. Si FlashAttention est vraiment 32,5 % plus rapide, pourquoi ne pas soumettre une PR au dépôt Flash Attention ? J’aimerais pouvoir lire cela plus en détail
  • Le moment est important. Nous avons maintenant une preuve solide qu’un système d’IA peut produire de nouvelles recherches apportant une valeur concrète dans le monde réel. La réduction de 1 % n’est qu’un début, et si ce type d’effet s’accumule, les gains pourraient devenir considérables. En plus, ce processus lui-même a servi au développement de gemini 2.5 pro, ce qui nous rapproche d’une forme d’auto-amélioration progressive. Ce n’est pas encore totalement automatisé, mais on commence à voir où cela mène
    • Les systèmes de programmation génétique améliorent des algorithmes depuis longtemps. On ne sait pas encore si la programmation génétique basée sur les LLM sera une rupture majeure ou une évolution graduelle. Je reste prudent au sujet de l’auto-amélioration. L’idée « la GP s’améliore elle-même avec la GP ! » est très ancienne, mais n’a toujours pas produit de résultats majeurs. Il existe aussi des exemples et des articles d’autres entreprises sur ce sujet
    • Je me demande si ce résultat est réellement nouveau. On trouve déjà des références à des solutions en 48 et 46 multiplications, et on sent déjà l’enthousiasme du type “l’IA a atteint la singularité”. Si c’était vraiment une percée majeure, cela se saurait probablement plus vite qu’à travers un article
  • Je me demande à quel point cette avancée est progressive. J’ai pris comme exemple B.2 (la deuxième inégalité d’autocorrélation) et je suis allé relire un article précédent (https://arxiv.org/pdf/0907.1379) où les auteurs disent avoir trouvé la borne supérieure précédente par exploration numérique avec Mathematica. Ils expliquent aussi ne pas être allés plus loin parce que le gain ne valait pas l’effort. Autrement dit, l’avancée d’AlphaEvolve ici est elle aussi assez graduelle (même si le résultat reste cool)
    • Aujourd’hui, le « coût en effort » a tellement chuté qu’on arrive à un point où l’on ne peut plus dire que cela « ne vaut pas la peine ». Et cela en soi est important
    • Ce qui n’avait aucune valeur en temps humain peut, une fois automatisé par l’IA, s’accumuler en une multitude d’« opportunités » et produire une différence énorme
    • C’est exactement le genre de signal qui donne l’impression que la vraie IA commence à décoller
  • Face à ce genre d’affirmations audacieuses, il est difficile de garder une position défensive. Si c’est vraiment tel que décrit, alors on est déjà très proche d’une « IA incontrôlable ». Philosophiquement, si l’on explique progressivement de nouvelles découvertes à un ancien LLM, cette information devient une connaissance « nouvelle », ce qui revient finalement à injecter indirectement de l’intelligence humaine
  • C’est cool, mais au fond, n’est-ce pas essentiellement similaire au Co-Scientist de Google ? Une structure où plusieurs LLM s’échangent du contexte et se vérifient mutuellement. C’est impressionnant sur le plan de l’exécution, mais je n’ai pas l’impression que ce soit fondamentalement entièrement nouveau. Les LLM sont clairement utiles pour l’optimisation de code ou pour détecter des motifs et redondances que les humains manquent, mais cette annonce donne aussi l’impression d’un autre billet de blog tape-à-l’œil de Google. La marque « Alpha » était autrefois réservée à des innovations nettes comme AlphaGo ou AlphaFold, alors qu’aujourd’hui elle semble aussi utilisée pour des systèmes à l’impact plus limité. À titre de comparaison, Co-Scientist avait aussi sa propre méthode d’évaluation. ( https://research.google/blog/accelerating-scientific-breakth... voir référence )
    • L’article AlphaEvolve traite justement de ce point. Là où AI Co-Scientist exprimait les hypothèses scientifiques et leur évaluation en langage naturel, AlphaEvolve fait évoluer du code et des fonctions d’évaluation programmatiques. Cela permet d’éviter largement les hallucinations des LLM et de faire tourner le processus évolutif de manière continue sur de nombreuses étapes
    • Très Google : on a encore l’impression que des équipes distinctes construisent en même temps des produits aux fonctions similaires
    • Je ne sais même pas si « Google's Co-Scientist » désigne un seul projet ou plusieurs
  • Ceux qui attendent la singularité vont forcément tiquer sur ce genre de phrase : « AlphaEvolve propose des modifications dans le langage standard utilisé par les ingénieurs en conception de puces, permettant une collaboration entre l’IA et les ingénieurs hardware »
    • Pour citer la partie concernée de l’article, AlphaEvolve a supprimé des bits inutiles dans le code des unités de calcul du matmul, et ce changement a été vérifié par les concepteurs de TPU. La cause pourrait être que les bits de poids fort en sortie du circuit MAC ne sont pas utilisés par les accumulateurs en aval. En réalité, ce type d’optimisation équivalente est aussi souvent réalisé automatiquement par les outils de synthèse ultérieurs, et l’article soutient que couper les bits directement dans le RTL source aurait plus de sens qu’une optimisation après synthèse. Mais les outils de synthèse garantissent que la signification du circuit ne change pas, ce qui n’est pas le cas d’une modification du RTL source, d’où la nécessité d’une validation humaine. Cela dit, il est dommage qu’on ne puisse pas facilement annoter dans le code source quelles parties ont été optimisées dans le résultat de synthèse. L’évolution de code basée sur les LLM peut avoir un intérêt pour l’exploration précoce en conception matérielle, mais j’ai l’impression que les accomplissements réels d’AlphaEvolve sont exagérés
    • En fin de compte, cela signifie simplement que tout cela fonctionne sur une représentation intermédiaire de compilateur ou sur du texte de debug
    • Cette approche n’est applicable qu’aux problèmes d’optimisation dont la fonction d’évaluation est bien définie ou mesurable. On ne peut pas écrire une fonction d’évaluation pour une « intelligence générale »
    • La phrase « AlphaEvolve améliore l’efficacité des data centers, de la conception de puces et de l’entraînement IA de Google — y compris l’entraînement du LLM qui a donné naissance à AlphaEvolve » est marquante. On a l’impression que le moment où l’IA s’améliore elle-même plus vite que les humains est déjà là
    • La singularité se situe toujours au sommet de l’excès de confiance, et l’IA n’est en réalité qu’une forme de pseudo-intelligence, comme un « télésiège automatisé »
  • Ce qui est intéressant, c’est qu’AlphaEvolve était déjà utilisé depuis un an et n’est dévoilé que maintenant. D’après l’article, il fonctionne sur Gemini 2.0 (Pro et Flash), ce qui crée une situation particulière où Gemini 2.0 a servi à entraîner Gemini 2.5. Sans être encore une boucle de rétroaction d’auto-amélioration typique, on en voit déjà certains contours. Je me demande si AlphaEvolve a seulement été développé pendant un an, ou s’il est allé jusqu’à un usage en production. Cela montre aussi qu’il n’est pas forcément nécessaire de partager immédiatement les résultats obtenus dans la recherche en IA
    • Si l’on dispose d’assez de cerveaux, de ressources de calcul et de hardware, rien ne semble vraiment pouvoir empêcher une vraie boucle de rétroaction. DeepMind est dans une position unique à cet égard
    • Le fait d’utiliser Gemini 2.0 pour améliorer Gemini 2.5 ressemble à la stratégie qu’OpenAI suit depuis l’introduction du RLHF, consistant à produire des données structurées et des modèles de type distillation
    • Le point clé, c’est l’autonomie. Pour que cela ait vraiment du sens, les changements qu’il produit lui-même doivent pouvoir être validés sans intervention humaine. Si des solutions de plus en plus inexplicables apparaissent, on peut se demander si cela aide vraiment. Cela pourrait aussi simplement empiler du code inutilement obscur. On peut se demander si c’est bien l’objectif
  • J’ai été surpris par le peu d’explications sur la procédure évolutive d’AlphaEvolve. La formule « un algorithme inspiré de MAP elites et d’un modèle de population à base d’îles » laisse entendre que le mot « inspiré » recouvre en réalité beaucoup de choses. Comment les dimensions de variation de MAP-elites sont-elles définies ? Comment les deux algorithmes sont-ils combinés ? Jusqu’où va exactement cette inspiration ? Il manque des détails. On a l’impression que le cœur du processus évolutif reste une sorte de recette secrète
    • Un article paru dans Nature en 2023 sur l’évolution de LLM fondée sur des îles (https://www.nature.com/articles/s41586-023-06924-6) entre davantage dans le détail. Ce réglage des « dimensions/caractéristiques » est crucial. Ce genre de white paper peut même être décevant sur le plan scientifique
    • La méthode la plus simple consiste à demander au modèle de générer différents critères d’évaluation, puis à utiliser chacun d’eux comme dimension
  • L’article manque aussi d’explications sur la partie réellement évolutive. En général, les algorithmes évolutionnaires comportent un mécanisme de croisement (crossover) ; s’il n’y en a pas, il faudrait plutôt le classer comme une forme de hill climbing ou de beam search
    • Une légende mentionne qu’il faut 16 « mutations », et j’aimerais bien comprendre ce que recouvre ce processus de mutation
    • Il existe aussi des algorithmes de type « stratégies évolutionnaires » qui utilisent une population de candidats pour approximer un paysage de gradient, sans mutation classique ni croisement
    • Ce qui fait peur, c’est qu’il soit possible que ce ne soit pas vraiment un algorithme évolutionnaire, mais simplement autre chose à laquelle on a donné un nom ressemblant