From 9cdb6b6fc05edf2d446bfe881a4c462b241b3025 Mon Sep 17 00:00:00 2001 From: nan Date: Mon, 7 Sep 2026 23:50:16 +0800 Subject: [PATCH] fix: preserve K-quantized embedding weights (#1936) --- src/model/common/ggml_block.hpp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/model/common/ggml_block.hpp b/src/model/common/ggml_block.hpp index 25e00d19..cc0f6941 100644 --- a/src/model/common/ggml_block.hpp +++ b/src/model/common/ggml_block.hpp @@ -307,11 +307,22 @@ public: }; __STATIC_INLINE__ bool support_get_rows(ggml_type wtype) { - std::set allow_types = {GGML_TYPE_F16, GGML_TYPE_Q8_0, GGML_TYPE_Q5_1, GGML_TYPE_Q5_0, GGML_TYPE_Q4_1, GGML_TYPE_Q4_0}; - if (allow_types.find(wtype) != allow_types.end()) { - return true; + switch (wtype) { + case GGML_TYPE_F16: + case GGML_TYPE_Q8_0: + case GGML_TYPE_Q5_1: + case GGML_TYPE_Q5_0: + case GGML_TYPE_Q4_1: + case GGML_TYPE_Q4_0: + case GGML_TYPE_Q2_K: + case GGML_TYPE_Q3_K: + case GGML_TYPE_Q4_K: + case GGML_TYPE_Q5_K: + case GGML_TYPE_Q6_K: + return true; + default: + return false; } - return false; } class Embedding : public UnaryBlock {