Arrakis / Guides / Mémoire GPU
De combien de mémoire GPU votre modèle a-t-il besoin ?
Comptez les octets par paramètre. Pour servir un modèle, il faut 2 octets par paramètre en 16 bits, 1 en 8 bits et un demi-octet en 4 bits, plus environ 20 % pour le cache KV et les activations. Le fine-tuning demande bien davantage : environ 16 octets par paramètre avec Adam, sauf si LoRA ou QLoRA gèle le modèle de base.
Servir un modèle
La mémoire nécessaire pour faire tourner un modèle en inférence, avec la plus petite configuration GPU qui le contient et le prix le plus bas sur Arrakis en ce moment.
| Taille du modèle | 16 bits | 8 bits | 4 bits |
|---|---|---|---|
| 8BLlama 3.1 8B | 19 Go : un RTX 4090 ou RTX 3090, la RTX 3090 à partir de 0,19 $ par heure de GPU | 9,6 Go : un RTX 4090 ou RTX 3090, la RTX 3090 à partir de 0,19 $ par heure de GPU | 4,8 Go : un RTX 4090 ou RTX 3090, la RTX 3090 à partir de 0,19 $ par heure de GPU |
| 14BQwen2.5 14B | 34 Go : un L40S, RTX 6000 Ada ou RTX A6000, la L40S à partir de 0,44 $ par heure de GPU | 17 Go : un RTX 4090 ou RTX 3090, la RTX 3090 à partir de 0,19 $ par heure de GPU | 8,4 Go : un RTX 4090 ou RTX 3090, la RTX 3090 à partir de 0,19 $ par heure de GPU |
| 32BQwen2.5 32B | 77 Go : un H100 ou A100, la H100 à partir de 1,65 $ par heure de GPU | 38 Go : un L40S, RTX 6000 Ada ou RTX A6000, la L40S à partir de 0,44 $ par heure de GPU | 19 Go : un RTX 4090 ou RTX 3090, la RTX 3090 à partir de 0,19 $ par heure de GPU |
| 70BLlama 3.3 70B | 168 Go : un B200, à partir de 6,79 $ par heure de GPU | 84 Go : un RTX PRO 6000, à partir de 1,90 $ par heure de GPU | 42 Go : un L40S, RTX 6000 Ada ou RTX A6000, la L40S à partir de 0,44 $ par heure de GPU |
| 405BLlama 3.1 405B | 972 Go : 4 × B300, à partir de 18,40 $ de l’heure pour les 4 | 486 Go : 2 × B300, à partir de 9,20 $ de l’heure pour les 2 | 243 Go : un B300, à partir de 4,60 $ par heure de GPU |
Fine-tuner un modèle
QLoRA entraîne des adaptateurs sur un modèle figé en 4 bits, LoRA sur un modèle en 16 bits, et le fine-tuning complet met à jour tous les poids. Les chiffres s’entendent hors activations, qui augmentent avec la taille des lots et la longueur des séquences.
| Taille du modèle | QLoRA | LoRA | Fine-tuning complet |
|---|---|---|---|
| 8BLlama 3.1 8B | 5,6 Go : un RTX 4090 ou RTX 3090, la RTX 3090 à partir de 0,19 $ par heure de GPU | 19 Go : un RTX 4090 ou RTX 3090, la RTX 3090 à partir de 0,19 $ par heure de GPU | 128 Go : un H200, à partir de 4,03 $ par heure de GPU |
| 14BQwen2.5 14B | 9,8 Go : un RTX 4090 ou RTX 3090, la RTX 3090 à partir de 0,19 $ par heure de GPU | 34 Go : un L40S, RTX 6000 Ada ou RTX A6000, la L40S à partir de 0,44 $ par heure de GPU | 224 Go : un B300, à partir de 4,60 $ par heure de GPU |
| 32BQwen2.5 32B | 22 Go : un RTX 4090 ou RTX 3090, la RTX 3090 à partir de 0,19 $ par heure de GPU | 77 Go : un H100 ou A100, la H100 à partir de 1,65 $ par heure de GPU | 512 Go : 2 × B300, à partir de 9,20 $ de l’heure pour les 2 |
| 70BLlama 3.3 70B | 49 Go : un H100 ou A100, la H100 à partir de 1,65 $ par heure de GPU | 168 Go : un B200, à partir de 6,79 $ par heure de GPU | 1 120 Go : 8 × H200, à partir de 32,24 $ de l’heure pour les 8 |
| 405BLlama 3.1 405B | 284 Go : 4 × H100, à partir de 6,60 $ de l’heure pour les 4 | 972 Go : 4 × B300, à partir de 18,40 $ de l’heure pour les 4 | 6 480 Go : plus d’une machine à 8 GPU |
Les règles derrière les chiffres
Des ordres de grandeur, assez précis pour choisir un GPU. Mesurez avant un long entraînement.
- Poids
- Nombre de paramètres multiplié par les octets par paramètre : 2 en 16 bits (BF16 ou FP16), 1 en 8 bits (FP8 ou INT8), 0,5 en 4 bits.
- Marge pour servir le modèle
- Environ 20 % de plus pour le cache KV et les activations, avec un contexte et des lots modérés. Les contextes longs et les gros lots demandent davantage.
- Fine-tuning complet
- Environ 16 octets par paramètre avec Adam en précision mixte : poids, gradients, états de l’optimiseur et une copie maîtresse en 32 bits (ZeRO, arXiv:1910.02054). Répartissez cette mémoire sur plusieurs GPU avec FSDP ou ZeRO.
- LoRA
- Le modèle de base en 16 bits reste figé ; seuls de petits adaptateurs sont entraînés. Prévoyez la taille des poids plus environ 20 %.
- QLoRA
- Le modèle de base figé est stocké en 4 bits. Ses auteurs ont fine-tuné un modèle 65B sur un seul GPU de 48 Go (QLoRA, arXiv:2305.14314), soit environ 0,7 octet par paramètre.
- Mémoire GPU
- D’après la page NVIDIA de chaque GPU, accessible depuis sa fiche sur ce site.
Questions
Les prix en temps réel de tous les GPU sont sur la page Prix des GPU.