Quanto contesto entra davvero in 32 GB
Il contesto è la memoria della conversazione — tutto ciò che il modello ha davanti agli occhi mentre formula la risposta. È il secondo consumatore di memoria della scheda dopo i pesi del modello, e di solito è lui a decidere se la configurazione parte o no. Abbiamo verificato dove sta il limite con 32 GB. La risposta è stata una sorpresa: quasi mai dal lato dell'hardware.
In nove profili su dieci il limite non è la memoria, ma il modello stesso
La nostra macchina espone dieci profili di lavoro pronti. Nove di loro stanno a 262.144 token di contesto — e non è il limite delle schede, ma il massimo su cui questi modelli sono stati addestrati. Sopra questo valore non si può salire, per quanta memoria si aggiunga.
È la conclusione più importante dell’intera serie di misurazioni: con 32 GB i modelli attuali della classe 26–35 miliardi di parametri ci stanno al contesto pieno per cui sono stati progettati. Più memoria non comprerebbe qui nemmeno un token in più.
L’unico profilo limitato dalla memoria è il modello da 31 miliardi con supporto a immagini e video — il modulo di visione e il file separato del suggeritore mangiano spazio, quindi il contesto si ferma a 167.936 token. È la configurazione più stretta dell’intero set: a pieno carico restano sulle schede 464 e 144 MB liberi. Il gradino successivo non si carica più.
Quanto costa il contesto
Il conto è lineare e facile da ricordare: circa 200–320 MB su ciascuna scheda ogni 8192 token di contesto. La variabilità dipende dalla costruzione del modello — col supporto alle immagini si aggiunge la memoria del suggeritore. E perché la memoria si conta separatamente su ciascuna delle due schede lo spieghiamo nell’articolo sulla divisione del modello tra le schede.
La forbice tra i modelli può essere ampia. Un modello con un’attenzione di costruzione ibrida consuma circa 35 kB per token, un modello classico — circa 51 kB. Per questo il secondo si ferma a 208 mila token invece di 262 mila, anche se di suo sarebbe pronto a proseguire. La costruzione del modello decide quindi la capienza del contesto quanto la quantità di memoria.
Come abbiamo misurato — e perché il metodo ovvio mente
Tre cose si sono rivelate decisive, e ognuna è una trappola in cui è facile cadere.
La memoria libera va letta dopo il lavoro, non dopo il caricamento. La libreria di calcolo riserva il suo buffer di lavoro pigramente — solo alla prima vera moltiplicazione di matrici. Il modello può quindi «caricarsi» con una riserva apparente e capovolgersi alla prima domanda.
La memoria libera va letta direttamente, non calcolata. Il driver della scheda tiene per sé circa 423 MB che non si possono allocare. La popolare sottrazione «totale meno occupato» gonfia il risultato esattamente di questo valore — mostra 528 MB liberi dove in realtà ne restano 106.
La riserva si è rivelata statica. Abbiamo bombardato le configurazioni con richieste lunghe — da mille a 227 mila token, con ricaricamenti del modello e più elaborazioni del contesto pieno. Un campione ogni mezzo secondo, 14.771 misurazioni. Oscillazione della memoria libera: al massimo 2 MB, e su due configurazioni esattamente zero. La memoria si riserva in anticipo e non si muove.
Per questo la nostra soglia di ammissione è un modesto 100 MB liberi su ciascuna scheda. Se l’occupazione saltasse durante il lavoro, servirebbe una riserva da contare in gigabyte. Non salta.
La sorpresa: un contesto più piccolo può lasciare meno memoria
Il risultato più controintuitivo dell’intera serie. Su uno dei modelli abbiamo misurato la memoria libera con tre impostazioni di contesto:
| Contesto | Liberi sulla scheda 1 | Liberi sulla scheda 2 |
|---|---|---|
| 262.144 | 1372 MB | 416 MB |
| 212.992 | 536 MB | 60 MB |
| 180.224 | 1026 MB | 870 MB |
Scendere di contesto ha peggiorato la situazione. La spiegazione: con certi valori i buffer di calcolo non ci stanno e il server ripiega su una modalità di lavoro più semplice, che fa risparmiare più di quanto costi la maggiore memoria di conversazione. Ognuno di questi risultati si riproduce al megabyte nei caricamenti successivi.
Conclusione pratica: il contesto si sceglie misurando su una griglia di valori, non estrapolando. La regola «meno vuol dire più sicuro» qui non vale.
Due cose che hanno restituito memoria gratis
Uno slot invece di quattro. Il server per default si prepara a quattro utenti simultanei e riserva i buffer di conseguenza — anche quando l’utente è uno solo. Limitarsi a un solo slot ha restituito 240–770 MB per scheda, senza cambiare contesto e senza cambiare velocità. Il prezzo è la coda: la seconda richiesta aspetta la prima. In casa è uno scambio onesto.
Una scrittura più economica della memoria di conversazione. Il contesto si può tenere in precisione piena oppure compressa. La compressione costa circa il 12% di precisione di quel buffer e dà nettamente più spazio — la usiamo ovunque stiamo lottando per il contesto. La compressione più forte l’abbiamo scartata: rovina la qualità delle risposte in modo percepibile.
Quanto sono 262 mila token
È difficile immaginarselo, quindi due punti di riferimento. Un contesto così contiene qualche centinaio di pagine di testo in una volta — l’intera documentazione di un progetto medio o un set completo di contratti da confrontare. Nel test di programmazione, in cui il modello scriveva da solo progetti multi-modulo, il picco di occupazione del contesto era in media di 107–175 mila token. Cioè: anche con un lavoro intenso restava riserva.
Per confronto — l’unico modello polacco che abbiamo testato si ferma a 32.768 token. Non per colpa delle schede, ma perché è stato progettato così.
Misurazioni su 2 × RTX 5070 Ti 16 GB. Memoria libera letta a pieno carico, soglia di ammissione 100 MB per scheda.