GPU occupés : la méthode d'échantillonnage et de séquençage augmente la vitesse d'apprentissage en profondeur sur les grands graphiques | Nouvelles du MIT

Les graphes, un réseau potentiellement vaste de nœuds connectés aux bords, peuvent être utilisés pour exprimer et interroger les relations entre les données, telles que les connexions sociales, les transactions financières, le trafic, les réseaux énergétiques et les interactions moléculaires. Au fur et à mesure que les chercheurs collectent plus de données et construisent ces images graphiques, les chercheurs auront besoin de moyens plus rapides et plus efficaces, ainsi que de plus de puissance de calcul, pour effectuer un apprentissage en profondeur sur celles-ci, à la manière des réseaux de neurones graphiques (GNN).

Désormais, une nouvelle méthode appelée SALIENT (Sampling, sLIcing, and Moving Data), développée par des chercheurs du MIT et d’IBM Research, améliore les performances de formation et d’inférence en s’attaquant à trois principaux goulots d’étranglement de calcul. Cela réduit considérablement le temps d’exécution des GNN sur de grands ensembles de données, qui contiennent, par exemple, une échelle de 100 millions de nœuds et 1 milliard d’arêtes. De plus, l’équipe a constaté que la technologie évolue bien lorsqu’on ajoute la puissance de calcul d’une à 16 unités de traitement graphique (GPU). Les travaux ont été présentés à la cinquième conférence sur l’apprentissage automatique et les systèmes.

“Nous avons commencé à examiner les défis auxquels les systèmes existants étaient confrontés lors de la mise à l’échelle des techniques modernes d’apprentissage automatique pour la représentation graphique de très grands ensembles de données. Il s’est avéré qu’il y avait beaucoup de travail à faire, car de nombreux systèmes existants fonctionnaient fondamentalement bien sur des ensembles de données plus petits qui tiennent dans la mémoire d’un GPU », explique Tim Kaller, auteur principal et chercheur postdoctoral au Laboratoire d’informatique et d’intelligence artificielle du MIT (CSAIL).

Par grands ensembles de données, les experts entendent des métriques telles que l’ensemble du réseau Bitcoin, où certains modèles de données et relations peuvent illustrer des tendances ou des manipulations erronées. déclare le co-auteur Ji Chen, scientifique principal et directeur de recherche pour IBM Research et le MIT-IBM Watson AI Lab. “Nous voulons construire un système capable de gérer ce type de graphique et permettre au traitement d’être aussi efficace que possible, car chaque jour nous voulons suivre le rythme des nouvelles données générées.”

Les co-auteurs de Kahler et Chen incluent Nicholas Stathas Ming 21 de Jump Trading, qui a développé SALIENT dans le cadre de ses études supérieures. Anne Ouyang, ancienne stagiaire du MIT-IBM Watson AI Lab et étudiante diplômée du MIT; MIT CSAIL postdoctorant Alexandros Stavros Iliopoulos ; Tao b. Shardell, chercheur scientifique au MIT CSAIL ; et Charles E. Leiserson, professeur Edwin Sibley Webster de génie électrique au MIT et chercheur au MIT-IBM Watson AI Lab.

Pour ce problème, l’équipe a adopté une approche orientée système pour développer sa méthode : SALIENT, dit Kahler. Pour ce faire, les chercheurs ont appliqué ce qu’ils considéraient comme des améliorations fondamentales et importantes aux composants qui s’intègrent dans les cadres d’apprentissage automatique existants, tels que la bibliothèque de graphes géométriques et profonds PyTorch (DGL), qui sont des interfaces permettant de créer un modèle d’apprentissage automatique. Stathas dit que le processus revient à échanger des moteurs pour construire une voiture plus rapide. Leur méthode est conçue pour correspondre aux architectures GNN existantes, afin que les experts du domaine puissent facilement appliquer ce travail à leurs domaines spécifiques pour accélérer la formation du modèle et des informations plus rapides lors de l’inférence. L’équipe a décidé que l’astuce consistait à garder tout le matériel (processeurs, liaisons de données et GPU) occupé à tout moment : pendant que le processeur expérimentait le graphique et préparait de petits blocs de données qui seraient ensuite transmis via la liaison de données. , plus le travail du GPU est important pour former un modèle d’apprentissage automatique ou effectuer une inférence.

Les chercheurs ont commencé par analyser les performances d’une bibliothèque d’apprentissage automatique couramment utilisée pour les GNN (PyTorch Geometric), qui a montré une utilisation étonnamment faible des ressources GPU disponibles. En appliquant des optimisations simples, les chercheurs ont amélioré l’utilisation du GPU de 10 à 30 %, ce qui a permis d’améliorer les performances de 1,4 à 2 fois par rapport au code de référence commun. Ce code de base rapide peut effectuer un seul passage complet à travers un grand ensemble de données d’apprentissage via l’algorithme (époque) en 50,4 secondes.

À la recherche d’améliorations supplémentaires des performances, les chercheurs ont entrepris d’examiner les goulots d’étranglement qui se produisent au début du pipeline de données : échantillonnage de graphes et algorithmes de préparation de micro-lots. Contrairement à d’autres réseaux de neurones, les GNN effectuent une agrégation de voisinage, qui calcule des informations sur un nœud à l’aide d’informations trouvées dans d’autres nœuds voisins du graphique – par exemple, dans un graphique de réseau social, des informations provenant d’amis d’amis d’un utilisateur. À mesure que le nombre de couches dans un GNN augmente, le nombre de nœuds auxquels le réseau doit accéder pour obtenir des informations peut exploser, dépassant les limites de l’ordinateur. Les algorithmes d’échantillonnage de voisinage aident en sélectionnant un plus petit sous-ensemble aléatoire de nœuds à regrouper ; Cependant, les chercheurs ont constaté que les implémentations actuelles de cela étaient trop lentes pour suivre la vitesse de traitement des GPU modernes. En réponse, ils ont identifié une combinaison de structures de données, d’optimisations informatiques, etc. qui amélioraient la vitesse d’échantillonnage, améliorant finalement l’échantillonnage seul d’environ trois fois, faisant passer le temps d’exécution par période de 50,4 à 34,6 secondes. Ils ont également découvert que l’échantillonnage, à un taux approprié, peut être effectué pendant l’inférence, améliorant ainsi l’efficacité énergétique et les performances globales, un point qui a été ignoré dans la littérature, note l’équipe.

Dans les systèmes précédents, cette étape d’échantillonnage était une approche multi-processus, créant des données supplémentaires et des mouvements de données inutiles entre les processus. Les chercheurs ont rendu leur méthode de signature plus intelligente en créant un processus unique utilisant des threads légers qui conservent les données sur le processeur dans la mémoire partagée. En outre, SALIENT tire parti du cache des processeurs modernes, explique Stathas, qui met en parallèle la fonction de découpage, qui extrait les informations pertinentes des nœuds d’intérêt et de leurs voisins et bords environnants, dans la mémoire partagée du cache central du processeur. Cela a de nouveau réduit le temps d’exécution total par période de 34,6 à 27,8 secondes.

Un autre goulot d’étranglement auquel les chercheurs se sont attaqués était le routage de petits transferts de données par lots entre le CPU et le GPU à l’aide d’une étape de prélecture, qui préparerait les données juste avant qu’elles ne soient nécessaires. L’équipe a calculé que cela augmenterait l’utilisation de la bande passante dans la liaison de données et amènerait la méthode à une utilisation optimale ; Cependant, ils n’en ont vu qu’environ 90 %. Ils ont identifié et corrigé un bogue de performances dans la célèbre bibliothèque PyTorch qui provoquait des allers-retours inutiles entre le CPU et le GPU. Une fois ce bogue corrigé, l’équipe a atteint un temps d’exécution de 16,5 secondes par période avec SALIENT.

“Notre travail a montré, je pense, que le diable se cache dans les détails”, déclare Kahler. “Lorsque vous portez une attention particulière aux détails qui affectent les performances lors de la formation d’un réseau de neurones graphiques, vous pouvez résoudre un grand nombre de problèmes de performances. Avec nos solutions, nous avons fini par être bloqués en raison du calcul GPU, qui est la cible idéale pour de tels un système.”

La vitesse SALIENT a été évaluée sur trois ensembles de données standard ogbn-arxiv, ogbn-products et ogbn-paper100M, ainsi que dans des configurations multi-appareils, avec différents niveaux de distribution (la quantité de données que le CPU traitera vers le GPU), et sur plusieurs architectures, dont la plus récente, GraphSAGE-RI. Sur chaque configuration, SALIENT a surpassé PyTorch Geometric, notamment sur le grand ensemble de données ogbn-paper100M, qui compte 100 millions de nœuds et plus d’un milliard d’arêtes. Ici, il était trois fois plus rapide, fonctionnant sur un seul GPU, que la ligne de base optimisée qui était Créé à l’origine pour ce travail; Avec 16 GPU, SALIENT était huit fois plus rapide.

Alors que d’autres systèmes ont des paramètres matériels et de démonstration légèrement différents, ce n’était donc pas toujours une comparaison directe, SALIENT le bat toujours. Parmi les systèmes qui ont atteint une précision similaire, les chiffres de performances représentatifs incluent 99 secondes en utilisant un seul GPU et 32 ​​CPU, et 13 secondes en utilisant 1 536 CPU. En revanche, le temps d’exécution de SALIENT avec 1 GPU et 20 CPU était de 16,5 secondes et il n’était que de 2 secondes avec 16 GPU et 320 CPU. “Si vous regardez les chiffres de flux finaux qui ont été rapportés dans les rapports de travail précédents, le temps d’exécution du GPU de 16 (deux secondes) est un ordre de grandeur plus rapide que les autres chiffres précédemment rapportés dans cet ensemble de données”, explique Kahler. Les chercheurs ont attribué leurs améliorations de performances, en partie, à leur approche d’optimisation de leur code pour une seule machine avant de passer à une configuration distribuée. La leçon ici, dit Stathas, est que pour votre argent, “il est plus logique d’utiliser le matériel dont vous disposez efficacement et dans toute sa mesure, avant de commencer à étendre à plusieurs ordinateurs”, ce qui peut offrir des économies de coûts et de carbone importantes. empreinte qui peut venir avec la formation de modèle.

Cette nouvelle capacité permettra désormais aux chercheurs de manipuler et d’approfondir des graphiques de plus en plus grands. Par exemple, le réseau Bitcoin mentionné précédemment compte 100 000 nœuds ; Le système SALIENT peut gérer efficacement un graphique 1000 fois plus grand (ou trois fois sa taille).

“À l’avenir, nous envisagerons non seulement d’exécuter ce système de formation de réseau neuronal graphique sur des algorithmes existants que nous avons mis en œuvre pour classer ou prédire les propriétés de chaque nœud, mais nous souhaitons également effectuer des tâches plus approfondies, telles que l’identification de modèles communs. dans un graphique (modèles de sous-graphiques). ), (qui) pourrait être une référence intéressante aux crimes financiers », explique Chen. “Nous voulons également identifier les nœuds d’un graphique qui sont similaires dans le sens où ils peuvent être identiques au même mauvais acteur dans un crime financier. Ces tâches nécessiteront le développement d’algorithmes supplémentaires, et éventuellement aussi des architectures de réseaux de neurones.”

Cette recherche a été soutenue par le MIT-IBM Watson AI Lab et en partie par le laboratoire de recherche de l’US Air Force et l’accélérateur d’intelligence artificielle de l’US Air Force.

(balises à la traduction) MIT CSAIL

Enregistrer un commentaire

Plus récente Plus ancienne

نموذج الاتصال