Cos'è la quantizzazione nell'IA?

La quantizzazione nell'IA è una tecnica di compressione dei modelli che riduce la precisione numerica di pesi e attivazioni, così le reti neurali sono più veloci e usano meno memoria, spesso con una perdita di accuratezza minima.

La quantizzazione nell'IA è una tecnica di compressione dei modelli che riduce la precisione numerica dei pesi e delle attivazioni di una rete neurale. Invece di memorizzare ogni parametro come numero in virgola mobile a 32 bit, i modelli quantizzati usano formati a 8 bit, 4 bit o anche inferiori. Poiché la memoria e il calcolo scalano con il numero di bit, questa singola modifica può ridurre un modello di 2–8 volte e accelerare l'inferenza, rendendo pratico eseguire modelli di grandi dimensioni su smartphone, laptop, browser e dispositivi embedded.

Come funziona la quantizzazione

Ogni peso è originariamente un numero reale preciso, ma la maggior parte di quella precisione è raramente necessaria. La quantizzazione mappa l'intervallo originale di valori su un insieme più piccolo di livelli rappresentabili. Nella quantizzazione post-training (PTQ), un modello completamente addestrato viene convertito una sola volta, tipicamente scalando i pesi float così da farli rientrare in un intervallo intero più ristretto. Una semplice mappatura lineare della forma quantized = round(weight / scale) + zero_point svolge la maggior parte del lavoro, e lo stesso scale e zero_point vengono usati per dequantizzare gli output di nuovo in float durante l'inferenza.

Ad esempio, un intero a 8 bit può rappresentare solo 256 valori distinti, quindi uno strato i cui pesi spaziano originariamente in [-1.0, 1.0] in float32 deve suddividerli in 256 passi equidistanti. Più quei passi sono calibrati sulla distribuzione reale dei pesi, minore è l'accuratezza persa. Per risultati migliori, il quantization-aware training (QAT) simula gli errori di arrotondamento durante il fine-tuning, così il modello si adatta al rumore, recuperando spesso quasi tutta l'accuratezza originale.

Perché è importante

La quantizzazione è ciò che permette a un modello con miliardi di parametri di stare in pochi gigabyte di RAM e di rispondere in meno di un secondo su una CPU di laptop. Riduce il consumo energetico, abbassa i costi dei server e rende possibile l'IA on-device per casi d'uso sensibili alla privacy o offline. Interagisce inoltre con l'hardware: GPU, NPU e CPU moderne dispongono di unità dedicate INT8 e INT4 per le matrici, quindi un modello quantizzato può girare diverse volte più veloce dello stesso modello in float32.

Tipologie principali

  • Quantizzazione post-training (PTQ): converte un modello già addestrato. Opzione più economica, con una piccola perdita di accuratezza.
  • Quantization-aware training (QAT): simula la quantizzazione durante l'addestramento così i pesi si adattano. Migliore accuratezza, richiede calcolo extra.
  • Quantizzazione dinamica: mantiene i pesi a bassa precisione ma calcola le attivazioni al volo. Utile per modelli NLP con lunghezze di sequenza variabili.
  • Quantizzazione weight-only: memorizza i pesi a 4 bit o meno, dequantizzando al volo. Diffusa per servire modelli linguistici di grandi dimensioni.
  • GPTQ, AWQ, GGUF: algoritmi e formati di file diffusi per la quantizzazione a 4 bit degli LLM, che applicano schemi diversi per preservare l'accuratezza.

La quantizzazione è diventata un passaggio standard nella pipeline di deployment dell'IA. Strumenti come torch.quantization di PyTorch, NVIDIA TensorRT e ONNX Runtime integrano queste tecniche negli stack di produzione, permettendo ai team di scambiare una piccola quantità di accuratezza per guadagni sostanziali in velocità, memoria e costi.

Potrebbe interessarti anche

Articoli correlati