tools

Estimateur de mémoire / VRAM pour LLM

Estimez la mémoire GPU ou de l’appareil pour exécuter ou affiner un LLM, à partir des poids, du cache KV et de l’état de l’optimiseur.

[chargement de l’outil…]

Fonctionnement

L’inférence nécessite les poids, le cache KV et un peu de mémoire de travail :

poids    = paramètres × octets par paramètre
cache KV = 2 × couches × têtes KV × dim. de tête × jetons × séquences × octets par valeur
total    = (poids + cache KV) × (1 + surcoût)

Le cache KV stocke un vecteur clé et un vecteur valeur par couche et par tête KV pour chaque jeton du contexte. Les modèles à attention à requêtes groupées (GQA, la plupart des modèles récents) ont bien moins de têtes KV que de têtes d’attention. Pour Llama 3.1 8B, cela fait 128 Kio par jeton en 16 bits : un contexte de 8k coûte 1 Gio et 128k coûte 16 Gio.

Le fine-tuning complet avec Adam en précision mixte demande environ 16 octets par paramètre : poids et gradients en 16 bits (2 + 2), une copie maîtresse des poids en 32 bits (4) et deux moments Adam en 32 bits (4 + 4).

LoRA garde les poids de base figés (à n’importe quelle précision ; en 4 bits, c’est QLoRA) et entraîne de petits adaptateurs, typiquement 0.1–2 % des paramètres, à 16 octets chacun.

Ce que l’estimation ne prend pas en compte

  • Les activations d’entraînement, qui croissent avec batch × longueur de séquence et sont souvent le terme le plus important ; le gradient checkpointing les échange contre du calcul.
  • Les tampons propres à chaque framework. Le pourcentage de surcoût d’inférence tient lieu des activations, du contexte CUDA (~0.3–1 Go) et de la fragmentation ; 10–20 % est un bon point de départ.
  • Les caches KV paginés ou déchargés (vLLM, llama.cpp) peuvent consommer moins que le pire cas à contexte plein.

Préréglages

Le nombre de couches, de têtes KV et la dimension des têtes proviennent du config.json publié pour chaque modèle. Considérez les résultats comme une estimation de planification ; mesurez sur le runtime réel avant d’acheter du matériel.

Références

esc
Tous les outils
Aperçu Markdown[text]
Autonomie batterie en rapport cyclique[embedded]
Autonomie d’onduleur (UPS)[hardware]
Calcul de chute de tension[hardware]
Calcul de forme de tenseur[ai]
Calcul de résistance pour LED[embedded]
Calcul de section de câble[hardware]
Calcul de taille après quantification[ai]
Calculateur chmod[dev]
Calculateur CRC[embedded]
Calculateur d’autonomie de batterie[hardware]
Calculateur de filtre RC / LC[embedded]
Calculateur de pont diviseur de tension[embedded]
Calculateur de puissance de groupe électrogène[hardware]
Calculateur de résolution ADC / DAC[embedded]
Calculateur de sous-réseau / CIDR[dev]
Calculateur loi d’Ohm[embedded]
Calculateur timer / PWM[embedded]
Code couleur des résistances[embedded]
Convertisseur CSV ⇄ JSON[dev]
Convertisseur de chiffres romains[text]
Convertisseur de timestamp Unix[dev]
Décodeur JWT[dev]
Dimensionnement d’un parc de batteries solaires[hardware]
Encodeur / décodeur Base64[dev]
Encodeur d’entités HTML[dev]
Encodeur et analyseur d’URL[dev]
Erreur de baud rate UART[embedded]
Estimateur de mémoire / VRAM pour LLM[ai]
Formateur et validateur JSON[dev]
Formateur SQL[dev]
Formateur XML[dev]
Générateur d’expression cron[dev]
Générateur de hash[dev]
Générateur de Lorem Ipsum[text]
Générateur de mot de passe[dev]
Générateur de tableau Markdown[text]
Générateur et inspecteur d’UUID[dev]
Inspecteur de nombres et flottants[embedded]
Nombre en lettres[text]
Production de panneaux solaires[hardware]
Testeur de regex[dev]
Testeur JSONPath[dev]
Validateur et convertisseur YAML[dev]
Visualiseur de registres et champs de bits[embedded]
Commandes
Changer de thème (auto → clair → sombre)
Copier le lien de cette page
Aller à tous les outils
Read in English
↑↓ naviguer↵ ouvrir⌘↵ nouvel onglet