banner

Nouvelles

May 28, 2023

Le jeu de Google DeepMind

Les algorithmes générés par l'IA sont déjà utilisés par des millions de développeurs.

La série de découvertes de DeepMind en informatique fondamentale se poursuit. L'année dernière, la société a utilisé une version de son jeu AI AlphaZero pour trouver de nouvelles façons d'accélérer le calcul d'un élément mathématique crucial au cœur de nombreux types de code différents, battant un record vieux de 50 ans.

Maintenant, il a de nouveau réussi le même tour, deux fois. En utilisant une nouvelle version d'AlphaZero appelée AlphaDev, la société basée au Royaume-Uni (récemment renommée Google DeepMind après une fusion avec le laboratoire d'intelligence artificielle de sa société sœur en avril) a découvert un moyen de trier les éléments d'une liste jusqu'à 70 % plus rapidement que les meilleurs existants. méthode.

Il a également trouvé un moyen d'accélérer de 30 % un algorithme de clé utilisé en cryptographie. Ces algorithmes sont parmi les blocs de construction les plus courants dans les logiciels. De petites accélérations peuvent faire une énorme différence, en réduisant les coûts et en économisant de l'énergie.

La nouvelle version d'AlphaZero a découvert un moyen plus rapide d'effectuer une multiplication matricielle, un problème fondamental en informatique qui affecte des milliers de tâches informatiques quotidiennes.

"La loi de Moore touche à sa fin, où les puces approchent de leurs limites physiques fondamentales", déclare Daniel Mankowitz, chercheur chez Google DeepMind. "Nous devons trouver des moyens nouveaux et innovants d'optimiser l'informatique."

"C'est une nouvelle approche intéressante", déclare Peter Sanders, qui étudie la conception et la mise en œuvre d'algorithmes efficaces à l'Institut de technologie de Karlsruhe en Allemagne et qui n'a pas participé aux travaux. "Le tri est toujours l'un des sous-programmes les plus largement utilisés en informatique", dit-il.

DeepMind a publié ses résultats dans Nature aujourd'hui. Mais les techniques découvertes par AlphaDev sont déjà utilisées par des millions de développeurs de logiciels. En janvier 2022, DeepMind a soumis ses nouveaux algorithmes de tri à l'organisation qui gère C++, l'un des langages de programmation les plus populaires au monde, et après deux mois de vérification indépendante rigoureuse, les algorithmes d'AlphaDev ont été ajoutés au langage. Il s'agissait de la première modification des algorithmes de tri de C++ depuis plus d'une décennie et de la première mise à jour à impliquer un algorithme découvert à l'aide de l'IA.

DeepMind a ajouté ses autres nouveaux algorithmes à Abseil, une collection open-source d'algorithmes C++ pré-écrits qui peuvent être utilisés par n'importe qui codant avec C++. Ces algorithmes de cryptographie calculent des nombres appelés hachages qui peuvent être utilisés comme identifiants uniques pour tout type de données. DeepMind estime que ses nouveaux algorithmes sont désormais utilisés des milliards de fois par jour.

AlphaDev est construit sur AlphaZero, le modèle d'apprentissage par renforcement que DeepMind a formé pour maîtriser des jeux tels que Go et les échecs. La percée de DeepMind consistait à traiter le problème de la recherche d'un algorithme plus rapide comme un jeu, puis à faire en sorte que son IA le gagne - la même méthode qu'elle a utilisée pour accélérer les calculs dans la recherche de l'année dernière.

Dans le cas d'AlphaDev, le jeu consiste à choisir des instructions informatiques et à les ordonner afin que les lignes de code résultantes constituent un algorithme. AlphaDev gagne la partie si l'algorithme est à la fois correct et plus rapide que ceux existants. Cela semble simple, mais pour bien jouer, AlphaDev doit parcourir un nombre astronomique de coups possibles.

DeepMind a choisi de travailler avec l'assembleur, un langage de programmation qui peut être utilisé pour donner des instructions spécifiques sur la façon de déplacer des nombres sur une puce informatique. Peu d'humains écrivent en assemblée ; c'est le langage dans lequel le code écrit dans des langages comme C++ est traduit avant d'être exécuté. L'avantage de l'assemblage est qu'il permet de décomposer les algorithmes en étapes précises - un bon point de départ si vous recherchez des raccourcis.

Les puces informatiques ont différents emplacements où les nombres sont placés et traités. L'assemblage comprend des instructions de base pour manipuler ce qui se trouve dans ces emplacements, comme mov(A,B), qui indique à un ordinateur de déplacer le nombre qui se trouve dans l'emplacement A vers l'emplacement B, et cmp(A,B), qui indique à l'ordinateur de vérifier si ce qui se trouve dans l'emplacement A est inférieur, égal ou supérieur à ce qui se trouve dans l'emplacement B. De longues séquences de telles instructions peuvent exécuter tout ce que font les ordinateurs.

Pendant des décennies, les codeurs ont écrit des systèmes critiques en C et C++. Maintenant, ils se tournent vers Rust.

AlphaDev joue un coup dans le jeu en ajoutant une nouvelle instruction d'assemblage à l'algorithme qu'il construit. Pour commencer, AlphaDev ajouterait des instructions au hasard, générant des algorithmes qui ne fonctionneraient pas. Au fil du temps, tout comme AlphaZero l'a fait avec les jeux de société, il a appris à jouer des coups gagnants. Il a ajouté des instructions qui ont conduit à des algorithmes qui non seulement fonctionnaient, mais étaient corrects et rapides.

DeepMind s'est concentré sur des algorithmes de tri de listes restreintes de trois à cinq éléments. De tels algorithmes sont appelés maintes et maintes fois dans des programmes qui trient des listes plus longues. Les accélérations dans ces algorithmes courts auront donc un effet d'entraînement cumulatif.

Mais les algorithmes courts ont également été étudiés et optimisés par l'homme depuis des décennies. Mankowitz et ses collègues ont commencé avec un algorithme pour trier une liste de trois éléments juste comme une preuve de concept. La meilleure version humaine de cet algorithme implique 18 instructions. Ils ne pensaient pas pouvoir s'améliorer.

"Honnêtement, nous ne nous attendions pas à faire mieux", dit-il. "Mais à notre grande surprise, nous avons réussi à le rendre plus rapide. Nous avons d'abord pensé qu'il s'agissait d'une erreur ou d'un bogue ou quelque chose du genre, mais lorsque nous avons analysé le programme, nous avons réalisé qu'AlphaDev avait en fait découvert quelque chose."

AlphaDev a trouvé un moyen de trier une liste de trois éléments en 17 instructions au lieu de 18. Ce qu'il avait découvert, c'est que certaines étapes pouvaient être sautées. "Quand nous l'avons regardé par la suite, nous nous sommes dit:" Wow, c'est vraiment logique "", déclare Mankowitz. "Mais pour découvrir quelque chose comme ça [sans AlphaDev], il faut des gens qui sont des experts en langage d'assemblage."

AlphaDev n'a pas pu battre la meilleure version humaine de l'algorithme pour trier une liste de quatre éléments, qui prend 28 instructions. Mais il a battu la meilleure version humaine pour cinq éléments, réduisant le nombre d'instructions de 46 à 42.

Cela représente une accélération significative. L'algorithme C++ existant pour trier une liste de cinq éléments prenait environ 6,91 nanosecondes sur une puce Intel Skylake typique. AlphaDev a pris 2,01 nanosecondes, environ 70 % plus vite.

Un an après avoir pris les biologistes par surprise, AlphaFold a changé la façon dont les chercheurs travaillent et a placé DeepMind sur une nouvelle voie.

DeepMind compare la découverte d'AlphaDev à l'un des mouvements étranges mais gagnants d'AlphaGo lors de son match de Go contre le grand maître Lee Sedol en 2016. "Tous les experts ont examiné ce mouvement et ont dit:" Ce n'est pas la bonne chose à faire. ''", déclare Mankowitz. "Mais en fait, c'était la bonne décision, et AlphaGo a fini par non seulement gagner le match, mais aussi influencer les stratégies que les joueurs professionnels de Go ont commencé à utiliser."

Sanders est impressionné, mais il ne pense pas que les résultats devraient être survendus. "Je suis d'accord sur le fait que les techniques d'apprentissage automatique changent de plus en plus la donne dans la programmation, et tout le monde s'attend à ce que les IA soient bientôt capables d'inventer de nouveaux et meilleurs algorithmes", dit-il. "Mais nous n'en sommes pas encore là."

D'une part, Sanders souligne qu'AlphaDev n'utilise qu'un sous-ensemble des instructions disponibles en assemblage. De nombreux algorithmes de tri existants utilisent des instructions qu'AlphaDev n'a pas essayées, dit-il. Cela rend plus difficile la comparaison d'AlphaDev avec les meilleures approches concurrentes.

C'est vrai qu'AlphaDev a ses limites. L'algorithme le plus long qu'il a produit comportait 130 instructions, pour trier une liste de cinq éléments maximum. A chaque étape, AlphaDev a choisi parmi 297 instructions de montage possibles (parmi bien d'autres). "Au-delà de 297 instructions et de jeux d'assemblage de plus de 130 instructions, l'apprentissage est devenu lent", explique Mankowitz.

En effet, même avec 297 instructions (ou mouvements de jeu), le nombre d'algorithmes possibles qu'AlphaDev pourrait construire est supérieur au nombre possible de parties d'échecs (10120) et au nombre d'atomes dans l'univers (environ 1080).

Pour les algorithmes plus longs, l'équipe prévoit d'adapter AlphaDev pour qu'il fonctionne avec des instructions C++ au lieu de l'assemblage. Avec un contrôle moins fin, AlphaDev pourrait manquer certains raccourcis, mais l'approche serait applicable à un plus large éventail d'algorithmes.

Sanders aimerait également voir une comparaison plus exhaustive avec les meilleures approches conçues par l'homme, en particulier pour les algorithmes plus longs. DeepMind dit que cela fait partie de son plan. Mankowitz veut combiner AlphaDev avec les meilleures méthodes conçues par l'homme, en faisant en sorte que l'IA s'appuie sur l'intuition humaine plutôt que de partir de zéro.

Après tout, il peut y avoir plus d'accélérations à trouver. "Pour qu'un humain fasse cela, cela nécessite une expertise importante et un nombre considérable d'heures - peut-être des jours, voire des semaines - pour parcourir ces programmes et identifier les améliorations", déclare Mankowitz. "En conséquence, cela n'a jamais été tenté auparavant."

"J'ai soudainement changé d'avis sur la question de savoir si ces choses vont être plus intelligentes que nous."

Hinton prendra la parole à EmTech Digital mercredi.

ChatGPT a suscité des spéculations sur l'intelligence artificielle générale. Mais la prochaine véritable phase de l'IA se situera dans des domaines et des contextes spécifiques.

Regardez Hinton parler avec Will Douglas Heaven, rédacteur en chef de MIT Technology Review pour l'IA, chez EmTech Digital.

Découvrez les offres spéciales, les meilleures histoires, les événements à venir et plus encore.

Merci d'avoir soumis votre e-mail !

On dirait que quelque chose s'est mal passé.

Nous rencontrons des difficultés pour enregistrer vos préférences. Essayez d'actualiser cette page et de les mettre à jour une fois de plus. Si vous continuez à recevoir ce message, contactez-nous à l'adresse [email protected] avec une liste des newsletters que vous souhaitez recevoir.

PARTAGER