Low-Rank Adaptation (LoRA) (FR)

From Systems analysis wiki
Jump to navigation Jump to search

Low-Rank Adaptation (LoRA) est une méthode de fine-tuning efficace en termes de paramètres (PEFT) qui permet d'adapter les grands modèles de langage (LLM) à de nouvelles tâches avec des coûts de calcul minimes. Cette technologie a été présentée pour la première fois dans un article de Edward Hu et ses collègues en 2021[1].

Le fine-tuning complet (full fine-tuning) de grands modèles, tels que LLaMA ou GPT, nécessite des ressources considérables, ce qui le rend inaccessible à la plupart des chercheurs et développeurs. LoRA résout ce problème en ne réentraînant qu'une petite fraction des paramètres du modèle, tout en maintenant une qualité et des performances élevées, comparables à celles d'un fine-tuning complet[2].

Principe de fonctionnement

L'idée principale de LoRA est de ne pas modifier les poids originaux du modèle pré-entraîné, mais d'y ajouter une petite matrice de « correction ». Au lieu d'entraîner directement l'énorme matrice de poids `W`, LoRA représente sa mise à jour comme le produit de deux matrices plus petites et de bas rang.

Formellement, si la matrice de poids originale d'une couche `W_0` a une dimension de `d × k`, sa mise à jour est représentée par `ΔW = BA`, où `B` est une matrice de dimension `d × r` et `A` est une matrice de dimension `r × k`. Le rang `r` est un hyperparamètre et est significativement plus petit que `d` et `k` (`r << d, k`). Pendant le fine-tuning, les poids originaux `W_0` sont gelés (frozen), et seules les matrices `A` et `B` sont entraînées. La matrice de poids finale est calculée comme `W = W_0 + BA`.

Cela permet de réduire le nombre de paramètres entraînables de plusieurs milliers de fois. Par exemple, lors du fine-tuning de GPT-3 (175 milliards de paramètres), LoRA diminue le nombre de paramètres entraînables d'un facteur 10 000 et réduit les besoins en mémoire GPU par 3[1].

Avantages clés

  • Économie de ressources : Le nombre de paramètres à entraîner est drastiquement réduit (jusqu'à 90 % et plus), ce qui diminue considérablement la consommation de mémoire vidéo (VRAM) et accélère le processus d'entraînement.
  • Pas de latence supplémentaire en inférence : Après l'entraînement, les matrices `B` et `A` peuvent être « fusionnées » avec la matrice principale `W_0` en calculant `W = W_0 + BA`. Ainsi, aucun calcul ou latence supplémentaire n'est ajouté pendant l'inférence[1].
  • Modularité et changement rapide de tâche : Les adaptateurs LoRA entraînés sont de petits fichiers (quelques mégaoctets). Cela permet de stocker facilement des dizaines d'adaptateurs pour différentes tâches et de basculer rapidement entre eux sans modifier le modèle de base[3].

Limites et modifications

Bien que LoRA soit très efficace, sa nature de bas rang peut constituer une limite pour les tâches qui nécessitent la mémorisation d'un grand volume de nouvelles informations. Pour résoudre ce problème et d'autres, diverses modifications ont été proposées.

QLoRA

QLoRA (Quantized Low-Rank Adaptation) est l'une des modifications les plus populaires, proposée en 2023. Elle combine LoRA avec une quantification sur 4 bits du modèle de base[4]. Cela permet de réduire encore davantage les besoins en mémoire, rendant possible le fine-tuning de modèles de plusieurs dizaines de milliards de paramètres (par exemple, des modèles 65B) sur un seul GPU grand public. C'est sur la base de QLoRA qu'a notamment été créé le modèle Guanaco, qui a montré des résultats comparables à ceux de ChatGPT.

Autres modifications

  • MoRA (High-Rank Updating) : Proposée pour les tâches où LoRA montre des performances insuffisantes en raison de la contrainte de rang. MoRA utilise des méthodes qui permettent de mettre à jour les poids avec un rang élevé tout en conservant l'efficacité en termes de paramètres[5].

Implémentation et application

La technologie LoRA a été largement adoptée grâce à son efficacité et sa simplicité d'intégration. La bibliothèque PEFT (Parameter-Efficient Fine-Tuning) de l'entreprise Hugging Face a joué un rôle clé dans sa popularisation. PEFT fournit une interface unifiée pour appliquer LoRA et d'autres méthodes PEFT aux modèles de l'écosystème Transformers[6].

LoRA est activement utilisée pour :

  • L'adaptation de chatbots et de systèmes de dialogue (par exemple, le fine-tuning de LLaMA, Mistral).
  • La création de modèles pour la classification et la génération de texte dans des domaines très spécialisés.
  • La personnalisation de modèles pour un style ou un format de données spécifique.

Liens externes

Bibliographie

  • Hu, E.J. et al. (2021). LoRA: Low-Rank Adaptation of Large Language Models. arXiv:2106.09685.
  • Dettmers, T. et al. (2023). QLoRA: Efficient Finetuning of Quantized LLMs. arXiv:2305.14314.
  • Zhang, Q. et al. (2023). AdaLoRA: Adaptive Budget Allocation for Parameter-Efficient Fine-Tuning. arXiv:2303.10512.
  • Chen, Y. et al. (2023). LongLoRA: Efficient Fine-Tuning of Long-Context Large Language Models. arXiv:2309.12307.
  • Mao, K. et al. (2024). A Survey on LoRA of Large Language Models. arXiv:2407.11046.
  • Jiang, T. et al. (2024). MoRA: High-Rank Updating for Parameter-Efficient Fine-Tuning. arXiv:2405.12130.
  • Liu, Z. et al. (2024). ALoRA: Allocating Low-Rank Adaptation for Fine-Tuning Large Language Models. arXiv:2403.16187.
  • Liu, J. et al. (2025). RoRA: Efficient Fine-Tuning of LLM with Reliability Optimization for Rank Adaptation. arXiv:2501.04315.
  • Albert, P. et al. (2025). RandLoRA: Full-Rank Parameter-Efficient Fine-Tuning of Large Models. arXiv:2502.00987.
  • Tastan, N. et al. (2025). LoFT: Low-Rank Adaptation That Behaves Like Full Fine-Tuning. arXiv:2505.21289.

Références

  1. 1.0 1.1 1.2 Hu, E.J., et al. «LoRA: Low-Rank Adaptation of Large Language Models». arXiv:2106.09685. [1]
  2. Mao, K., et al. «A Survey on LoRA of Large Language Models». arXiv:2407.11046. [2]
  3. Noble, Joshua. «What is LoRA (Low-Rank Adaption)?». IBM Technology. [3]
  4. Dettmers, T., et al. «QLoRA: Efficient Finetuning of Quantized LLMs». arXiv:2305.14314. [4]
  5. Jiang, Z., et al. «MoRA: High-Rank Updating for Parameter-Efficient Fine-Tuning». arXiv:2405.12130. [5]
  6. «LoRA (Low-Rank Adaptation)». Hugging Face LLM Course. [6]