E’ passato un po’ di tempo dall’ultimo articolo. Ultimamente ho approfondito l’inferenza AI, cioe’ il processo di esecuzione dei modelli per generare risposte, cercando di capire se servano davvero GPU costose per eseguire modelli linguistici moderni. Spoiler: la risposta potrebbe sorprenderti.

Dopo molti test su Oracle Cloud Infrastructure (OCI), confrontando processori Ampere basati su ARM con i piu’ recenti chip AMD EPYC, ho visto che la giusta combinazione di ottimizzazioni software e modelli compressi puo’ offrire performance notevoli, senza usare una GPU.

Il “mito della GPU” e la realta’ delle CPU

E’ diffusa l’idea che l’inferenza AI seria richieda GPU costose e ad alto consumo. Chiariamo: le GPU restano essenziali per inferenza e training su larga scala. Tuttavia, per applicazioni chat piccole e medie, strumenti interni, bot di supporto clienti o servizi con traffico moderato, le CPU moderne sono piu’ che sufficienti.

La chiave e’ la quantizzazione: una tecnica che comprime modelli AI grandi preservando gran parte della loro capacita’. Immaginala come la conversione di un’immagine ad alta risoluzione in un file piu’ piccolo che resta ottimo sullo schermo del telefono: scambi una minima perdita di qualita’ con un forte risparmio di risorse.

Il tradeoff qualita’ vs efficienza

Una preoccupazione comune e’: “Se comprimiamo il modello, diventa stupido?”. I dati dicono di no. Secondo una ricerca recente [arXiv:2601.14277] , ecco cosa succede comprimendo Llama 3.1 8B:

Livello di compressioneDimensione modelloQualita’ mantenutaCaso d’uso
FP16 (Originale)16.0 GB100%Ricerca, baseline
Q8 (Leggera)8.5 GB~99.9%Produzione
Q4 (Media)4.8 GB99.7%Raccomandato
Q3 (Forte)3.9 GB94.5%Vincoli di memoria

Il punto ideale e’ Q4: ottieni qualita’ quasi identica con il 70% di memoria in meno. Questo pattern vale per i principali modelli open-source, come Mistral, Gemma, Phi e Qwen.

Il vantaggio Ampere: oltre ARM standard

La vera sorpresa non e’ stata solo vedere che le CPU possono eseguire questi modelli, ma quanto velocemente possono farlo con le giuste ottimizzazioni.

Ampere Computing ha creato una versione speciale di llama.cpp ottimizzata per i propri processori, insieme a un formato modello ottimizzato che riorganizza i dati per massimizzare l’efficienza. Modelli gia’ ottimizzati sono disponibili nella pagina Hugging Face di Ampere .

Risultati di performance

Ho testato Llama 3.1 8B con quantizzazione Q8 su diverse configurazioni di processore. Per leggere questi benchmark: token al secondo (t/s) misura quanto velocemente l’AI genera testo. Per dare contesto, una persona legge circa 4-5 parole al secondo, quindi oltre ~6 t/s la risposta sembra immediata.

ProcessoreConfigurazioneFormato modelloVelocita’ elaborazioneVelocita’ rispostavs baseline
Ampere A28 OCPUs (16 vCPUs)Q8R16 (Ottimizzato)~158 t/s~9.2 t/s2x piu’ veloce
AMD EPYC “Turin”8 OCPUs (16 vCPUs)Q8_0 (Standard)~72 t/s~4.3 t/sBaseline
Ampere A28 OCPUs (16 vCPUs)Q8_0 (Standard)~32 t/s~4.3 t/s0.4x

Il punto chiave: con il formato Q8R16 ottimizzato da Ampere, lo stesso hardware offre 5x piu’ velocita’ nell’elaborazione del prompt e 2x piu’ velocita’ nella generazione dei token rispetto al formato standard.

Ancora piu’ veloce: formato Q4_K_4 ottimizzato

Per chatbot e applicazioni real-time, dove la velocita’ di risposta e’ critica, il formato Q4 ottimizzato offre la migliore esperienza utente:

ConfigurazioneVelocita’ elaborazioneVelocita’ rispostaIdeale per
Ampere A2 (8 OCPUs) + Q4_K_4~79 t/s~11.5 t/sApp interattive, chatbot
Ampere A2 (8 OCPUs) + Q8R16~158 t/s~9.2 t/sBatch processing, casi quality-critical

A 11.5 token al secondo, gli utenti percepiscono risposte quasi istantanee, paragonabili a servizi AI commerciali come ChatGPT.

Analisi dei costi

Basandosi sull’OCI Cost Estimator per VM.Standard.A2.Flex:

RisorsaPrezzo
OCPU$0.014/ora
Memoria$0.002/GB/ora

Configurazione di test: 8 OCPU / 16 vCPU + 32GB = $0.19/ora (~$140/mese)

Costo per 1M token, al 100% di utilizzo:

ConfigurazioneToken/oraCosto per 1M token
Q4 ottimizzato (11.5 t/s)41,400~$4.6
Q8 ottimizzato (9.2 t/s)33,120~$5.7

Nota: questo assume generazione continua. Il costo reale dipende dall’utilizzo; il tempo idle aumenta il costo effettivo per token.

Scegli self-hosted quando hai bisogno di:

  • Privacy dei dati: i dati non lasciano mai la tua infrastruttura
  • Modelli fine-tuned: puoi eseguire modelli addestrati su misura
  • Costi prevedibili: fattura mensile fissa, senza sorprese da picchi d’uso
  • Nessun rate limit: capacita’ completa disponibile quando serve
  • Nessuna dipendenza da vendor: puoi cambiare modello liberamente

Quando usare inferenza CPU

Non si tratta di sostituire le GPU: si tratta di usare lo strumento giusto per il lavoro giusto.

L’inferenza CPU e’ ideale per:

  • Applicazioni chat piccole e medie, fino a circa 50 utenti concorrenti
  • Strumenti interni e assistenti per dipendenti
  • Prototipi e proof-of-concept
  • Workload sensibili alla privacy che richiedono deployment on-premise
  • Ambienti in cui le GPU non sono disponibili

Le GPU restano necessarie per:

  • Produzione su larga scala, con centinaia o migliaia di utenti concorrenti
  • Modelli piu’ grandi, da 70B+ parametri
  • Training e fine-tuning
  • Requisiti di bassa latenza ad alto volume

Implementazione tecnica

Per i team pronti a implementare, ecco una partenza rapida sulle istanze Ampere di OCI:

1. Avviare un’istanza Ampere

Crea un’istanza VM.Standard.A2.Flex su OCI.

2. Eseguire il container ottimizzato

sudo docker run --rm --privileged=true \
  --name llama \
  -v "$(pwd)/models:/models:rw" \
  --entrypoint /bin/bash \
  -it amperecomputingai/llama.cpp:latest-ampereone

3. Ottimizzare i modelli

All’interno del container, converti i modelli nei formati ottimizzati Ampere. Per questo test ho usato Dolphin3.0-Llama3.1-8B-GGUF :

# Q4 format: Best for interactive applications
./llama-quantize /models/Dolphin3.0-Llama3.1-8B-F16.gguf /models/Dolphin3.0-Llama3.1-8B-Q4_K_4.gguf Q4_K_4

# Q8 format: Best for quality-critical applications
./llama-quantize /models/Dolphin3.0-Llama3.1-8B-F16.gguf /models/Dolphin3.0-Llama3.1-8B-Q8R16.gguf Q8R16

4. Validare le performance

./llama-bench -m /models/Dolphin3.0-Llama3.1-8B-Q4_K_4.gguf -p 512 -n 512

Conclusioni

Le GPU non spariranno: restano essenziali per deployment AI su larga scala. Ma per applicazioni chat piccole e medie, l’inferenza CPU ottimizzata e’ oggi un’opzione concreta. Con il software e i formati modello corretti puoi distribuire assistenti AI pronti per la produzione su istanze cloud standard.

E questo e’ solo l’inizio. OCI sta introducendo la nuova shape A4 basata sui processori Ampere di prossima generazione, promettendo performance ancora maggiori per workload AI. Restate sintonizzati per i benchmark sul nuovo hardware.