Installare KTransformers: LLM 70B+ su GPU consumer
Il framework Installazione KTransformers consente di eseguire localmente modelli MoE (Mixture of Experts) con più di 600 miliardi di parametri su una sola scheda RTX 4090 o 3090, spostando gli esperti inattivi nella RAM CPU. Questa Installazione KTransformers si basa su un offloading selettivo degli esperti MoE e sfrutta le istruzioni AVX-512 / AMX della CPU per alleggerire il carico della GPU. Questa guida copre i prerequisiti hardware, la procedura di installazione passo dopo passo, i modelli compatibili (in particolare DeepSeek V3 GPU consumer), le prestazioni misurate e le insidie più comuni durante il deployment di un LLM 671B locale.
Perché KTransformers cambia le regole del gioco per i LLM MoE
KTransformers è un framework Python sviluppato dal KVCache.AI Lab dell'Università Tsinghua, pubblicato con licenza Apache 2.0 su GitHub. La sua particolarità: carica in VRAM soltanto gli esperti MoE attivi durante l'inferenza, mantenendo gli altri nella RAM di sistema. Per un modello come DeepSeek V3 671B che attiva solo circa 37B di parametri per token su un totale di 671B, il risparmio di VRAM è enorme.
In concreto, mentre un'inferenza classica (vLLM, transformers) richiederebbe ~400 GB di VRAM in Q4 per DeepSeek V3, KTransformers permette di eseguire lo stesso modello con:
- GPU : 24 GB VRAM (RTX 4090 o 3090)
- RAM CPU : da 380 a 512 GB DDR5
- CPU : Intel Xeon con AMX o AMD EPYC Genoa (ritenuto ottimale, secondo una stima)
Questo approccio fa concorrenza direttamente a llama.cpp e il suo meccanismo --n-gpu-layers, ma KTransformers si spinge oltre sulle architetture MoE, indirizzando ogni esperto al dispositivo giusto invece di eseguire l'offloading di interi layer.
Per dare un'idea degli ordini di grandezza, ecco alcuni modelli MoE che diventano accessibili con questo approccio:
- DeepSeek V3 671B : VRAM Q4 ~400 GB → eseguibile su 24 GB GPU + 384 GB RAM
- DeepSeek R1 671B : profilo identico, ragionamento in più
- Kimi K2.5 : 1000B parametri, ~32B attivi
- Qwen 3 235B-A22B : 235B con 22B attivi
Requisiti hardware e software
Prima di avviare la Installazione KTransformers, verifica la tua configurazione. Il framework mira specificamente alle architetture MoE e richiede un equilibrio particolare tra RAM e VRAM.
Hardware minimo per DeepSeek V3 Q4_K_M :
- GPU NVIDIA : RTX 3090 / 4090 / 5090 (24 GB) o A6000 (48 GB). Compute capability ≥ 8.0
- RAM DDR5 : almeno 384 GB, 512 GB consigliati per i contesti lunghi
- CPU : Intel Xeon Sapphire Rapids (AMX), Xeon Emerald Rapids, o AMD EPYC 9004 (stimato). I processori desktop tipo Core i9-14900K funzionano ma senza AMX
- Archiviazione : 450 GB liberi su NVMe Gen4 per i pesi GGUF
- OS : Ubuntu 22.04 LTS o Debian 12 (Windows WSL2 supportato ma più lento del 20-30%, da confermare)
Stack software :
- Python 3.11
- CUDA 12.4 o 12.6
- PyTorch 2.4+ compilato con CUDA
- gcc-11 minimo (gcc-13 per AMX)
- CMake 3.25+
Per confrontare questo approccio con una soluzione classica interamente su GPU, consulta il nostro guida vLLM che descrive in dettaglio il tensor parallelism sui cluster H100.
Procedura di installazione passo dopo passo
La Installazione KTransformers segue una sequenza rigorosa. Qualsiasi variazione nelle versioni CUDA/PyTorch impedisce la compilazione dei kernel CPU.
Passo 1 — Ambiente Python isolato :
conda create -n ktrans python=3.11
conda activate ktrans
conda install -c conda-forge libstdcxx-ng
Passo 2 — PyTorch con CUDA :
pip install torch==2.4.0 --index-url https://download.pytorch.org/whl/cu124
pip install packaging ninja cpufeature numpy
Passo 3 — Clonazione e compilazione :
git clone https://github.com/kvcache-ai/ktransformers.git
cd ktransformers
git submodule update --init --recursive
bash install.sh
Lo script install.sh compila i kernel CPU (llamafile, AMX se rilevato) e installa il wheel locale. La compilazione richiede da 10 a 20 minuti a seconda della CPU.
Passo 4 — Download dei pesi :
KTransformers utilizza file GGUF (quantizzazione di llama.cpp). Scarica ad esempio DeepSeek-V3-Q4_K_M.gguf depuis Hugging Face :
huggingface-cli download unsloth/DeepSeek-V3-GGUF \
--include "DeepSeek-V3-Q4_K_M*" \
--local-dir ./models/deepseek-v3-q4
Passo 5 — Avvio dell'inferenza :
python -m ktransformers.local_chat \
--model_path deepseek-ai/DeepSeek-V3 \
--gguf_path ./models/deepseek-v3-q4 \
--cpu_infer 48 \
--max_new_tokens 1024
Il parametro --cpu_infer corrisponde al numero di thread CPU dedicati agli esperti offloadati. Impostalo a (cores physiques - 2).
Performance misurate su GPU consumer
I numeri qui sotto provengono dal benchmark ufficiale KTransformers v0.2 e di segnalazioni della community. Per un LLM 671B locale quantizzato Q4_K_M:
- RTX 4090 + Xeon Gold 6454S (AMX) : 13,6 tok/s prefill, 14 tok/s decode (DeepSeek V3)
- RTX 4090 + i9-14900K (senza AMX) : 8 tok/s in decodifica (stima)
- RTX 3090 + EPYC 9354 : 10 token/s stimati in decodifica (da confermare in base alla larghezza di banda della RAM)
A titolo di confronto, DeepSeek R1 Distill Llama 70B in esecuzione in full-GPU su 2× RTX 4090 raggiunge 25-30 tok/s — più veloce in assoluto, ma il modello distillato perde sui benchmark di ragionamento rispetto al 671B completo.
Benchmark di qualità (rapporti ufficiali DeepSeek) :
- DeepSeek V3 671B : MMLU 88.5, HumanEval 82.6, MATH-500 90.2
- DeepSeek R1 671B : AIME 2024 79,8, MATH-500 97,3, Codeforces 96,3° percentile
- Qwen 3 235B-A22B : MMLU-Pro 73 stimato, HumanEval 88 da confermare
Per approfondire i compromessi tra qualità e velocità, consulta DeepSeek R1 vs Llama 3.3 70B.
Modelli supportati e limitazioni
Non tutti gli LLM MoE sono supportati nativamente. KTransformers mantiene un elenco di ottimizzazioni YAML per architettura. Nel catalogo attuale:
Supporto nativo confermato :
- DeepSeek V3 671B (MoE, 37B attivi)
- DeepSeek R1 671B (MoE, 37B attivi)
- DeepSeek V3.2 (685B, MoE)
- Mixtral 8x22B Instruct (141B, 8 esperti × 22B)
- Qwen 3 235B-A22B
Supporto in fase di sviluppo o sperimentale :
- Kimi K2.5 et Kimi K2.6 (architettura DeepSeek-like, dovrebbero funzionare)
- GLM-5.1 (744B MoE, da confermare)
- ERNIE 4.5 300B-A47B
Non supportati (architetture dense, nessun vantaggio nell'offloading):
- Llama 3.1 405B Instruct — usa preferibilmente vLLM multi-GPU
- Qwen 2.5 72B Instruct — full-GPU su 2× RTX 4090
Il contesto massimo pratico rimane limitato dalla RAM disponibile per la cache KV: prevedi circa 30 GB aggiuntivi per 32K token su DeepSeek V3. Oltre 64K token, il throughput cala fortemente.
FAQ
Q: KTransformers funziona sui Mac Apple Silicon?
No. Il framework dipende da CUDA per i kernel GPU e da AVX-512/AMX per i kernel CPU x86. Sui Mac della serie M, usa invece llama.cpp con Metal, o MLX. La nostra manuale LLM per Mac spiega le alternative. Un M3 Ultra 512 GB può eseguire DeepSeek V3 Q4 in modo nativo senza offloading, a circa 18-20 tok/s stimati.
Q: Qual è la differenza rispetto a llama.cpp in modalità offload?
llama.cpp esegue l'offload di interi strati (--n-gpu-layers N), il che funziona per i modelli densi come Llama 3.3 70B Instruct. KTransformers esegue l'offload degli esperti individuali di un MoE, il che è molto più efficiente per DeepSeek V3, dove solo 8 esperti su 256 si attivano per token. Guadagno tipico: da 3 a 5 volte più veloce di llama.cpp su DeepSeek V3 a parità di hardware.
Q: È possibile fare fine-tuning con KTransformers?
No, il framework è dedicato esclusivamente all'inferenza. Per eseguire il fine-tuning di un MoE, considera DeepSpeed-MoE o Unsloth (limitato ai modelli densi < 70B). KTransformers non supporta né LoRA dinamica né QLoRA. Se vuoi adattare un modello 70B, scegli piuttosto Llama 3.1 Nemotron 70B con Unsloth in QLoRA 4-bit su RTX 4090.
Q: Quanto costa una configurazione per DeepSeek V3 con GPU consumer?
Budget stimato (2026): RTX 4090 usata 1500€, scheda madre server W790 o EPYC SP5 800€, CPU Xeon w7-2495X 2200€, 384 GB DDR5 ECC 3000€, NVMe 2 TB 200€, alimentatore + case 400€. Totale: ~8000€ per eseguire un LLM 671B locale. Da confrontare con i circa 30.000 € di una sola H100 da 80 GB, che non sarebbe nemmeno sufficiente a piena precisione.
Q: È disponibile la modalità server compatibile con OpenAI?
Sì, dalla v0.2. Avvia ktransformers --server_port 10002 --model_path ... --gguf_path ... e configura il tuo client OpenAI per usare http://localhost:10002/v1. Compatibile con Open WebUI, Continue.dev e LiteLLM. Lo streaming SSE funziona, ma il function calling resta parziale (da confermare in base alla versione).
Q: KTransformers vs SGLang per DeepSeek V3?
SGLang è pensato per deployment multi-GPU ad alte prestazioni (H100/H200) e raggiunge 60+ tok/s su DeepSeek V3 con 8× H100. KTransformers è pensato per una singola GPU consumer con offloading nella RAM, a 10-15 tok/s. Scelta semplice: SGLang se hai un cluster, KTransformers se hai una workstation.
Conclusione
La Installazione KTransformers apre l’accesso ai modelli MoE di frontiera (DeepSeek V3, R1, Kimi K2.5) su una workstation da 8.000 € anziché su un cluster H100 da 200.000 €. Il compromesso: 10-15 tok/s invece di 60+, ma con una qualità di risposta equivalente a quella del modello a precisione completa. Per individuare il modello MoE adatto alla tua VRAM e alla tua RAM, usa il configuratore QualeLLM, oppure esplora direttamente il catalogo dei 249 LLM indicizzati per confrontare licenze e dimensioni.