Maison > Article > Périphériques technologiques > Former BERT et ResNet sur un smartphone pour la première fois, réduisant ainsi la consommation d'énergie de 35 %
Les chercheurs ont déclaré qu'ils considéraient l'entraînement de pointe comme un problème d'optimisation et avaient ainsi découvert le calendrier optimal pour atteindre une consommation d'énergie minimale avec un budget de mémoire donné.
Actuellement, les modèles d'apprentissage profond ont été largement déployés sur les appareils de pointe tels que les smartphones et les plateformes embarquées pour l'inférence. Parmi eux, la formation se fait encore majoritairement sur de gros serveurs cloud dotés d’accélérateurs à haut débit comme les GPU. Les modèles de formation cloud centralisés nécessitent de transférer des données sensibles telles que des photos et des frappes au clavier depuis des appareils périphériques vers le cloud, ce qui sacrifie la confidentialité des utilisateurs et entraîne des coûts supplémentaires de transfert de données.
Légende : Twitter @Shishir Patil
Par conséquent, afin de permettre aux utilisateurs de personnaliser leurs modèles sans sacrifier la confidentialité, les méthodes de formation basées sur les appareils telles que l'apprentissage fédéré ne nécessitent pas l'intégration de données dans le cloud. Il est également possible d'effectuer des mises à jour de formation locales. Ces méthodes ont été déployées sur le clavier Gboard de Google pour personnaliser les suggestions de clavier et sont également utilisées par les iPhone pour améliorer la reconnaissance vocale automatique. Dans le même temps, les méthodes de formation actuelles basées sur les appareils ne prennent pas en charge la formation des architectures modernes et des grands modèles. La formation de modèles plus grands sur des appareils de périphérie n'est pas réalisable, principalement parce que la mémoire limitée de l'appareil ne peut pas stocker les activations de rétropropagation. Une seule itération de formation de ResNet-50 nécessite plus de 200 fois plus de mémoire que l'inférence.
Les stratégies proposées dans des travaux antérieurs incluent la pagination vers la mémoire auxiliaire et la réimplémentation pour réduire l'empreinte mémoire de la formation cloud. Cependant, ces méthodes augmentent considérablement la consommation globale d’énergie. Les transferts de données associés aux méthodes de pagination nécessitent généralement plus d'énergie qu'un calcul intensif de données. À mesure que le budget mémoire diminue, la réimplémentation augmente la consommation d’énergie au taux de O(n^2).
Dans un récent article de l'UC Berkeley, plusieurs chercheurs ont montré que la pagination et la réimplémentation sont hautement complémentaires. En réimplémentant des opérations simples tout en paginant les résultats d'opérations complexes sur un stockage secondaire tel que des cartes flash ou SD, ils sont capables d'étendre la capacité de mémoire effective avec une consommation d'énergie minimale. De plus, grâce à la combinaison de ces deux méthodes, les chercheurs ont également prouvé qu'il est possible de former des modèles tels que BERT sur des appareils mobiles de pointe. En traitant l'entraînement de pointe comme un problème d'optimisation, ils ont découvert le calendrier optimal permettant d'obtenir une consommation d'énergie minimale avec un budget mémoire donné.
Les chercheurs ont proposé POET (Private Optimal Energy Training), qui est un algorithme pour la formation optimale en énergie des réseaux neuronaux modernes sur des appareils périphériques à mémoire limitée. Son architecture est celle illustrée dans la figure 1. . Compte tenu du coût extrêmement élevé de la mise en cache de tous les tenseurs d'activation pour la rétropropagation, POET optimise la pagination et la réimplémentation des activations, réduisant ainsi la consommation de mémoire jusqu'à un facteur deux. Ils ont reformulé le problème de formation marginale sous la forme d'une programmation linéaire entière (ILP) et ont découvert qu'il pouvait être résolu de manière optimale par un solveur en 10 minutes.
Légende : POET optimise la formation des modèles d'apprentissage automatique SOTA sur les appareils Edge.
Pour les modèles déployés sur des appareils Edge du monde réel, la formation a lieu lorsque l'appareil Edge semble inactif et peut calculer des cycles, comme Google Gboard, qui planifie les mises à jour du modèle pendant que le téléphone est en charge. Par conséquent, POET contient également des contraintes de formation strictes. Compte tenu des contraintes de mémoire et du nombre d'époques de formation, POET génère des solutions qui respectent également le délai de formation donné. En outre, les chercheurs ont développé un modèle de coût complet à l’aide de POET et ont démontré qu’il préserve mathématiquement la valeur (c’est-à-dire qu’il ne fait pas d’approximations) et qu’il fonctionne avec les architectures prêtes à l’emploi existantes.
Shishir Patil, le premier auteur de l'article, a déclaré dans la vidéo de démonstration que l'algorithme POET peut entraîner n'importe quel modèle SOTA nécessitant une énorme mémoire sur les appareils de pointe commerciaux tels que les smartphones. Ils sont également devenus la première équipe de recherche à démontrer la formation de modèles d'apprentissage automatique SOTA tels que BERT et ResNet sur les smartphones et les appareils ARM Cortex-M.
La réimplémentation et la pagination sont deux techniques permettant de réduire la consommation de mémoire des grands modèles SOTA ML. Dans les réimplémentations, les tenseurs d'activation sont supprimés une fois qu'ils ne sont plus nécessaires, le plus souvent lors du passage vers l'avant. Cela libère une mémoire précieuse qui peut être utilisée pour stocker les activations des couches suivantes. Lorsque le tenseur supprimé est à nouveau nécessaire, la méthode le recalcule à partir d'autres activations associées, comme spécifié par le lignage. La pagination, également appelée déchargement, est une technique complémentaire pour réduire la mémoire. Lors de la pagination, les tenseurs d'activation qui ne sont pas immédiatement nécessaires sont appelés du stockage principal vers le stockage secondaire, tel qu'une mémoire flash ou une carte SD. Lorsque le tenseur est à nouveau nécessaire, extrayez-le.
La figure 2 montre le calendrier d'exécution d'un réseau neuronal à huit couches. Le long de l'axe X, chaque unité correspond à chaque couche du réseau neuronal (un total de 8 couches L8). L'axe Y représente le pas de temps logique au sein d'une époque. Les cellules occupées dans le diagramme (remplies de couleur) représentent les opérations effectuées au pas de temps correspondant (calcul de propagation avant/arrière, réimplémentation ou pagination).
Par exemple, on peut voir que l'activation de L1 est calculée au premier pas de temps (T1). À T2 et T3, les quantités d'activation de L2 et L3 sont calculées respectivement. En supposant que les couches L2 et L3 se révèlent être des opérations gourmandes en mémoire mais peu coûteuses en calcul, telles que la non-linéarité (tanH, ReLU, etc.), alors la réimplémentation devient le meilleur choix. Nous pouvons supprimer des activations ({T3, L2}, {T4, L3}) pour libérer de la mémoire, et lorsque ces activations sont nécessaires lors de la rétropropagation, nous pouvons les réimplémenter ({T14, L3}, {T16, L2}) .
Supposons que les couches L5 et L6 sont des opérations à forte intensité de calcul, telles que la convolution, la multiplication matricielle dense, etc. Pour de telles opérations, la réimplémentation entraînera une augmentation du temps d’exécution et de l’énergie et n’est pas optimale. Pour ces couches, il est préférable de paginer les tenseurs d'activation vers le stockage auxiliaire ({T6, L5}, {T7, L6}) et si nécessaire ({T10, L6}, {T11, L5}).
Un avantage majeur de la pagination est qu'elle peut être pipeline pour masquer la latence en fonction de l'occupation du bus mémoire. En effet, les systèmes modernes disposent d'une fonctionnalité DMA (Direct Memory Access) qui déplace les tenseurs d'activation du stockage secondaire vers la mémoire principale pendant que les moteurs de calcul fonctionnent en parallèle. Par exemple, au pas de temps T7, L6 peut être appelé et L7 calculé en même temps. Cependant, la réimplémentation nécessite beaucoup de calculs et ne peut pas être parallélisée, ce qui entraîne une augmentation du temps d'exécution. Par exemple, nous devons utiliser le pas de temps T14 pour recalculer L3, retardant ainsi le reste de l'exécution de la rétropropagation.
Cette recherche propose POET, un compilateur au niveau graphique pour les réseaux de neurones profonds qui réécrit le DAG de formation de grands modèles pour s'adapter aux contraintes de mémoire des appareils de pointe tout en maintenant une efficacité énergétique élevée.
POET est sensible au matériel, il suit d'abord l'exécution des passes avant et arrière et les demandes d'allocation de mémoire associées, le temps d'exécution et la consommation de mémoire et d'énergie de chaque opération. Cette analyse fine de chaque charge de travail n'a lieu qu'une seule fois pour un matériel donné, est automatisée, peu coûteuse et fournit le modèle de coût le plus précis pour POET.
POET génère ensuite un programme linéaire en nombres entiers mixtes (MILP) qui peut être résolu efficacement. L'optimiseur POET recherche des réimplémentations efficaces et des calendriers de pagination qui minimisent la consommation d'énergie de bout en bout liée à la mémoire. La planification résultante est ensuite utilisée pour générer un nouveau DAG à exécuter sur le périphérique périphérique.
Bien que MILP soit résolu sur du matériel standard, la planification envoyée au périphérique périphérique ne représente que quelques centaines d'octets, ce qui la rend très efficace en termes de mémoire.
La réimplémentation est plus efficace pour les opérations peu coûteuses en calcul mais gourmandes en mémoire. Cependant, la pagination est mieux adaptée aux opérations à forte intensité de calcul où la réimplémentation entraînerait une surcharge énergétique importante. POET envisage conjointement la réimplémentation et la pagination dans un espace de recherche intégré.
La méthode de cet article peut être étendue à des architectures complexes et réalistes. L'algorithme de l'optimiseur POET est le suivant.
Cette étude introduit une nouvelle fonction objectif dans le problème d'optimisation pour minimiser la consommation d'énergie globale du calcul, de l'entrée et de la sortie de page. La nouvelle fonction objectif combinant la consommation d'énergie de pagination et de ré-implémentation est :
.
où Φ_compute, Φ_pagein et Φ_pageout représentent respectivement l'énergie consommée par chaque nœud lors du calcul, page-in et page-out.
POET génère le calendrier DAG en fonction des nœuds (k) du graphique qui sont réimplémentés et des nœuds qui sont en entrée de page ou en sortie de page à chaque pas de temps (t).
Dans l'évaluation de POET, les chercheurs ont tenté de répondre à trois questions clés. Premièrement, quelle quantité d’énergie POET peut-il réduire sur différents modèles et plates-formes ? Deuxièmement, comment POET bénéficie-t-il d’une stratégie hybride de pagination et de réimplémentation ? Enfin, comment POET s’adapte-t-il aux différents budgets d’exécution ?
Les chercheurs répertorient quatre périphériques matériels différents dans le tableau 2 ci-dessous, à savoir ARM Cortex M0 MKR1000, ARM Cortex M4F nrf52840, A72 Raspberry Pi 4B+ et Nvidia Jetson TX2. POET est entièrement conscient du matériel et s'appuie sur une analyse fine.
La figure 3 ci-dessous montre la consommation d'énergie d'une seule époque de formation. Chaque colonne correspond à une plate-forme matérielle différente. Les chercheurs ont découvert que POET génère des calendriers économes en énergie (axe Y) sur toutes les plates-formes tout en réduisant la consommation maximale de mémoire (axe X) et en respectant les budgets de temps.
Dans la figure 5 ci-dessous, les chercheurs ont comparé POET et Capucin lors de la formation de ResNet-18 sur A72. À mesure que le budget RAM diminue, Capuchin consomme 73 % à 141 % d'énergie en plus que la référence avec une mémoire pleine. En comparaison, POET génère moins de 1 % de l’énergie consommée. Cette tendance s’applique à toutes les architectures et plateformes testées.
Dans le tableau 3, l'étude compare POET et POFO lors de la formation de ResNet-18 sur le Jetson TX2 de Nvidia. L'étude a révélé que POET a trouvé une réimplémentation et une pagination intégrées qui ont réduit la consommation maximale de mémoire de 8,3 % et amélioré le débit de 13 %. Cela démontre l'avantage du solveur MILP de POET, capable d'optimiser sur un espace de recherche plus grand. Bien que POFO ne prenne en charge que les modèles linéaires, POET peut être généralisé aux modèles non linéaires, comme le montre la figure 3.
La figure 4 met en évidence les avantages pour POET d'adopter une stratégie d'ensemble sous différentes contraintes de temps. Pour chaque durée d'exécution, la figure ci-dessous représente la consommation totale d'énergie.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!