WTA-CRS : Une nouvelle méthode pour ajuster les grands modèles de langage
Présentation d'une méthode qui réduit l'utilisation de la mémoire dans les modèles de transformateurs tout en gardant la performance.
― 9 min lire
Table des matières
- Contexte sur les modèles de langage
- Défis de mémoire dans le réglage fin
- Le concept de sous-échantillonnage colonne-ligne
- Introduction du sous-échantillonnage colonne-ligne gagnant-prenant
- Mise en œuvre dans les transformateurs
- Tests et résultats
- Aborder la vitesse de réglage fin
- Conclusion
- Source originale
- Liens de référence
La taille des modèles de langage a augmenté rapidement, rendant plus difficile leur réglage fin à cause de leurs besoins élevés en mémoire. La plupart des travaux précédents se sont concentrés sur la réduction du nombre de paramètres pouvant être entraînés dans le modèle. Cependant, bien que les paramètres du modèle affectent l'utilisation de la mémoire, un problème de mémoire plus important survient avec le stockage des cartes de caractéristiques ou des Activations, qui sont nécessaires pour calculer les gradients.
Lors de l'entraînement des réseaux de neurones, on utilise généralement la descente de gradient stochastique. Cette méthode peut gérer des gradients bruyants tant que l'estimateur de gradient est sans biais et a une variance raisonnable. Sur la base de cette idée, nous introduisons un nouveau type d'estimateur non biaisé pour la Multiplication de matrices qui réduit l'utilisation de mémoire. Notre approche nécessite seulement de stocker un sous-ensemble d'activations pour calculer les gradients. Nous montrons que cette méthode entraîne une moindre utilisation de la mémoire et maintient des niveaux de performance similaires aux méthodes existantes.
Contexte sur les modèles de langage
Les modèles de langage avec une structure de transformateur ont rencontré un grand succès dans de nombreuses tâches liées au traitement du langage naturel. Ces modèles apprennent souvent à partir de grandes quantités de texte pour créer des représentations générales qui peuvent être ajustées pour des tâches spécifiques.
Des recherches récentes montrent qu'augmenter le nombre de paramètres dans les modèles de langage pré-entraînés peut améliorer considérablement leurs performances. En conséquence, il y a un besoin croissant de les ajuster finement, ces grands modèles ayant souvent des milliards de paramètres.
Malheureusement, il y a un grand écart entre la mémoire dont ces modèles ont besoin et la capacité du matériel actuel, surtout des GPU. Par exemple, même un GPU puissant avec 24 Go de mémoire a du mal à affiner certains modèles, comme le T5-3B, si on utilise seulement un échantillon dans un lot. Cela rend impossible le réglage fin de ces grands modèles sur un seul GPU sans méthodes supplémentaires.
Bien que le réglage fin par parallélisme de modèle puisse fonctionner, ce n'est souvent pas pratique en raison des coûts et de la complexité de la coordination de plusieurs GPU. Par conséquent, il est crucial d'adapter ces modèles pour fonctionner efficacement sur des configurations à GPU unique.
Défis de mémoire dans le réglage fin
Pour résoudre ces problèmes de mémoire, plusieurs méthodes offrant un réglage efficace en paramètres ont été proposées. Par exemple, les adaptateurs insèrent de petits modules dans les blocs de transformateur et ne mettent à jour que ceux-ci, laissant le reste des paramètres fixes. Une autre approche, le réglage d'invite, ajoute un petit vecteur aux embeddings d'entrée qui est mis à jour pendant le réglage fin. LoRA, qui signifie Low-Rank Adaptation, implique d'ajouter des matrices entraînables dans les blocs de transformateur tout en gardant les autres paramètres gelés.
Bien que ces méthodes efficaces en paramètres aident à réduire l'utilisation de mémoire par les états de l'optimiseur, elles ne réduisent souvent pas de manière significative la mémoire nécessaire pour stocker les activations, qui reste la principale préoccupation lors de l'entraînement.
Une méthode peu explorée pour s'attaquer à ce problème consiste à utiliser une approche efficace en mémoire pour la multiplication de matrices. Étant donné que les transformateurs s'appuient principalement sur des couches linéaires, nous proposons une méthode pour sous-échantillonner les activations et utiliser ces quantités réduites pour effectuer des calculs.
Le concept de sous-échantillonnage colonne-ligne
L'idée derrière notre méthode, appelée sous-échantillonnage colonne-ligne (CRS), est d'échantillonner des parties de tenseurs dans des espaces de dimensions inférieures, puis d'effectuer des opérations régulières en utilisant ces représentations plus petites. Cela est particulièrement pertinent lors du travail avec des opérations linéaires entre matrices.
Pour y arriver, nous échantillonnons d'abord des paires colonne-ligne selon une distribution prédéterminée. Plus précisément, nous prenons des colonnes d'une matrice et des lignes correspondantes d'une autre en fonction de ces paires sélectionnées, ce qui mène à un produit estimé des deux matrices.
Cette méthode nous permet de ne stocker que les sous-matrices plus petites dans la mémoire GPU, réduisant considérablement la mémoire nécessaire pour les activations pendant l'entraînement.
Lors de l'entraînement des modèles de transformateurs, il est courant d'utiliser des optimiseurs stochastiques de premier ordre, comme Adam. Ces modèles peuvent fonctionner avec des gradients légèrement bruyants tant qu'ils sont sans biais et ont une variance gérable.
Étant donné cette compréhension, nous nous demandons pourquoi investir dans des gradients précis si nous utilisons déjà l'optimisation stochastique. Ainsi, nous visons à trouver un moyen de dériver des gradients non biaisés en utilisant une multiplication matricielle approximée qui réduit l'utilisation de mémoire.
Cette méthode peut engendrer un compromis potentiel en Précision, car la réduction de la mémoire peut entraîner plus de variance dans les sorties. Le défi devient alors d'intégrer notre multiplication approximée dans les transformateurs sans introduire trop de variance de gradient.
Introduction du sous-échantillonnage colonne-ligne gagnant-prenant
Notre méthode proposée est un nouvel estimateur pour la multiplication de matrices appelé sous-échantillonnage colonne-ligne gagnant-prenant (WTA-CRS). Cette méthode réduit la variance des estimateurs en se concentrant sur les zones de la distribution qui ont une forte probabilité.
La beauté de WTA-CRS réside dans sa capacité à remplacer sans effort les opérations linéaires dans les transformateurs. Cela permet de donner un gradient de poids non biaisé tout en utilisant moins de mémoire.
Nous fournissons à la fois une preuve théorique et expérimentale que notre nouvel estimateur fonctionne mieux que les méthodes existantes en termes d'Efficacité Mémoire et de précision.
En remplaçant les opérations linéaires originales par WTA-CRS, nous pouvons réduire les besoins de mémoire de pointe jusqu'à 2,7 fois sans presque aucune baisse de précision.
Mise en œuvre dans les transformateurs
Pour approfondir, il est essentiel d'analyser comment les transformateurs utilisent la mémoire. Pendant l'entraînement, la rétropropagation implique deux phases : un passage avant et un passage arrière. Les opérations linéaires dans les transformateurs sont cruciales pour ce processus.
Lorsque nous considérons la phase arrière, les activations utilisées doivent être stockées en mémoire pour calculer les gradients. Des études précédentes montrent que ces activations occupent une part importante de la mémoire totale lorsqu'il s'agit d'entraîner de grands modèles de transformateur.
Notre objectif est de remplacer des parties du stockage des activations par notre nouvelle méthode d'échantillonnage. Si nous pouvons efficacement substituer l'utilisation de mémoire requise pour les activations de cette manière, nous pouvons réduire de manière drastique la mémoire nécessaire, rendant l'entraînement à grande échelle réalisable sur du matériel standard.
Tests et résultats
Pour valider notre nouvelle méthode, nous effectuons une série de tests. Nous nous concentrons sur deux questions clés : quelle est l'efficacité de notre méthode en termes de précision et d'utilisation de mémoire, et comment se comporte-t-elle sous différents hyperparamètres ?
Précision vs. Utilisation de mémoire : Nos résultats montrent que notre méthode atteint un bon équilibre entre économies de mémoire et précision. Plus précisément, lorsqu'elle est utilisée avec d'autres techniques d'économie de mémoire, notre méthode peut réduire considérablement l'utilisation de mémoire de pointe tout en maintenant des niveaux de précision similaires à ceux d'un entraînement complet du modèle.
Sensibilité aux hyperparamètres : Nous explorons également comment le budget des paires colonne-ligne affecte la performance. Globalement, nous trouvons que les modèles plus grands sont plus flexibles en termes d'économies de mémoire en raison de leurs redondances inhérentes.
Dans d'autres tests, nous comparons WTA-CRS à des méthodes standards. Nos résultats montrent systématiquement que WTA-CRS surpasse à la fois les méthodes déterministes et le CRS traditionnel en termes de précision et d'efficacité mémoire.
Aborder la vitesse de réglage fin
Nous notons que notre nouvelle méthode n'ajoute aucun paramètre supplémentaire au modèle, ce qui signifie qu'elle ne devrait pas affecter la vitesse d'inférence. Cependant, nous explorons également comment elle impacte la vitesse de réglage fin en ce qui concerne l'utilisation de mémoire.
Avec notre méthode réduisant la mémoire requise pour les activations, cela permet d'utiliser des tailles de lot plus grandes pendant l'entraînement. Des tailles de lot plus grandes, à leur tour, améliorent l'utilisation du GPU et peuvent entraîner des vitesses d'entraînement plus rapides.
Bien que l'implémentation puisse ralentir légèrement le calcul, les avantages globaux d'une augmentation des tailles de lot peuvent compenser cela, conduisant à des améliorations de vitesse en pratique.
Conclusion
En résumé, nous avons introduit WTA-CRS, un nouvel estimateur non biaisé pour la production de matrices qui peut réduire la variance et les besoins en mémoire tout en préservant les performances du modèle. Nos expériences révèlent sa valeur pour faciliter l'utilisation de grands modèles de langage sur du matériel standard, améliorant considérablement leur accessibilité pour diverses tâches de traitement du langage naturel.
Alors que le réglage fin des modèles de langage devient de plus en plus crucial, surtout ceux avec des milliards de paramètres, des stratégies efficaces comme WTA-CRS montrent un immense potentiel pour rendre cela réalisable dans les limites du matériel actuel. Alors que nous travaillons à optimiser davantage notre implémentation, nous croyons que cette recherche ouvre la voie à un réglage fin plus efficace des modèles de langage à l'avenir.
Titre: Winner-Take-All Column Row Sampling for Memory Efficient Adaptation of Language Model
Résumé: With the rapid growth in model size, fine-tuning the large pre-trained language model has become increasingly difficult due to its extensive memory usage. Previous works usually focus on reducing the number of trainable parameters in the network. While the model parameters do contribute to memory usage, the primary memory bottleneck during training arises from storing feature maps, also known as activations, as they are crucial for gradient calculation. Notably, neural networks are usually trained using stochastic gradient descent. We argue that in stochastic optimization, models can handle noisy gradients as long as the gradient estimator is unbiased with reasonable variance. Following this motivation, we propose a new family of unbiased estimators called WTA-CRS, for matrix production with reduced variance, which only requires storing the sub-sampled activations for calculating the gradient. Our work provides both theoretical and experimental evidence that, in the context of tuning transformers, our proposed estimators exhibit lower variance compared to existing ones. By replacing the linear operation with our approximated one in transformers, we can achieve up to 2.7$\times$ peak memory reduction with almost no accuracy drop and enables up to $6.4\times$ larger batch size. Under the same hardware, WTA-CRS enables better down-streaming task performance by applying larger models and/or faster training speed with larger batch sizes.
Auteurs: Zirui Liu, Guanchu Wang, Shaochen Zhong, Zhaozhuo Xu, Daochen Zha, Ruixiang Tang, Zhimeng Jiang, Kaixiong Zhou, Vipin Chaudhary, Shuai Xu, Xia Hu
Dernière mise à jour: 2024-11-06 00:00:00
Langue: English
Source URL: https://arxiv.org/abs/2305.15265
Source PDF: https://arxiv.org/pdf/2305.15265
Licence: https://creativecommons.org/licenses/by/4.0/
Changements: Ce résumé a été créé avec l'aide de l'IA et peut contenir des inexactitudes. Pour obtenir des informations précises, veuillez vous référer aux documents sources originaux dont les liens figurent ici.
Merci à arxiv pour l'utilisation de son interopérabilité en libre accès.