diff --git a/src/llama-quant.cpp b/src/llama-quant.cpp index 1348884dd..70feba14c 100644 --- a/src/llama-quant.cpp +++ b/src/llama-quant.cpp @@ -161,6 +161,12 @@ static tensor_category tensor_get_category(const std::string & tensor_name) { return tensor_category::OTHER; } +// check if tensor is a MoE expert tensor (used by GGML_OP_MUL_MAT_ID) +static bool tensor_is_expert(const std::string & tensor_name) { + return tensor_name.find("_exps.") != std::string::npos || + tensor_name.find("_chexps.") != std::string::npos; +} + // check if category is for attention-v-like tensors (more sensitive to quantization) static bool category_is_attn_v(tensor_category cat) { return cat == tensor_category::ATTENTION_V || @@ -296,7 +302,7 @@ static bool tensor_allows_quantization(const llama_model_quantize_params * param // trivial checks first -- no string ops needed if (params->only_copy) return false; - // quantize only 2D and 3D tensors (experts) + // quantize only 2D+ tensors (matrices, experts, conv kernels) if (ggml_n_dims(tensor) < 2) return false; const std::string name = ggml_get_name(tensor); @@ -541,12 +547,7 @@ static ggml_type llama_tensor_get_type_impl(quantize_state_impl & qs, ggml_type } else if (ftype == LLAMA_FTYPE_MOSTLY_MXFP4_MOE) { // MoE tensors -> MXFP4 // other tensors -> Q8_0 - // MLA projection tensors are also 3D, so match expert tensor roles explicitly. - const bool is_bailingmoe3_expert = arch == LLM_ARCH_BAILINGMOE3 && - (category == tensor_category::FFN_UP || - category == tensor_category::FFN_GATE || - category == tensor_category::FFN_DOWN); - if (tensor->ne[2] > 1 && (arch != LLM_ARCH_BAILINGMOE3 || is_bailingmoe3_expert)) { + if (tensor_is_expert(name)) { new_type = GGML_TYPE_MXFP4; } else { new_type = GGML_TYPE_Q8_0; @@ -1307,11 +1308,11 @@ static void llama_model_quantize_impl(const std::string & fname_inp, const std:: if (it == imatrix_data->end()) { LLAMA_LOG_INFO("\n====== %s: did not find weights for %s\n", __func__, tensor->name); } else { - if (it->second.size() == (size_t)tensor->ne[0]*tensor->ne[2]) { + if (it->second.size() == (size_t)tensor->ne[0]*tensor->ne[2]*tensor->ne[3]) { imatrix = it->second.data(); } else { LLAMA_LOG_INFO("\n====== %s: imatrix size %d is different from tensor size %d for %s\n", __func__, - int(it->second.size()), int(tensor->ne[0]*tensor->ne[2]), tensor->name); + int(it->second.size()), int(tensor->ne[0]*tensor->ne[2]*tensor->ne[3]), tensor->name); // this can happen when quantizing an old mixtral model with split tensors with a new incompatible imatrix // this is a significant error and it may be good idea to abort the process if this happens, @@ -1319,7 +1320,7 @@ static void llama_model_quantize_impl(const std::string & fname_inp, const std:: // tok_embd should be ignored in this case, since it always causes this warning if (!tensor_name_match_token_embd(tensor->name)) { throw std::runtime_error(format("imatrix size %d is different from tensor size %d for %s", - int(it->second.size()), int(tensor->ne[0]*tensor->ne[2]), tensor->name)); + int(it->second.size()), int(tensor->ne[0]*tensor->ne[2]*tensor->ne[3]), tensor->name)); } } } @@ -1341,7 +1342,7 @@ static void llama_model_quantize_impl(const std::string & fname_inp, const std:: const int64_t n_per_row = tensor->ne[0]; const int64_t nrows_per_expert = tensor->ne[1]; - const int64_t nrows_total = tensor->ne[1] * tensor->ne[2]; + const int64_t nrows_total = ggml_nrows(tensor); const size_t row_size_src = ggml_row_size(tensor->type, n_per_row); const size_t row_size_dst = ggml_row_size(new_type, n_per_row); diff --git a/tests/snapshots/deepseek-v3.1.schema b/tests/snapshots/deepseek-v3.1.schema index 0e9dfd6ed..117a76833 100644 --- a/tests/snapshots/deepseek-v3.1.schema +++ b/tests/snapshots/deepseek-v3.1.schema @@ -2927,430 +2927,552 @@ blk.60.attn_k_b.weight q4_0 [MXFP4_MOE] mxfp4 output.weight q8_0 token_embd.weight q8_0 +blk.0.attn_k_b.weight q8_0 blk.0.attn_kv_a_mqa.weight q8_0 blk.0.attn_output.weight q8_0 blk.0.attn_q_a.weight q8_0 blk.0.attn_q_b.weight q8_0 +blk.0.attn_v_b.weight q8_0 blk.0.ffn_down.weight q8_0 blk.0.ffn_gate.weight q8_0 blk.0.ffn_up.weight q8_0 +blk.1.attn_k_b.weight q8_0 blk.1.attn_kv_a_mqa.weight q8_0 blk.1.attn_output.weight q8_0 blk.1.attn_q_a.weight q8_0 blk.1.attn_q_b.weight q8_0 +blk.1.attn_v_b.weight q8_0 blk.1.ffn_down.weight q8_0 blk.1.ffn_gate.weight q8_0 blk.1.ffn_up.weight q8_0 +blk.2.attn_k_b.weight q8_0 blk.2.attn_kv_a_mqa.weight q8_0 blk.2.attn_output.weight q8_0 blk.2.attn_q_a.weight q8_0 blk.2.attn_q_b.weight q8_0 +blk.2.attn_v_b.weight q8_0 blk.2.ffn_down.weight q8_0 blk.2.ffn_gate.weight q8_0 blk.2.ffn_up.weight q8_0 +blk.3.attn_k_b.weight q8_0 blk.3.attn_kv_a_mqa.weight q8_0 blk.3.attn_output.weight q8_0 blk.3.attn_q_a.weight q8_0 blk.3.attn_q_b.weight q8_0 +blk.3.attn_v_b.weight q8_0 blk.3.ffn_down_shexp.weight q8_0 blk.3.ffn_gate_shexp.weight q8_0 blk.3.ffn_up_shexp.weight q8_0 +blk.4.attn_k_b.weight q8_0 blk.4.attn_kv_a_mqa.weight q8_0 blk.4.attn_output.weight q8_0 blk.4.attn_q_a.weight q8_0 blk.4.attn_q_b.weight q8_0 +blk.4.attn_v_b.weight q8_0 blk.4.ffn_down_shexp.weight q8_0 blk.4.ffn_gate_shexp.weight q8_0 blk.4.ffn_up_shexp.weight q8_0 +blk.5.attn_k_b.weight q8_0 blk.5.attn_kv_a_mqa.weight q8_0 blk.5.attn_output.weight q8_0 blk.5.attn_q_a.weight q8_0 blk.5.attn_q_b.weight q8_0 +blk.5.attn_v_b.weight q8_0 blk.5.ffn_down_shexp.weight q8_0 blk.5.ffn_gate_shexp.weight q8_0 blk.5.ffn_up_shexp.weight q8_0 +blk.6.attn_k_b.weight q8_0 blk.6.attn_kv_a_mqa.weight q8_0 blk.6.attn_output.weight q8_0 blk.6.attn_q_a.weight q8_0 blk.6.attn_q_b.weight q8_0 +blk.6.attn_v_b.weight q8_0 blk.6.ffn_down_shexp.weight q8_0 blk.6.ffn_gate_shexp.weight q8_0 blk.6.ffn_up_shexp.weight q8_0 +blk.7.attn_k_b.weight q8_0 blk.7.attn_kv_a_mqa.weight q8_0 blk.7.attn_output.weight q8_0 blk.7.attn_q_a.weight q8_0 blk.7.attn_q_b.weight q8_0 +blk.7.attn_v_b.weight q8_0 blk.7.ffn_down_shexp.weight q8_0 blk.7.ffn_gate_shexp.weight q8_0 blk.7.ffn_up_shexp.weight q8_0 +blk.8.attn_k_b.weight q8_0 blk.8.attn_kv_a_mqa.weight q8_0 blk.8.attn_output.weight q8_0 blk.8.attn_q_a.weight q8_0 blk.8.attn_q_b.weight q8_0 +blk.8.attn_v_b.weight q8_0 blk.8.ffn_down_shexp.weight q8_0 blk.8.ffn_gate_shexp.weight q8_0 blk.8.ffn_up_shexp.weight q8_0 +blk.9.attn_k_b.weight q8_0 blk.9.attn_kv_a_mqa.weight q8_0 blk.9.attn_output.weight q8_0 blk.9.attn_q_a.weight q8_0 blk.9.attn_q_b.weight q8_0 +blk.9.attn_v_b.weight q8_0 blk.9.ffn_down_shexp.weight q8_0 blk.9.ffn_gate_shexp.weight q8_0 blk.9.ffn_up_shexp.weight q8_0 +blk.10.attn_k_b.weight q8_0 blk.10.attn_kv_a_mqa.weight q8_0 blk.10.attn_output.weight q8_0 blk.10.attn_q_a.weight q8_0 blk.10.attn_q_b.weight q8_0 +blk.10.attn_v_b.weight q8_0 blk.10.ffn_down_shexp.weight q8_0 blk.10.ffn_gate_shexp.weight q8_0 blk.10.ffn_up_shexp.weight q8_0 +blk.11.attn_k_b.weight q8_0 blk.11.attn_kv_a_mqa.weight q8_0 blk.11.attn_output.weight q8_0 blk.11.attn_q_a.weight q8_0 blk.11.attn_q_b.weight q8_0 +blk.11.attn_v_b.weight q8_0 blk.11.ffn_down_shexp.weight q8_0 blk.11.ffn_gate_shexp.weight q8_0 blk.11.ffn_up_shexp.weight q8_0 +blk.12.attn_k_b.weight q8_0 blk.12.attn_kv_a_mqa.weight q8_0 blk.12.attn_output.weight q8_0 blk.12.attn_q_a.weight q8_0 blk.12.attn_q_b.weight q8_0 +blk.12.attn_v_b.weight q8_0 blk.12.ffn_down_shexp.weight q8_0 blk.12.ffn_gate_shexp.weight q8_0 blk.12.ffn_up_shexp.weight q8_0 +blk.13.attn_k_b.weight q8_0 blk.13.attn_kv_a_mqa.weight q8_0 blk.13.attn_output.weight q8_0 blk.13.attn_q_a.weight q8_0 blk.13.attn_q_b.weight q8_0 +blk.13.attn_v_b.weight q8_0 blk.13.ffn_down_shexp.weight q8_0 blk.13.ffn_gate_shexp.weight q8_0 blk.13.ffn_up_shexp.weight q8_0 +blk.14.attn_k_b.weight q8_0 blk.14.attn_kv_a_mqa.weight q8_0 blk.14.attn_output.weight q8_0 blk.14.attn_q_a.weight q8_0 blk.14.attn_q_b.weight q8_0 +blk.14.attn_v_b.weight q8_0 blk.14.ffn_down_shexp.weight q8_0 blk.14.ffn_gate_shexp.weight q8_0 blk.14.ffn_up_shexp.weight q8_0 +blk.15.attn_k_b.weight q8_0 blk.15.attn_kv_a_mqa.weight q8_0 blk.15.attn_output.weight q8_0 blk.15.attn_q_a.weight q8_0 blk.15.attn_q_b.weight q8_0 +blk.15.attn_v_b.weight q8_0 blk.15.ffn_down_shexp.weight q8_0 blk.15.ffn_gate_shexp.weight q8_0 blk.15.ffn_up_shexp.weight q8_0 +blk.16.attn_k_b.weight q8_0 blk.16.attn_kv_a_mqa.weight q8_0 blk.16.attn_output.weight q8_0 blk.16.attn_q_a.weight q8_0 blk.16.attn_q_b.weight q8_0 +blk.16.attn_v_b.weight q8_0 blk.16.ffn_down_shexp.weight q8_0 blk.16.ffn_gate_shexp.weight q8_0 blk.16.ffn_up_shexp.weight q8_0 +blk.17.attn_k_b.weight q8_0 blk.17.attn_kv_a_mqa.weight q8_0 blk.17.attn_output.weight q8_0 blk.17.attn_q_a.weight q8_0 blk.17.attn_q_b.weight q8_0 +blk.17.attn_v_b.weight q8_0 blk.17.ffn_down_shexp.weight q8_0 blk.17.ffn_gate_shexp.weight q8_0 blk.17.ffn_up_shexp.weight q8_0 +blk.18.attn_k_b.weight q8_0 blk.18.attn_kv_a_mqa.weight q8_0 blk.18.attn_output.weight q8_0 blk.18.attn_q_a.weight q8_0 blk.18.attn_q_b.weight q8_0 +blk.18.attn_v_b.weight q8_0 blk.18.ffn_down_shexp.weight q8_0 blk.18.ffn_gate_shexp.weight q8_0 blk.18.ffn_up_shexp.weight q8_0 +blk.19.attn_k_b.weight q8_0 blk.19.attn_kv_a_mqa.weight q8_0 blk.19.attn_output.weight q8_0 blk.19.attn_q_a.weight q8_0 blk.19.attn_q_b.weight q8_0 +blk.19.attn_v_b.weight q8_0 blk.19.ffn_down_shexp.weight q8_0 blk.19.ffn_gate_shexp.weight q8_0 blk.19.ffn_up_shexp.weight q8_0 +blk.20.attn_k_b.weight q8_0 blk.20.attn_kv_a_mqa.weight q8_0 blk.20.attn_output.weight q8_0 blk.20.attn_q_a.weight q8_0 blk.20.attn_q_b.weight q8_0 +blk.20.attn_v_b.weight q8_0 blk.20.ffn_down_shexp.weight q8_0 blk.20.ffn_gate_shexp.weight q8_0 blk.20.ffn_up_shexp.weight q8_0 +blk.21.attn_k_b.weight q8_0 blk.21.attn_kv_a_mqa.weight q8_0 blk.21.attn_output.weight q8_0 blk.21.attn_q_a.weight q8_0 blk.21.attn_q_b.weight q8_0 +blk.21.attn_v_b.weight q8_0 blk.21.ffn_down_shexp.weight q8_0 blk.21.ffn_gate_shexp.weight q8_0 blk.21.ffn_up_shexp.weight q8_0 +blk.22.attn_k_b.weight q8_0 blk.22.attn_kv_a_mqa.weight q8_0 blk.22.attn_output.weight q8_0 blk.22.attn_q_a.weight q8_0 blk.22.attn_q_b.weight q8_0 +blk.22.attn_v_b.weight q8_0 blk.22.ffn_down_shexp.weight q8_0 blk.22.ffn_gate_shexp.weight q8_0 blk.22.ffn_up_shexp.weight q8_0 +blk.23.attn_k_b.weight q8_0 blk.23.attn_kv_a_mqa.weight q8_0 blk.23.attn_output.weight q8_0 blk.23.attn_q_a.weight q8_0 blk.23.attn_q_b.weight q8_0 +blk.23.attn_v_b.weight q8_0 blk.23.ffn_down_shexp.weight q8_0 blk.23.ffn_gate_shexp.weight q8_0 blk.23.ffn_up_shexp.weight q8_0 +blk.24.attn_k_b.weight q8_0 blk.24.attn_kv_a_mqa.weight q8_0 blk.24.attn_output.weight q8_0 blk.24.attn_q_a.weight q8_0 blk.24.attn_q_b.weight q8_0 +blk.24.attn_v_b.weight q8_0 blk.24.ffn_down_shexp.weight q8_0 blk.24.ffn_gate_shexp.weight q8_0 blk.24.ffn_up_shexp.weight q8_0 +blk.25.attn_k_b.weight q8_0 blk.25.attn_kv_a_mqa.weight q8_0 blk.25.attn_output.weight q8_0 blk.25.attn_q_a.weight q8_0 blk.25.attn_q_b.weight q8_0 +blk.25.attn_v_b.weight q8_0 blk.25.ffn_down_shexp.weight q8_0 blk.25.ffn_gate_shexp.weight q8_0 blk.25.ffn_up_shexp.weight q8_0 +blk.26.attn_k_b.weight q8_0 blk.26.attn_kv_a_mqa.weight q8_0 blk.26.attn_output.weight q8_0 blk.26.attn_q_a.weight q8_0 blk.26.attn_q_b.weight q8_0 +blk.26.attn_v_b.weight q8_0 blk.26.ffn_down_shexp.weight q8_0 blk.26.ffn_gate_shexp.weight q8_0 blk.26.ffn_up_shexp.weight q8_0 +blk.27.attn_k_b.weight q8_0 blk.27.attn_kv_a_mqa.weight q8_0 blk.27.attn_output.weight q8_0 blk.27.attn_q_a.weight q8_0 blk.27.attn_q_b.weight q8_0 +blk.27.attn_v_b.weight q8_0 blk.27.ffn_down_shexp.weight q8_0 blk.27.ffn_gate_shexp.weight q8_0 blk.27.ffn_up_shexp.weight q8_0 +blk.28.attn_k_b.weight q8_0 blk.28.attn_kv_a_mqa.weight q8_0 blk.28.attn_output.weight q8_0 blk.28.attn_q_a.weight q8_0 blk.28.attn_q_b.weight q8_0 +blk.28.attn_v_b.weight q8_0 blk.28.ffn_down_shexp.weight q8_0 blk.28.ffn_gate_shexp.weight q8_0 blk.28.ffn_up_shexp.weight q8_0 +blk.29.attn_k_b.weight q8_0 blk.29.attn_kv_a_mqa.weight q8_0 blk.29.attn_output.weight q8_0 blk.29.attn_q_a.weight q8_0 blk.29.attn_q_b.weight q8_0 +blk.29.attn_v_b.weight q8_0 blk.29.ffn_down_shexp.weight q8_0 blk.29.ffn_gate_shexp.weight q8_0 blk.29.ffn_up_shexp.weight q8_0 +blk.30.attn_k_b.weight q8_0 blk.30.attn_kv_a_mqa.weight q8_0 blk.30.attn_output.weight q8_0 blk.30.attn_q_a.weight q8_0 blk.30.attn_q_b.weight q8_0 +blk.30.attn_v_b.weight q8_0 blk.30.ffn_down_shexp.weight q8_0 blk.30.ffn_gate_shexp.weight q8_0 blk.30.ffn_up_shexp.weight q8_0 +blk.31.attn_k_b.weight q8_0 blk.31.attn_kv_a_mqa.weight q8_0 blk.31.attn_output.weight q8_0 blk.31.attn_q_a.weight q8_0 blk.31.attn_q_b.weight q8_0 +blk.31.attn_v_b.weight q8_0 blk.31.ffn_down_shexp.weight q8_0 blk.31.ffn_gate_shexp.weight q8_0 blk.31.ffn_up_shexp.weight q8_0 +blk.32.attn_k_b.weight q8_0 blk.32.attn_kv_a_mqa.weight q8_0 blk.32.attn_output.weight q8_0 blk.32.attn_q_a.weight q8_0 blk.32.attn_q_b.weight q8_0 +blk.32.attn_v_b.weight q8_0 blk.32.ffn_down_shexp.weight q8_0 blk.32.ffn_gate_shexp.weight q8_0 blk.32.ffn_up_shexp.weight q8_0 +blk.33.attn_k_b.weight q8_0 blk.33.attn_kv_a_mqa.weight q8_0 blk.33.attn_output.weight q8_0 blk.33.attn_q_a.weight q8_0 blk.33.attn_q_b.weight q8_0 +blk.33.attn_v_b.weight q8_0 blk.33.ffn_down_shexp.weight q8_0 blk.33.ffn_gate_shexp.weight q8_0 blk.33.ffn_up_shexp.weight q8_0 +blk.34.attn_k_b.weight q8_0 blk.34.attn_kv_a_mqa.weight q8_0 blk.34.attn_output.weight q8_0 blk.34.attn_q_a.weight q8_0 blk.34.attn_q_b.weight q8_0 +blk.34.attn_v_b.weight q8_0 blk.34.ffn_down_shexp.weight q8_0 blk.34.ffn_gate_shexp.weight q8_0 blk.34.ffn_up_shexp.weight q8_0 +blk.35.attn_k_b.weight q8_0 blk.35.attn_kv_a_mqa.weight q8_0 blk.35.attn_output.weight q8_0 blk.35.attn_q_a.weight q8_0 blk.35.attn_q_b.weight q8_0 +blk.35.attn_v_b.weight q8_0 blk.35.ffn_down_shexp.weight q8_0 blk.35.ffn_gate_shexp.weight q8_0 blk.35.ffn_up_shexp.weight q8_0 +blk.36.attn_k_b.weight q8_0 blk.36.attn_kv_a_mqa.weight q8_0 blk.36.attn_output.weight q8_0 blk.36.attn_q_a.weight q8_0 blk.36.attn_q_b.weight q8_0 +blk.36.attn_v_b.weight q8_0 blk.36.ffn_down_shexp.weight q8_0 blk.36.ffn_gate_shexp.weight q8_0 blk.36.ffn_up_shexp.weight q8_0 +blk.37.attn_k_b.weight q8_0 blk.37.attn_kv_a_mqa.weight q8_0 blk.37.attn_output.weight q8_0 blk.37.attn_q_a.weight q8_0 blk.37.attn_q_b.weight q8_0 +blk.37.attn_v_b.weight q8_0 blk.37.ffn_down_shexp.weight q8_0 blk.37.ffn_gate_shexp.weight q8_0 blk.37.ffn_up_shexp.weight q8_0 +blk.38.attn_k_b.weight q8_0 blk.38.attn_kv_a_mqa.weight q8_0 blk.38.attn_output.weight q8_0 blk.38.attn_q_a.weight q8_0 blk.38.attn_q_b.weight q8_0 +blk.38.attn_v_b.weight q8_0 blk.38.ffn_down_shexp.weight q8_0 blk.38.ffn_gate_shexp.weight q8_0 blk.38.ffn_up_shexp.weight q8_0 +blk.39.attn_k_b.weight q8_0 blk.39.attn_kv_a_mqa.weight q8_0 blk.39.attn_output.weight q8_0 blk.39.attn_q_a.weight q8_0 blk.39.attn_q_b.weight q8_0 +blk.39.attn_v_b.weight q8_0 blk.39.ffn_down_shexp.weight q8_0 blk.39.ffn_gate_shexp.weight q8_0 blk.39.ffn_up_shexp.weight q8_0 +blk.40.attn_k_b.weight q8_0 blk.40.attn_kv_a_mqa.weight q8_0 blk.40.attn_output.weight q8_0 blk.40.attn_q_a.weight q8_0 blk.40.attn_q_b.weight q8_0 +blk.40.attn_v_b.weight q8_0 blk.40.ffn_down_shexp.weight q8_0 blk.40.ffn_gate_shexp.weight q8_0 blk.40.ffn_up_shexp.weight q8_0 +blk.41.attn_k_b.weight q8_0 blk.41.attn_kv_a_mqa.weight q8_0 blk.41.attn_output.weight q8_0 blk.41.attn_q_a.weight q8_0 blk.41.attn_q_b.weight q8_0 +blk.41.attn_v_b.weight q8_0 blk.41.ffn_down_shexp.weight q8_0 blk.41.ffn_gate_shexp.weight q8_0 blk.41.ffn_up_shexp.weight q8_0 +blk.42.attn_k_b.weight q8_0 blk.42.attn_kv_a_mqa.weight q8_0 blk.42.attn_output.weight q8_0 blk.42.attn_q_a.weight q8_0 blk.42.attn_q_b.weight q8_0 +blk.42.attn_v_b.weight q8_0 blk.42.ffn_down_shexp.weight q8_0 blk.42.ffn_gate_shexp.weight q8_0 blk.42.ffn_up_shexp.weight q8_0 +blk.43.attn_k_b.weight q8_0 blk.43.attn_kv_a_mqa.weight q8_0 blk.43.attn_output.weight q8_0 blk.43.attn_q_a.weight q8_0 blk.43.attn_q_b.weight q8_0 +blk.43.attn_v_b.weight q8_0 blk.43.ffn_down_shexp.weight q8_0 blk.43.ffn_gate_shexp.weight q8_0 blk.43.ffn_up_shexp.weight q8_0 +blk.44.attn_k_b.weight q8_0 blk.44.attn_kv_a_mqa.weight q8_0 blk.44.attn_output.weight q8_0 blk.44.attn_q_a.weight q8_0 blk.44.attn_q_b.weight q8_0 +blk.44.attn_v_b.weight q8_0 blk.44.ffn_down_shexp.weight q8_0 blk.44.ffn_gate_shexp.weight q8_0 blk.44.ffn_up_shexp.weight q8_0 +blk.45.attn_k_b.weight q8_0 blk.45.attn_kv_a_mqa.weight q8_0 blk.45.attn_output.weight q8_0 blk.45.attn_q_a.weight q8_0 blk.45.attn_q_b.weight q8_0 +blk.45.attn_v_b.weight q8_0 blk.45.ffn_down_shexp.weight q8_0 blk.45.ffn_gate_shexp.weight q8_0 blk.45.ffn_up_shexp.weight q8_0 +blk.46.attn_k_b.weight q8_0 blk.46.attn_kv_a_mqa.weight q8_0 blk.46.attn_output.weight q8_0 blk.46.attn_q_a.weight q8_0 blk.46.attn_q_b.weight q8_0 +blk.46.attn_v_b.weight q8_0 blk.46.ffn_down_shexp.weight q8_0 blk.46.ffn_gate_shexp.weight q8_0 blk.46.ffn_up_shexp.weight q8_0 +blk.47.attn_k_b.weight q8_0 blk.47.attn_kv_a_mqa.weight q8_0 blk.47.attn_output.weight q8_0 blk.47.attn_q_a.weight q8_0 blk.47.attn_q_b.weight q8_0 +blk.47.attn_v_b.weight q8_0 blk.47.ffn_down_shexp.weight q8_0 blk.47.ffn_gate_shexp.weight q8_0 blk.47.ffn_up_shexp.weight q8_0 +blk.48.attn_k_b.weight q8_0 blk.48.attn_kv_a_mqa.weight q8_0 blk.48.attn_output.weight q8_0 blk.48.attn_q_a.weight q8_0 blk.48.attn_q_b.weight q8_0 +blk.48.attn_v_b.weight q8_0 blk.48.ffn_down_shexp.weight q8_0 blk.48.ffn_gate_shexp.weight q8_0 blk.48.ffn_up_shexp.weight q8_0 +blk.49.attn_k_b.weight q8_0 blk.49.attn_kv_a_mqa.weight q8_0 blk.49.attn_output.weight q8_0 blk.49.attn_q_a.weight q8_0 blk.49.attn_q_b.weight q8_0 +blk.49.attn_v_b.weight q8_0 blk.49.ffn_down_shexp.weight q8_0 blk.49.ffn_gate_shexp.weight q8_0 blk.49.ffn_up_shexp.weight q8_0 +blk.50.attn_k_b.weight q8_0 blk.50.attn_kv_a_mqa.weight q8_0 blk.50.attn_output.weight q8_0 blk.50.attn_q_a.weight q8_0 blk.50.attn_q_b.weight q8_0 +blk.50.attn_v_b.weight q8_0 blk.50.ffn_down_shexp.weight q8_0 blk.50.ffn_gate_shexp.weight q8_0 blk.50.ffn_up_shexp.weight q8_0 +blk.51.attn_k_b.weight q8_0 blk.51.attn_kv_a_mqa.weight q8_0 blk.51.attn_output.weight q8_0 blk.51.attn_q_a.weight q8_0 blk.51.attn_q_b.weight q8_0 +blk.51.attn_v_b.weight q8_0 blk.51.ffn_down_shexp.weight q8_0 blk.51.ffn_gate_shexp.weight q8_0 blk.51.ffn_up_shexp.weight q8_0 +blk.52.attn_k_b.weight q8_0 blk.52.attn_kv_a_mqa.weight q8_0 blk.52.attn_output.weight q8_0 blk.52.attn_q_a.weight q8_0 blk.52.attn_q_b.weight q8_0 +blk.52.attn_v_b.weight q8_0 blk.52.ffn_down_shexp.weight q8_0 blk.52.ffn_gate_shexp.weight q8_0 blk.52.ffn_up_shexp.weight q8_0 +blk.53.attn_k_b.weight q8_0 blk.53.attn_kv_a_mqa.weight q8_0 blk.53.attn_output.weight q8_0 blk.53.attn_q_a.weight q8_0 blk.53.attn_q_b.weight q8_0 +blk.53.attn_v_b.weight q8_0 blk.53.ffn_down_shexp.weight q8_0 blk.53.ffn_gate_shexp.weight q8_0 blk.53.ffn_up_shexp.weight q8_0 +blk.54.attn_k_b.weight q8_0 blk.54.attn_kv_a_mqa.weight q8_0 blk.54.attn_output.weight q8_0 blk.54.attn_q_a.weight q8_0 blk.54.attn_q_b.weight q8_0 +blk.54.attn_v_b.weight q8_0 blk.54.ffn_down_shexp.weight q8_0 blk.54.ffn_gate_shexp.weight q8_0 blk.54.ffn_up_shexp.weight q8_0 +blk.55.attn_k_b.weight q8_0 blk.55.attn_kv_a_mqa.weight q8_0 blk.55.attn_output.weight q8_0 blk.55.attn_q_a.weight q8_0 blk.55.attn_q_b.weight q8_0 +blk.55.attn_v_b.weight q8_0 blk.55.ffn_down_shexp.weight q8_0 blk.55.ffn_gate_shexp.weight q8_0 blk.55.ffn_up_shexp.weight q8_0 +blk.56.attn_k_b.weight q8_0 blk.56.attn_kv_a_mqa.weight q8_0 blk.56.attn_output.weight q8_0 blk.56.attn_q_a.weight q8_0 blk.56.attn_q_b.weight q8_0 +blk.56.attn_v_b.weight q8_0 blk.56.ffn_down_shexp.weight q8_0 blk.56.ffn_gate_shexp.weight q8_0 blk.56.ffn_up_shexp.weight q8_0 +blk.57.attn_k_b.weight q8_0 blk.57.attn_kv_a_mqa.weight q8_0 blk.57.attn_output.weight q8_0 blk.57.attn_q_a.weight q8_0 blk.57.attn_q_b.weight q8_0 +blk.57.attn_v_b.weight q8_0 blk.57.ffn_down_shexp.weight q8_0 blk.57.ffn_gate_shexp.weight q8_0 blk.57.ffn_up_shexp.weight q8_0 +blk.58.attn_k_b.weight q8_0 blk.58.attn_kv_a_mqa.weight q8_0 blk.58.attn_output.weight q8_0 blk.58.attn_q_a.weight q8_0 blk.58.attn_q_b.weight q8_0 +blk.58.attn_v_b.weight q8_0 blk.58.ffn_down_shexp.weight q8_0 blk.58.ffn_gate_shexp.weight q8_0 blk.58.ffn_up_shexp.weight q8_0 +blk.59.attn_k_b.weight q8_0 blk.59.attn_kv_a_mqa.weight q8_0 blk.59.attn_output.weight q8_0 blk.59.attn_q_a.weight q8_0 blk.59.attn_q_b.weight q8_0 +blk.59.attn_v_b.weight q8_0 blk.59.ffn_down_shexp.weight q8_0 blk.59.ffn_gate_shexp.weight q8_0 blk.59.ffn_up_shexp.weight q8_0 +blk.60.attn_k_b.weight q8_0 blk.60.attn_kv_a_mqa.weight q8_0 blk.60.attn_output.weight q8_0 blk.60.attn_q_a.weight q8_0 blk.60.attn_q_b.weight q8_0 +blk.60.attn_v_b.weight q8_0 blk.60.ffn_down_shexp.weight q8_0 blk.60.ffn_gate_shexp.weight q8_0 blk.60.ffn_up_shexp.weight q8_0