Notizie

La nostra configurazione sperimentale: un modello da ~83,6 GB in locale su una RTX 3060 economica

Qwen3.8-Flash-Next IQ3_S su una RTX 3060 12 GB con soli 48 GB di RAM di sistema. Nessuna inferenza nel cloud. Solo hardware consumer accessibile.

Inferenza IA locale con Strata: 68 token al secondo su una RTX 3060 12 GB con 48 GB di DDR5

È incredibile!

Qwen3.8-Flash-Next IQ3_S (~83,6 GB) gira in locale su una RTX 3060 12 GB economica con soli 48 GB di RAM di sistema!

Fino a 68 token/s in generazione, ~916 token/s nell'elaborazione del prompt e un prompt da 30K token elaborato in soli 34 secondi.

Basato su Strata di coldniko. Nessuna inferenza nel cloud. Solo hardware consumer accessibile!

Di seguito: misurazioni complete, specifiche hardware, ottimizzazioni e compromessi.

Le conclusioni principali sono riassunte nell'ultima sezione.

L'hardware dietro questi risultati

Nessuna GPU da data center, nessun costoso server multi-GPU, nessuna enorme quantità di RAM.

L'intero esperimento è stato eseguito su un PC consumer/workstation piuttosto ordinario.

Il PC compatto usato per l'esperimento

CPU

Scheda madre

Memoria

GPU

Archiviazione

OS

Rete

Il dettaglio cruciale: il modello è molto più grande della VRAM e della RAM disponibili messe insieme.

È proprio questo che rende interessante l'esperimento.

Modello, motore e architettura della memoria

Modello

Qwen3.8-Flash-Next-GSQ-RCO-IQ3_S

Due shard GGUF:

Componenti aggiuntivi

Motore di inferenza

Allocazione effettiva della memoria

Impostazioni di configurazione importanti

--expert-cache auto
--prefill 4096
--spec 4
--spec-min-p 0.5
--mtp mtp/rt
--max-context 32768
--kv int8
--kv-grow
--kv-resident 32768
--vision
--vram-reserve-mib 960
--pool-workers 12
--conversation-cache-mib 1536
--prompt-cache-tail
--prompt-cache-spread
--resident-experts
--resident-budget-gib 24

Non è la classica impostazione «carica l'intero modello nella memoria della GPU».

Strata usa insieme la memoria della GPU, la RAM di sistema, la cache degli esperti e l'archiviazione NVMe.

L'ottimizzazione importante è ridurre al minimo i costosi trasferimenti di esperti mantenendo la GPU produttiva.

Risultati reali delle misurazioni

Stesso modello, stesso hardware, due configurazioni di routing.

Modalità A: routing veloce degli esperti, orientato a quelli già residenti (prior = 1.5)

ContestoPrefillGenerazione a freddoGenerazione a caldo
1K285 tok/s42 tok/s61 tok/s
4K804 tok/s50 tok/s65 tok/s
8K819 tok/s61 tok/s68 tok/s
16K916 tok/s60 tok/s68 tok/s
30K890 tok/s58 tok/s61 tok/s

Tempo al primo token a freddo:

Per confronto, la modalità B disattiva il routing orientato agli esperti residenti (prior = 0):

ContestoPrefillGenerazione a freddoGenerazione a caldo
1K282 tok/s24 tok/s27 tok/s
4K781 tok/s29 tok/s26 tok/s
8K789 tok/s30 tok/s32 tok/s
16K889 tok/s30 tok/s29 tok/s
30K878 tok/s26 tok/s27 tok/s

Generazione di 500 token:

Le misurazioni di velocità sono state verificate con i tempi di streaming lato client.

Osservazione principale:

Disattivare il routing orientato alla cache può ridurre la velocità di generazione di circa 2–2,4 volte.

Ma c'è un motivo importante per non lasciare attivo un routing aggressivo per ogni carico di lavoro. Ne parliamo nella prossima sezione.

Velocità contro qualità del modello: il compromesso nascosto

In questa versione del motore Strata, le GPU con ≤13 GB di VRAM usano automaticamente il routing orientato agli esperti residenti:

STRATA_ROUTE_PRIOR=1.5

Così vengono favoriti gli esperti già disponibili nella memoria veloce, invece di scegliere sempre quelli che il router originale preferirebbe.

Il vantaggio è enorme:

Ma questa NON è un'ottimizzazione gratuita.

Cambiare la selezione degli esperti può modificare il comportamento del modello, aumentare la divergenza dal modello originale e influire su ragionamenti lunghi o flussi di lavoro con agenti.

Secondo la valutazione dello sviluppatore su 10 compiti per agenti:

Gli stessi risultati di riferimento sono variati tra un'esecuzione e l'altra, quindi è un'indicazione di tendenza, non una misura definitiva della qualità.

Le mie sei brevi prove con agenti sono state superate in entrambe le modalità.

Tuttavia, una prova di stress separata sull'unicità ha evidenziato ripetizioni:

La conclusione è semplice:

E la sola velocità di un benchmark non va mai confusa con la qualità del modello.

La cache dei prompt cambia tutto

Uno dei risultati più impressionanti non è stata la velocità di generazione, ma il tempo di risposta alle richieste ripetute con lo stesso prompt.

Con un prompt interamente in cache:

ContestoTTFT a freddoTTFT da cache
1K3.7 s0.08 s
4K4.9 s0.08 s
8K9.7 s0.27 s
16K17.3 s0.34 s
30K33.9 s0.44 s

In queste esecuzioni il tempo al primo token è circa 45–90 volte inferiore.

La cache dei prompt fa un'enorme differenza quando si interroga più volte lo stesso documento lungo o si porta avanti una conversazione con un contesto stabile.

Il motore è configurato anche per la cache delle conversazioni:

C'è un limite: questi risultati valgono per prompt identici con una cache interamente riutilizzabile.

Non significano che un nuovo prompt qualsiasi da 30K token venga elaborato in mezzo secondo.

Ma per l'IA locale interattiva una cache calda cambia le regole del gioco.

Il mistero dell'SSD: il collo di bottiglia non è il PCIe 5.0

All'inizio l'unità NVMe sembrava sospettosamente lenta. Abbiamo analizzato il collegamento PCIe, la topologia dell'archiviazione e il comportamento reale dell'I/O.

L'unità: Lexar NM1090 PRO 2 TB, PCIe 5.0 ×4.

Collegamento PCIe verificato:

Quindi l'unità funziona alla piena velocità del collegamento PCIe 5.0.

Misurazioni di lettura diretta senza cache:

Il risultato parallelo di 10,94 GB/s è particolarmente importante: supera la larghezza di banda pratica del PCIe 4.0 ×4.

Perché il throughput a flusso singolo è molto più basso?

Perché la larghezza di banda PCIe non coincide con il throughput a livello di applicazione.

Contano la profondità della coda, la dimensione dell'I/O, il parallelismo delle richieste e la latenza.

Lo schema di caricamento degli esperti di Strata è molto più vicino al caso a bassa concorrenza che a un benchmark sintetico di throughput massimo.

Throughput di archiviazione osservato del motore:

La differenza dipende da quanti esperti devono essere caricati, non da un declassamento del PCIe.

Un altro dettaglio utile: la RTX 3060 stessa è un dispositivo PCIe 4.0. Vedere il suo collegamento scendere a Gen1 a riposo è un normale comportamento di risparmio energetico.

Prima di diagnosticare un problema PCIe, verificate sempre quale dispositivo state misurando.

Una lezione importante: non lasciate che Linux metta in cache un modello da 83,6 GB su una macchina da 48 GB

Durante il primo avvio abbiamo incontrato un problema serio.

La prima configurazione consentiva il caricamento bufferizzato dei file del modello.

Il modello pesa ~83,6 GB, mentre il sistema ha solo 48 GB di RAM fisica.

Con quel carico Linux è entrato in una forte pressione di recupero della memoria. La macchina è diventata quasi irraggiungibile, anche via SSH, ed è servito un riavvio forzato.

La soluzione è stata cambiare la strategia di caricamento e introdurre protezioni per la memoria.

Impostazioni attuali:

Dopo queste modifiche:

La lezione:

Eseguire un modello più grande della memoria fisica è possibile, ma il conteggio della memoria è assolutamente critico.

Pressione sulla page cache, dati del modello bloccati in memoria, esperti residenti e cache KV vanno considerati insieme.

Non copiate alla cieca i flag di massime prestazioni da macchine con molta più RAM.

Consumo energetico, temperature e costo dell'inferenza

Un'altra piacevole sorpresa.

Potenza misurata dei componenti:

A riposo con il modello caricato:

Durante la generazione:

Potenza totale stimata del sistema alla presa (non misurata con un wattmetro):

Temperature osservate:

Nessun thermal throttling osservato.

Con un prezzo dell'elettricità ipotizzato di 0,25 €/kWh:

Questo rende del tutto realistico gestire a casa un servizio di IA locale capace e rispettoso della privacy.

Naturalmente si tratta di costi elettrici stimati, non del costo totale di possesso. Ammortamento dell'hardware, raffreddamento e manutenzione sono esclusi.

Dove la configurazione con RTX 3060 smette di avere senso

Questa configurazione è eccellente per brevi richieste interattive, ma ha dei limiti.

I più importanti:

Per confronto, ho eseguito lo stesso modello su un sistema locale più potente con una GPU da 24 GB.

Prestazioni misurate su quel sistema:

Il sistema con RTX 3060 offre un throughput di prefill molto più basso e circa la metà del throughput di generazione in casi comparabili, con un ottavo del contesto disponibile.

Tuttavia la scheda da 12 GB è molto più accessibile e resta sorprendentemente utile.

Il mio approccio attuale:

Il punto non è fingere che una GPU economica sostituisca una macchina di fascia alta.

Il punto è quanta IA locale utile si possa già eseguire su hardware poco costoso.

Cosa si potrebbe ancora ottimizzare?

Il sistema funziona già bene, ma ci sono alcune direzioni interessanti per ulteriori esperimenti.

Inferenza concorrente

L'opzione --slots 2 potrebbe migliorare il throughput totale con due conversazioni simultanee.

Per questo carico è possibile un throughput aggregato stimato di +10–12%, ma va verificato.

Questo non significa che una singola conversazione diventi più veloce del 12%.

Batch di prefill più grandi

Attuale: --prefill 4096

Candidato: --prefill auto:16384

Finestre di prefill più ampie potrebbero migliorare l'elaborazione dei prompt lunghi, ma la VRAM disponibile è già al limite.

Con circa 11,14 GiB occupati sui 12 GiB della GPU, il comportamento della memoria va misurato con attenzione.

Più RAM di sistema

L'uso di --ple-io ram potrebbe portare più dati del modello nella memoria di sistema e ridurre le letture dall'archiviazione.

La documentazione dello sviluppatore indica:

Ma questa configurazione richiederebbe molta più RAM, circa 72+ GiB per la disposizione misurata.

Non è praticabile sull'attuale configurazione da 48 GB.

Decodifica speculativa

La decodifica speculativa MTP è già attiva.

Accettazione osservata: ~33–41 token accettati su 50–60 proposti, cioè circa il 65–70%.

Contesto più lungo

L'attuale limite di 32K è un limite operativo della configurazione, non la prova che il modello stesso supporti solo 32K.

Aumentarlo richiede di verificare di nuovo capacità di memoria, comportamento della cache KV, latenza e stabilità.

Per questo carico, ridurre le costose letture degli esperti e migliorare gli schemi di accesso può contare più che aumentare la larghezza di banda sequenziale massima dell'unità.

Come sempre: misurate il carico reale, non solo i numeri di marketing dell'hardware.

Conclusioni

Ecco cosa dimostra questo esperimento.

Un modello MoE quantizzato da ~83,6 GB può girare in locale su:

Con risultati misurati fino a:

Ma ci sono avvertenze importanti.

Mi interessa in particolare l'economia pratica dell'IA locale.

Non solo il benchmark massimo su un sistema da 10.000 €, ma le prestazioni utili ottenibili su macchine consumer e configurazioni accessibili a partire da circa 1.000 €.

Privacy, indipendenza, costi operativi sotto controllo e utilità reale contano più della sola rincorsa a numeri di benchmark impressionanti.

È ancora un esperimento in evoluzione e continuerò a condividere misurazioni, fallimenti, modifiche di configurazione e miglioramenti.

Il futuro dell'IA locale sta già diventando sorprendentemente accessibile.

Aggiunte successive

Ah, dimenticavo di dire che la GPU funziona con NVIDIA Unlock, uscito solo pochi giorni fa, la settimana scorsa.

Ho appena chiesto al mio agente IA di ripetere gli stessi benchmark senza l'unlock, così tra circa 15–20 minuti potremo confrontare i risultati.

Nei prossimi giorni, ma non oggi, installerò questa GPU in un sistema che costa meno di 1.000 dollari e vedrò come si comporta lì.

Thread originale su X · Tutte le notizie