Suivez nous sur

LoRa, QLoRA et QA-LoRA : adaptabilitĂ© efficace dans les grands modèles de langage grâce Ă  la factorisation matricielle de bas rang

Intelligence Artificielle

LoRa, QLoRA et QA-LoRA : adaptabilitĂ© efficace dans les grands modèles de langage grâce Ă  la factorisation matricielle de bas rang

mm
LoRA : Adaptation de bas rang de grands modèles de langage

Les grands modèles linguistiques (LLM) se sont taillé une niche unique, offrant des capacités inégalées en matière de compréhension et de génération de textes de type humain. La puissance des LLM peut être attribuée à leur taille énorme, comportant souvent des milliards de paramètres. Si cette énorme échelle alimente leur performance, elle engendre simultanément des défis, notamment lorsqu'il s'agit d'adapter le modèle à des tâches ou des domaines spécifiques. Les voies conventionnelles de gestion des LLM, telles que le réglage fin de tous les paramètres, présentent un lourd tribut informatique et financier, posant ainsi un obstacle important à leur adoption généralisée dans les applications du monde réel.

Dans une article précédent, nous avons peaufiné les grands modèles linguistiques (LLM) pour les adapter à des exigences spécifiques. Nous avons exploré diverses méthodologies de réglage fin telles que le réglage fin basé sur les instructions, le réglage fin d'une tâche unique et le réglage fin efficace des paramètres (PEFT), chacune avec son approche unique pour optimiser les LLM pour des tâches distinctes. Au centre de la discussion se trouvaient l'architecture du transformateur, l'épine dorsale des LLM, et les défis posés par les exigences de calcul et de mémoire liées à la gestion d'un grand nombre de paramètres lors du réglage fin.

Paramètres dans LLM

https://huggingface.co/blog/hf-bitsandbytes-integration

L'image ci-dessus représente l'échelle de différents grands modèles de langage, triés par leur nombre de paramètres. Notamment : Palmier, FLORAISON, et ainsi de suite

Depuis cette année, des progrès ont été réalisés conduisant à des modèles encore plus grands. Cependant, l’ajustement de modèles open source aussi gigantesques sur des systèmes standards est impossible sans techniques d’optimisation spécialisées.

Enter Low-Rank Adaptation (LoRA) a été introduit par Microsoft dans ce papier, visant à atténuer ces défis et à rendre les LLM plus accessibles et adaptables.

Le point crucial de LoRA réside dans son approche de l’adaptation du modèle sans se plonger dans les subtilités du recyclage de l’ensemble du modèle. Contrairement au réglage fin traditionnel, où chaque paramètre est susceptible de changer, LoRA adopte un itinéraire plus intelligent. Il gèle les poids du modèle pré-entraîné et introduit des matrices de décomposition de rang pouvant être entraînées dans chaque couche de l'architecture Transformer. Cette approche réduit considérablement le nombre de paramètres pouvant être entraînés, garantissant ainsi un processus d'adaptation plus efficace.

L'évolution des stratégies de réglage LLM

En réfléchissant au parcours de réglage du LLM, on peut identifier plusieurs stratégies utilisées par les praticiens au fil des ans. Initialement, l'accent était mis sur le réglage fin des modèles pré-entraînés, une stratégie qui implique une modification complète des paramètres du modèle pour les adapter à la tâche spécifique à accomplir. Cependant, à mesure que les modèles augmentaient en taille et en complexité, les exigences informatiques de cette approche augmentaient également.

La stratégie suivante qui a gagné en popularité est le réglage fin des sous-ensembles, une version plus restreinte de la précédente. Seul un sous-ensemble des paramètres du modèle est alors ajusté, réduisant ainsi quelque peu la charge de calcul. Malgré ses mérites, le réglage fin des sous-ensembles n'a pas permis de suivre le rythme de croissance des LLM.

Alors que les praticiens s’aventuraient à explorer des voies plus efficaces, une mise au point complète est apparue comme une approche rigoureuse mais enrichissante.

Introduction Ă  LoRA

Le rang d'une matrice nous donne un aperçu des dimensions créées par ses colonnes, déterminées par le nombre de lignes ou de colonnes uniques dont elle dispose.

  • Matrice de classement complet : son rang correspond au plus petit nombre entre ses lignes ou colonnes.
  • Matrice de bas rang : avec un rang nettement infĂ©rieur Ă  son nombre de lignes et de colonnes, elle capture moins de fonctionnalitĂ©s.

Aujourd'hui, les grands modèles acquièrent une compréhension globale de leur domaine, comme le langage dans les modèles de langage. Cependant, les affiner pour des tâches spécifiques ne nécessite souvent de mettre en évidence qu'une petite partie de cette compréhension. C'est là que LoRA se distingue. Il suggère que la matrice présentant ces ajustements de pondération peut être de rang inférieur, capturant ainsi moins de caractéristiques.

LoRA limite intelligemment le classement de cette matrice de mise à jour en la divisant en deux matrices de classement plus petites. Ainsi, au lieu de modifier l’ensemble de la matrice de poids, cela n’en modifie qu’une partie, ce qui rend la tâche de réglage plus efficace.

Application de LoRA aux transformateurs

LoRA aide à minimiser la charge d'entraînement dans les réseaux neuronaux en se concentrant sur des matrices de poids spécifiques. Sous l'architecture Transformer, certaines matrices de poids sont liées au mécanisme d'auto-attention, à savoir Wq, Wk, Wv et Wo, outre deux autres dans le module Multi-Layer Perceptron (MLP).

Architecture des transformateurs

Architecture des transformateurs

 

tĂŞtes d'attention du transformateur

TĂŞtes d'attention du transformateur

Explication mathématique derrière LoRA

DĂ©composons les mathĂ©matiques derrière LoRA :

  1. Matrice de poids pré-entraînée :
    • Cela commence par une matrice de poids prĂ©-entraĂ®nĂ©e de dimensions . Cela signifie que la matrice a lignes et colonnes.
  2. Décomposition de bas rang:
    • Au lieu de mettre Ă  jour directement la matrice entière , qui peut ĂŞtre coĂ»teuse en calcul, la mĂ©thode propose une approche de dĂ©composition de bas rang.
    • La mise Ă  jour Ă  peut ĂŞtre reprĂ©sentĂ© comme le produit de deux matrices : ou .
      • a des dimensions
      • a des dimensions
    • Le point clĂ© ici est que le rang est beaucoup plus petit que les deux ou , ce qui permet une reprĂ©sentation plus efficace sur le plan informatique.
  3. Formation:
    • Durant le processus de formation, reste inchangĂ©. C'est ce qu'on appelle le « gel Â» des poids.
    • D'autre part, ou sont les paramètres entraĂ®nables. Cela signifie que, pendant la formation, des ajustements sont apportĂ©s aux matrices ou pour amĂ©liorer les performances du modèle.
  4. Multiplication et addition:
    • Le et la mise Ă  jour (qui est le produit de ou ) sont multipliĂ©s par la mĂŞme entrĂ©e (notĂ©e ).
    • Les rĂ©sultats de ces multiplications sont ensuite additionnĂ©s.
    • Ce processus est rĂ©sumĂ© dans l’équation : Ici, reprĂ©sente la sortie finale après application des mises Ă  jour Ă  l'entrĂ©e .

En bref, cette méthode permet de mettre à jour plus efficacement une matrice de poids importante en représentant les mises à jour à l'aide d'une décomposition de bas rang, ce qui peut être bénéfique en termes d'efficacité de calcul et d'utilisation de la mémoire.

LORA Animation

LORA

Initialisation et mise Ă  l'Ă©chelle :

Lors de la formation de modèles, la manière dont nous initialisons les paramètres peut affecter de manière significative l'efficience et l'efficacité du processus d'apprentissage. Dans le cadre de notre mise à jour de notre matrice de poids en utilisant ou :

  1. Initialisation des matrices ou :
    • Matrice : Cette matrice est initialisĂ©e avec des valeurs gaussiennes alĂ©atoires, Ă©galement appelĂ©es distribution normale. La raison d’être de l’initialisation gaussienne est de briser la symĂ©trie : diffĂ©rents neurones d’une mĂŞme couche apprendront des caractĂ©ristiques diffĂ©rentes lorsqu’ils ont des poids initiaux diffĂ©rents.
    • Matrice : Cette matrice est initialisĂ©e avec des zĂ©ros. En faisant cela, la mise Ă  jour La valeur de dĂ©part est nulle au dĂ©but de l'apprentissage. Elle garantit l'absence de changement brutal du comportement du modèle au dĂ©part, lui permettant de s'adapter progressivement. apprend les valeurs appropriĂ©es pendant la formation.
  2. Mise à l'échelle de la sortie à partir de :
    • Après avoir calculĂ© la mise Ă  jour , sa sortie est mise Ă  l'Ă©chelle d'un facteur de oĂą est une constante. Grâce Ă  la mise Ă  l'Ă©chelle, l'ampleur des mises Ă  jour est contrĂ´lĂ©e.
    • La mise Ă  l'Ă©chelle est particulièrement cruciale lorsque le rang Modifications. Par exemple, si vous dĂ©cidez d'augmenter le rang pour plus de prĂ©cision (au dĂ©triment des calculs), la mise Ă  l'Ă©chelle vous Ă©vite d'avoir Ă  ajuster de nombreux autres hyperparamètres. Elle assure une certaine stabilitĂ© au modèle.

L'impact pratique de LoRA

LoRA a démontré son potentiel pour adapter efficacement les LLM à des styles artistiques spécifiques par des personnes de la communauté de l'IA. Cela s'est notamment manifesté dans l'adaptation d'un modèle pour imiter le style artistique de Greg Rutkowski.

Comme soulignĂ© dans l'article avec GPT-3 175B comme exemple. Avoir des instances individuelles de modèles affinĂ©s avec chacun 175 B de paramètres est assez coĂ»teux. Mais, avec LoRA, les paramètres pouvant ĂŞtre entraĂ®nĂ©s sont rĂ©duits de 10,000 XNUMX fois et l'utilisation de la mĂ©moire GPU est rĂ©duite d'un tiers.

Impact LoRa sur le réglage GPT-3

Impact LoRa sur le réglage fin de GPT-3

La méthodologie LoRA représente non seulement un progrès significatif vers la rendre les LLM plus accessibles, mais souligne également le potentiel de combler le fossé entre les progrès théoriques et les applications pratiques dans le domaine de l'IA. En atténuant les obstacles informatiques et en favorisant un processus d'adaptation de modèle plus efficace, LoRA est sur le point de jouer un rôle central dans l'adoption et le déploiement plus larges des LLM dans des scénarios du monde réel.

QLoRA (quantisé)

Bien que LoRA révolutionne la réduction des besoins de stockage, il nécessite toujours un GPU puissant pour charger le modèle à entraîner. C'est là qu'intervient QLoRA, ou Quantized LoRA, en combinant LoRA et Quantification pour une approche plus intelligente.

Quantification

Quantification

Normalement, les paramètres de pondération sont stockés au format 32 bits (FP32), ce qui signifie que chaque élément de la matrice occupe 32 bits. Imaginez pouvoir condenser la même information en seulement 8, voire 4 bits. C'est l'idée centrale de QLoRA. La quantification désigne le processus de mappage de valeurs infinies continues vers un ensemble plus restreint de valeurs finies discrètes. Dans le contexte des LLM, elle désigne le processus de conversion des pondérations du modèle de données de haute précision vers des données de moindre précision.

Quantification en LLM

Quantification en LLM

Voici une description plus simple de QLoRA :

  1. Quantification initiale: Premièrement, le Large Language Model (LLM) est quantifié jusqu'à 4 bits, réduisant considérablement l'empreinte mémoire.
  2. Formation LoRA: Ensuite, l'entraînement LoRA est effectué, mais avec la précision standard de 32 bits (FP32).

Maintenant, vous vous demandez peut-être pourquoi revenir à 32 bits pour l'entraînement après avoir été réduit à 4 bits ? Eh bien, pour entraîner efficacement les adaptateurs LoRA dans FP32, les poids du modèle doivent également revenir au FP32. Ce basculement s'effectue de manière intelligente, étape par étape, pour éviter de surcharger la mémoire du GPU.

LoRA trouve son application pratique dans le Hugging Face Réglage fin efficace des paramètres (PEFT) bibliothèque, simplifiant ainsi son utilisation. Pour ceux qui souhaitent utiliser QLoRA, elle est accessible via une combinaison des bits et octets et bibliothèques PEFT. De plus, le HuggingFace Bibliothèque d'apprentissage par renforcement des transformateurs (TRL) facilite le réglage fin supervisé avec un support intégré pour LoRA. Ensemble, ces trois bibliothèques fournissent la boîte à outils essentielle pour affiner un modèle pré-entraîné sélectionné, permettant la génération de descriptions de produits convaincantes et cohérentes lorsque vous y êtes invité avec des instructions d'attribut spécifiques.

Après le réglage fin de QLoRA, les poids doivent revenir à un format de haute précision, ce qui peut entraîner une perte de précision et manque d'optimisation pour accélérer le processus.

Une solution proposée consiste à regrouper la matrice de poids en segments plus petits et à appliquer la quantification et l'adaptation de bas rang à chaque groupe individuellement. Une nouvelle méthode, nommée QA-LoRA, tente de combiner les avantages de la quantification et de l'adaptation de bas rang tout en gardant le processus et le modèle efficaces pour les tâches souhaitées.

Conclusion

Dans cet article, nous avons évoqué les défis posés par leur énorme taille de paramètres. Nous nous sommes penchés sur les pratiques traditionnelles de réglage fin et leurs exigences informatiques et financières associées. Le point crucial de LoRA réside dans sa capacité à modifier des modèles pré-entraînés sans les recycler entièrement, réduisant ainsi les paramètres pouvant être entraînés et rendant le processus d'adaptation plus rentable.

Nous avons également abordé brièvement le Quantized LoRA (QLoRA), un mélange de LoRA et de quantification qui réduit l'empreinte mémoire du modèle tout en conservant la précision essentielle pour l'entraînement. Grâce à ces techniques avancées, les praticiens disposent désormais de bibliothèques robustes, facilitant l'adoption et le déploiement plus faciles des LLM dans un éventail de scénarios du monde réel.

Matrice

Matrice

Ces stratégies sont conçues pour trouver un équilibre entre rendre les LLM adaptables à des tâches spécifiques et garantir que les processus de réglage fin et de déploiement ne sont pas trop exigeants en termes de ressources de calcul et de stockage.

J'ai passé les cinq dernières années à m'immerger dans le monde fascinant du Machine Learning et du Deep Learning. Ma passion et mon expertise m'ont amené à contribuer à plus de 50 projets de génie logiciel divers, avec un accent particulier sur l'IA/ML. Ma curiosité continue m'a également attiré vers le traitement automatique du langage naturel, un domaine que j'ai hâte d'explorer davantage.