Vai al contenuto principale

Come eseguire Qwen3.8-27B in locale su una NVIDIA RTX 5090

Scopri come eseguire Qwen3.8-27B in locale con NVFP4 nativo Blackwell e MTP speculative decoding, raggiungendo fino a 170 token al secondo con llama.cpp.
Aggiornato 25 ago 2026  · 6 min leggi

Esplora con l'AI

ChatGPTClaudePerplexity

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

RTX 5090 GPU summary

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)

Building llama.cpp for the RTX 5090  GPU

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

Downloading the Qwen3.8-27B-NVFP4-MTP-GGUF

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 131072 ci dà una finestra di contesto di circa 131K.

  • --n-gpu-layers all mantiene il modello sulla GPU.

  • --flash-attn on abilita la Flash Attention.

  • --cache-type-k q8_0 e --cache-type-v q8_0 aiutano a ridurre l’uso di memoria della KV cache.

  • --spec-type draft-mtp abilita l’MTP speculative decoding di Qwen3.8.

  • --spec-draft-n-max 4 controlla 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.

Serving the Qwen3.8-27B-NVFP4-MTP-GGUF using the llama.cpp

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
 }'

Testing the Qwen3.8-27B-NVFP4-MTP-GGUF using the CURL command

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.

Testing the Qwen3.8-27B-NVFP4-MTP-GGUF inside the llama.cpp webui

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.

Testing the Qwen3.8-27B-NVFP4-MTP-GGUF inside the llama.cpp webui on coding task

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. 

image4.png

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

Setting up the qwen3.8-27b in the Pi coding agent

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.

Testing the qwen3.8-27b model with Pi coding agent

Ha costruito l’intero progetto in pochi minuti. 

Testing the qwen3.8-27b model with Pi coding agent

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.

web dashboard generated with qwen3.8-27b model and Pi coding agent

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

web dashboard generated with qwen3.8-27b model and Pi coding agent

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.


Abid Ali Awan's photo
Author
Abid Ali Awan
LinkedIn
Twitter

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.

Argomenti

Diventa AI Engineer con DataCamp!

Programma

Ingegnere AI associato per sviluppatori

26 h
Scopri come integrare l'intelligenza artificiale nelle applicazioni software utilizzando API e librerie open-source. Inizia oggi il tuo percorso per diventare un ingegnere AI!
Vedi dettagliRight Arrow
Inizia Il Corso
Mostra altroRight Arrow