From b4eb20390633637f3204a77d5bb218e365c4f95b Mon Sep 17 00:00:00 2001 From: Daniel Han Date: Fri, 28 Aug 2026 08:17:35 +0000 Subject: [PATCH] glm5-next: fall back to the deepseek4 spelling for the k-pool tensors GGUFs published before the naming settled use indexer_compressor_{gate,ape} for the two k-pool tensors, which is the spelling deepseek4 already uses. Try the canonical name first and fall back to that one, so those files load without a re-download of the tensor data. The fallback reuses the existing LLM_TENSOR_INDEXER_COMPRESSOR_{WGATE,APE} entries, so no new enum, no new name table entry, and nothing outside this file changes. --- src/models/glm5-next.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/models/glm5-next.cpp b/src/models/glm5-next.cpp index f9dc0e3ea38..51c6e4b2423 100644 --- a/src/models/glm5-next.cpp +++ b/src/models/glm5-next.cpp @@ -157,8 +157,15 @@ void llama_model_glm5_next::load_arch_tensors(llama_model_loader & ml) { layer.indexer_proj = create_tensor(tn(LLM_TENSOR_INDEXER_PROJ, "weight", i), {n_embd, n_indexer_head}, iflags); layer.indexer_attn_k = create_tensor(tn(LLM_TENSOR_INDEXER_ATTN_K, "weight", i), {n_embd, n_embd_indexer}, iflags); layer.indexer_attn_q_b = create_tensor(tn(LLM_TENSOR_INDEXER_ATTN_Q_B, "weight", i), {q_lora_rank, n_indexer_head * n_embd_indexer}, iflags); - layer.indexer_kpool_gate = create_tensor(tn(LLM_TENSOR_INDEXER_KPOOL_GATE, "weight", i), {n_embd, n_embd_indexer}, iflags); - layer.indexer_kpool_ape = create_tensor(tn(LLM_TENSOR_INDEXER_KPOOL_APE, "weight", i), {n_embd_indexer, kpool}, iflags); + layer.indexer_kpool_gate = create_tensor(tn(LLM_TENSOR_INDEXER_KPOOL_GATE, "weight", i), {n_embd, n_embd_indexer}, iflags | TENSOR_NOT_REQUIRED); + if (layer.indexer_kpool_gate == nullptr) { + layer.indexer_kpool_gate = create_tensor(tn(LLM_TENSOR_INDEXER_COMPRESSOR_WGATE, "weight", i), {n_embd, n_embd_indexer}, iflags); + } + + layer.indexer_kpool_ape = create_tensor(tn(LLM_TENSOR_INDEXER_KPOOL_APE, "weight", i), {n_embd_indexer, kpool}, iflags | TENSOR_NOT_REQUIRED); + if (layer.indexer_kpool_ape == nullptr) { + layer.indexer_kpool_ape = create_tensor(tn(LLM_TENSOR_INDEXER_COMPRESSOR_APE, "weight", i), {n_embd_indexer, kpool}, iflags); + } } if (i < (int) hparams.n_layer_dense_lead) {