Vai al contenuto principale

Come eseguire Kimi K2 in locale: configurazione completa e troubleshooting

Scopri come eseguire Kimi K2 su una singola GPU A100 con 250 GB di RAM usando llama.cpp.
Aggiornato 29 set 2026  · 6 min leggi

Scopri con l'IA

ChatGPTClaudePerplexity

Kimi K2, sviluppato da Moonshot AI, è un modello linguistico Mixture-of-Experts (MoE) all’avanguardia. Eccelle in conoscenze di frontiera, ragionamento e coding ed è ottimizzato in modo specifico per capacità agentiche, tra cui l’uso di tool e la risoluzione autonoma dei problemi.

Come esploriamo nella nostra guida a Kimi K2, il modello sta ottenendo risultati eccezionali nei benchmark, rendendolo il miglior modello linguistico open source general-purpose. Stiamo vivendo il momento Deepseek R1 e, per celebrarlo, ti mostrerò come eseguire questo enorme modello da 1 terabyte su una singola GPU. 

Impareremo a configurare la macchina Runpod, installare llama.cpp e scaricare il modello a una velocità maggiore. Inoltre, eseguiremo il modello usando la CLI di llama.cpp, scaricando i layer del modello sulla RAM. Infine, affronteremo i problemi più comuni che emergono quando si eseguono questi modelli. Puoi trovare anche la nostra guida alla nuova Kimi K2.5 con Agent Swarm.

Configurazione di Runpod

Vai su Runpod GPU Cloud e crea un cloud con la macchina A100 SXM utilizzando la Python Container Image versione 2.8.0. 

Dopodiché, aumenta l’archiviazione del disco del container a 300 GB usando l’opzione Edit pod. 

Modifica del Pod per aumentare l’archiviazione del disco del container.

Una volta terminata la configurazione, vedrai che hai 300 GB di storage, sufficienti perché il nostro modello quantizzato a 1 bit richiede 250 GB di spazio. 

Dashboard della macchina Runpod 1X A100 SXM

Installazione di llama.cpp

1. Clicca sul pulsante connect e avvia l’istanza Jupyter Lab. Crea un nuovo notebook e installa gli strumenti Linux necessari, come cmake e curl.

!apt-get update
!apt-get install pciutils build-essential cmake curl libcurl4-openssl-dev -y

Installazione degli strumenti Linux.

2. Cambia la directory alla root. Non useremo la directory workspace. Il motivo è aumentare sia la velocità di download sia quella di caricamento del modello. Ne parleremo meglio nella sezione di troubleshooting alla fine.

%cd ..

3. Clona l’ultima versione del repository llama.cpp.

!git clone https://github.com/ggml-org/llama.cpp

Clonazione di llama.cpp

4. Imposta le opzioni di build. Stiamo eseguendo la build per una macchina GPU. Se vuoi usare l’inferenza su CPU, cambia DGGML_CUDA=ON in DGGML_CUDA=OFF.

!cmake llama.cpp -B llama.cpp/build \
  -DBUILD_SHARED_LIBS=OFF \
  -DGGML_CUDA=ON \
  -DLLAMA_CURL=ON \
  -DCMAKE_CUDA_ARCHITECTURES="80;90" \
  -DCMAKE_CUDA_FLAGS="-Wno-deprecated-gpu-targets"

Configurazione della build di llama.cpp

5. Useremo il comando cmake per compilare gli strumenti: llama-quantize, llama-cli, llama-gguf-split e llama-mtmd-cli.

!cmake --build llama.cpp/build --config Release -j --clean-first --target llama-quantize llama-cli llama-gguf-split llama-mtmd-cli

Installazione di llama-cli e altri strumenti.

6. Copia tutti gli strumenti di build nel repository principale, così da poterli raggiungere facilmente.

!cp llama.cpp/build/bin/llama-* llama.cpp

Download veloce di Kimi K2 con xnet

Le versioni quantizzate del modello Kimi K2 di Unsloth supportano xnet, che consente download e upload 4 volte più veloci rispetto a Git LFS. Per attivarlo in locale, installa l’ultima versione di huggingface_hub e hf_transfer:

!pip install huggingface_hub hf_transfer

Installazione dei pacchetti Python per scaricare i file da Hugging Face.

Usa le API di snapshot_download per scaricare solo i file del modello GGUF quantizzato a 1 bit per il repository:

import os
os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "0"

from huggingface_hub import snapshot_download
snapshot_download(
    repo_id = "unsloth/Kimi-K2-Instruct-GGUF",
    local_dir = "/unsloth/Kimi-K2-Instruct-GGUF",
    allow_patterns = ["*UD-TQ1_0*"],
)

Il download richiederà un po’ di tempo, a seconda della velocità di internet e dello storage.

Scarica il modello quantizzato a 1 bit da Hugging Face.

Per noi è stato velocissimo perché abbiamo soluzioni di storage più rapide con xnet attivato. 

Come eseguire Kimi K2 in locale

È il momento di testare la nostra versione quantizzata del modello. È qui che ho passato la maggior parte del tempo a fare debug, perché sto cercando di eseguirlo su una singola GPU. Non è impossibile, ma comporta diversi problemi legati al caricamento e all’esecuzione del modello.

Stiamo usando tutti i thread della CPU e massimizzando il caricamento dei layer sulla GPU, il che comporta l’offload su CPU sia delle up che delle down projection dei layer della Mixture of Experts. 

Ecco il comando che stiamo eseguendo nel terminale, che funziona senza intoppi:

./llama.cpp/llama-cli \
  --model /unsloth/Kimi-K2-Instruct-GGUF/UD-TQ1_0/Kimi-K2-Instruct-UD-TQ1_0-00001-of-00005.gguf \
  --cache-type-k q4_0 \
  --threads -1 \
  --n-gpu-layers 99 \
  --temp 0.6 \
  --min_p 0.01 \
  --ctx-size 16384 \
  --seed 3407 \
  -ot ".ffn_(up|down)_exps.=CPU" \
  --prompt "Hey"

Terminale di Jupyter Lab che esegue llama-cli

Il caricamento dell’intero modello ha richiesto quasi un minuto. Come possiamo vedere, il modello entra perfettamente nella macchina.

caricamento dei tensori su CPU e GPU.

Se controlli la dashboard di Runpod, vedrai che l’uso della CPU è alto e sia la RAM sia la VRAM vengono utilizzate.

Dashboard di Runpod che mostra l’utilizzo di RAM e VRAM.

Dopo circa quattro minuti di caricamento e riscaldamento, sei pronto per fare domande al modello.

Interfaccia di llama.cpp

Ho fatto una domanda semplice: "Che cos’è il monsone? Scrivi la risposta in una riga."

Test del modello Kimi K2

La generazione ha richiesto quasi cinque minuti. 

Ho indagato sul motivo della lentezza nella generazione dei token e si scopre che la GPU viene usata solo come memoria mentre tutta l’elaborazione è eseguita dalla CPU. Per risolvere, devi offloadare più layer sulla GPU, il che significa che ti serviranno 2 macchine A100.

Risoluzione dei problemi

In questa sezione, parleremo dei problemi comuni riscontrati quando si esegue un modello grande su una singola GPU e di come superarli.

1. Capire VRAM vs compute

Quando vedi 95% di utilizzo della RAM GPU, 0% di compute GPU e 99% di carico CPU, in genere significa che la VRAM sta fungendo da memoria per il modello, mentre l’elaborazione reale avviene sulla CPU.

Anche i modelli molto quantizzati e più piccoli a 1 bit devono comunque essere caricati in memoria, il che contribuisce all’uso della VRAM. L’utilizzo della GPU per il calcolo inizierà solo se offloaderai più layer sulla VRAM.

2. Affrontare la generazione lenta dei token

Per migliorare la velocità di generazione dei token, devi offloadare più layer del modello sulla GPU. Valuta magari una configurazione multi-GPU, come tre GPU A100. Imposta la temperatura a 0,6 per ridurre ripetizioni e incoerenze nel testo generato.

3. Requisiti hardware e prestazioni

Se hai VRAM o RAM limitata, puoi comunque eseguire modelli a 1 bit su una CPU consumer. Tuttavia, la generazione dei token sarà molto lenta (ad esempio, 1 token ogni 20 secondi).

L’unico requisito rigoroso per eseguire modelli a 1 bit è che lo spazio su disco + RAM + VRAM totale sia maggiore o uguale a 250 GB.

Per prestazioni ottimali (5+ token/secondo), avrai bisogno di almeno 250 GB di memoria unificata o di 250 GB combinati tra RAM e VRAM.

4. Risoluzione dei download lenti

Installa l’ultima versione di huggingface_hub e hf_transfer per accedere alla "xnet speed", 4 volte più veloce del semplice Git LFS.

Per ottimizzare l’archiviazione e il caricamento dei file GGUF shardati, è consigliabile usare un container disk per lo storage anziché un container volume. I container volume possono infatti causare download e caricamenti del modello lenti.

5. Risoluzione del caricamento lento del modello

Un caricamento lento del modello indica spesso che stai caricando un modello molto grande. Caricare modelli da storage di rete può rallentare notevolmente il processo. Usa sempre un SSD M.2 locale per archiviare i modelli. Gli SSD M.2 offrono velocità di lettura/scrittura molto più elevate rispetto ai dischi rigidi tradizionali o allo storage di rete, riducendo drasticamente i tempi di caricamento. 

Se non c’è RAM sufficiente per caricare il modello, il sistema operativo potrebbe iniziare a fare swapping su disco (usando un file di swap), molto più lento della RAM e causa di colli di bottiglia. Prova a usare una configurazione multi-GPU con più RAM.

Conclusioni

L’esecuzione di versioni quantizzate di Kimi K2 può ancora presentare sfide, poiché strumenti come llama.cpp sono in continua evoluzione per stare al passo con gli ultimi aggiornamenti del modello. Nelle prossime settimane, aspettati soluzioni migliorate che sposteranno i calcoli di generazione dei token sulle GPU per prestazioni migliori, invece di affidarsi esclusivamente alle CPU.

Inoltre, per me è stata un’esperienza di apprendimento preziosa. Ho acquisito una migliore comprensione di come la community open source collabori per ottimizzare e distribuire questi modelli nel modo più efficiente possibile.

Kimi K2 si distingue come uno dei migliori modelli open source, avvicinandosi alle capacità di modelli come DeepSeek R1, con prestazioni all’avanguardia in conoscenze di frontiera, matematica e coding tra i modelli non “thinking”. 

È particolarmente forte nella selezione degli strumenti e nelle attività agentiche, rendendolo un’alternativa conveniente a modelli premium come Claude 4 Sonnet per progetti di coding o vibe coding.

Puoi esporre la versione quantizzata di Kimi K2 per le tue soluzioni interne seguendo questa guida. Llama.cpp ti permette di servire i modelli linguistici come un’API compatibile con OpenAI. Per continuare a imparare, dai un’occhiata alla nostra guida a Kimi K2 con esempi. Se ti interessa l’AI agentica, non perderti il nostro nuovo corso su come creare sistemi multi-agent con LangGraph.


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
Large Language Models
Intelligenza artificiale

I migliori corsi di AI

Corso

Creare agenti AI con Google ADK

1 ore
7.6K
Crea un assistente per l'assistenza clienti passo dopo passo con l'Agent Development Kit (ADK) di Google.
Vedi i dettagliRight Arrow
Inizia Il Corso
Mostra altroRight Arrow
Correlato

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

Mostra AltroMostra Altro