From: Kawrakow Date: Wed, 17 Jan 2024 10:36:37 +0000 (+0200) Subject: llama : use Q4_K for attn_v for Q2_K_S when n_gqa >= 4 (#4996) X-Git-Tag: upstream/0.0.4488~2590 X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=2b3a665d3917edf393761a24c4835447894df74a;p=pkg%2Fggml%2Fsources%2Fllama.cpp llama : use Q4_K for attn_v for Q2_K_S when n_gqa >= 4 (#4996) Co-authored-by: Iwan Kawrakow --- diff --git a/llama.cpp b/llama.cpp index 765d20dd..2c5983c6 100644 --- a/llama.cpp +++ b/llama.cpp @@ -8477,7 +8477,12 @@ static ggml_type get_k_quant_type(quantize_state_internal & qs, ggml_type new_ty } else if (name == "token_embd.weight") new_type = GGML_TYPE_Q2_K; } else if (name.find("attn_v.weight") != std::string::npos) { - if (ftype == LLAMA_FTYPE_MOSTLY_Q2_K) new_type = GGML_TYPE_Q3_K; + if (ftype == LLAMA_FTYPE_MOSTLY_Q2_K) { + new_type = qs.model.hparams.n_gqa() >= 4 ? GGML_TYPE_Q4_K : GGML_TYPE_Q3_K; + } + else if (ftype == LLAMA_FTYPE_MOSTLY_Q2_K_S && qs.model.hparams.n_gqa() >= 4) { + new_type = GGML_TYPE_Q4_K; + } else if (ftype == LLAMA_FTYPE_MOSTLY_Q3_K_M) { new_type = qs.i_attention_wv < 2 ? GGML_TYPE_Q5_K : GGML_TYPE_Q4_K; }