Quantizzazione e decodifica speculativa
Per i modelli self-hosted: quantizzazione int8/int4 per ridurre la memoria e decodifica speculativa per aumentare il throughput
Quantizzazione e decodifica speculativa è una lezione AI Agents gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento AI Agents, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso AI Agents include 4 lezioni in totale.
Parti di questa lezione non sono ancora state tradotte e vengono mostrate in inglese.
Ottimizzazioni per modelli self-hosted
Per i modelli open self-hosted, ci sono due grandi vantaggi in termini di velocità e costi:
- Quantizzazione — pesi più piccoli, meno RAM/VRAM e inferenza più veloce
- Speculative decoding — generazione di più token per passaggio
Nozioni di base sulla quantizzazione
I modelli sono normalmente memorizzati in FP16 (16 bit per peso). La quantizzazione riduce il numero di bit:
- FP16 — baseline
- INT8 — dimensioni dimezzate, perdita di qualità quasi trascurabile
- INT4 / Q4_K_M — dimensioni ridotte di 4 volte, lieve perdita di qualità
- INT2 / 1.58-bit — dimensioni ridotte di oltre 8 volte, perdita di qualità effettiva
GGUF e livelli di quantizzazione
GGUF è il formato usato da llama.cpp. Livelli comuni:
- Q4_K_M — miglior equilibrio tra qualità e dimensioni
- Q5_K_M — leggermente più grande e leggermente migliore
- Q8_0 — qualità quasi pari a FP16, compressione 2x
Quantise With llama.cpp
./llama-quantize models/llama-3-8b-f16.gguf models/llama-3-8b-q4_k_m.gguf Q4_K_M
# Or download pre-quantised from TheBloke / unsloth on HuggingFaceImpatto sull'hardware
Un modello 8B in FP16 richiede circa 16 GB di VRAM. Lo stesso modello in Q4 rientra in circa 5 GB di VRAM e può essere eseguito su una GPU molto più economica.
Speculative decoding
Il meccanismo è il seguente: usate un piccolo modello «draft» per proporre i token, poi verificateli con il modello grande «target» in un'unica passata forward. Spesso si ottiene un aumento della velocità di 2-3 volte.
from transformers import AutoModelForCausalLM
target = AutoModelForCausalLM.from_pretrained('meta-llama/Llama-3.1-70B')
draft = AutoModelForCausalLM.from_pretrained('meta-llama/Llama-3.1-8B')
outputs = target.generate(
input_ids,
assistant_model=draft, # speculative decoding
max_new_tokens=200
)Perché funziona
Il modello draft propone K token. Il modello target li elabora tutti IN PARALLELO (un'unica passata forward). Ogni token accettato è «gratuito». In caso di rifiuto si torna indietro; di solito ne accettate la maggior parte.
Altri acceleratori del decoding
- Lookahead decoding — più proposte per passaggio
- Medusa — più teste di decoding addestrate congiuntamente
- EAGLE — speculative decoding veloce basato su alberi
Strumenti che implementano queste tecniche
- vLLM — supporta sia la quantizzazione (AWQ, GPTQ, FP8) sia lo speculative decoding
- llama.cpp — quantizzazione e speculative decoding tramite --draft-model
- TensorRT-LLM — server di produzione di NVIDIA
- SGLang — server veloce, adatto all'elaborazione in batch, con batching continuo
Batching continuo
La funzionalità principale di vLLM: elaborare richieste di lunghezza diversa nello stesso passaggio forward. Un enorme aumento del throughput per i server in produzione.
Scegliere il livello di quantizzazione
Testate ogni livello candidato sulla VOSTRA valutazione. Q4_K_M è il punto di partenza predefinito; scegliete un livello superiore se la qualità scende sotto la soglia.
Latenza per token e throughput
Ottimizzazioni diverse migliorano metriche diverse:
- Latenza per una singola richiesta: speculative decoding
- Throughput per più utenti: batching continuo
- Costo della memoria: quantizzazione
Effetto della quantizzazione
Qual è l'effetto principale della quantizzazione int4?
Riepilogo
Quantizzate a Q4 per ridurre memoria e aumentare la velocità. Usate lo speculative decoding per la latenza. Usate il batching continuo per il throughput. vLLM e llama.cpp implementano tutte e tre le tecniche.
Domande Frequenti
La lezione «Quantizzazione e decodifica speculativa» è gratuita?
Sì — il testo completo di «Quantizzazione e decodifica speculativa» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso AI Agents, passa a CoddyKit PRO. Il corso AI Agents include 4 lezioni in totale.
Cosa imparerò in «Quantizzazione e decodifica speculativa»?
Per i modelli self-hosted: quantizzazione int8/int4 per ridurre la memoria e decodifica speculativa per aumentare il throughput Eserciti AI Agents con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare AI Agents?
Non è richiesta alcuna esperienza precedente. AI Agents su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.
Quanto tempo richiede la lezione «Quantizzazione e decodifica speculativa»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione AI Agents?
Sì. Ogni lezione AI Agents include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Budget di token per passaggio
- Instradamento dei modelli (da economico a costoso)
- Caching di prompt e risultati (Anthropic, Vertex)
- Quantizzazione e decodifica speculativa