From 5f254d62697c31b2a5cfe94e2cd5ec879af27e29 Mon Sep 17 00:00:00 2001 From: Chrono Date: Fri, 26 Jun 2026 01:52:06 +0200 Subject: [PATCH] Rename Indexers to follow existing conventions --- gguf-py/gguf/constants.py | 22 ++++++++++------------ gguf-py/gguf/tensor_mapping.py | 16 ++++++---------- src/llama-arch.cpp | 14 ++++++-------- src/llama-arch.h | 15 +++++++-------- src/models/minimax-m3.cpp | 8 ++++---- 5 files changed, 33 insertions(+), 42 deletions(-) diff --git a/gguf-py/gguf/constants.py b/gguf-py/gguf/constants.py index 4d93679a3f38..31f16b60e6fb 100644 --- a/gguf-py/gguf/constants.py +++ b/gguf-py/gguf/constants.py @@ -742,10 +742,9 @@ class MODEL_TENSOR(IntEnum): INDEXER_PROJ = auto() INDEXER_ATTN_K = auto() INDEXER_ATTN_Q_B = auto() - INDEX_Q_PROJ = auto() - INDEX_K_PROJ = auto() - INDEX_Q_NORM = auto() - INDEX_K_NORM = auto() + INDEXER_Q_PROJ = auto() + INDEXER_K_PROJ = auto() + INDEXER_Q_NORM = auto() # vision V_MMPROJ = auto() V_MMPROJ_FC = auto() @@ -1304,10 +1303,9 @@ class MODEL_TENSOR(IntEnum): MODEL_TENSOR.INDEXER_PROJ: "blk.{bid}.indexer.proj", MODEL_TENSOR.INDEXER_ATTN_K: "blk.{bid}.indexer.attn_k", MODEL_TENSOR.INDEXER_ATTN_Q_B: "blk.{bid}.indexer.attn_q_b", - MODEL_TENSOR.INDEX_Q_PROJ: "blk.{bid}.index_q_proj", - MODEL_TENSOR.INDEX_K_PROJ: "blk.{bid}.index_k_proj", - MODEL_TENSOR.INDEX_Q_NORM: "blk.{bid}.index_q_norm", - MODEL_TENSOR.INDEX_K_NORM: "blk.{bid}.index_k_norm", + MODEL_TENSOR.INDEXER_Q_PROJ: "blk.{bid}.indexer.q_proj", + MODEL_TENSOR.INDEXER_K_PROJ: "blk.{bid}.indexer.k_proj", + MODEL_TENSOR.INDEXER_Q_NORM: "blk.{bid}.indexer.q_norm", # vision MODEL_TENSOR.V_MMPROJ: "mm.{bid}", MODEL_TENSOR.V_MMPROJ_FC: "mm.model.fc", @@ -4040,10 +4038,10 @@ class MODEL_TENSOR(IntEnum): MODEL_TENSOR.FFN_GATE, MODEL_TENSOR.FFN_DOWN, MODEL_TENSOR.FFN_UP, - MODEL_TENSOR.INDEX_Q_PROJ, - MODEL_TENSOR.INDEX_K_PROJ, - MODEL_TENSOR.INDEX_Q_NORM, - MODEL_TENSOR.INDEX_K_NORM, + MODEL_TENSOR.INDEXER_Q_PROJ, + MODEL_TENSOR.INDEXER_K_PROJ, + MODEL_TENSOR.INDEXER_Q_NORM, + MODEL_TENSOR.INDEXER_K_NORM, diff --git a/gguf-py/gguf/tensor_mapping.py b/gguf-py/gguf/tensor_mapping.py index d9d5c3e6e6d4..07f4ff446ed1 100644 --- a/gguf-py/gguf/tensor_mapping.py +++ b/gguf-py/gguf/tensor_mapping.py @@ -1263,7 +1263,8 @@ class TensorNameMap: ), MODEL_TENSOR.INDEXER_K_NORM: ( - "model.layers.{bid}.self_attn.indexer.k_norm", # DSA + "model.layers.{bid}.self_attn.indexer.k_norm", # DSA + "model.layers.{bid}.self_attn.index_k_norm", # MSA ), MODEL_TENSOR.INDEXER_PROJ: ( @@ -1278,22 +1279,17 @@ class TensorNameMap: "model.layers.{bid}.self_attn.indexer.wq_b", # DSA ), - MODEL_TENSOR.INDEX_Q_PROJ: ( + MODEL_TENSOR.INDEXER_Q_PROJ: ( "model.layers.{bid}.self_attn.index_q_proj", # MSA ), - MODEL_TENSOR.INDEX_K_PROJ: ( + MODEL_TENSOR.INDEXER_K_PROJ: ( "model.layers.{bid}.self_attn.index_k_proj", # MSA ), - MODEL_TENSOR.INDEX_Q_NORM: ( + MODEL_TENSOR.INDEXER_Q_NORM: ( "model.layers.{bid}.self_attn.index_q_norm", # MSA - ), - - MODEL_TENSOR.INDEX_K_NORM: ( - "model.layers.{bid}.self_attn.index_k_norm", # MSA - ), - + ), ############################################################################ diff --git a/src/llama-arch.cpp b/src/llama-arch.cpp index e6564e479c69..654e413f9786 100644 --- a/src/llama-arch.cpp +++ b/src/llama-arch.cpp @@ -568,10 +568,9 @@ static const std::map LLM_TENSOR_NAMES = { { LLM_TENSOR_INDEXER_PROJ, "blk.%d.indexer.proj" }, { LLM_TENSOR_INDEXER_ATTN_K, "blk.%d.indexer.attn_k" }, { LLM_TENSOR_INDEXER_ATTN_Q_B, "blk.%d.indexer.attn_q_b" }, - { LLM_TENSOR_INDEX_Q_PROJ, "blk.%d.index_q_proj" }, - { LLM_TENSOR_INDEX_K_PROJ, "blk.%d.index_k_proj" }, - { LLM_TENSOR_INDEX_Q_NORM, "blk.%d.index_q_norm" }, - { LLM_TENSOR_INDEX_K_NORM, "blk.%d.index_k_norm" }, + { LLM_TENSOR_INDEXER_Q_PROJ, "blk.%d.indexer.q_proj" }, + { LLM_TENSOR_INDEXER_K_PROJ, "blk.%d.indexer.k_proj" }, + { LLM_TENSOR_INDEXER_Q_NORM, "blk.%d.indexer.q_norm" }, { LLM_TENSOR_MASKED_EMBD_CENTROIDS, "masked_embd_centroids" }, { LLM_TENSOR_MASKED_EMBD_ORDERING, "masked_embd_ordering" }, { LLM_TENSOR_FC, "fc" }, @@ -785,10 +784,9 @@ static const std::map LLM_TENSOR_INFOS = { {LLM_TENSOR_INDEXER_PROJ, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}}, {LLM_TENSOR_INDEXER_ATTN_K, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}}, {LLM_TENSOR_INDEXER_ATTN_Q_B, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}}, - {LLM_TENSOR_INDEX_Q_PROJ, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}}, - {LLM_TENSOR_INDEX_K_PROJ, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}}, - {LLM_TENSOR_INDEX_Q_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}}, - {LLM_TENSOR_INDEX_K_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}}, + {LLM_TENSOR_INDEXER_Q_PROJ, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}}, + {LLM_TENSOR_INDEXER_K_PROJ, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}}, + {LLM_TENSOR_INDEXER_Q_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}}, {LLM_TENSOR_NEXTN_PROJ_PRE, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}}, {LLM_TENSOR_NEXTN_PROJ_POST, {LLM_TENSOR_LAYER_OUTPUT, GGML_OP_MUL_MAT}}, // NextN/MTP tensors are stored per-block (blk.%d.nextn.*) even though only the diff --git a/src/llama-arch.h b/src/llama-arch.h index 19d31824ad2a..7bfdbdafff75 100644 --- a/src/llama-arch.h +++ b/src/llama-arch.h @@ -564,14 +564,13 @@ enum llm_tensor { LLM_TENSOR_VISEXP_FFN_GATE, LLM_TENSOR_VISEXP_FFN_DOWN, LLM_TENSOR_VISEXP_FFN_UP, - LLM_TENSOR_INDEXER_K_NORM, - LLM_TENSOR_INDEXER_PROJ, - LLM_TENSOR_INDEXER_ATTN_K, - LLM_TENSOR_INDEXER_ATTN_Q_B, - LLM_TENSOR_INDEX_Q_PROJ, - LLM_TENSOR_INDEX_K_PROJ, - LLM_TENSOR_INDEX_Q_NORM, - LLM_TENSOR_INDEX_K_NORM, + LLM_TENSOR_INDEXER_K_NORM, //DSA, MSA + LLM_TENSOR_INDEXER_PROJ, //DSA + LLM_TENSOR_INDEXER_ATTN_K, //DSA + LLM_TENSOR_INDEXER_ATTN_Q_B, //DSA + LLM_TENSOR_INDEXER_Q_PROJ, //MSA + LLM_TENSOR_INDEXER_K_PROJ, //MSA + LLM_TENSOR_INDEXER_Q_NORM, //MSA LLM_TENSOR_NEXTN_PROJ_PRE, LLM_TENSOR_NEXTN_PROJ_POST, LLM_TENSOR_NEXTN_EH_PROJ, diff --git a/src/models/minimax-m3.cpp b/src/models/minimax-m3.cpp index 51804b2d2f40..9f1115189e2d 100644 --- a/src/models/minimax-m3.cpp +++ b/src/models/minimax-m3.cpp @@ -70,10 +70,10 @@ void llama_model_minimax_m3::load_arch_tensors(llama_model_loader &) { layer.ffn_up_shexp = create_tensor(tn(LLM_TENSOR_FFN_UP_SHEXP, "weight", i), {n_embd, n_ff_exp * n_expert_shared}, 0); // indexer - layer.index_q_proj = create_tensor(tn(LLM_TENSOR_INDEX_Q_PROJ, "weight", i), {n_embd, hparams.indexer_n_head * hparams.indexer_head_size}, 0); - layer.index_k_proj = create_tensor(tn(LLM_TENSOR_INDEX_K_PROJ, "weight", i), {n_embd, hparams.indexer_head_size}, 0); - layer.index_q_norm = create_tensor(tn(LLM_TENSOR_INDEX_Q_NORM, "weight", i), {hparams.indexer_head_size}, 0); - layer.index_k_norm = create_tensor(tn(LLM_TENSOR_INDEX_K_NORM, "weight", i), {hparams.indexer_head_size}, 0); + layer.index_q_proj = create_tensor(tn(LLM_TENSOR_INDEXER_Q_PROJ, "weight", i), {n_embd, hparams.indexer_n_head * hparams.indexer_head_size}, 0); + layer.index_k_proj = create_tensor(tn(LLM_TENSOR_INDEXER_K_PROJ, "weight", i), {n_embd, hparams.indexer_head_size}, 0); + layer.index_q_norm = create_tensor(tn(LLM_TENSOR_INDEXER_Q_NORM, "weight", i), {hparams.indexer_head_size}, 0); + layer.index_k_norm = create_tensor(tn(LLM_TENSOR_INDEXER_K_NORM, "weight", i), {hparams.indexer_head_size}, 0); } } }