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.