Qwen2.5-32B-Instruct GGUF (imatrix)
Versione GGUF ottimizzata di Qwen2.5-32B-Instruct, quantizzata da Sophia-AI con importance matrix (imatrix) per inferenza efficiente su GPU consumer e server.
Questi sono i modelli ufficiali utilizzati sui nostri progetti.
🧠 Quantizzazione con imatrix: a differenza delle quantizzazioni standard, queste utilizzano una importance matrix generata su un dataset di calibrazione multilingue e multi-task. Questo preserva i pesi più critici del modello durante la compressione, con miglioramenti significativi soprattutto su Q2_K e Q3_K_M.
📦 File disponibili
| File | Quant | Dimensione | Score | Consigliato per |
|---|---|---|---|---|
Qwen2.5-32B-Instruct-F16.gguf |
F16 | ~65 GB | 8/8 ✅ | Massima qualità / Fine-tuning |
Qwen2.5-32B-Instruct-Q8_0.gguf |
Q8_0 | ~34 GB | 8/8 ✅ | GPU con 48+ GB VRAM |
Qwen2.5-32B-Instruct-Q6_K.gguf |
Q6_K | ~26 GB | 8/8 ✅ | GPU con 32+ GB VRAM |
Qwen2.5-32B-Instruct-Q5_K_M.gguf |
Q5_K_M | ~23 GB | 8/8 ✅ | GPU con 24+ GB VRAM |
Qwen2.5-32B-Instruct-Q4_K_M.gguf |
Q4_K_M | ~19 GB | 8/8 ✅ | ⭐ Best balance — GPU 24 GB |
Qwen2.5-32B-Instruct-Q3_K_M.gguf |
Q3_K_M | ~15 GB | 8/8 ✅ | 🔥 GPU 16 GB / Split GPU+CPU |
Qwen2.5-32B-Instruct-Q2_K.gguf |
Q2_K | ~12 GB | 8/8 ✅ | GPU 16 GB / CPU con 32+ GB RAM |
Tutti i quant passano 8/8 test funzionali — tool calling, JSON output, codice, italiano — senza degradazione rispetto a F16.
🧠 Perché imatrix?
La quantizzazione standard tratta tutti i pesi del modello allo stesso modo: li comprime uniformemente. Questo funziona bene per Q8 e Q6, ma a livelli aggressivi (Q3, Q2) i pesi critici per tool calling, JSON strutturato e ragionamento multilingue vengono compressi troppo.
L'importance matrix (imatrix) risolve questo problema:
- Eseguiamo un forward pass del modello F16 su un dataset di calibrazione rappresentativo
- Misuriamo quali pesi si attivano maggiormente (= sono più importanti)
- Durante la quantizzazione, i pesi importanti vengono compressi meno, quelli meno importanti di più
Il risultato: Q2_K con imatrix mantiene capacità che senza imatrix sarebbero perse.
Dataset di calibrazione
Il nostro dataset è stato costruito specificamente per riflettere i casi d'uso reali di Sophia Metal:
| Sezione | Contenuto | Scopo |
|---|---|---|
| 🇮🇹 Italiano (~30%) | Articoli Wikipedia italiani | Preservare capacità multilingue |
| 🇬🇧 Inglese (~30%) | WikiText (train + valid + test) | Baseline linguistica |
| 💻 Codice (~20%) | Python, JavaScript/Next.js, SQL, bash, YAML | Preservare generazione codice |
| 🔧 Chat + Tools (~20%) | Conversazioni Qwen2.5 con tool calling, JSON output, multi-turn | Preservare tool calling e output strutturato |
La sezione Chat + Tools è quella più critica: include esempi reali di <tool_call>, risposte JSON strutturate, tool definitions nei system prompt, parallel tool calls e conversazioni multi-turn. Senza questi pattern nel dataset di calibrazione, i pesi responsabili della generazione di {"name": "get_weather", "arguments": ...} verrebbero identificati come poco importanti e compressi troppo.
✅ Test di qualità
Tutti i quant sono stati testati con una suite automatizzata che verifica le capacità core per l'uso in produzione:
Test F16 Q8_0 Q6_K Q5_K_M Q4_K_M Q3_K_M Q2_K
─────────────────────────────────────────────────────────────────────────
JSON output semplice ✅ ✅ ✅ ✅ ✅ ✅ ✅
Tool call - singolo ✅ ✅ ✅ ✅ ✅ ✅ ✅
Tool call - multiplo ✅ ✅ ✅ ✅ ✅ ✅ ✅
Tool call - scelta tool ✅ ✅ ✅ ✅ ✅ ✅ ✅
Tool follow-up ✅ ✅ ✅ ✅ ✅ ✅ ✅
Italiano - coerenza ✅ ✅ ✅ ✅ ✅ ✅ ✅
Codice Python ✅ ✅ ✅ ✅ ✅ ✅ ✅
JSON strutturato complesso ✅ ✅ ✅ ✅ ✅ ✅ ✅
─────────────────────────────────────────────────────────────────────────
Score 8/8 8/8 8/8 8/8 8/8 8/8 8/8
I test verificano:
- Tool calling nativo (singolo, multiplo, selezione del tool corretto)
- Tool follow-up (interpretazione della risposta JSON del tool)
- JSON output (semplice e strutturato complesso con nested arrays)
- Italiano (coerenza linguistica)
- Codice (generazione Python con logica corretta)
🎯 Quale scegliere?
🖥️ Desktop / Server GPU
| La tua VRAM | Modello consigliato | Note |
|---|---|---|
| 80 GB+ (A100/H100) | Q8_0 o Q6_K | Massima qualità |
| 48 GB (A6000/RTX 6000 Ada) | Q8_0 | Full offload |
| 32 GB (V100) | Q6_K o Q5_K_M | Ottimo compromesso |
| 24 GB (RTX 3090/4090) | Q4_K_M ⭐ | Sweet spot |
| 16 GB (RTX 4080/4070 Ti) | Q3_K_M o Q2_K | Partial offload consigliato |
🔥 Multi-GPU / Split GPU+CPU
Per chi ha GPU con VRAM limitata ma vuole sfruttare la potenza di un 32B:
| Setup | Modello | Note |
|---|---|---|
| 2x RTX 3090/4090 (48 GB tot) | Q5_K_M o Q6_K | Qualità eccellente |
| RTX 4090 + CPU offload | Q4_K_M ⭐ | Buon compromesso velocità/qualità |
| RTX 4080 16 GB + CPU offload | Q3_K_M | Funziona bene |
💡 Usa
n_gpu_layersper controllare quante layers caricare su GPU. Le layers rimanenti vengono eseguite su CPU.
🔥 Sophia Metal / Edge Computing (8GB unified memory)
⚠️ Il modello 32B è troppo grande per dispositivi edge con 8GB di memoria unificata. Per edge computing su Sophia Metal, consigliamo Qwen3-4B-Instruct-2507-GGUF con Q3_K_M.
Per dispositivi edge con memoria unificata elevata (32+ GB, es. Apple Silicon M2 Pro/Max/Ultra):
| Setup | Modello | Note |
|---|---|---|
| 64 GB unified | Q4_K_M ⭐ | Best balance su Apple Silicon |
| 32 GB unified | Q3_K_M o Q2_K | Funziona bene grazie a imatrix |
💻 CPU Only
| RAM disponibile | Modello |
|---|---|
| 64 GB+ | Q4_K_M |
| 48 GB | Q3_K_M |
| 32 GB | Q2_K |
📥 Download
# ⭐ Consigliato per la maggior parte degli utenti (RTX 3090/4090)
huggingface-cli download Sophia-AI/Qwen2.5-32B-Instruct-GGUF \
Qwen2.5-32B-Instruct-Q4_K_M.gguf
# 🔥 Per GPU 16 GB / Split GPU+CPU
huggingface-cli download Sophia-AI/Qwen2.5-32B-Instruct-GGUF \
Qwen2.5-32B-Instruct-Q3_K_M.gguf
# Massima qualità (48+ GB VRAM)
huggingface-cli download Sophia-AI/Qwen2.5-32B-Instruct-GGUF \
Qwen2.5-32B-Instruct-Q6_K.gguf
🚀 Utilizzo
llama-cpp-python
from llama_cpp import Llama
llm = Llama.from_pretrained(
repo_id="Sophia-AI/Qwen2.5-32B-Instruct-GGUF",
filename="*Q4_K_M.gguf",
n_ctx=4096,
n_gpu_layers=-1, # -1 = tutte le layers su GPU
)
response = llm.create_chat_completion(
messages=[
{"role": "user", "content": "Ciao, come stai?"}
]
)
print(response["choices"][0]["message"]["content"])
Tool calling
response = llm.create_chat_completion(
messages=[
{"role": "user", "content": "What's the weather in Rome?"}
],
tools=[{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get weather for a city",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string"}
},
"required": ["city"]
}
}
}]
)
llama.cpp CLI
./llama-cli -m Qwen2.5-32B-Instruct-Q4_K_M.gguf \
-p "<|im_start|>user\nCiao!<|im_end|>\n<|im_start|>assistant\n" \
-n 256 -ngl 99
Ollama
ollama run hf.co/Sophia-AI/Qwen2.5-32B-Instruct-GGUF:Q4_K_M
📊 Specifiche modello
| Parametro | Valore |
|---|---|
| Parametri | 32.5B |
| Context length | 131,072 tokens |
| Architettura | Qwen2.5 |
| Vocab size | 152,064 |
| Layers | 64 |
| Attention heads | 40 |
| KV heads | 8 (GQA) |
🔧 Dettagli quantizzazione
| Parametro | Valore |
|---|---|
| Sorgente | Qwen2.5-32B-Instruct F16 (convertito da HuggingFace safetensors) |
| Tool | llama.cpp llama-quantize con --imatrix |
| imatrix | Generata con llama-imatrix, chunk size 512 |
| Calibration dataset | ~10MB, multilingue (IT/EN), codice (Python/JS/SQL/bash), chat Qwen2.5 con tool calling |
| GPU per imatrix | NVIDIA (full GPU offload) |
🔗 Links
- Sophia Metal: metal.2sophia.ai
- Sophia AI: 2sophia.ai
- Modello base: Qwen/Qwen2.5-32B-Instruct
📜 Licenza
Apache 2.0 — Stesso del modello base Qwen2.5.
🙏 Crediti
- Downloads last month
- 65
2-bit
3-bit
4-bit
5-bit
6-bit
8-bit
16-bit