Un LoRA (pour Low-Rank Adaptation) est une technique d’entraînement utilisée en IA image, notamment avec des modèles de diffusion tels que Stable Diffusion, pour adapter ou spécialiser un modèle pré-entraîné à une nouvelle tâche ou à un style spécifique sans avoir à entraîner l’intégralité du modèle.
En apprentissage profond, le réglage fin ou ajustement (fine-tuning en anglais) est une approche d’apprentissage par transfert dans laquelle les paramètres d’un modèle pré-entraîné sont ajustés avec de nouvelles données. Cela notamment permet d’adapter un modèle d’IA généraliste à une tâche spécifique, ou d’ajuster son comportement.
Réglage fin
Adaptation de bas rang
L’adaptation de bas rang (Low-rank adaptation ou LoRA en anglais) est une technique basée sur un adaptateur pour ajuster efficacement les modèles. L’idée de base est de concevoir une matrice de bas rang qui est ensuite ajoutée à la matrice d’origine. Un « adaptateur » LoRA est un ensemble de matrices de bas rang qui, ajoutées à un modèle de base, produisent un modèle ajusté. Cette technique offre des performances proches du réglage fin du modèle complet, mais en nécessitant beaucoup moins d’espace mémoire. L’adapteur d’un modèle comportant des milliards de paramètres peut ne contenir que quelques millions de paramètres.
Fonctionnement du LoRA
Le concept clé du LoRA est d’introduire un petit ensemble de nouvelles matrices de poids (matrices de faible rang) dans les couches du modèle existant. Au lieu d’ajuster les milliards de paramètres du modèle original (ce qui serait long et gourmand en ressources), le LoRA n’entraîne que ces quelques matrices ajoutées.
- Matrices de Faible Rang : LoRA fonctionne en décomposant une grande matrice de mise à jour des poids (
) en deux matrices beaucoup plus petites, appelées
et $ B $, telles que
. L’entraînement se concentre uniquement sur la mise à jour des poids de
et
.
- Entraînement Rapide : L’entraînement est beaucoup plus rapide car le nombre de paramètres à optimiser est considérablement réduit.
- Fichier de Petite Taille : Une fois l’entraînement terminé, le LoRA est généralement enregistré comme un petit fichier (souvent quelques dizaines à quelques centaines de mégaoctets) qui ne contient que les poids de
et
. Le modèle de base reste inchangé.
- Application : Pour utiliser le style ou le concept appris, on charge le modèle de base et on applique les poids du fichier LoRA à la volée.
Avantages Principaux
- Taille Réduite : Les fichiers LoRA sont minuscules par rapport au modèle de base complet (qui peut faire plusieurs gigaoctets). Cela facilite le partage et le stockage de multiples variations.
- Vitesse d’Entraînement : L’entraînement est beaucoup plus rapide et nécessite moins de puissance de calcul.
- Flexibilité : Un modèle de base peut être utilisé avec une multitude de LoRA différents pour générer des images dans des styles variés (ex: LoRA pour un style artistique spécifique, LoRA pour un personnage précis, LoRA pour un type de photographie).
En résumé, un LoRA est un module léger et efficace qui permet aux utilisateurs de personnaliser facilement des modèles d’IA image en leur apprenant de nouveaux concepts (comme un personnage, un objet ou un style) avec une quantité de données et un temps d’entraînement minimes.