Le dico du geek
by GEEKly
Lexique

LoRa

Low-Rank Adaptation (LoRa)

Explication

LoRa (Low-Rank Adaptation)

Le LoRA se fonde sur l’utilisation de l’approximation à bas rang (Low-Rank Adaptation en anglais), une approche mathématique qui simplifie et réduit la dimension de matrices de grande envergure en trouvant des matrices plus petites capables de les représenter de manière approximative.

Le processus de LoRA implique de maintenir les poids originaux d’un modèle pré-entraîné (le checkpoint) tout en ajustant un ensemble de paramètres beaucoup plus restreint. Ces paramètres ajustés sont ensuite intégrés au modèle pré-entraîné.

Pour en savoir plus sur le fonctionnement complexe de ce système, vous pouvez voir cette page (en anglais)

Avantage

Les avantages de cette méthode sont les suivants :

  • Elle permet de considérablement réduire le nombre de paramètres entraînables, en fonction du rang choisi pour les matrices de mise à jour. Par exemple, l’application de LoRA au modèle GPT-3 175 milliards de paramètres réduit ce nombre à seulement 17 millions, soit une diminution de 10 000 fois¹.
  • En réduisant le nombre de paramètres, les besoins en mémoire GPU sont fortement réduits, ce qui entraîne une baisse significative des coûts liés au développement d’un modèle de grande taille.
  • Elle évite le sur-apprentissage en préservant les poids originaux inchangés et en ne mettant à jour qu’une petite fraction d’entre eux. Cela maintient la capacité du modèle à généraliser tout en le rendant adaptable à de nouvelles données.
  • Elle permet une transition efficace entre les tâches en stockant uniquement une copie des poids originaux tout en conservant plusieurs jeux de matrices de mise à jour pour différentes tâches ou domaines. Cette approche réduit l’espace de stockage nécessaire et facilite la transition entre les tâches sans nécessiter le rechargement complet du modèle.

Dans un document réalisé par des ingénieurs de Google et divulgué dans SemiAnalysis, est exposé la menace potentielle que représente l’Open Source pour l’entreprise, notamment en ce qui concerne les technologies comme les LoRa :

Une partie de ce qui rend LoRA si puissant est que, comme d’autres formes de réglage, il est empilable. Des améliorations telles que le réglage des instructions peuvent être appliquées puis exploitées lorsque d’autres contributeurs ajoutent un dialogue, un raisonnement ou des outils. » Bien que les réglages fins individuels soient bas de gamme, leur somme n’a pas besoin d’être, permettant aux mises à niveau complètes du modèle de s’additionner au fil du temps. Cela signifie qu’à mesure que de nouveaux et meilleurs ensembles de données et de tâches deviennent disponibles, le modèle peut être mis à jour à faible coût, sans jamais avoir à payer le coût d’un parcours complet. […] Les grands modèles ne sont pas plus performants à long terme si nous pouvons itérer plus rapidement sur les petits modèles. Les mises à niveau LoRA sont très bon marché à produire (~ 100 $) pour les tailles de modèles les plus populaires. Cela signifie que presque tous ceux qui ont une idée peuvent en générer un et les temps de formation de moins d’une journée sont la norme.Ingénieurs chez Google

Exemples

Un LoRa peut être utilisé lorsque l’on souhaite modifier le style d’un modèle de base

Dreamshaper est un modèle de génération d’image efficace, mais pour améliorer le résultat souhaité, j’ajoute un LoRa avec le style de la série Arcane, puis je saisis le mot clé correspondant dans le prompt.

Les LoRa sont également de bons moyens d’ajouter un personnage fictif dans une image sans avoir à le décrire.

Pour ajouter Dark Vador dans une image, il suffit d’ajouter un LoRa du personnage, d’indiquer le mot clé dans le prompt, et celui-ci apparaîtra.

Enfin, un LoRa peut ajouter des informations supplémentaires inconnues par le modèle de base.

Pour avoir un personnage qui adopte une pose particulière, par exemple le DAB, il me suffit d’ajouter un LoRa de DAB et d’indiquer le mot clé dans le prompt pour que mon personnage prenne cette position.