Calculateur de paramètres LoRA
Données
| Couches | 32 |
|---|---|
| Modules adaptés par couche | 4 |
| Taille cachée | 4 096 |
| Rang LoRA | 8 |
Calculateur de paramètres LoRA
Estimez le nombre de paramètres entraînables qu'ajoute un fine-tuning LoRA, ainsi que la mémoire d'optimiseur qu'il requiert, à partir du nombre de couches, des modules adaptés par couche, de la taille cachée et du rang LoRA.
Données
Architecture du modèle
Adaptateur LoRA
Résultats
Saisissez une valeur pour afficher les résultats.
Détails
Paramètres LoRA
L'adaptation de rang faible, ou LoRA, est la façon la plus courante de fine-tuner un grand modèle de langage à moindre coût. Au lieu de mettre à jour chaque poids, elle fige le modèle de base et entraîne une petite paire de matrices de rang faible à côté de chaque matrice de poids adaptée. Le résultat se comporte presque comme un fine-tuning complet tout en ne touchant qu'une infime fraction des paramètres. Ce calculateur estime à combien de paramètres se monte cette fraction, et combien de mémoire d'optimiseur elle nécessite, à partir de la forme du modèle et du rang de l'adaptateur.
Comment LoRA réduit l'ensemble entraînable
Une matrice de poids de transformeur transforme un vecteur caché en un autre, si bien que pour une couche carrée elle contient environ valeurs. Les entraîner toutes coûte cher : l'optimiseur doit stocker des gradients et des statistiques courantes pour chacune. LoRA remplace cette mise à jour dense par le produit de deux matrices fines — l'une de forme et l'autre de forme , où le rang est bien plus petit que . Les poids de base ne bougent jamais ; seuls ces deux facteurs sont entraînés, et à l'inférence leur produit est réintégré dans la matrice d'origine.
Comme chaque matrice adaptée apporte valeurs entraînables — et lorsque les largeurs d'entrée et de sortie sont égales — l'ensemble entraînable représente généralement bien moins d'un pour cent du modèle complet. C'est ce qui rend LoRA praticable sur un seul accélérateur.
La formule
Avec couches, modules adaptés par couche, un rang et une taille cachée , le nombre de paramètres entraînables vaut
P=L⋅m⋅2⋅r⋅dAdam en précision mixte conserve environ seize octets d'état d'optimiseur et de poids maîtres par paramètre entraînable — la copie maître en 32 bits, plus les estimations des premier et second moments — si bien que la mémoire d'optimiseur en mégaoctets vaut
M=10616PCela ne compte que l'état de l'adaptateur. Le modèle de base figé occupe toujours de la mémoire pour ses poids, mais il n'a besoin ni de gradients ni d'état d'optimiseur, et c'est de là que vient l'économie.
Exemple chiffré
Prenons un modèle de 32 couches, adaptant les quatre projections d'attention de chaque couche, au rang 8 avec une taille cachée de 4096 :
P=32×4×2×8×4096=8388608Soit environ 8,39 millions de paramètres entraînables. L'état de l'optimiseur vaut
M=10616×8388608≈134,2 MoPour un modèle de base de sept milliards de paramètres, ces 8,39 millions d'adaptateurs représentent à peu près un dixième de pour cent de l'ensemble — et pourtant ils suffisent à spécialiser le modèle pour de nombreuses tâches en aval.
Choisir le rang et les modules
Le rang est le principal réglage de capacité. Des rangs de 4 à 8 sont courants pour une adaptation légère à une tâche ; de 16 à 64 offrent plus de marge lorsque la tâche cible est éloignée des données d'entraînement du modèle de base. Doubler le rang double à la fois les paramètres entraînables et la mémoire d'optimiseur, aussi ne vaut-il la peine de l'augmenter que lorsqu'un rang plus faible sous-ajuste. L'entrée modules par couche reflète les matrices qui reçoivent un adaptateur : deux pour la requête et la valeur seulement, quatre pour le bloc d'attention complet, ou davantage si les matrices feed-forward sont incluses.
Pour comparer l'adaptateur à la taille du modèle complet, voir le Calculateur du nombre de paramètres d'un transformeur. Pour dimensionner la mémoire totale d'une session d'entraînement incluant les poids figés et les activations, voir le Calculateur de VRAM pour l'entraînement de LLM.
Questions fréquentes (FAQ)
Que contrôle le rang LoRA ?
Le rang fixe la dimension de la mise à jour de rang faible ajoutée à chaque matrice de poids adaptée. Un rang plus élevé donne à l'adaptateur plus de capacité pour capturer les changements par rapport au modèle de base, au prix de davantage de paramètres entraînables et de mémoire d'optimiseur, qui croissent tous deux linéairement avec le rang. Un rang plus faible est plus petit et plus rapide mais peut sous-ajuster les tâches difficiles.
La plupart des fine-tunings utilisent un rang entre 4 et 64, 8 ou 16 étant un point de départ courant ; la meilleure valeur dépend de l'écart entre la tâche cible et le modèle de base.
À quel point un fine-tuning LoRA est-il plus petit qu'un fine-tuning complet ?
LoRA n'entraîne que les adaptateurs de rang faible et fige les poids de base, si bien que l'ensemble entraînable représente généralement bien moins d'un pour cent du modèle complet. Un modèle de sept milliards de paramètres adapté à un rang modeste n'a souvent que quelques millions de paramètres entraînables.
Comme l'état de l'optimiseur dépend des paramètres entraînables plutôt que des paramètres totaux, l'économie de mémoire est importante. La taille du modèle complet, pour comparaison, peut être estimée avec le calculateur parameter-count-from-architecture.
Quels modules sont habituellement adaptés ?
Le choix le plus courant est celui des matrices de projection d'attention — requête, clé, valeur et sortie — ce qui correspond à quatre modules par couche.
Certaines recettes n'adaptent que les projections de requête et de valeur (deux modules), tandis que d'autres ajoutent les matrices feed-forward pour une couverture plus large à un coût en paramètres plus élevé. Réglez l'entrée modules par couche pour qu'elle corresponde aux matrices que votre configuration cible.
Mentions légales
Cette estimation suppose des matrices adaptées carrées et ne compte que les facteurs LoRA et leur état d'optimiseur Adam en précision mixte, à environ 16 octets par paramètre. Elle exclut le modèle de base figé, les activations, les gradients des paramètres hors adaptateur et tout ajustement de biais ou d'embedding. Considérez-la comme un chiffre de planification, non comme une comptabilité mémoire exacte.
Recommandations
Calculateur de VRAM pour l'entraînement de LLM
Estimez la VRAM GPU nécessaire pour affiner entièrement un grand modèle de langage à partir de son nombre de paramètres, du choix de l'optimiseur et de la mémoire d'activations, en appliquant la règle d'Adam en précision mixte de 16 octets par paramètre.
Calculateur du nombre de paramètres d'un transformeur
Estimez le nombre total de paramètres d'un transformeur à décodeur seul à partir du nombre de couches, de la taille cachée, de l'expansion du réseau à propagation avant et de la taille du vocabulaire, grâce à une formule architecturale au premier ordre.