Qu’est-ce que la LoRA (adaptation de rang inférieur) ?

Qu’est-ce que la LoRA ?

L’adaptation de rang inférieur (LoRA) est une technique utilisée pour adapter les modèles de machine learning à de nouveaux contextes. Elle peut adapter de grands modèles à des utilisations spécifiques en ajoutant des éléments légers au modèle d’origine plutôt que de modifier l’ensemble du modèle. Un data scientist peut rapidement développer les façons dont un modèle peut être utilisé plutôt que de créer un nouveau modèle.

La technique a été publiée par Edward Hu, Yelong Shen et leurs collaborateurs dans leur article « LoRA: Low-Rank Adaptation Of Large Language Models »1. Dans cet article, ils ont montré que les modèles réduits et réetraînés à l’aide de la LoRA surpassaient les modèles de base sur diverses tâches de référence. Les performances du modèle peuvent être améliorées sans nécessiter d’affinage complet et en utilisant un nombre beaucoup plus petit de paramètres de modèle pouvant être entraînés.

Les dernières tendances en matière d’IA, vues par des experts

Obtenez des informations sur les actualités les plus importantes et les plus intrigantes en matière d’intelligence artificielle. Abonnez-vous à notre newsletter hebdomadaire Think. Lire la Déclaration de confidentialité d’IBM.

Merci ! Vous êtes abonné(e).

Vous recevrez votre abonnement en anglais. Vous trouverez un lien de désabonnement dans chaque newsletter. Vous pouvez gérer vos abonnements ou vous désabonner ici. Consultez la Déclaration de confidentialité d’IBM pour plus d’informations.

Que fait la LoRA ?

Les modèles de machine learning volumineux et complexes, tels que ceux utilisés pour les grands modèles de langage (LLM) comme ChatGPT prennent beaucoup de temps et nécessitent de mettre en place de nombreuses ressources. Ils peuvent avoir des milliards de paramètres définis sur des valeurs spécifiques. Une fois ce processus terminé, le modèle est généralement puissant et précis, mais il n’est pas nécessairement adapté à l’exécution de tâches spécifiques.

Faire fonctionner un modèle dans des contextes spécifiques peut nécessiter beaucoup de réentraînement ainsi qu’une modification de tous ses paramètres. Compte tenu du nombre de paramètres dans de tels modèles, ce réentraînement est coûteux et prend du temps. La LoRA offre un moyen rapide d’adapter le modèle sans le réentraîner.

Par exemple, un affinage complet du modèle GPT-3 nécessite d’entraîner 175 milliards de paramètres en raison de la taille de son jeu de données d’entraînement. Avec la LoRA, les paramètres pouvant être entraînés pour GPT-3 peuvent être réduits à environ 18 millions, ce qui réduit les besoins en mémoire du GPU d’environ deux tiers.

La LoRA n’est pas la seule méthode de réglage fin efficace. Une variante de la LoRA, la quantification LoRA (QLoRA), est une technique de réglage fin qui combine une technique de calcul à haute précision avec une méthode de stockage à faible précision. Cela permet de réduire la taille du modèle tout en s’assurant qu’il est toujours très performant et précis.

Mixture of Experts | 12 décembre, épisode 85

Décryptage de l’IA : Tour d’horizon hebdomadaire

Rejoignez notre panel d’ingénieurs, de chercheurs, de chefs de produits et autres spécialistes de premier plan pour connaître l’essentiel de l’actualité et des dernières tendances dans le domaine de l’IA.

Comment fonctionne la LoRA

Au lieu de réentraîner l’ensemble du modèle, la LoRA gèle les poids et les paramètres d’origine du modèle tels quels. Ensuite, en plus de ce modèle d’origine, il ajoute un supplément léger appelé matrice de rang inférieur, qui est ensuite appliqué aux nouvelles entrées pour obtenir des résultats spécifiques au contexte. La matrice de rang inférieur s’ajuste aux poids du modèle d’origine afin que les sorties correspondent au cas d’utilisation.

La LoRA tire parti du concept de matrices de rang inférieur pour rendre le processus d’entraînement des modèles extrêmement efficace et rapide. Traditionnellement, le réglage fin des LLM nécessite d’ajuster l’ensemble du modèle. La LoRA se concentre sur la modification d’un sous-ensemble de paramètres plus petit (matrices de rang inférieur) afin de réduire les frais généraux de calcul et de mémoire.

Le diagramme montre comment la LoRA met à jour les matrices A et B pour suivre les changements dans les poids préentraînés en utilisant des matrices plus petites de rang r. Une fois l’entraînement de la LoRA terminé, les poids plus petits sont fusionnés dans une nouvelle matrice de poids, sans avoir besoin de modifier les poids initiaux du modèle préentraîné.

Image montrant comment l’adaptation du rang inférieur réduit la taille du modèle

La LoRa repose sur la compréhension que les grands modèles possèdent intrinsèquement une structure à faible dimension. En tirant parti de matrices plus petites, appelées matrices de rang inférieur, la LoRA adapte ces modèles efficacement. Cette méthode se concentre sur le concept de base selon lequel les changements significatifs du modèle peuvent être représentés avec moins de paramètres, ce qui rend le processus d’adaptation plus efficace.

Les matrices jouent un rôle important dans le fonctionnement des modèles de machine learning et des réseaux neuronaux. Les matrices de rang inférieur sont plus petites et contiennent beaucoup moins de valeurs que les matrices plus grandes ou de rang supérieur. Elles ne consomment pas beaucoup de mémoire et nécessitent moins d’étapes pour les ajouter ou les multiplier, ce qui les rend plus rapides à traiter pour les ordinateurs.

Une matrice de rang supérieur peut être décomposée en deux matrices de rang inférieur, une matrice 4 x 4 peut être décomposée en une matrice 4 x 1 et une matrice 1 x 4.

Image montrant comment une matrice 4 par 4 peut être réduite à une matrice 1 par 4 et 4 par 1

La LoRA ajoute des matrices de rang inférieur au modèle de machine learning d’origine gelé. Les matrices de rang inférieur sont mises à jour par descente de gradient lors du réglage fin, sans modifier les poids du modèle de base. Ces matrices contiennent de nouvelles pondérations à appliquer au modèle lors de la génération de résultats. La matrice de changement multipliée est ajoutée aux pondérations du modèle de base pour obtenir le modèle final affiné. Ce processus modifie les sorties produites par le modèle avec une puissance de calcul et un temps d’entraînement minimes.

En substance, la LoRA conserve le modèle d’origine tel quel et ajoute de petites parties modifiables à chaque couche du modèle. Cela réduit considérablement les paramètres entraînables du modèle et les besoins en mémoire du GPU pour le processus d’entraînement, ce qui constitue un autre défi de taille lorsqu’il s’agit d’affiner ou d’entraîner de grands modèles.

Pour implémenter le réglage fin de la LoRA avec HuggingFace en utilisant Python et PyTorch, les développeurs peuvent utiliser la bibliothèque parameter-efficient fine-tuning (PEFT) afin d’injecter les adaptateurs LoRA dans le modèle et les utiliser comme matrices de mise à jour. Elle est disponible gratuitement via HuggingFace ou GitHub. Cette bibliothèque permet de configurer les paramètres LoRA pour votre modèle. Parmi les paramètres les plus couramment utilisés, on retrouve :

r : le rang des matrices de mise à jour, exprimé en int. La décomposition du rang inférieur donne des résultats dans des matrices de mise à jour plus petites avec moins de paramètres pouvant être entraînés.

target_modules : les modules (par exemple, les blocs d’attention) pour appliquer les matrices de mise à jour de la LoRA.

lora_alpha : le facteur de mise à l’échelle de la LoRA.

Avantages de la LoRA

L’un des principaux avantages de la LoRA réside dans le fait qu’un modèle de base peut être partagé et utilisé pour créer de nombreux petits modules LoRA pour de nouvelles tâches. Le modèle partagé est gelé, ce qui permet aux utilisateurs de passer d’une tâche à l’autre en remplaçant les matrices de pondérations LoRA. Au lieu d’avoir besoin de deux modèles différents, un seul modèle peut être utilisé dans différentes tâches tout en conservant les gains de performance liés à l’affinage.

La LoRA rend l’entraînement plus efficace et réduit les contraintes matérielles à l’entrée, car les utilisateurs n’ont pas besoin de calculer les gradients ou de maintenir les états d’optimisation pour la plupart des paramètres. Le processus ne nécessite d’optimiser que les matrices de rang inférieur, bien plus petites.

La linéarité de la LoRA permet aux data scientists de fusionner les matrices entraînables avec les poids du modèle préentraînés gelés lors du déploiement. De ce fait, ils n’introduisent aucune latence par rapport à un modèle entièrement affiné par construction.

La LoRA peut être associée à d’autres techniques pour améliorer les performances du modèle, telles que le prefix-tuning, lui permettant de gagner en flexibilité.

Compromis

Bien que la LoRA permette de réduire considérablement le nombre de paramètres entraînables, il existe également un compromis. Ce processus crée une perte d’informations lors de la décomposition de la matrice. Comme la LoRA réduit la matrice de poids complet en composants plus petits, certains détails peuvent être perdus dans le processus. Cela équivaut à un surajustement du modèle. Toutefois, dans le cas des LLM, la perte est souvent minime, car les modèles d’apprentissage profond sont très fortement surparamétrés, ce qui signifie qu’ils contiennent plus de paramètres que nécessaire pour la tâche. Le terme « surparamétré » signifie que ces modèles sont souvent plus grands que ce qui est nécessaire pour les données d’entraînement. Certains paramètres sont moins importants que d’autres. Les paramètres renferment une redondance, une robustesse et une résilience. La suppression de cette résilience peut rendre les modèles moins précis, de sorte que le classement des matrices de mise à jour peut être ajusté dans le cadre du processus LoRA.

Solutions connexes
Modèles de fondation

Explorez la bibliothèque de modèles de fondation d’IBM dans le portefeuille watsonx pour déployer l’IA générative dans votre entreprise en toute confiance.

Découvrir watsonx.ai
Solutions d’intelligence artificielle

Mettez l’IA au service de votre entreprise en vous appuyant sur l’expertise de pointe d’IBM dans le domaine de l’IA et sur son portefeuille de solutions.

Découvrir les solutions d’IA
Conseils et services en matière d’IA

Réinventez les workflows et les opérations critiques en ajoutant l’IA pour optimiser les expériences, la prise de décision et la valeur métier en temps réel.

Découvrir les services d’IA
Passez à l’étape suivante

Explorez la bibliothèque de modèles de fondation d’IBM dans le portefeuille IBM watsonx pour déployer l’IA générative dans votre entreprise en toute confiance.

Découvrir watsonx.ai Découvrir les modèles d’IA IBM Granite
Notes de bas de page

1. Hu, Edward et al, « LoRA: Low-Rank Adaptation of Large Language Models », 2021