Simple Science

La science de pointe expliquée simplement

# Informatique# Apprentissage automatique# Intelligence artificielle# Calcul et langage

Améliorer les grands modèles de langage avec ProSparse

ProSparse améliore la sparsité d'activation dans les LLM pour une meilleure efficacité et performance.

― 9 min lire


ProSparse : EfficacitéProSparse : Efficacitédans les LLMssparsité.l'efficacité du modèle grâce à laProSparse optimise la performance et
Table des matières

Les grands modèles de langage (LLMs) ont vraiment changé notre façon d'aborder différentes tâches en traitement du langage naturel (NLP). Ces modèles peuvent générer du texte, comprendre le contexte et fournir des réponses basées sur les entrées. Cependant, utiliser ces modèles peut être coûteux en termes de puissance de calcul et de ressources. C'est un vrai défi pour les organisations qui veulent utiliser les LLMs de manière plus large.

Une approche pour rendre les LLMs plus efficaces est de se concentrer sur quelque chose appelé la Sparsité d'activation. Cela fait référence à la façon dont certaines parties de la sortie d'un modèle contribuent très peu au résultat final, ce qui signifie qu'elles peuvent être ignorées ou "sautées" pendant le traitement. Utiliser plus efficacement la sparsité d'activation peut conduire à des Performances plus rapides et à des besoins en calcul réduits.

Actuellement, beaucoup de LLMs populaires utilisent des fonctions d'activation qui ne permettent pas une sparsité d'activation significative. La plupart de ces modèles utilisent des fonctions comme GELU ou Swish, qui ne produisent pas assez de sorties à valeur zéro pour une sparsification efficace. Il y a eu quelques efforts récents pour passer à d'autres fonctions d'activation, comme ReLU. ReLU a une capacité inhérente à produire des valeurs nulles, ce qui est idéal pour atteindre la sparsité d'activation. Cependant, ces tentatives peinent souvent à équilibrer une forte sparsité avec de bonnes performances.

Cet article présente une méthode appelée ProSparse. Cette méthode vise à atteindre une haute sparsité d'activation dans les LLMs sans sacrifier les performances. ProSparse utilise une série d'étapes qui impliquent d'ajuster comment les modèles traitent leurs fonctions d'activation tout en augmentant progressivement la sparsité de manière contrôlée.

Qu'est-ce que la Sparsité d'Activation ?

La sparsité d'activation est un concept qui signifie que certaines parties de la sortie d'activation d'un modèle n'influencent pas significativement les résultats finaux. En termes plus simples, cela signifie que certaines sorties peuvent être ignorées pendant le traitement parce qu'elles n'apportent pas beaucoup de valeur. Quand un modèle génère beaucoup de zéros dans sa sortie, tu peux sauter ces calculs, ce qui accélère finalement les temps de traitement.

Dans les modèles qui utilisent ReLU (une fonction d'activation courante), la sparsité d'activation est une caractéristique naturelle. ReLU peut produire beaucoup de valeurs nulles, ce qui signifie moins de travail pour le modèle quand ces valeurs ne sont pas nécessaires. Cependant, beaucoup de modèles plus récents utilisent GELU ou Swish et ne produisent pas ces zéros, réduisant ainsi leur capacité à bénéficier efficacement de la sparsité d'activation.

En améliorant la sparsité d'activation, les modèles peuvent fonctionner plus rapidement et utiliser moins de ressources. C'est particulièrement important pour les grands modèles, qui peuvent coûter cher à faire tourner et à déployer.

Défis avec les Méthodes Actuelles

Bien qu'il y ait eu des tentatives de remplacement des anciens modèles par ReLU ou ses variantes, ces méthodes n'ont pas régulièrement atteint le niveau souhaité de sparsité d'activation sans perte de performance. Les méthodes traditionnelles impliquent souvent une étape simple : remplacer la fonction d'activation. Cependant, cette approche unique a des limites. Passer simplement à ReLU ne gère pas adéquatement le comportement de la distribution d'activation originale du modèle, ce qui mène à des résultats médiocres.

De plus, pousser les modèles à atteindre une plus grande sparsité rapidement peut entraîner des baisses de performance. Quand les changements sont trop brusques, cela peut déranger le comportement et les apprentissages du modèle, ce qui affecte négativement l'efficacité globale.

Présentation de ProSparse

ProSparse est une approche innovante conçue pour améliorer la sparsité d'activation dans les LLMs en utilisant un processus méthodique. Elle se concentre sur trois étapes clés : changer la fonction d'activation, appliquer un Entraînement de sparsité progressive et ajuster les seuils pour les activations.

Étape 1 : Changement de Fonction d'Activation

La première étape consiste à changer la fonction d'activation utilisée par le modèle de GELU ou Swish à ReLU. Cette étape est cruciale car ReLU est intrinsèquement meilleur pour produire des sorties nulles, ce qui conduit à une plus grande sparsité d'activation.

Une fois que la fonction d'activation a été remplacée par ReLU, le modèle subit un entraînement continu. Cet entraînement aide le modèle à s'adapter à la nouvelle fonction d'activation, le rendant plus efficace pour traiter les données avec cette nouvelle approche.

Étape 2 : Régularisation de Sparsité Progressive

Après avoir réussi à passer à ReLU, ProSparse emploie une méthode appelée régularisation de sparsité progressive. Cette technique consiste à augmenter lentement le niveau de sparsité que le modèle doit viser pendant l'entraînement. Au lieu de donner un objectif fixe de sparsité d'un coup, le facteur de régularisation qui guide à quel point la sparsité doit être stricte est progressivement augmenté au fil des étapes.

Cette augmentation graduelle permet au modèle de mieux s'adapter aux demandes changeantes. En ajustant soigneusement le facteur de régularisation, les chercheurs peuvent minimiser les changements brusques dans la façon dont le modèle active ses neurones. Ainsi, le modèle continue de bien performer même avec des niveaux de sparsité croissants.

Étape 3 : Ajustements du Seuil d'Activation

La dernière étape de ProSparse consiste à modifier le seuil d'activation de la fonction ReLU. Normalement, ReLU produit zéro pour toute valeur inférieure ou égale à zéro. En déplaçant ce seuil légèrement vers le haut, le modèle peut éliminer ou ignorer encore plus d'activations moins importantes. Cet ajustement peut aider à retirer des neurones qui ont peu d'influence sur les résultats, augmentant ainsi la sparsité globale sans affecter considérablement les performances du modèle.

Résultats

Pour tester l'efficacité de ProSparse, des expériences ont été menées en utilisant LLaMA2, un modèle de langage large très en vue. L'application de ProSparse a conduit à des taux de sparsité d'activation impressionnants de 89,32 % pour la version LLaMA2-7B et de 88,80 % pour la version LLaMA2-13B. Crucialement, ces résultats ont été obtenus tout en maintenant des niveaux de performance comparables à ceux des modèles d'origine qui utilisaient des fonctions d'activation Swish.

De plus, des tests ont été réalisés sur l'efficacité de ProSparse dans des applications réelles. Ces tests ont montré que les modèles avec une plus grande sparsité d'activation pouvaient atteindre des vitesses d'inférence plus rapides. Deux algorithmes différents ont été déployés pour évaluer l'accélération : un algorithme approximatif et un algorithme précis.

Algorithme d'Accélération Approximative

Pour l'approche approximative, un système appelé PowerInfer a été utilisé. PowerInfer repose sur la prédiction des activations qui seront nulles. Il parvient à réaliser des améliorations de vitesse significatives en utilisant mieux le matériel en fonction de ces prédictions. Les modèles ProSparse ont montré des améliorations notables dans les temps d'inférence avec cette méthode.

Algorithme d'Accélération Précise

L'approche précise a utilisé deux opérateurs GPU spécialement conçus pour optimiser la façon dont le modèle traitait les entrées et les sorties. Cette méthode se concentrait sur la réduction du temps d'horloge tout en gérant les activations plus efficacement. Les résultats ont encore confirmé que les modèles appliquant ProSparse ont réalisé d'excellents ratios d'accélération, confirmant ses avantages pratiques.

Comparaisons avec d'Autres Méthodes

Pour mettre en avant les réalisations de ProSparse, il est utile de la comparer avec des méthodes existantes qui ont essayé de créer des LLMs plus efficaces. Ces méthodes ont généralement l'un des deux inconvénients : elles échouent soit à atteindre une suffisante sparsité, soit le font au détriment de la performance.

ProSparse se démarque parce qu'elle parvient à trouver un équilibre entre une forte sparsité et une performance acceptable dans diverses tâches. En utilisant une approche plus sophistiquée et graduelle pour l'entraînement, ProSparse mène à de meilleurs résultats globaux.

Insights Supplémentaires : Sparsité par Couche et par Ensemble de Données

Un examen plus approfondi des résultats révèle d'autres insights sur la sparsité par couche et par ensemble de données. Différentes couches au sein des modèles ont montré des niveaux de sparsité variés. En général, les couches inférieures avaient des activations plus denses que les couches supérieures. Fait intéressant, les ajustements effectués lors du déplacement du seuil d'activation ont amélioré la sparsité dans les couches inférieures, menant à une sparsité plus équilibrée à travers le modèle.

En examinant différents ensembles de données utilisés pour l'entraînement et l'évaluation, les résultats ont indiqué que les ensembles de données d'instruction tuning atteignaient généralement une sparsité plus élevée que les ensembles de données de modélisation de langage. La structure et le formatage des différents ensembles de données semblent influencer le niveau de sparsité pouvant être atteint. Les modèles entraînés sur des données plus structurées ont montré une tendance à atteindre une meilleure sparsité.

Conclusion

ProSparse présente une méthode prometteuse pour améliorer la sparsité d'activation dans les grands modèles de langage. En modifiant efficacement les fonctions d'activation, en augmentant progressivement les objectifs de sparsité et en ajustant les seuils d'activation, cette approche peut considérablement améliorer l'efficacité des modèles sans sacrifier la performance. Les résultats d'expériences approfondies montrent que ProSparse non seulement atteint une haute sparsité d'activation mais entraîne aussi des gains pratiques en vitesse d'inférence.

À mesure que les LLMs continuent d'évoluer, les avancées apportées par ProSparse offrent des opportunités passionnantes pour des modèles plus efficaces. La capacité d'optimiser les LLMs peut élargir leurs applications et les rendre plus accessibles pour diverses organisations. Les recherches futures pourraient explorer encore plus de façons de tirer parti des avantages de la sparsité des modèles tout en assurant une performance efficace dans différentes tâches.

Source originale

Titre: ProSparse: Introducing and Enhancing Intrinsic Activation Sparsity within Large Language Models

Résumé: Activation sparsity refers to the existence of considerable weakly-contributed elements among activation outputs. As a prevalent property of the models using the ReLU activation function, activation sparsity has been proven a promising paradigm to boost model inference efficiency. Nevertheless, most large language models (LLMs) adopt activation functions without intrinsic activation sparsity (e.g., GELU and Swish). Some recent efforts have explored introducing ReLU or its variants as the substitutive activation function to help LLMs achieve activation sparsity and inference acceleration, but few can simultaneously obtain high sparsity and comparable model performance. This paper introduces a simple and effective sparsification method named "ProSparse" to push LLMs for higher activation sparsity while maintaining comparable performance. Specifically, after substituting the activation function of LLMs with ReLU, ProSparse adopts progressive sparsity regularization with a factor smoothly increasing along the multi-stage sine curves. This can enhance activation sparsity and mitigate performance degradation by avoiding radical shifts in activation distributions. With ProSparse, we obtain high sparsity of 89.32% for LLaMA2-7B, 88.80% for LLaMA2-13B, and 87.89% for end-size MiniCPM-1B, respectively, achieving comparable performance to their original Swish-activated versions. These present the most sparsely activated models among open-source LLaMA versions and competitive end-size models, considerably surpassing ReluLLaMA-7B (66.98%) and ReluLLaMA-13B (71.56%). Our inference acceleration experiments further demonstrate the significant practical acceleration potential of LLMs with higher activation sparsity, obtaining up to 4.52$\times$ inference speedup.

Auteurs: Chenyang Song, Xu Han, Zhengyan Zhang, Shengding Hu, Xiyu Shi, Kuai Li, Chen Chen, Zhiyuan Liu, Guangli Li, Tao Yang, Maosong Sun

Dernière mise à jour: 2024-12-23 00:00:00

Langue: English

Source URL: https://arxiv.org/abs/2402.13516

Source PDF: https://arxiv.org/pdf/2402.13516

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.

Plus d'auteurs

Articles similaires