Une intelligence artificielle créée par la firme DeepMind a découvert une nouvelle façon de multiplier les nombres, la première avancée de ce type depuis plus de 50 ans. La découverte pourrait augmenter certaines vitesses de calcul jusqu’à 20%, car une gamme de logiciels repose sur l’exécution de la tâche à grande échelle.
La multiplication matricielle – où deux grilles de nombres sont multipliées ensemble – est une tâche informatique fondamentale utilisée dans pratiquement tous les logiciels dans une certaine mesure, mais particulièrement dans les graphiques, l’IA et les simulations scientifiques. Même une petite amélioration de l’efficacité de ces algorithmes pourrait apporter des gains de performances importants ou des économies d’énergie importantes.
Pendant des siècles, on a cru que la manière la plus efficace de multiplier les matrices serait proportionnelle au nombre d’éléments multipliés, ce qui signifie que la tâche devient proportionnellement plus difficile pour les matrices de plus en plus grandes.
Mais le mathématicien Volker Strassen a prouvé en 1969 que multiplier une matrice de deux rangées de deux nombres par une autre de même taille n’implique pas nécessairement huit multiplications et que, par une astuce astucieuse, on peut la réduire à sept. Cette approche, appelée algorithme de Strassen , nécessite quelques ajouts supplémentaires, mais cela est acceptable car les additions dans un ordinateur prennent beaucoup moins de temps que les multiplications.
L’algorithme est l’approche la plus efficace sur la plupart des tailles de matrice depuis plus de 50 ans, bien que quelques légères améliorations qui ne sont pas facilement adaptées au code informatique aient été trouvées . Mais l’IA de DeepMind a maintenant découvert une technique plus rapide qui fonctionne parfaitement sur le matériel actuel. La nouvelle IA de l’entreprise, AlphaTensor, a commencé sans aucune connaissance des solutions et a été confrontée au problème de la création d’un algorithme de travail qui a terminé la tâche avec le nombre minimum d’étapes.
Il a trouvé un algorithme pour multiplier deux matrices de quatre rangées de quatre nombres en utilisant seulement 47 multiplications, ce qui surpasse les 49 multiplications de Strassen. Il a également développé des techniques améliorées pour multiplier des matrices d’autres tailles, 70 au total.
AlphaTensor a découvert des milliers d’algorithmes fonctionnels pour chaque taille de matrice, dont 14 000 pour les seules matrices 4 × 4. Mais seule une petite minorité était meilleure que l’état de l’art. La recherche s’appuie sur AlphaZero , le modèle de jeu de DeepMind, et a duré deux ans.
Hussein Fawzi de Deepmind affirme que les résultats sont mathématiquement valables, mais qu’ils sont loin d’être intuitifs pour les humains. « Nous ne savons pas vraiment pourquoi le système a créé cela, essentiellement », dit-il. « Pourquoi est-ce la meilleure façon de multiplier les matrices ? C’est vague. »
« D’une manière ou d’une autre, les réseaux de neurones ont une intuition de ce qui semble bon et de ce qui semble mauvais. Honnêtement, je ne peux pas vous dire exactement comment cela fonctionne. Je pense qu’il y a un travail théorique à faire là-bas sur la façon exacte dont l’apprentissage en profondeur parvient à faire ce genre de choses », déclare Fawzi.
DeepMind a découvert que les algorithmes pouvaient augmenter la vitesse de calcul de 10 à 20% sur certains matériels tels qu’une unité de traitement graphique (GPU) Nvidia V100 et une unité de traitement de tenseur Google (TPU) v2, mais rien ne garantit que ces gains seraient également être vu sur des appareils courants comme un smartphone ou un ordinateur portable.
James Knight de l’Université du Sussex, au Royaume-Uni, affirme qu’une gamme de logiciels exécutés sur des superordinateurs et du matériel puissant, comme la recherche sur l’IA et la simulation météorologique, est en fait une multiplication matricielle à grande échelle. « Si ce type d’approche était réellement mis en œuvre là-bas, cela pourrait être une sorte d’accélération universelle », dit-il. « Si Nvidia implémentait cela dans sa bibliothèque CUDA [un outil qui permet aux GPU de fonctionner ensemble], cela réduirait un certain pourcentage de la plupart des charges de travail d’apprentissage en profondeur, je dirais. »
Oded Lachish de Birkbeck, Université de Londres, affirme que les nouveaux algorithmes pourraient augmenter l’efficacité d’une large gamme de logiciels, car la multiplication matricielle est un problème si courant – et d’autres algorithmes sont susceptibles de suivre.
« Je pense que nous verrons des résultats générés par l’IA pour d’autres problèmes de nature similaire, bien que rarement quelque chose d’aussi central que la multiplication matricielle. Il existe une motivation importante pour une telle technologie, car moins d’opérations dans un algorithme ne signifie pas seulement des résultats plus rapides, cela signifie également moins d’énergie dépensée », dit-il. Si une tâche peut être effectuée un peu plus efficacement, elle peut être exécutée sur un matériel moins puissant et moins gourmand en énergie, ou sur le même matériel en moins de temps, en utilisant moins d’énergie.
Mais les progrès de DeepMind ne signifient pas nécessairement que les codeurs humains sont au chômage. « Les programmeurs devraient-ils s’inquiéter ? Peut-être dans un futur lointain. L’optimisation automatique est pratiquée depuis des décennies dans l’industrie de la conception de micropuces et ce n’est qu’un autre outil important dans l’arsenal du codeur », déclare Lachish.
Référence de la revue : Nature , DOI : 10.1038/s41586-022-05172-4