Afficher la notice abrégée

dc.contributor.advisorBeaumont, Olivier
dc.contributor.advisorJoly, Alexis
dc.contributor.authorSHILOVA, Alena
dc.contributor.otherBeaumont, Olivier
dc.contributor.otherJoly, Alexis
dc.contributor.otherBenoit, Anne
dc.contributor.otherOseledets, Ivan
dc.contributor.otherBrunet, Elisabeth
dc.contributor.otherSimon, Laurent
dc.contributor.otherEyraud-Dubois, Lionel
dc.date2021-12-07
dc.date.accessioned2022-04-05T18:31:17Z
dc.date.available2022-04-05T18:31:17Z
dc.identifier.urihttp://www.theses.fr/2021BORD0335/abes
dc.identifier.uri
dc.identifier.urihttps://tel.archives-ouvertes.fr/tel-03631459
dc.identifier.urihttps://oskar-bordeaux.fr/handle/20.500.12278/136598
dc.identifier.nnt2021BORD0335
dc.description.abstractL’intelligence artificielle est un domaine qui a reçu beaucoup d’attention récemment. Son succès est dû aux progrès du Deep Learning, un sous-domaine qui réunit des méthodes d’apprentissage automatique basées sur les réseaux neuronaux. Ces réseaux neuronaux ont prouvé leur efficacité pour résoudre des problèmes très complexes dans différents domaines. Cependant, leur efficacité pour résoudre des problèmes dépend d’un certain nombre de facteurs : l’architecture du modèle, sa taille, comment et où l’entraînement a été effectué. La plupart des études indiquent que les modèles les plus gros permettent d’obtenir une meilleure précision, mais ils sont également plus coûteux à entraîner. Les principaux défis sont liés à la puissance de calcul et à la mémoire restreinte des machines : si le modèle est trop grand, son apprentissage peut prendre beaucoup de temps (des jours, voire des mois) ou, dans le pire des cas, il peut même ne pas tenir en mémoire. Pendant l’apprentissage, il est nécessaire de stocker à la fois les poids (paramètres du modèle), les activations(données calculées intermédiaires) et les états de l’optimiseur.Cette situation offre plusieurs opportunités pour traiter les problèmes de mémoire, en fonction de leurorigine. L’apprentissage peut être distribué sur plusieurs ressources de la plate-forme de calcul, et différentes techniques de parallélisation offrent différentes manières de distribuer la mémoire. En outre, les structures de données qui restent inactives pendant une longue période peuvent être temporairement déchargées vers un espace de stockage plus important, avec la possibilité de les récupérer ultérieurement (stratégies de déchargement). Enfin, les activations qui sont calculées à chaque itération peuvent être supprimées et recalculées plusieurs fois au cours de celle-ci (stratégies de rematérialisation). Les stratégies pour économiser la mémoire induisent généralement un surcoût en temps par rapport à l’exécution directe, par conséquent des problèmes d’optimisation doivent être considérés afin de choisir la meilleure approche pour chaque stratégie. Dans ce manuscrit, nous formulons et analysons des problèmes d’optimisation en relation avec diverses méthodes visant à réduire la consommation de mémoire pendant le processus d’apprentissage. En particulier, nous nous concentrons sur les stratégies de rematérialisation, de déchargement d’activation et de parallélisme de modèles pipelinés et pour chacune d’entre elles, nous concevons les solutions optimales sous un ensemble d’hypothèses. Enfin, nous proposons un outil entièrement fonctionnel appelé rotor qui combine l’activation offloading et la rematérialisation et qui peut être utilisé pour l’entraînement de grands modèles avec une surcharge minimale dans PyTorch, des modèles qui autrement ne tiendraient pas dans la mémoire.
dc.description.abstractEnArtificial Intelligence is a field that has received a lot of attention recently. Its success is due to advances in Deep Learning, a sub-field that groups together machine learning methods based on neural networks. These neural networks have proven to be effective in solving very complex problems in different domains. However, their effectiveness depends on a number of factors: the architecture of the model, its size, how and where the training is performed... Most studies indicate that the large models are more likely to achieve the smallest error, but they are also more difficult to train. The main challenges are related to insufficient computational power and limited memory of the machines: if the model is too large then it can take a long time to be trained (days or even months), or it cannot even fit in memory in the worst case. During the training, it is necessary to store the weights (model parameters), the activations (intermediate computed data) and the optimizer states.This situation offers several opportunities to deal with memory problems, depending on their origin. Training can be distributed across multiple resources of the computing platform, and different parallelization techniques suggest different ways of dividing memory load. In addition, data structures that remain inactive for a long period of time can be temporarily offloaded to a larger storage space with the possibility of retrieving them later (offloading strategies). Furthermore, activations that are computed anew at each iteration can be deleted and recomputed several times within it (rematerialization strategies). Memory saving strategies usually induce a time overhead with respect to the direct execution, therefore optimization problems should be considered to choose the best approach for each strategy. In this manuscript, we formulate and analyze optimization problems in relation to various methods reducing memory consumption of the training process. In particular, we focus on rematerialization, activation offloading and pipelined model parallelism strategies, for each of them we design optimal solutions under a set of assumptions. Finally, we propose a fully functional tool called rotor that combines activation offloading and rematerialization and can be applied to training in PyTorch, allowing to process big models that otherwise would not fit into memory.
dc.language.isoen
dc.subjectApprentissage profond
dc.subjectRétropropagation
dc.subjectRematérialisation
dc.subjectDéchargement
dc.subjectParallélisme du modèle en pipeline
dc.subject.enDeep Learning
dc.subject.enBackpropagation
dc.subject.enRematerialization
dc.subject.enOffloading
dc.subject.enPipelined Model Parallelism
dc.titleStratégies pour économiser la mémoire lors de l’apprentissage dans les réseaux neuronaux profonds
dc.title.enMemory Saving Strategies for Deep Neural Network Training
dc.typeThèses de doctorat
dc.contributor.jurypresidentRaffin, Bruno
bordeaux.hal.laboratoriesLaboratoire bordelais de recherche en informatique
bordeaux.hal.laboratoriesInstitut national de recherche en informatique et en automatique (France). Centre de recherche Bordeaux - Sud-Ouest
bordeaux.institutionUniversité de Bordeaux
bordeaux.institutionBordeaux INP
bordeaux.institutionCNRS
bordeaux.type.institutionBordeaux
bordeaux.thesis.disciplineInformatique
bordeaux.ecole.doctoraleÉcole doctorale de mathématiques et informatique
bordeaux.teamCombinatoire et algorithmiques
bordeaux.teamEquipe-projet HiePACS
star.origin.linkhttps://www.theses.fr/2021BORD0335
dc.contributor.rapporteurBenoit, Anne
dc.contributor.rapporteurOseledets, Ivan
bordeaux.COinSctx_ver=Z39.88-2004&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.title=Strat%C3%A9gies%20pour%20%C3%A9conomiser%20la%20m%C3%A9moire%20lors%20de%20l%E2%80%99apprentissage%20dans%20les%20r%C3%A9seaux%20neuronaux%20profonds&rft.atitle=Strat%C3%A9gies%20pour%20%C3%A9conomiser%20la%20m%C3%A9moire%20lors%20de%20l%E2%80%99apprentissage%20dans%20les%20r%C3%A9seaux%20neuronaux%20profonds&rft.au=SHILOVA,%20Alena&rft.genre=unknown


Fichier(s) constituant ce document

FichiersTailleFormatVue

Il n'y a pas de fichiers associés à ce document.

Ce document figure dans la(les) collection(s) suivante(s)

Afficher la notice abrégée