Calculateur de VRAM pour l'entraînement de LLM
Données
| Paramètres | 7 |
|---|---|
| Mémoire par paramètre | Adam en précision mixte (16 octets/param) |
| Mémoire d'activations | 0 |
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.
Données
Modèle
Activations
Résultats
Saisissez une valeur pour afficher les résultats.
Détails
VRAM pour l'entraînement de LLM
Affiner entièrement un grand modèle de langage exige bien plus de mémoire GPU que de simplement l'exécuter, et la raison en est l'optimiseur. L'inférence ne conserve que les poids, mais l'entraînement doit aussi garder un gradient pour chaque paramètre et l'état courant de l'optimiseur, puis ajouter les activations stockées pendant la passe avant. Ce calculateur estime la VRAM totale de l'affinage complet à partir du nombre de paramètres, du coût mémoire de l'optimiseur par paramètre et d'une valeur d'activations saisie séparément.
Les états du modèle dominent
Le plus grand coût fixe de l'entraînement, ce sont les états du modèle — les poids, leurs gradients et l'état de l'optimiseur. Avec paramètres en milliards et octets par paramètre, les états du modèle occupent
M=N⋅B GoLa valeur de référence pour l'entraînement en précision mixte avec Adam est de 16 octets par paramètre, qui se décompose ainsi : deux octets pour le poids 16 bits utilisé dans la passe avant, deux pour son gradient 16 bits, quatre pour une copie maîtresse 32 bits du poids conservée pour la stabilité numérique, et quatre pour chacune des deux estimations de moment d'Adam — le moment et la variance. Cela fait pour chaque paramètre. Des optimiseurs moins coûteux réduisent les termes liés à l'état de l'optimiseur : Adam 8 bits stocke ses moments en précision réduite pour environ 12 octets par paramètre, et la simple SGD avec moment en demande environ 8.
Les activations sont saisies séparément
Les états du modèle sont fixés une fois le modèle et l'optimiseur choisis, mais pas les activations. Ce sont les valeurs intermédiaires mises en cache pendant la passe avant afin que la passe arrière puisse calculer les gradients, et leur taille évolue avec la taille de lot et la longueur de séquence plutôt qu'avec le nombre de paramètres. En raison de cette indépendance, ce calculateur prend la mémoire d'activations comme une entrée propre et l'ajoute simplement :
V=M+Aoù est la mémoire d'activations en Go. La mémoire d'activations peut se mesurer en exécutant une seule étape d'entraînement et en lisant le pic d'utilisation, ou se réduire fortement avec le checkpointing d'activations, qui recalcule les activations lors de la passe arrière au lieu de les conserver.
Exemple chiffré
Prenons un modèle de 7 milliards de paramètres affiné avec Adam en précision mixte et, pour commencer, sans estimation d'activations :
MV=7×16=112 Go=112+0=112 GoLes états du modèle seuls font 112 Go — déjà au-delà d'un unique accélérateur de 80 Go. En ajoutant 20 Go d'activations réalistes, le total atteint 132 Go, ce qui rend le constat évident : même un modèle 7B, trivial à servir en inférence 16 bits, ne peut être entièrement affiné sur un seul GPU grand public. La mémoire bien plus modeste nécessaire pour simplement exécuter le modèle est traitée dans le Calculateur de VRAM pour l'inférence LLM.
Pourquoi LoRA change la donne
L'essentiel des 16 octets par paramètre, ce sont le gradient et l'état de l'optimiseur, et ceux-ci n'existent que pour les paramètres entraînés. LoRA gèle les poids de base et n'entraîne que de petits adaptateurs de faible rang, de sorte que les gradients et l'état de l'optimiseur ne couvrent que bien moins d'un pour cent des paramètres. Les poids gelés occupent toujours de la mémoire, mais retirer le plus gros terme est ce qui permet à un modèle qui demande 132 Go pour un affinage complet de tenir sur une seule carte de 24 Go. La taille de ces adaptateurs, et la façon dont le rang les contrôle, est détaillée dans le Calculateur de paramètres LoRA. Considérez la valeur obtenue ici comme une estimation de planification et confirmez-la sur une véritable étape d'entraînement, car les tampons temporaires et les allocations du framework déplacent le chiffre réel.
Questions fréquentes (FAQ)
D'où viennent les 16 octets par paramètre ?
L'entraînement en précision mixte avec l'optimiseur Adam conserve plusieurs copies de chaque paramètre. Deux octets contiennent le poids 16 bits utilisé dans la passe avant et deux autres son gradient 16 bits. L'optimiseur Adam garde ensuite une copie maîtresse 32 bits du poids (quatre octets) plus deux estimations de moment 32 bits — le moment et la variance — de quatre octets chacune.
La somme donne 2 + 2 + 4 + 4 + 4 = 16 octets par paramètre, l'estimation standard des états du modèle en affinage complet.
Pourquoi LoRA demande-t-il beaucoup moins de mémoire ?
L'affinage complet porte des gradients et un état d'optimiseur pour chaque paramètre, ce qui constitue l'essentiel des 16 octets par paramètre. LoRA gèle les poids d'origine et n'entraîne que de petites matrices d'adaptation de faible rang, de sorte que les gradients et l'état de l'optimiseur n'existent que pour une infime fraction des paramètres — souvent bien moins d'un pour cent.
Les poids de base gelés occupent toujours de la mémoire, mais ils n'ont besoin ni de gradient ni d'état d'optimiseur, ce qui supprime le plus gros terme et permet d'affiner de grands modèles sur un seul GPU. La taille de ces adaptateurs est détaillée dans le calculateur de paramètres LoRA.
Comment estimer la mémoire d'activations ?
La mémoire d'activations correspond au stockage des valeurs intermédiaires conservées pendant la passe avant afin de calculer les gradients lors de la passe arrière. Contrairement aux états du modèle, elle évolue avec la taille de lot et la longueur de séquence plutôt qu'avec le nombre de paramètres ; elle est donc saisie séparément ici.
Elle peut se mesurer directement en exécutant une seule étape d'entraînement et en lisant le pic de mémoire, ou se réduire fortement avec le checkpointing d'activations, qui recalcule les activations lors de la passe arrière au lieu de les stocker. Pour un premier plan, partez de zéro pour voir le plancher des états du modèle, puis ajoutez une valeur mesurée.
Mentions légales
Il s'agit d'une estimation au premier ordre de la mémoire d'affinage complet. Elle omet les tampons temporaires, le surcoût de communication et les allocations propres au framework, et traite les activations comme une seule valeur saisie. Vérifiez sur une véritable étape d'entraînement avant de dimensionner le matériel.