LoRA vs QLoRA : quelle méthode de fine-tuning choisir ?

Traduction automatique

Cet article a été traduit automatiquement depuis la version originale en anglais.

LoRA entraîne de petites matrices d’adaptation tout en gardant les poids préentraînés gelés. QLoRA applique cette approche à un modèle de base stocké avec une précision de 4 bits. Commencez par LoRA si le modèle de base tient en mémoire avec une marge suffisante ; envisagez QLoRA si ses poids gelés consomment trop de mémoire d’entraînement.

Les deux méthodes ont toujours besoin de mémoire pour les activations, les gradients des adaptateurs et l’état de l’optimiseur. Des lots plus grands et des séquences plus longues augmentent la mémoire des activations et des tampons temporaires. Pour une configuration d’adaptateurs fixe, la taille des gradients et de l’état de l’optimiseur dépend des paramètres entraînables.

La différence vient des poids de base

LoRA représente une mise à jour des poids par deux petites matrices au lieu d’entraîner toute la matrice de poids. Si le poids initial a les dimensions d × k, un adaptateur de rang r entraîne des matrices de dimensions r × k et d × r. Le rang détermine la taille de l’adaptateur ; il ne fournit pas de mesure universelle de la difficulté de la tâche.

ChoixBase geléePartie entraînablePrincipal compromis
LoRAGénéralement BF16 ou FP16Adaptateurs de faible rangPlus de mémoire allouée aux poids de base
QLoRAPoids quantifiés sur 4 bitsAdaptateurs de faible rang, avec une arithmétique de précision supérieureMoins de mémoire pour les poids de base, avec un travail de déquantification

L’article original de LoRA décrit des poids gelés et des mises à jour entraînables de faible rang. Après l’entraînement, un adaptateur peut être fusionné avec des poids de base compatibles, ce qui évite une opération d’adaptation distincte pendant l’inférence. Le déploiement quantifié et la fusion nécessitent une prise en charge par les outils choisis.

L’article de QLoRA a utilisé NF4, une représentation sur 4 bits conçue pour des poids suivant une distribution normale, ainsi que la double quantification et des optimiseurs paginés. Dans la configuration testée, il a réalisé le fine-tuning d’un modèle de 65B paramètres sur un seul GPU de 48 GB. Ce résultat ne garantit pas qu’un autre modèle, une autre longueur de séquence ou une autre configuration d’entraînement tienne aussi en mémoire.

Comparez une exécution d’entraînement contrôlée

Gardez constants le checkpoint de base, les exemples, les modules ciblés par les adaptateurs, le rang, la longueur des séquences et le jeu d’évaluation. Relevez le pic de mémoire, la durée d’entraînement et la qualité sur des exemples de la tâche réservés à l’évaluation. Si QLoRA économise de la mémoire mais ralentit l’exécution, déterminez si l’utilisation de moins de GPUs compense ce temps supplémentaire.

Testez aussi l’artefact d’inférence réel. La qualité de l’adaptateur mesurée avec les outils d’entraînement peut changer après la fusion ou une quantification supplémentaire.

La section LoRA et QLoRA du Guide d’ingénierie des LLM explique la mise à jour des paramètres et ses conséquences matérielles.