Programma
Qwen3.8-27B sta rapidamente diventando uno dei modelli più popolari per l’AI locale. Pur avendo “solo” 27 miliardi di parametri, offre prestazioni in grado di competere con modelli molto più grandi nei benchmark di coding, ragionamento, agentic e generali. In diversi ambiti si avvicina persino a modelli come GLM-5.2, il che lo ha reso particolarmente apprezzato tra chi sperimenta con hardware locale potente.
La RTX 5090 si adatta particolarmente bene a Qwen3.8-27B perché la sua architettura Blackwell supporta NVFP4, consentendo al modello di girare a velocità molto elevate mantenendo al contempo un’elevata qualità dell’output. Combinando questa caratteristica con lo speculative decoding tramite multi-token prediction (MTP), una build ottimizzata di llama.cpp e il giusto modello GGUF, Qwen3.8-27B può superare tranquillamente i 100 token al secondo su una singola RTX 5090.
In questa guida imposteremo quello che considero uno dei modi più semplici per ottenere il miglior equilibrio tra velocità, accuratezza e supporto per contesti lunghi su una RTX 5090 o un’altra GPU Blackwell. Compileremo llama.cpp con supporto nativo Blackwell, scaricheremo il GGUF NVFP4-MTP di Qwen3.8-27B, lo eseguiremo con accelerazione GPU e speculative decoding MTP, testeremo l’API compatibile con OpenAI e l’interfaccia web integrata e, infine, lo collegheremo a Pi per usare Qwen3.8-27B come agente di coding completamente locale.
1. Configura llama.cpp per GPU Blackwell
Per prima cosa, assicuriamoci che la GPU venga rilevata correttamente e verifichiamo versione del driver NVIDIA e di CUDA.
nvidia-smi
Dovresti vedere la tua RTX 5090, la versione del driver, la versione di CUDA, la memoria GPU e l’utilizzo corrente della GPU.
Nota: questa configurazione è specifica per le GPU NVIDIA Blackwell, come la RTX 5090. La build qui sotto è mirata a SM120, l’architettura di calcolo usata dalla RTX 5090.
Poi scaricheremo e compileremo l’ultima versione di llama.cpp con supporto CUDA.
cd /workspace
git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp
cmake -B build \
-DGGML_CUDA=ON \
-DCMAKE_CUDA_ARCHITECTURES=120
cmake --build build --config Release -j$(nproc)

La parte importante qui è -DCMAKE_CUDA_ARCHITECTURES=120. Questo dice a llama.cpp di compilare specificamente per l’architettura Blackwell usata dalla RTX 5090.
Una volta terminata la build, renderemo llama-server disponibile globalmente così da poterlo eseguire da qualsiasi cartella:
sudo ln -sf "$(realpath ./build/bin/llama-server)" /usr/local/bin/llama-server
Ora verifica che tutto funzioni:
llama-server --version
Dovresti ottenere un output simile a:
version: 0.1.1-dev (build 10479, commit 0021a77de)
built with GNU 13.3.0 for Linux x86_64
Ecco fatto. Ora abbiamo una build di llama.cpp con CUDA in grado di sfruttare la RTX 5090 e il supporto NVFP4 nativo di Blackwell.
2. Scarica il modello Qwen3.8-27B NVFP4-MTP
Ora scaricheremo il modello Qwen3.8-27B.
Per prima cosa, installa la CLI di Hugging Face:
pip install -U huggingface_hub
Crea una cartella in cui conserveremo il modello:
mkdir -p /workspace/models/qwen38
Poi scarica il GGUF NVFP4-MTP:
hf download felippeburk/Qwen3.8-27B-NVFP4-MTP-GGUF \
--local-dir /workspace/models/qwen38

Questa è la versione che vogliamo per questa configurazione perché usa NVFP4 e include il supporto MTP, da cui deriva gran parte del miglioramento di velocità sulla RTX 5090.
3. Avvia il server Qwen3.8-27B
Ora arriva la parte divertente. Serviremo Qwen3.8-27B completamente su GPU con Flash Attention, una finestra di contesto da 131K e MTP speculative decoding per una generazione più veloce.
Esegui:
cd /workspace/llama.cpp
llama-server \
-m /workspace/models/qwen38/qwen3.8-27b-text-nvfp4-mtp.gguf \
--alias qwen3.8-27b \
--host 0.0.0.0 \
--port 8910 \
--ctx-size 131072 \
--n-gpu-layers all \
--flash-attn on \
--cache-type-k q8_0 \
--cache-type-v q8_0 \
--parallel 1 \
--spec-type draft-mtp \
--spec-draft-n-max 4 \
--spec-draft-p-min 0.75 \
--spec-draft-ngl all \
--spec-draft-type-k q8_0 \
--spec-draft-type-v q8_0 \
--reasoning-effort medium \
--jinja
Ci sono molte opzioni qui, ma la maggior parte serve semplicemente a ottenere le migliori prestazioni dalla 5090.
Le principali da conoscere sono:
-
--ctx-size 131072ci dà una finestra di contesto di circa 131K. -
--n-gpu-layers allmantiene il modello sulla GPU. -
--flash-attn onabilita la Flash Attention. -
--cache-type-k q8_0e--cache-type-v q8_0aiutano a ridurre l’uso di memoria della KV cache. -
--spec-type draft-mtpabilita l’MTP speculative decoding di Qwen3.8. -
--spec-draft-n-max 4controlla quanti token speculativi MTP può generare alla volta.
Per questa configurazione usiamo n-max 4 come punto di partenza per una RTX 5090. Puoi sperimentare con valori come 2 (che la scheda del modello consiglia per questo GGUF) o 3 in seguito, dato che l’impostazione più veloce può variare leggermente a seconda del sistema.
Una volta che llama-server ha finito di caricare il modello, Qwen3.8 sarà disponibile in locale su http://127.0.0.1:8910.

Ora abbiamo Qwen3.8-27B in esecuzione in locale. Successivamente, testeremo il modello sia tramite API che tramite l’interfaccia browser integrata.
4. Testa velocità e prestazioni di coding di Qwen3.8-27B
Con il server attivo, apri un altro terminale e invia una richiesta di test all’API compatibile con OpenAI:
curl http://127.0.0.1:8910/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3.8-27b",
"messages": [
{
"role": "user",
"content": "Write a Python FastAPI application that monitors GPU usage."
}
],
"max_tokens": 2000
}'

In questo test, Qwen3.8-27B ha generato 2.000 token a 122 token/sec con un impressionante tasso di accettazione MTP dell’84,9%.
llama.cpp include anche un’interfaccia browser, così puoi testare il modello senza usare l’API.
Apri http://127.0.0.1:8910 nel browser per vedere la UI.

Per un test più complesso, ho usato questo prompt:
Create a stunning single-file animated HTML website with a dark futuristic
theme, smooth scrolling, glowing gradients, floating particles, animated cards,
hover effects, and responsive design using only HTML, CSS, and JavaScript.

Sulla mia RTX 5090, in media ottenevo circa 142 token al secondo, con picchi di generazione intorno ai 170 token al secondo, che è estremamente veloce per un modello 27B in locale.

Qwen3.8-27B ha generato un sito web rifinito e perfettamente funzionante subito, senza ulteriori interventi. È un buon modo per testare rapidamente sia la capacità di coding del modello sia la velocità della configurazione locale.
5. Usa Qwen3.8-27B con Pi
In questa sezione collegheremo Qwen3.8-27B a Pi e lo useremo come agente di coding completamente locale.
Pi è un agente di coding leggero basato su terminale che può aiutarti a creare, modificare, testare ed effettuare il debug dei progetti direttamente dalla riga di comando.
Installa Pi con:
curl -fsSL https://pi.dev/install.sh | sh
L’installer richiede Node.js e npm. Installa Pi nel prefisso npm globale. Se non hai ancora Node, installalo prima con nvm o con il tuo gestore pacchetti.
Al termine dell’installazione, riavvia il terminale.
Poi installa l’estensione pi-llama e punta Pi al nostro server locale di llama.cpp:
pi install git:github.com/huggingface/pi-llama
export LLAMA_BASE_URL=http://127.0.0.1:8910/v1
Crea un nuovo progetto e avvia Pi:
mkdir new-project
cd new-project
Pi

Dentro Pi, esegui /model, cerca llama-cpp e seleziona Qwen3.8-27B.
Per i test, gli ho dato questo prompt:
Build a polished personal finance dashboard from scratch that imports CSV
bank statements, categorizes spending, shows monthly trends and charts, and
detects unusual expenses; also generate a realistic sample CSV, import it,
test the full app end-to-end, and fix any errors automatically.

Ha costruito l’intero progetto in pochi minuti.

Gli ho poi chiesto di avviare il server e testare sia il frontend sia la logica dell’applicazione. Ha passato più tempo a fare debugging e test per assicurarsi che tutto funzionasse correttamente.

Quando ho testato il dashboard personalmente, l’app funzionava bene, i grafici erano ottimi e l’esperienza generale fluida.

La principale debolezza è stata l’esecuzione di modifiche di UI precise. Dopo diversi prompt di follow-up, ha iniziato a fare cambiamenti non correlati invece di capire esattamente cosa volessi, quindi alla fine mi sono fermato lì.
Considerazioni finali
Qwen3.8-27B è ancora molto nuovo e la community sta attivamente individuando la migliore combinazione di quantizzazione e speculative decoding. MTP funziona estremamente bene, ma si stanno testando anche approcci più recenti come DFlash 2 e DSpark, con alcuni utenti che riportano velocità ancora maggiori a seconda dell’hardware e del carico di lavoro.
Unsloth ha appena rilasciato anche i GGUF Dynamic v3.0 per Qwen3.8-27B, dichiarando circa il 10% di accuratezza in più a parità di dimensione del modello rispetto ai precedenti quant. Questo rende Unsloth un’altra opzione molto interessante se vuoi una qualità migliore mantenendo grosso modo la stessa configurazione di inference locale.
Per ora, penso che NVFP4 + MTP + llama.cpp sia una delle configurazioni più semplici e veloci per una RTX 5090. Ottenere intorno ai 140 token al secondo da un modello 27B, pur mantenendo una finestra di contesto ampia e abbastanza capacità per eseguire un vero agente di coding, è notevole. La configurazione probabilmente diventerà ancora più veloce man mano che llama.cpp, Unsloth, DFlash 2 e DSpark continueranno a migliorare.
FAQ per l’esecuzione locale di Qwen3.8-27B
Serve una RTX 5090 per eseguire Qwen3.8-27B in locale?
No. I quant 4 bit GGUF standard di Qwen3.8-27B rientrano in circa 16–19 GB di VRAM, quindi una RTX 5080, una 4090 o un Mac da 24 GB eseguiranno il modello. La RTX 5090 è importante per questa configurazione specifica perché NVFP4 richiede i tensor core Blackwell. Sulle schede più vecchie, i file NVFP4 girano ma offrono solo il risparmio di memoria, non l’accelerazione.
Quanta VRAM usa realmente questa configurazione?
Il GGUF NVFP4-MTP occupa circa 19 GB su disco, e la KV cache è ciò che fa salire il totale man mano che cresce il contesto. Con quantizzazione K/V q8_0 a contesto molto lungo, esecuzioni pubblicate su RTX 5090 si collocano intorno alla metà dei 20 GB, quindi una scheda da 32 GB è confortevole. Con 24 GB dovrai ridurre --ctx-size ben al di sotto di 131072.
Cosa fa l’MTP speculative decoding ed è lossless?
Qwen3.8 include livelli di multi-token prediction integrati nel GGUF, che fungono da modello di draft incorporato, senza bisogno di un secondo file. La testa di draft propone diversi token alla volta e il modello completo li verifica, quindi i draft accettati costano una frazione di un normale forward pass. La qualità dell’output non cambia, perché ogni token accettato dal modello principale è uno che avrebbe comunque prodotto.
Meglio usare NVFP4 o un Q4_K_M normale?
Scegli NVFP4 se hai una GPU Blackwell e vuoi la massima velocità; scegli un GGUF standard come Q4_K_M o l’UD-Q4_K_XL di Unsloth se sei su Ampere o Ada, o se ti interessa di più la qualità dell’output per gigabyte. Il supporto NVFP4 in llama.cpp è anche più recente rispetto al percorso K-quant, quindi aspettati qualche spigolosità in più su conversione e tool.
Questa configurazione gestisce anche le immagini, dato che Qwen3.8-27B è un modello vision?
Qwen3.8-27B è un modello nativo vision-language, ma le conversioni GGUF solo testo rimuovono la torre di visione. Per usare le immagini, devi passare un proiettore multimodale insieme al modello con --mmproj, di solito il file mmproj pubblicato nello stesso repo o nel repo GGUF di Unsloth.
In quanto data scientist certificato, sono appassionato di sfruttare tecnologie all’avanguardia per creare applicazioni di machine learning innovative. Con una solida esperienza in riconoscimento vocale, analisi e reportistica dei dati, MLOps, AI conversazionale e NLP, ho affinato le mie competenze nello sviluppo di sistemi intelligenti in grado di avere un impatto concreto. Oltre alla mia expertise tecnica, sono anche un comunicatore efficace, con il talento di rendere chiari e sintetici concetti complessi. Di conseguenza, sono diventato un blogger molto seguito in ambito data science, condividendo idee ed esperienze con una community in crescita di professionisti dei dati. Attualmente mi concentro sulla creazione e sull’editing di contenuti, lavorando con large language model per sviluppare contenuti potenti e coinvolgenti che possano aiutare aziende e singoli a valorizzare al meglio i propri dati.

