Tensor Seeks Layout: Formalizing Layout Selection for ML Compilers
Cet article présente la première étude formelle de la sélection de disposition dans les compilateurs d'apprentissage automatique en la formulant comme un problème d'optimisation combinatoire, en prouvant sa dureté computationnelle, et en proposant à la fois des algorithmes optimaux pour les graphes de largeur de treillis bornée et un encodage MaxSAT pondéré pour les instances générales afin de démontrer que des heuristiques simples peuvent dégrader les performances jusqu'à 5 fois par rapport aux solutions optimales.
Article original sous licence CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Ceci est une explication générée par l'IA de l'article ci-dessous. Elle n'a pas été rédigée ni approuvée par les auteurs. Pour une précision technique, consultez l'article original. Lire la clause de non-responsabilité complète
L'intelligence artificielle moderne repose sur des modèles mathématiques massifs qui traitent de vastes quantités de données pour reconnaître la parole, traduire des langues ou générer des images. Pour exécuter ces modèles rapidement, les ingénieurs utilisent des puces informatiques spécialisées, conçues spécifiquement pour ce travail de force. Cependant, ces puces ne se contentent pas d'exécuter des instructions ; elles doivent également déplacer les données de manière efficace. La vitesse à laquelle un modèle s'exécute dépend souvent moins de la puissance brute de la puce que de la manière dont les données sont disposées dans sa mémoire. Imaginez une bibliothèque où les livres sont rangés sur des étagères. Si un lecteur doit trouver un ensemble spécifique de livres, le temps nécessaire dépend entièrement du fait que ces livres soient éparpillés dans différents rayons ou soigneusement regroupés sur une seule étagère. Dans le monde des puces informatiques, cette disposition est appelée un « layout » (ou agencement). Lorsqu'un programme informatique effectue un calcul, il attend les données dans un agencement spécifique, mais l'étape précédente du programme peut avoir laissé les données dans un autre. Si les deux ne correspondent pas, l'ordinateur doit s'arrêter et réorganiser les données avant de pouvoir procéder, un processus qui gaspille du temps et de l'énergie.
Pendant des années, le logiciel qui prépare ces modèles pour les puces s'est appuyé sur une collection de suppositions approximatives et de règles empiriques pour décider comment disposer ces données. Ces règles fonctionnent assez bien pour des tâches simples, mais à mesure que les modèles sont devenus plus complexes, les suppositions ont commencé à échouer, entraînant des ralentissements importants. Une équipe de chercheurs de l'Université technique de Vienne et d'Amazon s'est donné pour mission de changer cette approche. Au lieu de se fier à l'intuition, ils ont traité le problème de l'agencement des données comme un puzzle mathématique formel. Ils ont construit un modèle précis qui calcule le coût exact de chaque arrangement possible, y compris le temps nécessaire pour déplacer les données entre différents formats. Ce faisant, ils ont pu déterminer la meilleure façon de réorganiser les données pour n'importe quel modèle donné, plutôt que d'espérer qu'un ensemble de règles s'en rapproche suffisamment.
Les chercheurs ont découvert que trouver cet agencement parfait est une tâche incroyablement difficile. Dans le langage de l'informatique, le problème est si complexe qu'aucun ordinateur ne peut le résoudre rapidement pour chaque situation possible, surtout à mesure que les modèles grandissent. Ils ont prouvé que même pour une version simplifiée du problème impliquant uniquement des calculs matriciels de base, le nombre de possibilités est si vaste qu'un ordinateur standard peinerait à trouver la réponse dans un délai raisonnable. Cette conclusion a écarté l'idée qu'un algorithme unique et rapide puisse résoudre le problème pour tous les futurs modèles. Cependant, l'équipe a également trouvé une voie à suivre. Ils ont montré que si le problème est difficile en général, il devient gérable lorsque la structure du modèle ressemble à un arbre avec une ramification limitée. Pour ces structures spécifiques, qui sont courantes dans de nombreuses applications réelles, ils ont conçu une méthode qui trouve la solution parfaite rapidement. Pour les structures plus complexes qui ne correspondent pas à ce schéma, ils ont développé un moyen de traduire le problème dans un format que les solveurs puissants existants peuvent traiter, permettant ainsi de trouver le meilleur agencement possible lorsqu'un raccourci mathématique parfait n'existe pas.
Pour tester leurs idées, les chercheurs ont implémenté leur nouvelle méthode à l'intérieur d'un compilateur réel utilisé pour les puces Trainium d'Amazon, qui sont conçues pour exécuter des modèles d'intelligence artificielle. Ils ont comparé leur nouvelle approche aux méthodes standards actuellement utilisées dans l'industrie, qui reposent sur les anciennes règles empiriques. Les résultats ont été frappants. Sur certains modèles complexes, notamment ceux utilisés pour la reconnaissance d'images, les anciennes règles empiriques ont fait fonctionner les modèles jusqu'à cinq fois plus lentement que nécessaire. Cela s'est produit parce que les règles simples ne voyaient pas l'ensemble du tableau ; elles agençaient les données parfaitement pour une étape, mais créaient un désordre pour l'étape suivante, forçant l'ordinateur à perdre du temps à réorganiser constamment les données. La nouvelle méthode, en examinant l'ensemble de la séquence d'étapes à la fois, a évité ces réorganisations coûteuses et a permis aux données de circuler de manière fluide.
Cependant, l'étude a également révélé une limitation cruciale. Bien que la nouvelle méthode puisse toujours trouver l'agencement mathématiquement optimal selon ses propres calculs, cela ne se traduit pas toujours par la vitesse la plus élevée sur le matériel réel. Dans certains cas, la nouvelle méthode a produit un résultat théoriquement parfait qui était moins performant que les anciennes règles plus simples. Les chercheurs ont attribué cette divergence au modèle de coût lui-même. Le logiciel utilisé pour prédire le temps qu'une tâche prendrait n'était pas parfaitement précis ; il sous-estimait le temps requis pour certains types de mouvements de données. Parce que la nouvelle méthode était si douée pour trouver le coût le plus bas selon ses propres prédictions erronées, elle choisissait parfois un agencement qui semblait peu coûteux sur le papier, mais qui était en réalité coûteux. Cette découverte suggère que le plus grand obstacle aux améliorations futures n'est pas de meilleurs algorithmes de recherche, mais de meilleures façons de prédire le temps réel d'exécution des tâches.
Ce travail offre une voie claire pour l'avenir. Il démontre que traiter la sélection de l'agencement comme un problème d'optimisation formelle est une stratégie viable et puissante, capable de produire des accélérations massives là où les règles simples échouent. Il clarifie également que la limite ultime de la performance n'est pas la capacité à trouver la meilleure solution, mais la précision des prédictions utilisées pour guider cette recherche. Pour les modèles ayant des structures régulières et prévisibles, l'approche basée sur un nouveau solveur est déjà un choix supérieur. Pour les modèles plus chaotiques et complexes, l'accent doit être mis sur le perfectionnement des modèles de coût afin que l'optimum mathématique s'aligne sur la réalité physique de la puce. En séparant le problème de la recherche de la meilleure solution de celui de la prédiction du coût, les chercheurs ont donné aux développeurs de compilateurs un nouvel outil pour mesurer leurs progrès et une cible claire pour orienter leurs futurs efforts.
Noyé(e) sous les articles dans votre domaine ?
Recevez des digests quotidiens des articles les plus récents correspondant à vos mots-clés de recherche — avec des résumés techniques, dans votre langue.