Quantizzazione di modelli su una GPU da 6 GB per laptop
Ho provato a far girare dei Large Language Model su una GPU RTX 3050 per laptop. Questa scheda ha solo 6 GB di VRAM. Volevo vedere quali modelli funzionano con la quantizzazione a 4 bit e quali invece falliscono.
Ho utilizzato un unico script per quantizzare tre modelli:
- Phi-3.5-mini (3.8B)
- Llama-3.2-3B
- Qwen2.5-3B (VibeThinker)
I Risultati: Phi e Llama hanno funzionato bene. Phi è passato da 7,6 GB a 2,2 GB in 34 minuti. Llama e VibeThinker hanno seguito un percorso simile. Questi modelli si adattano facilmente.
Poi ho provato Qwen2.5-7B. È fallito. Il processo è andato in crash al secondo layer con un errore Out of Memory.
Perché è fallito: La quantizzazione GPTQ costruisce una matrice Hessiana per ogni layer. Per un modello da 7B, questi calcoli richiedono più memoria di quanta una scheda da 6 GB possa fornire. Ho provato diverse soluzioni:
- Dataset di calibrazione più piccoli: Nessuna variazione.
- Offloading delle matrici Hessiane alla CPU: È durato più a lungo, ma è andato comunque in crash.
- Utilizzo di AWQ invece di GPTQ: È andato in crash nello stesso punto.
- Utilizzo della sola CPU: Funziona, ma è troppo lento. Richiede circa 16 minuti per layer.
Considerazioni chiave per GPU piccole:
- Aspettati una riduzione di 3x della dimensione del modello.
- Punta a un limite di 3-4 miliardi di parametri per la quantizzazione su GPU.
- Monitora il tuo budget KV. Anche se le dimensioni dei file sono simili, la memoria utilizzata durante l'inferenza varia.
- La quantizzazione consuma più memoria rispetto al serving. Monitora la RAM di sistema durante il processo.
Confronto modelli (W4A16): • Phi-3.5-mini: 2.27 GB | 68.7 tok/s • Llama-3.2-3B: 2.26 GB | 66.0 tok/s • VibeThinker-3B: 2.07 GB | 43.9 tok/s
Tutti e tre i modelli hanno gestito correttamente la matematica di base e la logica dei numeri primi dopo la quantizzazione.
Community di apprendimento opzionale: https://t.me/GyaanSetuAi