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:

  1. Eseguiamo un forward pass del modello F16 su un dataset di calibrazione rappresentativo
  2. Misuriamo quali pesi si attivano maggiormente (= sono più importanti)
  3. 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_layers per 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


📜 Licenza

Apache 2.0 — Stesso del modello base Qwen2.5.


🙏 Crediti

Downloads last month
65
GGUF
Model size
33B params
Architecture
qwen2
Hardware compatibility
Log In to add your hardware

2-bit

3-bit

4-bit

5-bit

6-bit

8-bit

16-bit

Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for Sophia-AI/Qwen2.5-32B-Instruct-GGUF

Base model

Qwen/Qwen2.5-32B
Quantized
(137)
this model