De nouvelles techniques accélèrent efficacement les tenseurs clairsemés pour les modèles d'IA massifs

De nouvelles techniques accélèrent efficacement les tenseurs clairsemés pour les modèles d’IA massifs

Des chercheurs du MIT et de NVIDIA ont développé deux techniques qui accélèrent le traitement des tenseurs clairsemés, un type de structure de données utilisé pour les tâches de calcul hautes performances. Les techniques complémentaires pourraient entraîner des améliorations significatives des performances et de l’efficacité énergétique des systèmes tels que les modèles massifs d’apprentissage automatique qui pilotent l’intelligence artificielle générative.

Les tenseurs sont des structures de données utilisées par les modèles d’apprentissage automatique. Les deux nouvelles méthodes cherchent à exploiter efficacement ce que l’on appelle la parcimonie (valeurs nulles) dans les tenseurs. Lors du traitement de ces tenseurs, on peut sauter les zéros et économiser à la fois sur le calcul et la mémoire. Par exemple, tout ce qui est multiplié par zéro vaut zéro, il peut donc ignorer cette opération. Et il peut compresser le tenseur (les zéros n’ont pas besoin d’être stockés) afin qu’une plus grande partie puisse être stockée dans la mémoire sur puce.

Cependant, l’exploitation de la parcimonie présente plusieurs défis. Trouver les valeurs non nulles dans un grand tenseur n’est pas une tâche facile. Les approches existantes limitent souvent les emplacements des valeurs non nulles en appliquant un modèle de parcimonie pour simplifier la recherche, mais cela limite la variété de tenseurs clairsemés qui peuvent être traités efficacement.

Un autre défi est que le nombre de valeurs non nulles peut varier selon les différentes régions du tenseur. Cela rend difficile la détermination de la quantité d’espace nécessaire pour stocker différentes régions en mémoire. Pour garantir que la région s’adapte, plus d’espace est souvent alloué que nécessaire, ce qui entraîne une sous-utilisation de la mémoire tampon de stockage. Cela augmente le trafic mémoire hors puce, ce qui nécessite des calculs supplémentaires.

Les chercheurs du MIT et de NVIDIA ont élaboré deux solutions pour résoudre ces problèmes. D’une part, ils ont développé une technique qui permet au matériel de trouver efficacement les valeurs non nulles pour une plus grande variété de modèles de parcimonie.

Pour l’autre solution, ils ont créé une méthode capable de gérer le cas où les données ne tiennent pas en mémoire, ce qui augmente l’utilisation du tampon de stockage et réduit le trafic mémoire hors puce.

Les deux méthodes améliorent les performances et réduisent la demande d’énergie des accélérateurs matériels spécialement conçus pour accélérer le traitement des tenseurs clairsemés. Les documents ont été postés sur le arXiv serveur de préimpression.

« En général, lorsque vous utilisez des accélérateurs matériels plus spécialisés ou spécifiques à un domaine, vous perdez la flexibilité que vous obtiendriez d’un processeur plus généraliste, comme un CPU. Ce qui ressort de ces deux travaux, c’est que nous montrons que vous pouvez toujours maintenir flexibilité et adaptabilité tout en étant spécialisé et efficace », déclare Vivienne Sze, professeure agrégée au Département de génie électrique et d’informatique (EECS) du MIT, membre du Laboratoire de recherche en électronique (RLE) et co-auteur principal des articles sur les deux avancées.

Ses co-auteurs incluent les auteurs principaux Yannan Nellie Wu Ph.D. ’23 et Zi Yu Xue, étudiant diplômé en génie électrique et informatique ; et co-auteur principal Joel Emer, professeur au MIT de pratique en informatique et en génie électrique et membre du Laboratoire d’informatique et d’intelligence artificielle (CSAIL), ainsi que d’autres chez NVIDIA. Les deux articles seront présentés au Symposium international IEEE/ACM sur la microarchitecture.

Highlight : Trouver efficacement les valeurs nulles

La parcimonie peut survenir dans le tenseur pour diverses raisons. Par exemple, les chercheurs « élaguent » parfois les éléments inutiles des modèles d’apprentissage automatique en remplaçant certaines valeurs du tenseur par des zéros, créant ainsi une parcimonie. Le degré de parcimonie (pourcentage de zéros) et l’emplacement des zéros peuvent varier selon les modèles.

Pour faciliter la recherche des valeurs non nulles restantes dans un modèle comportant des milliards de valeurs individuelles, les chercheurs limitent souvent l’emplacement des valeurs non nulles afin qu’elles correspondent à un certain modèle. Cependant, chaque accélérateur matériel est généralement conçu pour prendre en charge un modèle de parcimonie spécifique, ce qui limite sa flexibilité.

En revanche, l’accélérateur matériel conçu par les chercheurs du MIT, appelé HighLight, peut gérer une grande variété de modèles de parcimonie tout en restant performant lors de l’exécution de modèles qui n’ont pas de valeurs nulles.

Ils utilisent une technique qu’ils appellent « parcimonie structurée hiérarchique » pour représenter efficacement une grande variété de modèles de parcimonie composés de plusieurs modèles de parcimonie simples. Cette approche divise les valeurs d’un tenseur en blocs plus petits, où chaque bloc a son propre modèle simple et clairsemé (peut-être deux zéros et deux non nuls dans un bloc avec quatre valeurs).

Ensuite, ils combinent les blocs dans une hiérarchie, où chaque collection de blocs a également son propre modèle simple et clairsemé (peut-être un bloc nul et trois blocs non nuls dans un niveau comportant quatre blocs). Ils continuent de combiner des blocs en niveaux plus grands, mais les modèles restent simples à chaque étape.

Cette simplicité permet à HighLight de rechercher et d’ignorer les zéros plus efficacement, afin de tirer pleinement parti de l’opportunité de réduire les calculs excessifs. En moyenne, la conception de leur accélérateur était environ six fois plus économe en énergie que les autres approches.

« En fin de compte, l’accélérateur HighLight est capable d’accélérer efficacement les modèles denses car il n’introduit pas beaucoup de frais généraux, et en même temps il est capable d’exploiter des charges de travail avec différentes quantités de valeurs nulles basées sur une parcimonie structurée hiérarchique », Wu explique.

À l’avenir, elle et ses collaborateurs souhaitent appliquer la parcimonie structurée hiérarchique à davantage de types de modèles d’apprentissage automatique et à différents types de tenseurs dans les modèles.

Tailors et Swiftiles : surréservation efficace pour accélérer les charges de travail

Les chercheurs peuvent également tirer parti de la parcimonie pour déplacer et traiter plus efficacement les données sur une puce informatique.

Étant donné que les tenseurs sont souvent plus grands que ce qui peut être stocké dans la mémoire tampon de la puce, la puce ne saisit et ne traite qu’une partie du tenseur à la fois. Les morceaux sont appelés tuiles.

Pour maximiser l’utilisation de ce tampon et limiter le nombre de fois où la puce doit accéder à la mémoire hors puce, qui domine souvent la consommation d’énergie et limite la vitesse de traitement, les chercheurs cherchent à utiliser la plus grande tuile pouvant tenir dans le tampon.

Mais dans un tenseur clairsemé, de nombreuses valeurs de données sont nulles, de sorte qu’une tuile encore plus grande peut tenir dans le tampon que ce à quoi on pourrait s’attendre en fonction de sa capacité. Les valeurs nulles n’ont pas besoin d’être stockées.

Mais le nombre de valeurs nulles peut varier selon les différentes régions du tenseur, elles peuvent donc également varier pour chaque tuile. Cela rend difficile la détermination d’une taille de tuile qui tiendra dans la mémoire tampon. En conséquence, les approches existantes supposent souvent qu’il n’y a pas de zéros et finissent par sélectionner une vignette plus petite, ce qui entraîne un gaspillage d’espaces vides dans la mémoire tampon.

Pour répondre à cette incertitude, les chercheurs proposent d’utiliser le « surréservation » pour leur permettre d’augmenter la taille des tuiles, ainsi qu’un moyen de le tolérer si la tuile ne rentre pas dans le tampon.

De la même manière qu’une compagnie aérienne surbooke des billets pour un vol, si tous les passagers se présentent, la compagnie aérienne doit indemniser ceux qui sont expulsés de l’avion. Mais généralement, tous les passagers ne se présentent pas.

Dans un tenseur clairsemé, une taille de tuile peut être choisie de telle sorte que les tuiles aient généralement suffisamment de zéros pour que la plupart tiennent encore dans le tampon. Mais parfois, une vignette aura plus de valeurs non nulles qu’elle ne peut en contenir. Dans ce cas, ces données sont supprimées du tampon.

Les chercheurs permettent au matériel de récupérer uniquement les données déplacées sans récupérer ni traiter à nouveau la totalité de la tuile. Ils modifient la « queue » du tampon pour gérer cela, d’où le nom de cette technique, Tailors.

Ensuite, ils ont également créé une approche permettant de trouver la taille des tuiles qui tire parti de la surréservation. Cette méthode, appelée Swiftiles, estime rapidement la taille idéale des tuiles afin qu’un pourcentage spécifique de tuiles, défini par l’utilisateur, soit surréservé. (Les noms « Tailors » et « Swiftiles » rendent hommage à Taylor Swift, dont la récente tournée Eras était pleine de codes de prévente de billets surréservés).

Swiftiles réduit le nombre de fois où le matériel a besoin de vérifier le tenseur pour identifier une taille de tuile idéale, économisant ainsi sur le calcul. La combinaison de Tailors et Swiftiles fait plus que doubler la vitesse tout en ne nécessitant que la moitié de la demande énergétique des accélérateurs matériels existants qui ne peuvent pas gérer la surréservation.

« Swiftiles nous permet d’estimer la taille que doivent avoir ces tuiles sans nécessiter plusieurs itérations pour affiner l’estimation. Cela ne fonctionne que parce que la surréservation est prise en charge. Même si vous avez un écart décent, vous pouvez toujours extraire un peu d’accélération car de la façon dont les valeurs non nulles sont distribuées », explique Xue.

À l’avenir, les chercheurs souhaitent appliquer l’idée de surréservation à d’autres aspects de l’architecture informatique et travailler également à améliorer le processus d’estimation du niveau optimal de surréservation.