đŒïž MultimodalitĂ© : Impact MatĂ©riel (VRAM & KV Cache)
Pourquoi la multimodalité change le calcul matériel
Un LLM pur traite du texte : chaque token est un vecteur numĂ©rique issu dâun vocabulaire. La complexitĂ© mĂ©moire est prĂ©visible et bien documentĂ©e.
Un VLM (Vision Language Model) ajoute un composant amont : un encodeur visuel qui transforme les pixels dâune image en une sĂ©quence de vecteurs que le LLM peut âlireâ. Ce chemin supplĂ©mentaire a des consĂ©quences directes sur la VRAM, le KV Cache et la latence.
Lâencodeur visuel : anatomie et empreinte VRAM
Comment ça fonctionne
flowchart TD
A["đŒïž Image (pixels)"] --> B["Encodeur visuel\n(ex. CLIP-ViT-L/14, SigLIP)\ndĂ©coupe en patches 14Ă14 px\nencode chaque patch en vecteur"]
B --> C["Séquence de visual tokens\n(256 à 1 024 tokens)"]
C --> D["Projecteur (MLP de connexion)"]
D --> E["LLM backbone\n(Qwen, Mistral, LLaMAâŠ)"]
Lâencodeur et le projecteur sont des poids supplĂ©mentaires chargĂ©s en plus du LLM backbone.
Empreinte VRAM approximative par famille
| ModĂšle VLM | LLM backbone | Encodeur visuel | VRAM totale (FP16) | Visual tokens / image |
|---|---|---|---|---|
| LLaVA 1.6 (Mistral 7B) | 7B | CLIP-ViT-L/14 (~0,3 Go) | ~15 Go | 256â576 |
| Qwen2-VL 7B | 7B | SigLIP-SO400M (~0,4 Go) | ~16 Go | 256â1 024 (dynamique) |
| Qwen2-VL 72B | 72B | SigLIP-SO400M (~0,4 Go) | ~144 Go | 256â1 024 (dynamique) |
| Pixtral 12B (Mistral) | 12B | Vision encoder 400M (~0,8 Go) | ~26 Go | jusquâĂ 1 024 |
| Gemma 3 27B Vision | 27B | SigLIP (~0,4 Go) | ~54 Go | 256â729 |
Sources : LLaVA 1 · Qwen2-VL 2
Lâimpact sur le KV Cache
Le KV Cache stocke les Ă©tats intermĂ©diaires de chaque token du contexte. Les visual tokens sây comportent exactement comme des tokens texte : ils occupent la mĂȘme quantitĂ© dâespace par token.
Formule de référence
Pour un modÚle à précision FP16 :
KV Cache par token = 2 (K+V) Ă nombre_de_couches Ă dimension_tĂȘte Ă 2 octetsPour un LLM 7B typique (32 couches, 128 dim de tĂȘte) :
â 2 Ă 32 Ă 128 Ă 2 = 16 384 octets â 16 Ko par tokenComparaison texte vs image
| Input | Tokens typiques | KV Cache estimé (7B) |
|---|---|---|
| Document texte 500 mots | ~650 tokens | ~10 Mo |
| Image 512Ă512 (LLaVA 1.6) | ~256 tokens | ~4 Mo |
| Image 1024Ă1024 (LLaVA 1.6 HD) | ~576 tokens | ~9 Mo |
| Image 1024Ă1024 (Qwen2-VL dynamique) | ~1 024 tokens | ~16 Mo |
| PDF 10 pages converti en images | ~5 000â10 000 tokens | ~80â160 Mo |
Source : vLLM metrics 3
Audio : Whisper comme pré-traitement
La transcription audio (réunions, dictées, appels clients) est souvent mentionnée avec la vision, mais son architecture est fondamentalement différente.
Whisper nâest pas un VLM. Câest un modĂšle sequence-to-sequence indĂ©pendant :
flowchart TD
A["đ” Audio (WAV/MP3)"] --> B["Whisper\n(modĂšle distinct â 39 Mo Ă 1,5 Go)\ntranscrit en texte"]
B --> C["Texte (tokens normaux)"]
C --> D["LLM backbone\n(si analyse du transcript souhaitée)"]
Empreinte VRAM Whisper
| ModĂšle Whisper | ParamĂštres | VRAM |
|---|---|---|
| tiny | 39 M | ~80 Mo |
| base | 74 M | ~145 Mo |
| small | 244 M | ~480 Mo |
| medium | 769 M | ~1,5 Go |
| large-v3 | 1,5 B | ~3 Go |
Source : OpenAI Whisper 4
ConsĂ©quence architecturale : Whisper peut coexister avec un VLM sur la mĂȘme machine sans compĂ©tition VRAM significative, Ă condition de ne pas les exĂ©cuter simultanĂ©ment sur GPU. En pipeline asynchrone (transcription â rĂ©sumĂ© LLM), une sĂ©quence est parfaitement viable sur un Blueprint B.
Carte des blueprints
| Blueprint | VLM faisable ? | ModÚle recommandé | Contrainte principale |
|---|---|---|---|
| A â Labo Dev (RTX 4090, 24 Go) | â Oui | LLaVA 1.6 7B, Qwen2-VL 7B | Images HD limitĂ©es en batch simultanĂ© |
| A â Labo Dev (mĂ©moire unifiĂ©e 64 Go) | â Oui | Qwen2-VL 7B ou Pixtral 12B | Bande passante mĂ©moire unifĂ©e = facteur limitant |
| B â Appliance PME (128 Go mĂ©moire unifiĂ©e) | â Oui | Qwen2-VL 7B ou 72B Q4 | 70B en vision = lent, mais fonctionnel |
| C â Cluster Bureau (4Ă 64 Go unifiĂ©s) | â Oui | Pixtral 12B, Qwen2-VL 72B distribuĂ© | Exo requis pour distribuer un 72B vision |
| D â Datacenter (8Ă GPU 80 Go) | â Oui | Qwen2-VL 72B, Pixtral Large | Cas dâusage production haute concurrence |
Points de vigilance en production
-
Context length surprises : une requĂȘte âsimpleâ (image + question courte) peut consommer 1 500â2 000 tokens, lĂ oĂč la question texte Ă©quivalente nâen utilisait que 50. Adapter
max_model_lendans vLLM en conséquence. -
Prefill asymĂ©trique : le prefill dâune image (passage de tous les visual tokens dans le transformeur) est computationnellement plus dense quâun prefill texte Ă©quivalent en tokens. La latence du premier token (TTFT) est plus Ă©levĂ©e.
-
RĂ©solution et dĂ©coupe : les VLMs modernes (LLaVA 1.6 HD, Qwen2-VL) adaptent dynamiquement le nombre de visual tokens Ă la rĂ©solution de lâimage. Envoyer des images non redimensionnĂ©es peut multiplier le coĂ»t par 4â8Ă.
-
Quantification partielle : les encodeurs visuels supportent mal la quantification agressive (Q4 ou Q2). Si vous quantifiez le backbone pour Ă©conomiser de la VRAM, gardez lâencodeur visuel en FP16 ou Q8.
Voir aussi
- KV Cache â mĂ©canique dĂ©taillĂ©e du cache dâattention
- VRAM â empreinte mĂ©moire des modĂšles
- đïž Quantification 4-bit & 8-bit â rĂ©duire lâempreinte VRAM
- đ§ KV Cache et fenĂȘtre de contexte
- đŸ MĂ©moire unifiĂ©e vs RAM vs VRAM
- đą ScĂ©nario B â Appliance PME
Sources et Références
Footnotes
-
Liu et al., Visual Instruction Tuning (LLaVA) (architecture : encodeur CLIP-ViT-L/14 + projecteur MLP + LLM backbone ; le poids de lâencodeur VRAM est calculĂ© Ă partir de la taille des paramĂštres publiĂ©s). https://arxiv.org/abs/2304.08485 â©
-
Alibaba Cloud, Qwen2-VL model documentation (tokens visuels dynamiques selon rĂ©solution, architecture SigLIP). https://huggingface.co/Qwen/Qwen2-VL-7B-Instruct â©
-
vLLM Project, Production Metrics â KV cache usage (comportement du KV Cache en batch continu). https://docs.vllm.ai/en/stable/serving/metrics.html â©
-
OpenAI, Whisper model card (tailles tiny Ă large-v3, paramĂštres et empreinte mĂ©moire indicative). https://github.com/openai/whisper â©