Nel codice di llama.cpp è comparsa una proposta che tocca uno dei dolori più concreti dell'inference locale: far girare modelli Mixture of Experts quando la VRAM non basta. La pull request #30966, firmata da am17an, introduce llama_moe_cache, una cache dedicata agli esperti MoE che vengono eseguiti sulla CPU, insieme a uno script di tuning. Il testo della PR parla di 'significant speedup' per l'offloading MoE, con un riferimento esplicito a un meccanismo di tuning già sperimentato in Strata.

Conviene capire perché la notizia è più di una semplice ottimizzazione. Nei modelli MoE, ogni token attiva solo un sottoinsieme di esperti. Su una GPU con VRAM limitata, non tutti gli esperti possono restare residenti in memoria video; quelli mancanti finiscono sulla CPU, e il trasferimento continuo tra i due lati diventa un collo di bottiglia. Una cache pensata per gli esperti eseguiti su CPU riduce il costo di questi spostamenti, perché le attivazioni ricorrenti non devono essere ricalcolate o ricaricate da zero. Lo script di tuning aggiunge un secondo livello: permette di adattare il comportamento alle risorse disponibili, invece di affidarsi a valori fissi.

A livello strutturale, questo tipo di contributo segnala che l'offloading MoE non è più un caso limite. Fino a poco tempo fa, l'attenzione era concentrata su modelli densi e quantization aggressiva per far stare i pesi in VRAM. I modelli MoE hanno cambiato il problema: occupano più spazio complessivo ma attivano solo una frazione dei parametri per token. Il risultato è che la VRAM insufficiente non blocca più l'esecuzione, ma la rallenta in modo irregolare, con picchi legati alla selezione degli esperti. Una cache nel runtime è un intervento mirato su quella irregolarità.

Chi beneficia di più? Gli utenti con schede consumer o workstation con poca VRAM, ma anche chi valuta deployment self-hosted di modelli MoE su hardware non specializzato. Il vantaggio non è solo la velocità: è la prevedibilità. Se l'offloading diventa meno punitivo, cresce lo spazio per tenere in casa i modelli invece di spostarli su API cloud, con tutto ciò che ne consegue in termini di controllo dei dati e costi ricorrenti.

C'è anche un effetto di propagazione. llama.cpp è un runtime di riferimento per molti strumenti di inference locale. Quando una modifica del genere entra nel codice principale, non resta confinata al progetto: può essere assorbita da interfacce, binding e distribuzioni che usano la libreria. In questo senso, una sola pull request può alzare il livello di ciò che è accettabile su hardware modesto.

Resta un punto da non trascurare: la fonte non riporta benchmark. Parlare di 'significant speedup' senza numeri impone cautela. Ma la direzione è chiara: spostare la complessità degli esperti lontano dal trasferimento continuo tra CPU e GPU, rendendo l'offloading un percorso di prima classe e non una modalità di emergenza. Per chi valuta deployment on-premise, AI-RADAR raccoglie su /llm-onpremise framework analitici per soppesare questi trade-off.