2026-08-16 · 4 min di lettura

Qwen 3.8 27B: Quantizzazione 4-bit, Parallelismo Tensoriale vLLM e Analisi VRAM/Contesto

Qwen 3.8 27B: Guida al Deployment con vLLM e Parallelismo Tensoriale

Qwen 3.8 27B è un modello transformer denso con 27 miliardi di parametri, 64 layer e una dimensione nascosta di 5120. Utilizza Grouped-Query Attention (GQA) per ridurre la memoria della KV cache, rendendolo adatto a contesti lunghi su configurazioni multi-GPU. In questo articolo spieghiamo come caricare una versione quantizzata a 4 bit del modello usando vLLM con parallelismo tensoriale, calcolare i requisiti di VRAM per pesi e KV cache, e stimare la lunghezza massima del contesto su due RTX 3090 e due RTX 5090.

Caricare Qwen 3.8 27B su vLLM con Parallelismo Tensoriale

vLLM supporta il parallelismo tensoriale (TP) per distribuire il modello su più GPU. Con TP size 2, ogni GPU contiene metà dei pesi del modello e calcola metà delle operazioni per layer, sincronizzando tramite NCCL. Il comando seguente avvia un server compatibile OpenAI con un modello quantizzato a 4 bit (es. AWQ o GPTQ) e TP=2:

python -m vllm.entrypoints.openai.api_server --model Qwen/Qwen3.8-27B --tensor-parallel-size 2 --gpu-memory-utilization 0.90 --kv-cache-dtype fp8

Il flag --gpu-memory-utilization controlla la frazione di VRAM usata per pesi, KV cache e contesto CUDA. Scegli sempre la dimensione TP più piccola che fa stare il modello per minimizzare l'overhead di comunicazione. Se il modello sta su una singola GPU, evita TP e avvia istanze separate per maggiore throughput.

Uso della VRAM: Pesi del Modello e KV Cache

La VRAM è consumata da due componenti principali: pesi del modello e KV cache. Per un modello quantizzato a 4 bit, ogni parametro occupa circa 0.5 byte (più un piccolo overhead per scale e zeri). Il footprint dei pesi è calcolato come segue:

Calcolo VRAM dei pesi
ComponenteValore
Parametri27 miliardi
Byte per parametro (4-bit)0.5
VRAM pesi (grezzo)13.5 GB
Contesto CUDA e buffer1-2 GB
Footprint totale pesi~15 GB
← Scorri a destra per vedere altro →

La dimensione della KV cache dipende dalla lunghezza del contesto, dalla precisione e dall'architettura del modello. Per Qwen 3.8 27B con GQA, la formula è: 2 * num_layers * num_kv_heads * head_dim * seq_len * bytes_per_element. Con 64 layer, 8 KV head e head_dim 128, possiamo calcolare la KV cache per un contesto di 32k.

Dimensione KV cache per contesto 32k (batch size 1)
PrecisioneByte/elementoDimensione KV cache
BF162~6.8 GB
FP81~3.4 GB
← Scorri a destra per vedere altro →

Calcolo del Contesto Massimo su 2x RTX 3090 e 2x RTX 5090

Assumendo una VRAM totale di 48 GB per due RTX 3090 (24 GB ciascuna) e 64 GB per due RTX 5090 (32 GB ciascuna), sottraiamo il footprint dei pesi (~15 GB) e l'overhead CUDA per trovare la VRAM disponibile per la KV cache. Il contesto massimo è stimato dividendo la VRAM disponibile per la dimensione della KV cache per token.

Confronto hardware con KV cache FP8
HardwareVRAM totalePesiDisponibile per KVContesto max (FP8)
2x RTX 309048 GB15 GB33 GB~300k token
2x RTX 509064 GB15 GB49 GB~460k token
← Scorri a destra per vedere altro →

Per KV cache in BF16, il contesto massimo sarebbe circa la metà dei valori FP8, cioè ~150k token su 2x 3090 e ~230k token su 2x 5090. Questi numeri assumono batch size 1 e nessun altro overhead di memoria. In pratica, vLLM riserva memoria per CUDA graphs e scheduling, quindi il contesto reale potrebbe essere leggermente inferiore.

FP8 vs BF16 per KV Cache e Tipi di Storage FP8

BF16 offre maggiore precisione ma consuma il doppio della memoria rispetto a FP8. Per l'inferenza, FP8 è la scelta preferita perché raddoppia la capacità della KV cache con una perdita di accuratezza trascurabile. All'interno di FP8, ci sono due formati di storage: E4M3 e E5M2. E4M3 offre un migliore equilibrio tra range e precisione ed è raccomandato per KV cache e pesi. E5M2 ha meno precisione ed è tipicamente usato per i gradienti nell'addestramento. In vLLM, puoi abilitare la KV cache FP8 con --kv-cache-dtype fp8.

Formati di storage FP8
FormatoBit esponenteBit mantissaUso
E4M343KV cache e pesi (raccomandato)
E5M252Gradienti in addestramento (evitare per inferenza)
← Scorri a destra per vedere altro →

In conclusione, Qwen 3.8 27B con quantizzazione a 4 bit può essere distribuito efficientemente su sistemi dual-GPU. Usando KV cache FP8 si massimizza la lunghezza del contesto e il throughput. Su 2x RTX 3090, puoi gestire ~300k token di contesto, mentre 2x RTX 5090 offre ~460k token, rendendo entrambe le configurazioni eccellenti per l'elaborazione di documenti lunghi e il serving ad alta concorrenza.

Lavoriamo insieme

Hai bisogno di maggiori informazioni, aiuto con il tuo progetto o di sviluppare un'idea?

Che si tratti di una domanda semplice, un dubbio rapido o una chat di 5 minuti, mandami un messaggio—non costa nulla e sono sempre pronto ad aiutare. Mi piace ascoltare per capire il problema, essere creativo nelle soluzioni e puntare a idee semplici, affidabili e non complicate da realizzare rapidamente.

Contattami

Cambia Argomento

Scegli un argomento specializzato da esplorare: