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.

Fonte: https://dev.to/syedazeez/quantizing-three-models-to-fit-a-6-gb-laptop-gpu-and-the-one-that-wouldnt-4pjl

Community di apprendimento opzionale: https://t.me/GyaanSetuAi