Dwarf Star
Progetto open source di Salvatore Sanfilippo (antirez) per l'inferenza locale di LLM open weight, pensato come prodotto che si scarica, si lancia e funziona su hardware consumer (Apple Silicon, DGX Spark). 1 2 3
Il problema che risolve
L'inferenza locale funzionava male: scarichi i pesi da una parte, l'engine da un'altra, il coding agent da un'altra, e l'insieme non funziona bene quasi mai, con errori piccoli e subdoli e rallentamenti quando il contesto cresce. Ogni nuovo modello richiede implementazioni ad hoc e quello precedente viene dimenticato. Dwarf Star vuole essere "la Apple dei modelli locali": pochi modelli, implementati bene. 1
I modelli open weight non condividono la stessa implementazione del Transformer (cambiano per esempio il meccanismo di attenzione e il modo di raggruppare i token), e l'implementazione di riferimento rilasciata con i pesi, per esempio in Python, è inefficiente sull'hardware consumer. Il progetto punta su uno o pochi modelli alla volta: se ne esce uno monotonicamente migliore di DeepSeek V4, Sanfilippo toglie DeepSeek e passa al nuovo. È nato come "una delle tante teste" del periodo in cui, grazie ai coding agent, Sanfilippo ha provato a fare tutto ciò che prima non poteva per mancanza di tempo. 1
Caratteristiche
- Supporta modelli open weight come DeepSeek V4 Flash (e Pro, più lento) e GLM 5.2 3
- Quantizzazione profondamente asimmetrica: esperto condiviso e proiezioni ad alta qualità, router con una compressione particolare, i tre tensori di ogni esperto (up, gate, down) quantizzati in modo diverso 1
- DeepSeek V4 Flash (284B parametri, 140 GB) compresso in 80 GB di RAM su Mac M5 Max: 32-35 token/s in generazione, 400-500 token/s in lettura del prompt 1
- In alternativa alla RAM supporta lo SSD streaming dei pesi da disco, più lento 1
- Tensor parallelism tra due M5 Max da 128 GB (DeepSeek a 50 token/s con prefill di 600, GLM 5.2 a 20 token/s); backend CUDA, ROCm/AMD e Metal 3
- Le combinazioni tra modelli, tensor parallelism e backend crescono in modo moltiplicativo. Generalizzare il codice tra CUDA, ROCm e Metal lo renderebbe più lento, quindi conviene in parte duplicare la logica specifica per ogni backend: un lavoro che fanno i coding agent ("il maggiordomo") 3
- Branch per Laguna S2.1 con Speculative Decoding e min_p Sampling 4
- Riabilita hardware "vecchio": un server da circa 100.000 € con 8 schede L40S, che vLLM e SGLang non supportano più, arriva a 1.800 token/s di prefill e circa 50 token/s su DeepSeek 3
Modelli supportati
- DeepSeek V4 Flash (il modello a cui il progetto è dedicato, anche nella versione Pro) 3
- GLM 5.2 (in locale su Dwarf Star più forte di DeepSeek Flash e anche del Pro, resistentissimo alla quantizzazione; fatto funzionare prima in SSD streaming e su M3 Ultra da 512 GB) 3
- Kimi, di cui si parlava molto bene, non è stato aggiunto: oltre a essere grande un trilione di parametri, appena lo si quantizza non funziona più bene 3
- Laguna S2.1 (branch non ancora unito, con decoding speculativo) 4
Fonti e Riferimenti
-
Fonte: Le Nuove Avventure di Salvatore Sanfilippo | Live con @antirez PARTE 1 (Mr. RIP) ↗ ↩↩↩↩↩↩
-
Fonte: Se gli LLM fossero esoscheletri (Salvatore Sanfilippo) ↗ ↩
-
Fonte: GPT 5.6, Fable e i moscerini della frutta | Zip episodio 01 (Salvatore Sanfilippo) ↗ ↩↩↩↩↩↩↩↩
-
Fonte: Considerazioni durante un viaggio di ritorno da Portopalo a Catania (Salvatore Sanfilippo) ↗ ↩↩