Qwen 3.5 e la Cache KV: Un Dettaglio Cruciale

Se stai utilizzando il modello Qwen 3.5 35B A3B in locale, ad esempio con engine come llama.cpp, è fondamentale configurare correttamente la cache KV. Diversamente da quanto si potrebbe pensare, Qwen 3.5 richiede che la cache KV sia impostata su bf16 (bfloat16) anziché sul più comune fp16 (float16).

Verifica della Perplexity

Per convalidare questa affermazione, sono stati eseguiti test di perplexity (PPL) sul dataset wikitext-2-raw. I risultati mostrano chiaramente che l'utilizzo di una cache KV FP16 produce risultati diversi rispetto all'utilizzo di BF16.

  • Run 1: Cache KV FP16 (default): PPL = 6.5511 +/- 0.04172
  • Run 2: Cache KV FP32: PPL = 6.5511 +/- 0.04172
  • Run 3: Cache KV BFloat16: PPL = 6.5497 +/- 0.04170

Implementazioni Ufficiali vs. llama.cpp

È importante notare che le implementazioni ufficiali del team Qwen, come vLLM, utilizzano BF16 come impostazione predefinita per la cache KV. La scelta di llama.cpp di utilizzare FP16 come default sembra essere un'eccezione.

Per chi valuta deployment on-premise, esistono trade-off da considerare attentamente. AI-RADAR offre framework analitici su /llm-onpremise per una valutazione approfondita.