Avec l'avènement de l'ère des modèles de langage de grande taille (LLM), la demande pour le 'fine-tuning' de modèles avec ses propres données a explosé. Cependant, entraîner entièrement un modèle avec des milliards de paramètres nécessite des coûts et des ressources informatiques considérables.
La technologie clé qui a émergé pour résoudre ce problème est le LoRA (Low-Rank Adaptation). Aujourd'hui, nous allons clarifier ce qu'est LoRA, pourquoi il est efficace et ses principes techniques.
1. Qu'est-ce que LoRA (Low-Rank Adaptation) ?
LoRA est une technologie proposée par une équipe de recherche de Microsoft en 2021, qui consiste à adapter un modèle en apprenant seulement deux petites matrices de 'rang faible' au lieu de mettre à jour tous les paramètres du modèle.
Alors que le 'Full Fine-tuning' nécessite de modifier tous les poids du modèle, LoRA gèle les poids existants (Freeze) et n'apprend que les parties qui doivent changer, en les extrayant très légèrement.
Pour faire une analogie :
Lorsque vous devez corriger le contenu d'un gros manuel spécialisé (modèle de base), au lieu de supprimer et de réécrire toutes les pages, vous n'écrivez que les corrections importantes sur un post-it (adaptateur LoRA) et vous les collez dans le livre.
2. Principe de fonctionnement (Approfondissement technique)
Le cœur de LoRA réside dans la décomposition matricielle (Matrix Decomposition).
Si on appelle la matrice de poids d'un modèle de deep learning $W$, le fine-tuning est le processus d'apprentissage de la variation de poids $\Delta W$.
$$W_{new} = W + \Delta W$$
LoRA ne va pas apprendre ce $\Delta W$ sous la forme d'une grande matrice, mais l'exprime en le décomposant en produit de deux petites matrices de bas rang $A$ et $B$.
$$\Delta W = B \times A$$
Ainsi, si la dimension originale est $d$ et le rang est $r$, au lieu d'apprendre une énorme matrice de taille $d \times d$, il suffit d'apprendre des matrices de taille beaucoup plus petites $d \times r$ et $r \times d$. (En général, $r$ est un nombre bien plus petit que $d$. Par exemple : $r=8, 16$, etc.)
En conséquence, le nombre de paramètres à apprendre peut être réduit jusqu'à 1/10 000 par rapport à avant.
3. Les principaux avantages de LoRA
1) Efficacité mémoire écrasante
Comme il n'est pas nécessaire de charger tous les paramètres en mémoire, le fine-tuning de grands modèles devient possible même avec des cartes graphiques grand public (RTX 3090, 4090, etc.) au lieu d'un coûteux GPU A100. Cela réduit considérablement l'utilisation de la VRAM.
2) Économie d'espace de stockage
Les modèles entièrement fine-tunés peuvent atteindre plusieurs dizaines de Go, tandis que les fichiers de poids appris avec LoRA (adaptateurs) font généralement entre quelques Mo et plusieurs centaines de Mo. Par conséquent, vous pouvez offrir plusieurs versions d'adaptateurs LoRA sur un seul modèle de base.
3) Maintien de la performance
Bien que le nombre de paramètres appris soit considérablement réduit, il n'y a presque pas de dégradation des performances par rapport au fine-tuning complet.
4) Pas de latence d'inférence (No Inference Latency)
Une fois l'apprentissage terminé, si vous ajoutez les valeurs calculées par $B \times A$ aux poids d'origine $W$ (Merge), la structure devient identique au modèle original. Par conséquent, la vitesse d'inférence ne ralentit pas.
4. Exemples d'application réelle
Supposons qu'un utilisateur veuille créer un chatbot qui parle comme un pirate.
-
Méthode classique : Entraîner l'ensemble du modèle Llama 3 (modèle 8B) avec des données de pirate. -> Génération d'un résultat de plus de 16 Go, temps d'apprentissage long.
-
Méthode LoRA : Les poids de Llama 3 sont fixes. Seuls les adaptateurs LoRA sont entraînés avec des données de pirate. -> Création d'un fichier d'adaptateur d'environ 50 Mo.
-
Déploiement : Chargez uniquement le modèle Llama 3 d'origine + le fichier de 50 Mo pour fournir le service.
5. Conclusion
LoRA est une technologie qui abaisse de manière significative la barrière d'entrée des modèles de langage de grande taille. Désormais, même les développeurs indépendants ou les petites et moyennes entreprises peuvent affiner des modèles d'IA performants en utilisant des données spécialisées.
Si vous envisagez de développer un modèle d'IA efficace, il est raisonnable de privilégier des techniques telles que LoRA (Parameter-Efficient Fine-Tuning) plutôt que l'apprentissage intégral.

Aucun commentaire.