Principes VRAM & Guide d'Ingénierie pour le Fine-Tuning VLA
Lors du fine-tuning de grands modèles Vision-Language-Action (VLA) comme SmolVLA ou OpenVLA sur un GPU unique, le principal goulot d'étranglement mémoire n'est pas seulement le modèle, mais les états de l'optimiseur et la mémoire d'activation qui croît avec la taille du lot.
1. Formule de Décomposition Mémoire (ZeRO Adam Précision Mixte)
La mémoire d'entraînement GPU se compose d'un terme fixe (poids + gradients + optimiseur), de la mémoire d'activation proportionnelle au lot, et de la surcharge CUDA :
M_train ≈ (P_frozen × b_w + P_train × 16) + M_act(B) + M_overhead
M_fixed = (P_frozen × b_w + P_train × 16) / 10^9 [GB]
* ZeRO 논문(arXiv:1910.02054) 기준: 혼합 정밀도 Adam은 FP16 가중치(2B) + FP16 그래디언트(2B) + FP32 마스터 가중치/모멘텀/분산(12B) = 파라미터당 16바이트를 점유합니다.
2. Dérivation de la Taille de Lot Max (B_max) par 2 Sondes Courtes
La mémoire d'activation variant avec le nombre de caméras, la résolution et la taille du chunk d'action, une formule purement théorique est imprécise. Deux sondes courtes à batch 2 et 4 permettent une extrapolation linéaire fiable :
a = (M(B2) − M(B1)) ÷ (B2 − B1) [GB / 배치]
M_0 = M(B1) − a × B1 [GB, 베이스 오버헤드 절편]
B_max = ⌊ (Safety_Margin × V − M_0) ÷ a ⌋
3. Script Python pour Compter les Paramètres Entraînables
Dans LeRobot, comptez directement les paramètres requires_grad pour calculer avec précision le terme fixe :
4. Foire Aux Questions (FAQ)
SmolVLA peut-il être entraîné sur un seul GPU de 24 Go (RTX 3090/4090) ?
Oui. Avec la configuration par défaut (encodeur visuel gelé, entraînement de l'expert d'action de ~100M seul), la mémoire fixe n'est que d'environ 2,3 Go. Cela laisse une marge suffisante sur une carte de 24 Go pour des tailles de lot de 4 à 8. Un entraînement complet élève le terme fixe à environ 7,2 Go.
Pourquoi Adam en précision mixte consomme-t-il 16 octets par paramètre ?
Selon l'article ZeRO (arXiv:1910.02054), Adam en précision mixte nécessite 2 octets pour les poids FP16, 2 octets pour les gradients, 4 octets pour la copie maître FP32, 4 octets pour le momentum et 4 octets pour la variance, soit un total de 16 octets par paramètre.
Quelle est la différence entre la VRAM d'inférence et d'entraînement ?
L'inférence ne nécessite aucun état d'optimiseur ni graphe de rétropropagation, seulement les poids du modèle (~2 Go par milliard de paramètres en FP16) et le cache KV. L'entraînement requiert 16 octets par paramètre et de volumineux tampons d'activation.
Articles liés sur Physical AI Portal (en anglais)
Sources primaires
- Rajbhandari et al., ZeRO: Memory Optimizations Toward Training Trillion Parameter Models (arXiv:1910.02054)
- Shukor et al., SmolVLA: A Vision-Language-Action Model for Affordable and Efficient Robotics (arXiv:2506.01844)
- Hugging Face — lerobot/smolvla_base Model Card
- Hugging Face LeRobot Docs — SmolVLA
Données & formules vérifiées : 2026-10-23 · Opérateur : Huni ([email protected])