top of page

Lean-QwenFlash: l'offloading su SSD dichiara 20 tok/s con 8 GB di RAM

10 minuti fa
Tempo di lettura: 13 min

Secondo quanto riportato, l'offloading su SSD di Lean-QwenFlash esegue Qwen3.8-Flash-Next a 20 token al secondo, limitando un test desktop a 16 GB di VRAM e 8 GB di RAM. La VRAM è la memoria grafica; la RAM di sistema contiene i dati per il resto del computer. L'affermazione mette in discussione l'inferenza locale ad alto consumo di memoria, ma resta un risultato riportato dallo sviluppatore.

Lo sviluppatore MaxDev0 ha presentato il progetto su Reddit il 25 ottobre, descrivendolo come un adattamento del lavoro di offloading GLM di sybil-solutions. L'offloading sposta i dati del modello tra archiviazione e memoria durante l'esecuzione. Il confronto prende di mira approcci come Strata, che l'autore descrive come sistemi che mantengono i pesi degli esperti nella RAM di sistema ed elaborano alcune mancanze sulla CPU.

La questione interessante è se l'inferenza supportata dallo storage possa rendere questo modello pratico su computer con memoria limitata. Per rispondere occorre separare il limite di memoria desktop dai risultati su laptop, la velocità di generazione dal tempo di attesa e la capacità del modello dalla qualità delle risposte. Le evidenze pubbliche giustificano un esame più approfondito, senza però stabilire una raccomandazione hardware universale.

Cosa dichiara realmente l'offloading su SSD di Lean-QwenFlash

Il titolo descrive un esperimento desktop con limiti imposti, mentre le misurazioni sul laptop rappresentano una diversa configurazione di memoria.

Secondo i benchmark di inferenza locale dello sviluppatore, il test desktop ha utilizzato una RTX 4090. L'autore afferma che quell'esecuzione ha allocato solo 8 GB di RAM di sistema e ha limitato la memoria grafica a 16 GB. Questa formulazione è importante: un test vincolato su questa GPU non dimostra prestazioni identiche su altre schede grafiche.

Con un contesto di 8.000 token, il post riporta velocità di generazione di 28–33 token al secondo per la prosa e 19–22 per il codice. I token sono le unità di testo che un modello elabora e genera. La differenza tra questi carichi di lavoro mostra già perché una singola velocità in evidenza non possa descrivere ogni interazione.

Con un contesto di 100.000 token, l'autore riporta 20,8 token al secondo durante la generazione. A circa 262.000 token, la velocità riportata è 20,0. Il contesto indica il materiale di input e conversazione disponibile al modello. Questi risultati descrivono la generazione dell'output dopo l'elaborazione di quel materiale, anziché l'intera durata della richiesta.

Il post riporta separatamente una configurazione RTX 3080 Laptop con 16 GB di VRAM e 32 GB di RAM di sistema. Con un contesto di 100.000 token, dichiara circa 18–21 token al secondo. È un'indicazione incoraggiante da un'altra macchina, ma non riproduce la condizione desktop con 8 GB di RAM.

La distinzione cambia il modo in cui i lettori dovrebbero interpretare l'accessibilità. Chi dispone di poca memoria di sistema necessita di prove sulla configurazione desktop vincolata. Chi valuta un laptop da gaming esistente necessita di prove sul consumo effettivo di memoria di quel laptop, sul comportamento dello storage e sul funzionamento sostenuto. Riunire entrambi in un'unica promessa di prestazioni con poca memoria oscurerebbe le differenze rilevanti.

L'autore identifica il checkpoint testato come 3.05bpw_h5_ng5, usando una cache KV Q4. Un checkpoint è un insieme salvato di pesi del modello. La quantizzazione conserva tali pesi con precisione numerica ridotta, mentre una cache KV mantiene i dati di attenzione dei token elaborati. Entrambe le impostazioni vanno considerate insieme all'affermazione sulla velocità.

Una riproduzione indipendente dovrebbe preservare queste scelte. Modificare il formato dei pesi, la cache di attenzione, il prompt o il compito di output modifica l'esperimento. Un'esecuzione riuscita con impostazioni diverse può comunque essere utile, ma risponde a una domanda differente sul comportamento del progetto.

Esiste inoltre una differenza tra implementazione pubblica e validazione indipendente. La disponibilità del codice sorgente consente ad altri sviluppatori di ispezionare e tentare il metodo. Non dimostra che un altro tester abbia ottenuto gli stessi risultati, né che la configurazione rimanga stabile nei normali carichi di lavoro.

Il rapporto stabilisce quindi uno specifico sviluppo che merita di essere indagato: un autore afferma che un runtime supportato dallo storage possa mantenere una generazione interattiva con un rigido budget di memoria desktop. Non dimostra che ogni computer con le capacità indicate nel titolo offrirà la stessa esperienza.

La pressione ricade sui requisiti di memoria

La questione competitiva è se i runtime locali debbano mantenere così tanti dati del modello nella memoria di sistema per restare utilizzabili.

Il pubblico immediato è costituito dagli sviluppatori che possiedono già hardware grafico capace, ma non dispongono di molta RAM di sistema libera. Per loro, il caricamento del modello può diventare il vincolo decisivo prima ancora che la qualità delle risposte entri nella discussione. Un runtime che riducesse i requisiti di memoria residente cambierebbe gli esperimenti che possono tentare.

Questa pressione ricade innanzitutto sulla progettazione del software e sulla documentazione. Se l'approccio fosse riproducibile, i manutentori dei runtime avrebbero ragioni più solide per esporre opzioni flessibili per storage e memoria. Anche le indicazioni hardware dovrebbero distinguere una configurazione comoda da un minimo rigoroso necessario per l'esecuzione.

Questa è un'inferenza sulle implicazioni dell'affermazione, non una prova che i manutentori concorrenti abbiano cambiato i loro piani. Nel materiale esaminato non emerge alcuna risposta verificata dagli sviluppatori di Strata. Né il confronto dell'autore stabilisce che ogni implementazione concorrente utilizzi una strategia di memoria identica.

Un confronto equo dovrebbe chiedere cosa ottimizzi ciascun approccio. Mantenere i pesi prontamente disponibili in memoria può favorire un accesso prevedibile. Recuperarli dallo storage può favorire un minore consumo di memoria. Nessuno dei due obiettivi determina da solo quale sia il runtime migliore per la macchina, il carico di lavoro o la tolleranza ai ritardi occasionali di una persona.

Lo stesso ragionamento si applica a un modello più piccolo che entra comodamente nella memoria disponibile. I suoi minori requisiti di risorse potrebbero offrire un'esperienza migliore per domande brevi o interazioni frequenti. Un modello più grande supportato dallo storage dovrebbe giustificare la propria complessità aggiuntiva con risultati migliori sui compiti effettivi dell'utente.

Per esempio, si consideri uno sviluppatore che esamina codice applicativo sconosciuto. Il risultato rilevante è una spiegazione accurata che identifichi le funzioni e le dipendenze corrette. Un modello più grande che genera testo leggibile è utile solo se migliora tale risultato abbastanza da giustificare il sovraccarico di caricamento, elaborazione e manutenzione.

Un flusso di lavoro ricco di documenti presenta un confronto simile. Un modello può ricevere molto materiale sorgente e comunque trascurare un passaggio cruciale. Il benchmark pratico dovrebbe valutare se individua le prove, distingue le affermazioni in conflitto e supporta la risposta con materiale che il lettore può ispezionare.

I team che realizzano una base di conoscenza ricercabile affrontano questo problema informativo più ampio. Requisiti inferiori di memoria per l'inferenza risolvono la capacità di esecuzione. Lasciano la selezione dei documenti, l'organizzazione delle fonti e la verifica delle risposte come responsabilità separate del prodotto.

Anche gli acquirenti aziendali dovrebbero valutare affidabilità e supporto. Una configurazione che funziona per un esperimento individuale non soddisfa automaticamente i requisiti di accesso condiviso, monitoraggio, aggiornamento e ripristino. Tali requisiti dovrebbero entrare in qualsiasi confronto di deployment prima che una cifra di throughput in evidenza diventi un argomento d'acquisto.

La conseguenza a breve termine è quindi un nuovo obiettivo di valutazione. Gli sviluppatori possono verificare se le loro macchine esistenti supportino un carico di lavoro utile con una diversa strategia di allocazione della memoria. Un cambiamento più ampio nei requisiti hardware richiederebbe prove ripetibili su più macchine e in condizioni operative realistiche.

Questa impostazione preserva l'importanza del progetto senza dichiarare prematuramente un vincitore. La sua sfida più forte riguarda l'assunto che una notevole memoria di sistema debba accompagnare un grande modello locale. Se lo storage possa sostituire una parte sufficiente di tale memoria resta una questione empirica.

Lo storage sostituisce i pesi residenti, non il calcolo

Il meccanismo proposto riduce ciò che deve rimanere in memoria, mantenendo al contempo il calcolo degli esperti sulla GPU.

Il runtime di offloading su SSD del progetto descrive lo streaming di esperti non presenti nella cache dallo storage NVMe verso una cache GPU limitata. NVMe è un protocollo di archiviazione comunemente usato da SSD veloci. Gli esperti sono componenti specializzati del modello selezionati durante l'elaborazione, e una cache conserva dati recentemente utili per un accesso più rapido.

Il README afferma che le mancanze degli esperti transitano tramite input/output diretto e buffer di staging, mentre la matematica degli esperti rimane sulla GPU. L'input/output diretto aggira la normale cache dei file del sistema operativo. Questo descrive un percorso dati supportato dallo storage; non dovrebbe essere interpretato come prova che l'SSD comunichi con la memoria della GPU senza una gestione intermedia.

La documentazione descrive anche un archivio di esperti compresso di circa 47 GB e una tabella n-gram di 32 GB. Una tabella n-gram memorizza rappresentazioni apprese associate a sequenze di token. Queste cifre chiariscono la distinzione centrale: una minore memoria di lavoro non significa che il modello completo occupi quella quantità di storage.

L'architettura aiuta a spiegare perché valga la pena esplorare il caricamento selettivo. L'articolo sull'architettura del modello di Qwen descrive un design a miscela di esperti con 125 miliardi di parametri e circa 6 miliardi attivati per token. I modelli a miscela di esperti selezionano porzioni dei loro componenti appresi per ogni fase di elaborazione.

L'articolo identifica separatamente altri 51 miliardi di parametri nelle tabelle di embedding n-gram. Di conseguenza, la consueta etichetta 125B non descrive ogni parametro appreso nel design completo. I lettori dovrebbero mantenere distinti i conteggi dei componenti del modello dai file compressi usati da un particolare runtime.

L'implicazione analitica è che la capacità totale e i requisiti di accesso immediato differiscono. Un runtime può tentare di mantenere vicino al calcolo i dati richiesti più frequentemente, recuperando altri dati quando necessario. La fattibilità dipende dal fatto che il recupero avvenga abbastanza rapidamente da evitare rallentamenti inaccettabili.

Questo rende i modelli di accesso centrali per la valutazione. Una strategia di storage dovrebbe essere testata su compiti variabili, anziché soltanto su variazioni ripetute di un unico prompt. Se un'implementazione beneficia dei dati consultati di recente, un cambiamento di carico di lavoro è un modo utile per esaminare tale dipendenza.

L'interpretazione corretta evita inoltre di trattare l'SSD come un processore sostitutivo. Lo storage fornisce dati; il processore grafico esegue comunque il calcolo degli esperti riportato. Un limite di memoria, dunque, non può rendere una GPU di fascia alta equivalente a una GPU meno capace con la stessa capacità di memoria.

Per i lettori che confrontano Lean-QwenFlash e Strata, il contrasto significativo riguarda la strategia di collocazione ed esecuzione riportata. Non è una classifica di velocità testa a testa verificata. Una simile classifica richiederebbe hardware, file del modello, prompt, condizioni della cache e controlli sulla qualità dell'output equivalenti.

Ecco perché il meccanismo conta più di un'affermazione generica sull'esecuzione di modelli enormi su normali computer. Il progetto propone un modo specifico di gestire i dati di lavoro di un modello. Il suo valore dipenderà da quanto costantemente questa organizzazione servirà compiti utili in presenza di risorse limitate.

La velocità di generazione esclude l'attesa iniziale

La velocità di output di un modello e il suo tempo di risposta totale rispondono a domande diverse sull'usabilità.

Il post su Reddit riporta circa 1.080 token di input al secondo con il contesto desktop breve. Riporta circa 1.536 con il contesto da 100.000 token e 1.627 con il contesto più grande testato. Si tratta di misurazioni di prefill, ovvero della fase in cui il runtime elabora l'input prima di generare una risposta.

Questi valori dovrebbero accompagnare le velocità di generazione ogni volta che i lettori valutano l'uso di contesti lunghi. Un input ampio deve essere elaborato prima che la risposta possa iniziare. Leggere soltanto un titolo sulla velocità di output può portare gli utenti ad aspettarsi irrealisticamente che un documento consistente o una raccolta di codice sia pronto per le domande in tempi rapidi.

Il tempo al primo token misura l'attesa prima dell'arrivo del primo testo generato. È distinto dalla velocità di generazione successiva. Un runtime può offrire un output fluido una volta avviata la generazione, pur imponendo un'attesa iniziale percepibile, soprattutto quando una richiesta introduce una grande quantità di nuovo materiale.

Al contrario, una conversazione ripetuta può comportare un lavoro diverso rispetto a una richiesta nuova. Il caching del prefisso, che riutilizza input elaborati in precedenza, può modificare tale esperienza. Qualsiasi confronto dovrebbe indicare se il test parte da materiale nuovo o beneficia dello stato conversazionale conservato.

L'importanza delle misurazioni visibili al client emerge nella documentazione sul comportamento di streaming del progetto upstream. Vi è registrato un difetto precedente in cui il server generava testo più rapidamente di quanto i client in streaming lo ricevessero. La documentazione descrive una correzione, rendendo questo un insegnamento sulle misurazioni e non una prova di un difetto attuale di Lean-QwenFlash.

La lezione è semplice: gli utenti sperimentano il testo effettivamente consegnato. I contatori interni di generazione non possono descrivere completamente tale esperienza se buffering, pianificazione o consegna aggiungono ritardi. Una riproduzione convincente dovrebbe registrare ciò che arriva al client, oltre a ciò che il server riporta internamente.

I flussi di lavoro di programmazione rendono questa distinzione particolarmente importante. Un assistente di coding può alternare la lettura di nuovi file, la produzione di spiegazioni e la richiesta di azioni esterne. Le chiamate agli strumenti sono richieste strutturate affinché un altro programma esegua un'operazione. Ogni fase contribuisce al tempo necessario per completare un'attività utile.

Un test fluido di generazione di paragrafi non dimostra che l'intero ciclo funzioni correttamente. La valutazione dovrebbe verificare se le richieste restano ben formate, le azioni vengono completate e le risposte successive usano accuratamente le informazioni restituite. Questi controlli riguardano la funzionalità tanto quanto il throughput grezzo dell'inferenza.

Il lavoro su documenti a contesto lungo richiede una visione altrettanto completa. Caricare una raccolta estesa è utile soltanto se la risposta utilizza il materiale pertinente. I test dovrebbero includere domande con risposte verificabili e casi in cui i documenti forniti non supportano una conclusione affidabile.

Il confronto utile è quindi il completamento dell'attività in condizioni dichiarate. I lettori dovrebbero chiedersi quanto dura l'intera interazione, quali risorse consuma e se la risposta è corretta. La velocità di generazione resta importante, ma dovrebbe occupare il posto appropriato all'interno di questo risultato più ampio.

I risultati sui laptop richiedono una verifica separata

Le prove disponibili sui laptop sostengono una conclusione più prudente di quanto suggeriscano i dati di memoria riportati nel titolo.

Il README offre maggiori dettagli rispetto all'ampio intervallo indicato nell'annuncio per i laptop. Elenca un utilizzo di 19,0 GB di RAM di sistema con una configurazione di cache da 8 GB e di 23,9 GB con una configurazione di cache da 16 GB. Un'impostazione della cache e la memoria totale del processo sono quantità diverse.

Questa distinzione merita attenzione durante la riproduzione. Un'opzione di configurazione etichettata con una quantità di memoria non limita necessariamente ogni allocazione effettuata dal runtime. Prima di descrivere un test come conforme a un particolare budget totale di memoria, i revisori hanno bisogno di un picco osservato e di un confine contabile chiaro.

Anche l'affermazione relativa al desktop richiede che tale confine sia esplicito. Il limite riportato include l'intero processo, i worker di supporto e la contabilizzazione pertinente del sistema operativo? Una riproduzione dovrebbe documentare il meccanismo di applicazione del limite, anziché basarsi soltanto su un argomento di avvio o su un'istantanea acquisita dopo il caricamento.

Le prove upstream mostrano perché la macchina circostante sia importante. I risultati misurati sull'offloading del progetto GLM descrivono un host basato su EPYC e un array NVMe. Un esperimento riportato come limitato dalla memoria non rappresenta quindi necessariamente un computer con specifiche fisicamente modeste. Questa osservazione riguarda la configurazione upstream e non dovrebbe essere trasferita automaticamente alle misurazioni di Qwen.

Tuttavia, stabilisce un ragionevole principio di revisione: ispezionare il sistema di test completo. Modello di archiviazione, connessione, raffreddamento disponibile e attività concorrenti dovrebbero far parte di un rapporto di riproducibilità. Senza tali elementi, eguagliare le capacità di RAM e VRAM potrebbe lasciare importanti differenze senza spiegazione.

I test sui laptop dovrebbero includere anche un funzionamento prolungato. Una breve esecuzione riuscita risponde alla domanda se la configurazione possa eseguire quel carico di lavoro. Sessioni più lunghe possono verificare se le prestazioni restano accettabili mentre la macchina gestisce normali applicazioni in background e ripetute variazioni dell'input.

Questi sono controlli proposti, non guasti osservati in Lean-QwenFlash. Il materiale esaminato non dimostra instabilità termica, eccessive interferenze in background o uno specifico collo di bottiglia dello storage. Presentare tali possibilità come difetti esistenti sopravvaluterebbe le prove tanto quanto promettere compatibilità universale.

La discussione sotto l'annuncio illustra un'altra preoccupazione irrisolta. Un commentatore ha sollevato dubbi sulla salute dell'SSD, mentre un altro ha contestato tale preoccupazione perché l'inferenza comporta la lettura di pesi memorizzati. Nessuno dei due commenti costituisce una misurazione di resistenza, né sostiene un'affermazione quantitativa sull'effetto di questo progetto sulla durata dell'unità.

Il passo successivo responsabile consiste nel separare letture misurate, scritture misurate, temperature e durata operativa. Una discussione sulla salute dell'unità basata su tali osservazioni sarebbe più informativa che supporre che ogni attività di archiviazione prolungata abbia le stesse conseguenze. Le prove attuali non risolvono la questione.

Anche la qualità delle risposte richiede un esame altrettanto rigoroso. I pesi a precisione ridotta e i dati di attenzione dovrebbero essere valutati rispetto a un riferimento chiaramente specificato su attività pertinenti. Una risposta fluida può nascondere errori, quindi i revisori dovrebbero conservare gli output e valutarne la correttezza anziché considerare la generazione riuscita una validazione sufficiente.

Finché non arriveranno tali controlli, il risultato sui laptop rimane una prova utile riportata dall'autore, proveniente da una configurazione distinta. Rafforza l'argomento a favore di ulteriori test. Non dimostra che un laptop con la sola quantità di memoria di sistema indicata nel titolo riprodurrà le prestazioni desktop.

Tre segnali determineranno l'impatto pratico

Riproduzione indipendente, qualità delle risposte verificata e prestazioni sostenute nei flussi di lavoro sono le prossime tappe delle prove.

Per prima cosa, occorre osservare test indipendenti su sistemi fisicamente limitati dalla memoria. I rapporti più utili identificheranno la configurazione hardware completa e pubblicheranno limiti di risorse applicabili. Dovrebbero distinguere una macchina con poca memoria installata da una macchina più capiente il cui processo di inferenza opera con un limite.

Tali rapporti rafforzerebbero l'affermazione di accessibilità se riproducessero prestazioni utili senza supporto di memoria nascosto. Risultati che richiedano risorse sostanzialmente diverse ne restringerebbero l'ambito. Entrambi gli esiti aiuterebbero i lettori a comprendere dove si colloca l'approccio, anziché limitarsi ad aggiungere un'altra cifra sulla velocità.

Le riproduzioni dovrebbero inoltre distinguere le sessioni nuove da quelle già riscaldate. Un avvio pulito, un prompt ripetuto e un'attività modificata rivelano ciascuno aspetti diversi dell'esperienza. Pubblicare queste condizioni renderebbe più facile indagare i disaccordi tra tester e impedirebbe che misurazioni non comparabili diventino apparenti contraddizioni.

In secondo luogo, occorre osservare confronti di qualità che utilizzino il checkpoint distribuito effettivo e le impostazioni del runtime. I revisori dovrebbero scegliere attività con risultati verificabili, conservare le risposte generate e spiegare la loro valutazione. Esempi pertinenti includono modifiche al codice che superano controlli funzionali e risposte a documenti fondate sulle prove fornite.

Queste prove rafforzerebbero il progetto se l'uso ridotto di risorse preservasse la qualità necessaria al lavoro previsto. Fallimenti significativi nelle attività indebolirebbero l'affermazione pratica anche se la generazione rimanesse veloce. I lettori devono sapere cosa offre il runtime, non semplicemente se può continuare a produrre testo.

In terzo luogo, occorre osservare misurazioni sostenute dei flussi di lavoro end-to-end. Dovrebbero includere il tempo di attesa iniziale, la velocità di output consegnato, i picchi di risorse e gli esiti delle attività completate. Per lo sviluppo interattivo, dovrebbero seguire l'intero scambio attraverso azioni esterne e successive risposte del modello.

Risultati stabili in sessioni estese sosterrebbero l'idea di considerare il progetto un'opzione continuativa per flussi di lavoro locali. Ritardi irregolari, problemi di correttezza o superamenti delle risorse indicherebbero la necessità di ulteriore lavoro ingegneristico. Tali risultati definirebbero usi appropriati senza richiedere un verdetto tutto-o-niente sull'inferenza supportata dallo storage.

Un confronto neutrale tra Lean-QwenFlash e Strata rientrerebbe in questa terza tappa. Il confronto dovrebbe mantenere costanti modello e attività, spiegando al contempo le scelte di risorse di ciascun runtime. Dovrebbe riportare dove ogni configurazione funziona bene, anziché forzare obiettivi progettuali diversi a produrre un unico vincitore.

Nei prossimi mesi, lo sviluppo più informativo sarebbe una raccolta di configurazioni riproducibili con limitazioni chiare. Ciò permetterebbe agli sviluppatori di selezionare un approccio in base alle proprie macchine e attività. Un elenco crescente di velocità di picco senza confronto offrirebbe una guida pratica molto minore.

Per ora, considerate l'offloading su SSD di Lean-QwenFlash come uno specifico esperimento che vale la pena riprodurre. Iniziate con un'attività il cui risultato corretto potete verificare, quindi confrontate l'intera interazione con la vostra configurazione esistente. Registrate l'attesa iniziale, l'output consegnato, il consumo di memoria osservato e la qualità della risposta. Conservate la revisione del modello e le impostazioni del runtime insieme a queste osservazioni, affinché un'altra persona possa ripetere il confronto. Se il modello più grande è utile, identificate esattamente dove aiuta e quali risorse richiede quel miglioramento. Se non lo è, conservate anche quel risultato. La domanda utile è se questa strategia di storage renda il vostro carico di lavoro fattibile e affidabile. Verificate questa domanda prima di considerare un budget di memoria da titolo come una guida all'acquisto dell'hardware.

 
 

Inizia gratis

Un assistente IA local-first con gestione della conoscenza personale

Per una migliore esperienza con l’IA,

al momento remio supporta solo Windows 10+ (x64) e M-Chip Macs.

Il tuo partner AI al lavoro
Fai di più con remio

Pianifica. Crea. Consegna.
Tutto in un unico posto.

bottom of page