Un logiciel prédictif accélère l'entra?nement des réseaux neuronaux
Les réseaux neuronaux accomplissent de nombreuses t?ches mieux que les algorithmes traditionnels et ils sont parfois les seuls à pouvoir le faire. Toutefois, leur entra?nement co?te énormément de temps de calcul et d'argent. Gr?ce aux chercheurs de l'ETH, cet entra?nement peut être accéléré - une bonne nouvelle pour les futurs utilisateurs* du superordinateur "Alps" au CSCS.
Actuellement, le Centre national suisse de calcul scientifique (CSCS), rattaché à l'ETH, est en train de mettre en place un nouveau supercalculateur. Baptisée "Alps", cette machine remplacera l'actuel fleuron suisse des ordinateurs haute performance, le "Piz Daint", d'ici le printemps 2023. Gr?ce à l'architecture de ses processeurs graphiques et de son système de fichiers, "Alps" sera l'un des ordinateurs optimisés pour l'intelligence artificielle les plus puissants au monde.
"Le système est particulièrement bien adapté aux applications d'apprentissage automatique et permettra des opérations de calcul hautement parallèles sur d'énormes quantités de données", explique Torsten Hoefler, professeur à l'ETH Zurich et directeur du Scalable Parallel Computing Labde l'ETH. En outre, il prend en charge des fonctions spécialement développées pour le deep learning, comme ce que l'on appelle la sparsity - une fonction qui empêche le stockage et le traitement de données superflues et accélère ainsi les réseaux neuronaux.
Mais pour utiliser un système aussi performant de la manière la plus efficace possible, les applications doivent elles aussi devenir plus intelligentes. C'est dans ce but que deux scientifiques de l'équipe de Torsten Hoefler, Roman Boehringer et Nikoli Dryden, développé un logiciel,qui accélère l'entra?nement des applications d'apprentissage profond. En effet, lorsqu'on travaille avec des réseaux neuronaux et des applications d'apprentissage profond, leur entra?nement est l'étape de travail la plus complexe et la plus co?teuse qui soit. Ainsi, un seul cycle d'entra?nement d'un modèle de reconnaissance vocale sophistiqué peut environ dix millions de dollarsgo?ter . Le nouveau logiciel appelé NoPFS(Near-optimal Pre-Fetching System) stimule ce processus gr?ce à un phénomène appelé "Clairvoyance", en fran?ais "clairvoyance" : il exploite un processus prévisible lors de l'entra?nement - et ce de manière plus conséquente que d'autres programmes ne le font jusqu'à présent.
Une formation co?teuse
Pendant l'entra?nement des réseaux neuronaux, ceux-ci sont alimentés par des échantillons de données ainsi que par les labels souhaités pour ces échantillons. Par exemple, dans une application de reconnaissance d'images, ces échantillons de données sont des images d'objets - par exemple un chat. Si l'application classe d'abord l'image de manière erronée, comme un chien, elle se corrige et s'actualise elle-même sur la base de la vraie valeur "chat". Ainsi, la prochaine fois, elle aura plus de chances d'identifier correctement l'animal. Si ce cycle est répété avec suffisamment d'échantillons de l'ensemble de données, l'application finit par taper correctement à peu près à chaque fois.
Ce processus d'apprentissage est toutefois extrêmement lent. Pour apprendre, les réseaux neuronaux ont besoin de centaines de milliers, parfois de millions d'échantillons de données, et cela nécessite à son tour d'innombrables étapes de chargement des données et de mise à jour des valeurs. Ces étapes de chargement et de stockage, qui transfèrent des informations entre les systèmes de fichiers et les processeurs, sont appelées "I/O" dans le jargon technique et constituent la partie la plus longue et la plus co?teuse de l'apprentissage. Dans la pratique, les E/S engloutissent jusqu'à 85 % du temps total de formation.
Regard dans la boule de cristal
C'est ici qu'intervient le nouveau logiciel NoPFS. Il utilise le concept de "clairvoyance" pour accélérer le chargement des données d'entra?nement. Certes, les exemples de données que le modèle d'apprentissage profond est amené à voir sont en principe choisis au hasard. Ils sont assemblés de manière aléatoire en "mini-lots" de 32 éléments de données par exemple et présentés au modèle au fur et à mesure. Cet échantillonnage des données en mini-b?tonnets nécessite toutefois au début une valeur de départ connue (seed), c'est-à-dire une valeur de départ. Cela rend désormais le processus pseudo-aléatoire : une fois la valeur de départ choisie, l'ordre des échantillons de données est fixé et peut être prédit.
"C'est exactement ce que fait NoPFS", déclare Nikoli Dryden, post-doctorant dans le groupe de recherche de Hoefler et principal développeur du logiciel. Celui-ci prédit, pendant une course d'entra?nement, dans quel ordre et à quelle fréquence les exemples de données seront chargés pour être présentés au modèle. "Nous utilisons ces connaissances pour charger à l'avance les éléments de données fréquemment utilisés", explique Dryden. Les éléments les plus utilisés sont directement stockés temporairement dans la mémoire à accès aléatoire (RAM), les moins populaires sur un disque dur local ou un n?ud informatique à accès très rapide. "Ainsi, les données sont mises à disposition en avance, ce qui accélère l'entra?nement", explique Dryden.
Un temps d'entra?nement réduit de moitié
Les chercheurs ont testé NoFPS lors d'entra?nements de différents modèles d'apprentissage profond sur différents superordinateurs, dont "Piz Daint" au CSCS. Ils ont testé le logiciel sur CosmoFlow, une application de deep learning pour la prédiction des paramètres de la matière noire dans l'univers, et sur le modèle de reconnaissance d'images ResNet-50 avec deux jeux de données d'entra?nement de tailles différentes, ImageNet-1k et ImageNet-22k. Ils ont comparé les performances de NoFPS avec deux autres systèmes de chargement de données, celui du framework d'apprentissage profond PyTorch et celui de la bibliothèque de chargement de données NVIDIA (DALI).
Les résultats ont montré que NoFPS accélérait effectivement l'entra?nement - à des degrés divers selon le nombre de processeurs graphiques (GPU) utilisés, le supercalculateur concerné et la taille de l'ensemble des données d'entra?nement. Dans le meilleur des cas, l'entra?nement était 2,1 fois plus rapide pour CosmoFlow, 2,4 fois plus rapide pour ImageNet-22k et même 5,4 fois plus rapide pour ImageNet-1k.
"En général, nous obtenons de plus grandes améliorations de performance lorsque nous utilisons plus de GPU", explique Torsten Hoefler. Il précise toutefois que ces résultats ont été obtenus avec des systèmes de fichiers qui ne sont pas optimisés pour les calculs d'apprentissage en profondeur. Avec des systèmes adaptés à l'intelligence artificielle comme "Alps", l'efficacité de l'entra?nement pourrait augmenter un peu moins fortement. "Mais même sur de tels systèmes, NoPFS accélérera considérablement l'entra?nement", affirme Hoefler.
Particulièrement pertinent pour les applications scientifiques
Le concept de NoPFS n'est cependant pas totalement nouveau. D'autres cadres d'apprentissage en profondeur utilisent une version simplifiée du même principe : ils anticipent d'une ou de plusieurs étapes et commencent à charger les éléments de données suivants plus t?t, ce qui les rend un peu plus efficaces. Toutefois, aucun outil n'a jusqu'à présent exploité cette possibilité de prédiction de manière aussi conséquente que NoPFS - sur l'ensemble du cycle de formation.
"Le temps d'entra?nement plus court avec NoPFS sera particulièrement pertinent pour les applications et les modèles dans la recherche, et donc pour le CSCS et ses utilisateurs", explique Hoefler. Dans la recherche, l'apprentissage automatique est généralement utilisé de deux manières : D'une part, les réseaux neuronaux peuvent servir à affiner et à analyser les résultats de simulations informatiques. D'autre part, certaines parties d'un code de simulation peuvent être remplacées par des applications d'apprentissage profond afin de rendre les simulations plus rapides et plus précises. Hoefler, Dryden et leurs collègues* ont récemment eux-mêmes a publié un tel travail: Vous avez effectué le post-traitement statistique dans le modèle de prévision météorologique du Centre européen pour les prévisions météorologiques à moyen terme CEPMMTamélioré en rempla?ant le code classique par une application d'apprentissage en profondeur. Cela a augmenté la probabilité de prédiction du modèle de plus de 14 %.
Toutefois, "pour obtenir un tel résultat, il faut généralement tester et entra?ner différents modèles et variantes afin de trouver celui qui fonctionne le mieux", explique Hoefler. "Cela signifie des semaines de calcul. C'est pourquoi de telles applications de recherche profiteront le plus de NoPFS et de son entra?nement plus rapide". A l'avenir, l'équipe veut affiner la manière dont NoPFS pré-charge et met en mémoire tampon des éléments de données, afin d'accélérer encore l'entra?nement.
Ce texte de Santina Russo est d'abord paru en anglais sur le site du CSCS.
Référence bibliographique
Dryden N., B?hringer R., Ben-Nun T. and Hoefler T. : Clairvoyant Prefetching for Distributed Machine Learning I/O. SC'21 : Actes de la Conférence internationale sur le calcul haute performance, la mise en réseau, le stockage et l'analyse (2021). DOI (EN ANGLAIS) : page externe10.1145/3458817.3476181
Gr?nquist P., Yao C., Ben-Nun T., Dryden N., Dueben P., Li S.and Hoefler T. : Deep learning for post-processing ensemble weather forecasts. Phil. Trans. R. Soc. (2021). DOI : page externe10.1098/rsta.2020.0092