2023-11-10 22:04:50 -07:00
from __future__ import annotations
from typing import Sequence
from .constants import MODEL_ARCH , MODEL_TENSOR , MODEL_TENSORS , TENSOR_NAMES
class TensorNameMap :
mappings_cfg : dict [ MODEL_TENSOR , tuple [ str , ... ]] = {
# Token embeddings
MODEL_TENSOR . TOKEN_EMBD : (
"gpt_neox.embed_in" , # gptneox
2024-08-16 15:35:18 +09:00
"transformer.wte" , # gpt2 gpt-j mpt refact qwen dbrx jais exaone
2023-11-10 22:04:50 -07:00
"transformer.word_embeddings" , # falcon
"word_embeddings" , # bloom
2025-07-16 01:11:42 +09:00
"model.embed_tokens" , # llama-hf nemotron olmoe olmo2 rwkv6qwen2 glm4-0414 plamo2 granite-hybrid
2025-09-04 18:10:29 +02:00
"embed_tokens" , # embeddinggemma
2023-11-10 22:04:50 -07:00
"tok_embeddings" , # llama-pth
2024-02-13 12:03:53 -05:00
"embeddings.word_embeddings" , # bert nomic-bert
2025-12-22 18:28:19 -05:00
"embeddings.tok_embeddings" , # modern-bert
2023-12-28 09:03:57 -05:00
"wte" , # gpt2
2023-12-18 17:27:47 +00:00
"transformer.embd.wte" , # phi2
2024-02-01 17:19:51 +08:00
"model.tok_embeddings" , # internlm2
2024-03-08 17:31:00 -05:00
"model.embedding" , # mamba-qbert
"backbone.embedding" , # mamba
"backbone.embeddings" , # mamba-hf
2024-03-23 17:41:53 +01:00
"transformer.in_out_embed" , # Grok
2024-07-07 20:52:10 +08:00
"embedding.word_embeddings" , # chatglm
2024-07-05 05:14:21 +12:00
"transformer.token_embeddings" , # openelm
2024-06-24 07:06:05 +02:00
"shared" , # t5
2025-03-18 07:27:50 +08:00
"rwkv.embeddings" , # rwkv6
"model.embeddings" , # rwkv7
2025-03-30 22:21:03 +02:00
"model.word_embeddings" , # bailingmoe
2025-06-16 21:53:41 +09:00
"encoder" , # neobert
2025-07-31 19:49:09 +08:00
"model.transformer.wte" , # llada
2025-08-02 03:44:50 -05:00
"embed_tokens" , # qwen3-embedding
2023-11-10 22:04:50 -07:00
),
# Token type embeddings
MODEL_TENSOR . TOKEN_TYPES : (
2024-02-13 12:03:53 -05:00
"embeddings.token_type_embeddings" , # bert nomic-bert
2023-11-10 22:04:50 -07:00
),
# Normalization of token embeddings
MODEL_TENSOR . TOKEN_EMBD_NORM : (
"word_embeddings_layernorm" , # bloom
2024-02-11 10:21:38 -06:00
"embeddings.LayerNorm" , # bert
2025-12-22 18:28:19 -05:00
"embeddings.norm" , # modern-bert
2024-02-13 12:03:53 -05:00
"emb_ln" , # nomic-bert
2024-07-05 05:14:21 +12:00
"transformer.norm" , # openelm
2024-09-01 22:38:17 +08:00
"rwkv.blocks.0.pre_ln" , # rwkv
2025-03-18 07:27:50 +08:00
"rwkv.blocks.0.pre_ln" , # rwkv6
"model.pre_ln" , # rwkv7
"model.layers.0.pre_norm" , # rwkv7
2024-12-18 19:27:21 +02:00
"backbone.norm" , # wavtokenizer
2025-07-11 20:27:01 +02:00
"model.embedding_norm" , # lfm2
2023-11-10 22:04:50 -07:00
),
# Position embeddings
MODEL_TENSOR . POS_EMBD : (
"transformer.wpe" , # gpt2
"embeddings.position_embeddings" , # bert
2023-12-28 09:03:57 -05:00
"wpe" , # gpt2
2026-03-26 18:49:09 +03:00
"model.embed_positions" , # rugpt3xl
2023-11-10 22:04:50 -07:00
),
# Output
MODEL_TENSOR . OUTPUT : (
"embed_out" , # gptneox
2025-07-16 01:11:42 +09:00
"lm_head" , # gpt2 mpt falcon llama-hf baichuan qwen mamba dbrx jais nemotron exaone olmoe olmo2 phimoe plamo2
2024-02-01 17:19:51 +08:00
"output" , # llama-pth bloom internlm2
2023-11-10 22:04:50 -07:00
"word_embeddings_for_head" , # persimmon
2023-12-18 17:27:47 +00:00
"lm_head.linear" , # phi2
2024-07-07 20:52:10 +08:00
"output_layer" , # chatglm
2024-09-01 22:38:17 +08:00
"head" , # rwkv
2024-12-18 19:27:21 +02:00
"head.out" , # wavtokenizer
2025-05-15 17:40:07 +02:00
"lm_head" , # llama4
2025-07-31 19:49:09 +08:00
"model.transformer.ff_out" , # llada
2025-12-22 18:28:19 -05:00
"head.decoder" , # modern-bert
2023-11-10 22:04:50 -07:00
),
2025-10-09 08:39:18 +02:00
MODEL_TENSOR . DENSE_2_OUT : (
"dense_2_out" , # embeddinggemma
),
MODEL_TENSOR . DENSE_3_OUT : (
"dense_3_out" , # embeddinggemma
),
2023-11-10 22:04:50 -07:00
# Output norm
MODEL_TENSOR . OUTPUT_NORM : (
"gpt_neox.final_layer_norm" , # gptneox
2024-08-16 15:35:18 +09:00
"transformer.ln_f" , # gpt2 gpt-j falcon jais exaone
2025-07-16 01:11:42 +09:00
"model.norm" , # llama-hf baichuan internlm2 olmoe olmo2 phimoe plamo2
2023-11-10 22:04:50 -07:00
"norm" , # llama-pth
2024-04-13 11:33:52 +02:00
"transformer.norm_f" , # mpt dbrx
2023-12-28 09:03:57 -05:00
"ln_f" , # refact bloom qwen gpt2
2024-01-12 13:01:56 +02:00
"model.final_layernorm" , # persimmon
2023-12-18 17:27:47 +00:00
"lm_head.ln" , # phi2
2024-03-08 17:31:00 -05:00
"model.norm_f" , # mamba-qbert
"backbone.norm_f" , # mamba
2024-03-23 17:41:53 +01:00
"transformer.rms_norm" , # Grok
2024-07-07 20:52:10 +08:00
"encoder.final_layernorm" , # chatglm
2024-07-05 05:14:21 +12:00
"transformer.norm" , # openelm
2024-08-15 19:23:33 -07:00
"model.norm" , # nemotron
2025-03-18 07:27:50 +08:00
"rwkv.ln_out" , # rwkv6
"model.ln_out" , # rwkv7
2024-12-18 19:27:21 +02:00
"backbone.final_layer_norm" , # wavtokenizer
2025-05-15 17:40:07 +02:00
"model.norm" , # llama4
2025-07-31 19:49:09 +08:00
"model.transformer.ln_f" , # llada
2025-12-22 18:28:19 -05:00
"final_norm" , # modern-bert
2025-10-30 07:18:50 -04:00
"model.norm" , # cogvlm
2023-11-10 22:04:50 -07:00
),
# Rope frequencies
MODEL_TENSOR . ROPE_FREQS : (
"rope.freqs" , # llama-pth
2024-07-07 20:52:10 +08:00
"rotary_pos_emb.inv_freq" , # chatglm
2023-11-10 22:04:50 -07:00
),
2024-10-01 02:31:36 -04:00
MODEL_TENSOR . ROPE_FACTORS_LONG : (),
MODEL_TENSOR . ROPE_FACTORS_SHORT : (),
2024-12-18 19:27:21 +02:00
MODEL_TENSOR . CONV1D : (
"backbone.embed" , # roberta
),
2026-01-09 22:42:38 +00:00
MODEL_TENSOR . V_MM_EMBEDDING : (
"model.embed_vision.embedding" , # gemma3n
),
MODEL_TENSOR . V_MM_HARD_EMB_NORM : (
"model.embed_vision.hard_embedding_norm" , # gemma3n
),
MODEL_TENSOR . V_MM_INP_PROJ : (
"model.embed_vision.embedding_projection" , # gemma3n
),
MODEL_TENSOR . V_MM_SOFT_EMB_NORM : (
"model.embed_vision.soft_embedding_norm" , # gemma3n
),
MODEL_TENSOR . V_ENC_CONV_STEM : (
"model.vision_tower.timm_model.conv_stem.conv" , # gemma3n
),
MODEL_TENSOR . V_ENC_CONV_STEM_NORM : (
"model.vision_tower.timm_model.conv_stem.bn" , # gemma3n
),
MODEL_TENSOR . V_ENC_MSFA_EXP : (
"model.vision_tower.timm_model.msfa.ffn.pw_exp.conv" , # gemma3n
),
MODEL_TENSOR . V_ENC_MSFA_EXP_NORM : (
"model.vision_tower.timm_model.msfa.ffn.pw_exp.bn" , # gemma3n
),
MODEL_TENSOR . V_ENC_MSFA_PROJ : (
"model.vision_tower.timm_model.msfa.ffn.pw_proj.conv" , # gemma3n
),
MODEL_TENSOR . V_ENC_MSFA_PROJ_NORM : (
"model.vision_tower.timm_model.msfa.ffn.pw_proj.bn" , # gemma3n
),
MODEL_TENSOR . V_ENC_MSFA_NORM : (
"model.vision_tower.timm_model.msfa.norm" , # gemma3n
),
2026-05-06 14:40:59 +02:00
MODEL_TENSOR . A_CTC_OUT : (
"encoder.out" ,
),
MODEL_TENSOR . A_CTC_OUT_MID : (
"encoder.out_mid" ,
),
MODEL_TENSOR . A_QF_PROJ_QUERY : (
"projector.query" ,
),
MODEL_TENSOR . A_QF_PROJ_NORM : (
"projector.qformer.layernorm" ,
),
MODEL_TENSOR . A_QF_PROJ_LINEAR : (
"projector.linear" ,
),
2023-11-10 22:04:50 -07:00
}
block_mappings_cfg : dict [ MODEL_TENSOR , tuple [ str , ... ]] = {
# Attention norm
MODEL_TENSOR . ATTN_NORM : (
"gpt_neox.layers. {bid} .input_layernorm" , # gptneox
2024-08-16 15:35:18 +09:00
"transformer.h. {bid} .ln_1" , # gpt2 gpt-j refact qwen jais exaone
2023-11-10 22:04:50 -07:00
"transformer.blocks. {bid} .norm_1" , # mpt
"transformer.h. {bid} .input_layernorm" , # falcon7b
"h. {bid} .input_layernorm" , # bloom
"transformer.h. {bid} .ln_mlp" , # falcon40b
2025-07-10 18:20:13 -06:00
"model.layers. {bid} .input_layernorm" , # llama-hf nemotron olmoe phimoe granite-hybrid
2023-11-10 22:04:50 -07:00
"layers. {bid} .attention_norm" , # llama-pth
"model.layers. {bid} .ln1" , # yi
2023-12-28 09:03:57 -05:00
"h. {bid} .ln_1" , # gpt2
2023-12-18 17:27:47 +00:00
"transformer.h. {bid} .ln" , # phi2
2023-12-24 22:35:49 +09:00
"model.layers.layers. {bid} .norm" , # plamo
2025-07-16 01:11:42 +09:00
"model.layers.layers. {bid} .pre_mixer_norm" , # plamo2
2024-02-01 17:19:51 +08:00
"model.layers. {bid} .attention_norm" , # internlm2
2024-03-08 17:31:00 -05:00
"model.layers. {bid} .norm" , # mamba-qbert
"backbone.layers. {bid} .norm" , # mamba
2024-03-23 17:41:53 +01:00
"transformer.decoder_layer. {bid} .rms_norm" , # Grok
2025-09-14 23:00:59 +02:00
"model.layers. {bid} .pre_attn_norm" , # grok-2
2024-04-13 11:33:52 +02:00
"transformer.blocks. {bid} .norm_attn_norm.norm_1" , # dbrx
2024-07-07 20:52:10 +08:00
"encoder.layers. {bid} .input_layernorm" , # chatglm
2024-07-05 05:14:21 +12:00
"transformer.layers. {bid} .attn_norm" , # openelm
2025-03-18 07:27:50 +08:00
"rwkv.blocks. {bid} .ln1" , # rwkv6
"model.layers. {bid} .ln1" , # rwkv7
2025-05-15 17:40:07 +02:00
"model.layers. {bid} .input_layernorm" , # llama4
2025-09-04 18:10:29 +02:00
"layers. {bid} .input_layernorm" , # embeddinggemma
2025-06-16 21:53:41 +09:00
"transformer_encoder. {bid} .attention_norm" , # neobert
2025-12-22 18:28:19 -05:00
"layers. {bid} .attn_norm" , # modern-bert
2025-07-11 20:27:01 +02:00
"model.layers. {bid} .operator_norm" , # lfm2
2025-07-31 19:49:09 +08:00
"model.transformer.blocks. {bid} .attn_norm" , # llada
2025-08-02 03:44:50 -05:00
"layers. {bid} .input_layernorm" , # qwen3-embedding
2025-12-16 02:51:43 +09:00
"model.layers. {bid} .attention_layernorm" , # apertus
"model.layers. {bid} .pre_attention_layernorm" , # kormo
2023-11-10 22:04:50 -07:00
),
# Attention norm 2
MODEL_TENSOR . ATTN_NORM_2 : (
2024-09-01 22:38:17 +08:00
"transformer.h. {bid} .ln_attn" , # falcon40b
2024-06-06 09:22:41 +02:00
"encoder.layer. {bid} .layer_norm_1" , # jina-v2-code
2025-03-18 07:27:50 +08:00
"rwkv.blocks. {bid} .ln2" , # rwkv6
"model.layers. {bid} .ln2" , # rwkv7
2025-10-30 07:18:50 -04:00
"model.layers. {bid} .post_attention_layernorm" , # cogvlm
2023-11-10 22:04:50 -07:00
),
# Attention query-key-value
MODEL_TENSOR . ATTN_QKV : (
"gpt_neox.layers. {bid} .attention.query_key_value" , # gptneox
2024-07-02 10:36:00 -04:00
"transformer.h. {bid} .attn.c_attn" , # gpt2 qwen jais
2023-11-10 22:04:50 -07:00
"transformer.blocks. {bid} .attn.Wqkv" , # mpt
2024-04-13 11:33:52 +02:00
"transformer.blocks. {bid} .norm_attn_norm.attn.Wqkv" , # dbrx
2023-11-10 22:04:50 -07:00
"transformer.h. {bid} .self_attention.query_key_value" , # falcon
"h. {bid} .self_attention.query_key_value" , # bloom
2024-01-12 13:01:56 +02:00
"model.layers. {bid} .self_attn.query_key_value" , # persimmon
2025-10-20 21:38:20 +02:00
"model.layers. {bid} .attention.query_key_value" , # bailingmoe2
2023-12-28 09:03:57 -05:00
"h. {bid} .attn.c_attn" , # gpt2
2023-12-18 17:27:47 +00:00
"transformer.h. {bid} .mixer.Wqkv" , # phi2
2024-02-13 12:03:53 -05:00
"encoder.layers. {bid} .attn.Wqkv" , # nomic-bert
2025-05-29 21:42:31 +02:00
"encoder.layers. {bid} .mixer.Wqkv" , # jina
2024-07-05 05:14:21 +12:00
"model.layers. {bid} .self_attn.qkv_proj" , # phi3
2025-07-16 01:11:42 +09:00
"model.layers.layers. {bid} .mixer.qkv_proj" , # plamo2
2024-07-07 20:52:10 +08:00
"encoder.layers. {bid} .self_attention.query_key_value" , # chatglm
2024-07-05 05:14:21 +12:00
"transformer.layers. {bid} .attn.qkv_proj" , # openelm
2025-06-16 21:53:41 +09:00
"transformer_encoder. {bid} .qkv" , # neobert
2025-12-22 18:28:19 -05:00
"layers. {bid} .attn.Wqkv" , # modern-bert
2025-10-30 07:18:50 -04:00
"model.layers. {bid} .self_attn.language_expert_query_key_value" , # cogvlm
2026-02-11 00:00:26 +08:00
"model.layers. {bid} .linear_attn.in_proj_qkv" , # qwen3.5
2023-11-10 22:04:50 -07:00
),
# Attention query
MODEL_TENSOR . ATTN_Q : (
2025-01-09 11:21:41 +01:00
"model.layers. {bid} .self_attn.q_proj" , # llama-hf nemotron olmoe olmo2 phimoe
2025-09-04 18:10:29 +02:00
"layers. {bid} .self_attn.q_proj" , # embeddinggemma
2024-12-06 21:33:15 +02:00
"model.layers. {bid} .self_attn.q_proj_no_perm" , # llama-custom
2024-03-23 17:41:53 +01:00
"layers. {bid} .attention.wq" , # llama-pth
"encoder.layer. {bid} .attention.self.query" , # bert
2025-05-30 18:56:02 +09:00
"transformer.layer. {bid} .attention.q_lin" , # distillbert
2024-03-23 17:41:53 +01:00
"transformer.h. {bid} .attn.q_proj" , # gpt-j
"model.layers.layers. {bid} .self_attn.q_proj" , # plamo
"model.layers. {bid} .attention.wq" , # internlm2
2024-07-07 20:52:10 +08:00
"transformer.decoder_layer. {bid} .multi_head_attention.query" , # Grok
2024-08-16 15:35:18 +09:00
"transformer.h. {bid} .attn.attention.q_proj" , # exaone
2025-05-15 17:40:07 +02:00
"model.layers. {bid} .self_attn.q_proj" , # llama4
2025-07-31 19:49:09 +08:00
"model.transformer.blocks. {bid} .q_proj" , # llada
2025-08-02 03:44:50 -05:00
"layers. {bid} .self_attn.q_proj" , # qwen3-embedding
2025-08-28 18:39:31 -06:00
"backbone.layers. {bid} .mixer.q_proj" , # nemotron-h
2023-11-10 22:04:50 -07:00
),
# Attention key
MODEL_TENSOR . ATTN_K : (
2025-01-09 11:21:41 +01:00
"model.layers. {bid} .self_attn.k_proj" , # llama-hf nemotron olmoe olmo2 phimoe
2025-09-04 18:10:29 +02:00
"layers. {bid} .self_attn.k_proj" , # embeddinggemma
2024-12-06 21:33:15 +02:00
"model.layers. {bid} .self_attn.k_proj_no_perm" , # llama-custom
2024-03-23 17:41:53 +01:00
"layers. {bid} .attention.wk" , # llama-pth
"encoder.layer. {bid} .attention.self.key" , # bert
2025-05-30 18:56:02 +09:00
"transformer.layer. {bid} .attention.k_lin" , # distillbert
2024-03-23 17:41:53 +01:00
"transformer.h. {bid} .attn.k_proj" , # gpt-j
2024-05-11 10:32:41 +03:00
"transformer.h. {bid} .attn.k" , # refact
2024-03-23 17:41:53 +01:00
"model.layers.layers. {bid} .self_attn.k_proj" , # plamo
"model.layers. {bid} .attention.wk" , # internlm2
2024-07-07 20:52:10 +08:00
"transformer.decoder_layer. {bid} .multi_head_attention.key" , # Grok
2024-08-16 15:35:18 +09:00
"transformer.h. {bid} .attn.attention.k_proj" , # exaone
2025-05-15 17:40:07 +02:00
"model.layers. {bid} .self_attn.k_proj" , # llama4
2025-07-31 19:49:09 +08:00
"model.transformer.blocks. {bid} .k_proj" , # llada
2025-08-02 03:44:50 -05:00
"layers. {bid} .self_attn.k_proj" , # qwen3-embedding
2025-08-28 18:39:31 -06:00
"backbone.layers. {bid} .mixer.k_proj" , # nemotron-h
2023-11-10 22:04:50 -07:00
),
# Attention value
MODEL_TENSOR . ATTN_V : (
2025-01-09 11:21:41 +01:00
"model.layers. {bid} .self_attn.v_proj" , # llama-hf nemotron olmoe olmo2 phimoe
2025-09-04 18:10:29 +02:00
"layers. {bid} .self_attn.v_proj" , # embeddinggemma
2024-03-23 17:41:53 +01:00
"layers. {bid} .attention.wv" , # llama-pth
"encoder.layer. {bid} .attention.self.value" , # bert
2025-05-30 18:56:02 +09:00
"transformer.layer. {bid} .attention.v_lin" , # distillbert
2024-03-23 17:41:53 +01:00
"transformer.h. {bid} .attn.v_proj" , # gpt-j
2024-05-11 10:32:41 +03:00
"transformer.h. {bid} .attn.v" , # refact
2024-03-23 17:41:53 +01:00
"model.layers.layers. {bid} .self_attn.v_proj" , # plamo
"model.layers. {bid} .attention.wv" , # internlm2
2024-08-16 15:35:18 +09:00
"transformer.decoder_layer. {bid} .multi_head_attention.value" , # Grok
"transformer.h. {bid} .attn.attention.v_proj" , # exaone
2025-05-15 17:40:07 +02:00
"model.layers. {bid} .self_attn.v_proj" , # llama4
2025-07-31 19:49:09 +08:00
"model.transformer.blocks. {bid} .v_proj" , # llada
2025-08-02 03:44:50 -05:00
"layers. {bid} .self_attn.v_proj" , # qwen3-embedding
2025-08-28 18:39:31 -06:00
"backbone.layers. {bid} .mixer.v_proj" , # nemotron-h
2023-11-10 22:04:50 -07:00
),
# Attention output
MODEL_TENSOR . ATTN_OUT : (
2024-04-13 11:33:52 +02:00
"gpt_neox.layers. {bid} .attention.dense" , # gptneox
2024-07-02 10:36:00 -04:00
"transformer.h. {bid} .attn.c_proj" , # gpt2 refact qwen jais
2024-04-13 11:33:52 +02:00
"transformer.blocks. {bid} .attn.out_proj" , # mpt
"transformer.h. {bid} .self_attention.dense" , # falcon
"h. {bid} .self_attention.dense" , # bloom
2025-01-09 11:21:41 +01:00
"model.layers. {bid} .self_attn.o_proj" , # llama-hf nemotron olmoe olmo2 phimoe
2025-09-04 18:10:29 +02:00
"layers. {bid} .self_attn.o_proj" , # embeddinggemma
2025-07-11 20:27:01 +02:00
"model.layers. {bid} .self_attn.out_proj" , # lfm2
2024-12-23 08:22:33 +08:00
"model.layers. {bid} .self_attn.linear_attn" , # deci
2024-04-13 11:33:52 +02:00
"layers. {bid} .attention.wo" , # llama-pth
"encoder.layer. {bid} .attention.output.dense" , # bert
2025-12-22 18:28:19 -05:00
"layers. {bid} .attn.Wo" , # modern-bert
2025-05-30 18:56:02 +09:00
"transformer.layer. {bid} .attention.out_lin" , # distillbert
2024-04-13 11:33:52 +02:00
"transformer.h. {bid} .attn.out_proj" , # gpt-j
"model.layers. {bid} .self_attn.dense" , # persimmon
2025-10-20 21:38:20 +02:00
"model.layers. {bid} .attention.dense" , # bailingmoe2
2024-04-13 11:33:52 +02:00
"h. {bid} .attn.c_proj" , # gpt2
"transformer.h. {bid} .mixer.out_proj" , # phi2
"model.layers.layers. {bid} .self_attn.o_proj" , # plamo
2025-07-16 01:11:42 +09:00
"model.layers.layers. {bid} .mixer.o_proj" , # plamo2
2024-04-13 11:33:52 +02:00
"model.layers. {bid} .attention.wo" , # internlm2
"encoder.layers. {bid} .attn.out_proj" , # nomic-bert
2025-05-29 21:42:31 +02:00
"encoder.layers. {bid} .mixer.out_proj" , # jina
2024-04-13 11:33:52 +02:00
"transformer.decoder_layer. {bid} .multi_head_attention.linear" , # Grok
"transformer.blocks. {bid} .norm_attn_norm.attn.out_proj" , # dbrx
2024-07-07 20:52:10 +08:00
"encoder.layers. {bid} .self_attention.dense" , # chatglm
2024-07-05 05:14:21 +12:00
"transformer.layers. {bid} .attn.out_proj" , # openelm
2024-08-16 15:35:18 +09:00
"transformer.h. {bid} .attn.attention.out_proj" , # exaone
2025-05-15 17:40:07 +02:00
"model.layers. {bid} .self_attn.o_proj" , # llama4
2025-06-16 21:53:41 +09:00
"transformer_encoder. {bid} .wo" , # neobert
2025-07-31 19:49:09 +08:00
"model.transformer.blocks. {bid} .attn_out" , # llada
2025-08-02 03:44:50 -05:00
"layers. {bid} .self_attn.o_proj" , # qwen3-embedding
2025-08-28 18:39:31 -06:00
"backbone.layers. {bid} .mixer.o_proj" , # nemotron-h
2025-10-30 07:18:50 -04:00
"model.layers. {bid} .self_attn.language_expert_dense" , # cogvlm
2023-11-10 22:04:50 -07:00
),
2024-02-11 10:21:38 -06:00
# Attention output norm
MODEL_TENSOR . ATTN_OUT_NORM : (
"encoder.layer. {bid} .attention.output.LayerNorm" , # bert
2025-05-30 18:56:02 +09:00
"transformer.layer. {bid} .sa_layer_norm" , # distillbert
2024-02-13 12:03:53 -05:00
"encoder.layers. {bid} .norm1" , # nomic-bert
2024-03-23 17:41:53 +01:00
"transformer.decoder_layer. {bid} .rms_norm_1" , # Grok
2025-09-14 23:00:59 +02:00
"model.layers. {bid} .post_attn_norm" , # grok-2
2024-04-13 11:33:52 +02:00
"transformer.blocks. {bid} .norm_attn_norm.norm_2" , # dbrx
2024-02-11 10:21:38 -06:00
),
2024-06-28 00:00:43 -04:00
MODEL_TENSOR . ATTN_POST_NORM : (
2025-07-16 01:11:42 +09:00
"model.layers. {bid} .post_attention_layernorm" , # gemma2 olmo2 # ge
2025-09-04 18:10:29 +02:00
"layers. {bid} .post_attention_layernorm" , # embeddinggemma
2025-07-16 01:11:42 +09:00
"model.layers. {bid} .post_self_attn_layernorm" , # glm-4-0414
"model.layers.layers. {bid} .post_mixer_norm.weight" , # plamo2
2024-06-28 00:00:43 -04:00
),
2023-11-10 22:04:50 -07:00
# Rotary embeddings
MODEL_TENSOR . ATTN_ROT_EMBD : (
2023-12-24 22:35:49 +09:00
"model.layers. {bid} .self_attn.rotary_emb.inv_freq" , # llama-hf
"layers. {bid} .attention.inner_attention.rope.freqs" , # llama-pth
"model.layers.layers. {bid} .self_attn.rotary_emb.inv_freq" , # plamo
2024-01-19 17:07:27 +08:00
"transformer.h. {bid} .attn.rotary_emb.inv_freq" , # codeshell
2023-11-10 22:04:50 -07:00
),
2025-08-05 22:10:36 +03:00
MODEL_TENSOR . ATTN_SINKS : (
"model.layers. {bid} .self_attn.sinks" , # openai-moe
2025-12-24 23:07:08 +01:00
"model.layers. {bid} .self_attn.attention_sink_bias" , # mimov2
2025-08-05 22:10:36 +03:00
),
2025-11-14 07:54:10 -05:00
MODEL_TENSOR . ATTN_GATE : (
2026-02-09 14:57:51 +02:00
"model.layers. {bid} .self_attn.gate_proj" , # afmoe
2026-02-11 00:00:26 +08:00
"model.layers. {bid} .linear_attn.in_proj_z" , # qwen3.5
2026-02-09 14:57:51 +02:00
"model.layers. {bid} .self_attn.g_proj" , # step3.5 head-wise attention gate
2025-11-14 07:54:10 -05:00
),
2023-11-10 22:04:50 -07:00
# Feed-forward norm
MODEL_TENSOR . FFN_NORM : (
"gpt_neox.layers. {bid} .post_attention_layernorm" , # gptneox
2024-08-16 15:35:18 +09:00
"transformer.h. {bid} .ln_2" , # gpt2 refact qwen jais exaone
2023-11-10 22:04:50 -07:00
"h. {bid} .post_attention_layernorm" , # bloom
"transformer.blocks. {bid} .norm_2" , # mpt
2025-01-09 11:21:41 +01:00
"model.layers. {bid} .post_attention_layernorm" , # llama-hf nemotron olmoe phimoe
2023-11-10 22:04:50 -07:00
"layers. {bid} .ffn_norm" , # llama-pth
"model.layers. {bid} .ln2" , # yi
2023-12-28 09:03:57 -05:00
"h. {bid} .ln_2" , # gpt2
2024-02-01 17:19:51 +08:00
"model.layers. {bid} .ffn_norm" , # internlm2
2024-03-23 17:41:53 +01:00
"transformer.decoder_layer. {bid} .rms_norm_2" , # Grok
2025-09-14 23:00:59 +02:00
"model.layers. {bid} .pre_moe_norm" , # grok-2
2024-07-07 20:52:10 +08:00
"encoder.layers. {bid} .post_attention_layernorm" , # chatglm
2024-07-05 05:14:21 +12:00
"transformer.layers. {bid} .ffn_norm" , # openelm
2025-07-10 18:20:13 -06:00
"model.layers. {bid} .pre_ff_layernorm" , # jamba granite-hybrid
2025-07-09 14:59:57 -04:00
"model.layers. {bid} .pre_moe_layernorm" , # mini-jamba
2025-05-15 17:40:07 +02:00
"model.layers. {bid} .post_attention_layernorm" , # llama4
2025-06-16 21:53:41 +09:00
"transformer_encoder. {bid} .ffn_norm" , # neobert
2025-07-16 01:11:42 +09:00
"model.layers.layers. {bid} .pre_mlp_norm" , # plamo2
2025-07-31 19:49:09 +08:00
"model.transformer.blocks. {bid} .ff_norm" , # llada
2025-08-02 03:44:50 -05:00
"layers. {bid} .post_attention_layernorm" , # qwen3-embedding
2025-10-02 19:43:22 +02:00
"model.layers. {bid} .feedforward_layernorm" , # apertus
2025-12-16 02:51:43 +09:00
"model.layers. {bid} .pre_mlp_layernorm" , # kormo
2025-12-22 18:28:19 -05:00
"layers. {bid} .mlp_norm" # modern-bert
2023-11-10 22:04:50 -07:00
),
2025-11-14 07:54:10 -05:00
# Pre feed-forward norm
2024-06-28 00:00:43 -04:00
MODEL_TENSOR . FFN_PRE_NORM : (
"model.layers. {bid} .pre_feedforward_layernorm" , # gemma2
2025-09-04 18:10:29 +02:00
"layers. {bid} .pre_feedforward_layernorm" , # embeddinggemma
2025-07-09 12:03:49 +04:00
"model.layers. {bid} .pre_ff_layernorm.weight" ,
2025-11-14 07:54:10 -05:00
"model.layers. {bid} .pre_mlp_layernorm" , # afmoe
2024-06-28 00:00:43 -04:00
),
2026-04-02 17:10:32 +02:00
MODEL_TENSOR . FFN_PRE_NORM_2 : (
"model.layers. {bid} .pre_feedforward_layernorm_2" , # gemma4
),
2024-06-28 00:00:43 -04:00
# Post feed-forward norm
MODEL_TENSOR . FFN_POST_NORM : (
2025-09-14 23:00:59 +02:00
"model.layers. {bid} .post_feedforward_layernorm" , # gemma2 olmo2
"layers. {bid} .post_feedforward_layernorm" , # embeddinggemma
"model.layers. {bid} .post_mlp_layernorm" , # glm-4-0414
2025-07-16 01:11:42 +09:00
"model.layers.layers. {bid} .post_mlp_norm.weight" , # plamo2
2025-07-09 12:03:49 +04:00
"model.layers. {bid} .feed_forward.up_proj" ,
2025-09-14 23:00:59 +02:00
"model.layers. {bid} .post_moe_norm" , # grok-2
2024-06-28 00:00:43 -04:00
),
2026-04-02 17:10:32 +02:00
MODEL_TENSOR . FFN_POST_NORM_1 : (
"model.layers. {bid} .post_feedforward_layernorm_1" , # gemma4
),
MODEL_TENSOR . FFN_POST_NORM_2 : (
"model.layers. {bid} .post_feedforward_layernorm_2" , # gemma4
),
2023-12-13 13:04:25 +01:00
MODEL_TENSOR . FFN_GATE_INP : (
2024-09-25 01:06:52 -06:00
"layers. {bid} .feed_forward.gate" , # mixtral
2025-01-09 11:21:41 +01:00
"model.layers. {bid} .block_sparse_moe.gate" , # mixtral phimoe
2024-09-25 01:06:52 -06:00
"model.layers. {bid} .mlp.gate" , # qwen2moe olmoe
"transformer.decoder_layer. {bid} .router" , # Grok
"transformer.blocks. {bid} .ffn.router.layer" , # dbrx
"model.layers. {bid} .block_sparse_moe.router.layer" , # granitemoe
2025-07-09 14:59:57 -04:00
"model.layers. {bid} .feed_forward.router" , # llama4 jamba
2025-04-28 15:52:15 -04:00
"encoder.layers. {bid} .mlp.router.layer" , # nomic-bert-moe
2025-08-05 22:10:36 +03:00
"model.layers. {bid} .mlp.router" , # openai-moe
2025-07-08 10:24:06 +02:00
"model.layers. {bid} .mlp.gate.wg" , # hunyuan
2025-07-28 19:47:00 +08:00
"model.layers. {bid} .block_sparse_moe.primary_router" , # smallthinker
2025-10-07 20:03:35 +02:00
"model.layers. {bid} .feed_forward.gate" , # lfm2moe
2025-11-14 07:54:10 -05:00
"model.layers. {bid} .mlp.router.gate" , # afmoe
2025-12-06 10:49:33 +01:00
"layers. {bid} .gate" , # mistral-large
2025-12-16 07:19:26 +01:00
"backbone.layers. {bid} .mixer.gate" , # nemotron-h-moe
2026-02-07 04:06:14 +08:00
"model.layers. {bid} .moe.gate" , # step3.5
2026-04-02 17:10:32 +02:00
"model.layers. {bid} .router.proj" , # gemma4
2023-12-13 13:04:25 +01:00
),
2024-04-16 23:40:48 +08:00
MODEL_TENSOR . FFN_GATE_INP_SHEXP : (
"model.layers. {bid} .mlp.shared_expert_gate" , # qwen2moe
),
2025-01-04 21:06:11 +01:00
MODEL_TENSOR . FFN_EXP_PROBS_B : (
2025-07-17 23:15:32 +02:00
"model.layers. {bid} .mlp.gate.e_score_correction" , # deepseek-v3 dots1
"model.layers. {bid} .mlp.moe_statics.e_score_correction" , # ernie4.5-moe
2025-10-20 21:38:20 +02:00
"model.layers. {bid} .mlp.gate.expert_bias" , # bailingmoe2
2025-11-14 07:54:10 -05:00
"model.layers. {bid} .mlp.expert_bias" , # afmoe
2025-10-07 20:03:35 +02:00
"model.layers. {bid} .feed_forward.expert_bias" , # lfm2moe
2025-10-31 21:20:47 +01:00
"model.layers. {bid} .block_sparse_moe.e_score_correction" , # minimax-m2
2026-01-14 07:28:38 +09:00
"backbone.layers. {bid} .mixer.gate.e_score_correction" , # nemotron-h-moe
"model.layers. {bid} .mlp.e_score_correction" , # exaone-moe
2026-02-06 18:39:58 +08:00
"model.layers. {bid} .block_sparse_moe.gate.e_score_correction" , # kimi
2026-02-07 04:06:14 +08:00
"model.layers. {bid} .moe.router_bias" , # step3.5 expert selection bias
2025-01-04 21:06:11 +01:00
),
2023-11-10 22:04:50 -07:00
# Feed-forward up
MODEL_TENSOR . FFN_UP : (
"gpt_neox.layers. {bid} .mlp.dense_h_to_4h" , # gptneox
2024-07-02 10:36:00 -04:00
"transformer.h. {bid} .mlp.c_fc" , # gpt2 jais
2023-11-10 22:04:50 -07:00
"transformer.blocks. {bid} .ffn.up_proj" , # mpt
"transformer.h. {bid} .mlp.dense_h_to_4h" , # falcon
"h. {bid} .mlp.dense_h_to_4h" , # bloom
2024-11-25 10:36:09 -08:00
"model.layers. {bid} .mlp.up_proj" , # llama-hf refact nemotron olmo2
2025-09-04 18:10:29 +02:00
"layers. {bid} .mlp.up_proj" , # embeddinggemma
2023-11-10 22:04:50 -07:00
"layers. {bid} .feed_forward.w3" , # llama-pth
"encoder.layer. {bid} .intermediate.dense" , # bert
2025-12-22 18:28:19 -05:00
"layers. {bid} .mlp.Wi" , # modern-bert
2025-05-30 18:56:02 +09:00
"transformer.layer. {bid} .ffn.lin1" , # distillbert
2023-11-10 22:04:50 -07:00
"transformer.h. {bid} .mlp.fc_in" , # gpt-j
2024-05-11 10:32:41 +03:00
"transformer.h. {bid} .mlp.linear_3" , # refact
2024-01-12 13:01:56 +02:00
"model.layers. {bid} .mlp.dense_h_to_4h" , # persimmon
2023-12-02 02:16:31 +08:00
"transformer.h. {bid} .mlp.w1" , # qwen
2023-12-28 09:03:57 -05:00
"h. {bid} .mlp.c_fc" , # gpt2
2023-12-18 17:27:47 +00:00
"transformer.h. {bid} .mlp.fc1" , # phi2
2024-01-13 13:44:37 +02:00
"model.layers. {bid} .mlp.fc1" , # phi2
2025-04-11 18:10:10 +08:00
"model.layers. {bid} .mlp.gate_up_proj" , # phi3 glm-4-0414
2023-12-24 22:35:49 +09:00
"model.layers.layers. {bid} .mlp.up_proj" , # plamo
2025-07-16 01:11:42 +09:00
"model.layers.layers. {bid} .mlp.gate_up_proj" , # plamo2
2024-02-01 17:19:51 +08:00
"model.layers. {bid} .feed_forward.w3" , # internlm2
2024-02-13 12:03:53 -05:00
"encoder.layers. {bid} .mlp.fc11" , # nomic-bert
2025-04-28 15:52:15 -04:00
"encoder.layers. {bid} .mlp.fc1" , # nomic-bert-moe
2024-03-02 01:00:46 +05:30
"model.layers. {bid} .mlp.c_fc" , # starcoder2
2025-06-10 18:02:08 +02:00
"encoder.layer. {bid} .mlp.gated_layers_v" , # jina-bert-v2 (split up/gate, no longer used)
"encoder.layer. {bid} .mlp.gated_layers" , # jina-bert-v2 (GEGLU)
"encoder.layer. {bid} .mlp.up_gated_layer" , # jina-v2-code (GEGLU)
2024-05-24 14:31:13 +02:00
"model.layers. {bid} .residual_mlp.w3" , # arctic
2024-07-07 20:52:10 +08:00
"encoder.layers. {bid} .mlp.dense_h_to_4h" , # chatglm
2024-08-16 15:35:18 +09:00
"transformer.h. {bid} .mlp.c_fc_1" , # exaone
2025-07-10 18:20:13 -06:00
"model.layers. {bid} .feed_forward.up_proj" , # llama4 jamba granite-hybrid
2025-06-16 21:53:41 +09:00
"transformer_encoder. {bid} .ffn.w12" , # neobert
2025-07-28 19:47:00 +08:00
"model.layers. {bid} .block_sparse_moe.up" , # smallthinker
2025-08-02 03:44:50 -05:00
"model.transformer.blocks. {bid} .up_proj" , # llada
"layers. {bid} .mlp.up_proj" , # qwen3-embedding
2025-08-28 18:39:31 -06:00
"backbone.layers. {bid} .mixer.up_proj" , # nemotron-h
2025-10-30 07:18:50 -04:00
"model.layers. {bid} .mlp.language_mlp.up_proj" , # cogvlm
2023-11-10 22:04:50 -07:00
),
2023-12-13 13:04:25 +01:00
MODEL_TENSOR . FFN_UP_EXP : (
2025-07-17 23:15:32 +02:00
"layers. {bid} .feed_forward.experts.w3" , # mixtral (merged)
"transformer.decoder_layer. {bid} .moe.linear_v" , # Grok (merged)
"transformer.blocks. {bid} .ffn.experts.mlp.v1" , # dbrx
2025-12-16 07:19:26 +01:00
"model.layers. {bid} .mlp.experts.up_proj" , # qwen2moe olmoe (merged) ernie4.5-moe, nemotron-h-moe (merged)
2025-07-17 23:15:32 +02:00
"model.layers. {bid} .block_sparse_moe.experts.w3" , # phimoe (merged)
"model.layers. {bid} .feed_forward.experts.up_proj" , # llama4
"encoder.layers. {bid} .mlp.experts.mlp.w1" , # nomic-bert-moe
2025-07-28 19:47:00 +08:00
"model.layers. {bid} .block_sparse_moe.experts.up" , # smallthinker
2026-02-07 04:06:14 +08:00
"model.layers. {bid} .moe.up_proj" , # step3.5
2024-04-16 23:40:48 +08:00
),
MODEL_TENSOR . FFN_UP_SHEXP : (
2025-05-15 17:40:07 +02:00
"model.layers. {bid} .mlp.shared_expert.up_proj" , # qwen2moe
"model.layers. {bid} .mlp.shared_experts.up_proj" , # deepseek deepseek2
"model.layers. {bid} .feed_forward.shared_expert.up_proj" , # llama4
2025-07-09 12:03:49 +04:00
"model.layers. {bid} .feed_forward.down_proj" ,
2025-07-08 10:24:06 +02:00
"model.layers. {bid} .mlp.shared_mlp.up_proj" , # hunyuan
2025-12-06 10:49:33 +01:00
"layers. {bid} .shared_experts.w3" , # mistral-large
2025-12-16 07:19:26 +01:00
"backbone.layers. {bid} .mixer.shared_experts.up_proj" , # nemotron-h-moe
2026-02-06 18:39:58 +08:00
"model.layers. {bid} .block_sparse_moe.shared_experts.up_proj" , # kimi
2026-02-07 04:06:14 +08:00
"model.layers. {bid} .share_expert.up_proj" , # step3.5
2023-12-13 13:04:25 +01:00
),
2025-09-25 19:50:28 +02:00
MODEL_TENSOR . FFN_UP_CHEXP : (
"model.layers. {bid} .mlp.chunk_experts.up_proj" , # grovemoe
),
2023-12-27 22:39:45 +07:00
# AWQ-activation gate
MODEL_TENSOR . FFN_ACT : (
"transformer.blocks. {bid} .ffn.act" , # mpt
),
2023-11-10 22:04:50 -07:00
# Feed-forward gate
MODEL_TENSOR . FFN_GATE : (
2025-10-30 07:18:50 -04:00
"model.layers. {bid} .mlp.gate_proj" , # llama-hf refact olmo2
"layers. {bid} .mlp.gate_proj" , # embeddinggemma
"layers. {bid} .feed_forward.w1" , # llama-pth
"transformer.h. {bid} .mlp.w2" , # qwen
"transformer.h. {bid} .mlp.c_fc2" , # jais
"model.layers.layers. {bid} .mlp.gate_proj" , # plamo
"model.layers. {bid} .feed_forward.w1" , # internlm2
"encoder.layers. {bid} .mlp.fc12" , # nomic-bert
"encoder.layer. {bid} .mlp.gated_layers_w" , # jina-bert-v2 (split up/gate, no longer used)
"transformer.h. {bid} .mlp.linear_1" , # refact
"model.layers. {bid} .residual_mlp.w1" , # arctic
"transformer.h. {bid} .mlp.c_fc_0" , # exaone
"model.layers. {bid} .feed_forward.gate_proj" , # llama4 jamba granite-hybrid
"model.transformer.blocks. {bid} .ff_proj" , # llada
"layers. {bid} .mlp.gate_proj" , # qwen3-embedding
"model.layers. {bid} .mlp.language_mlp.gate_proj" , # cogvlm
2023-12-13 13:04:25 +01:00
),
MODEL_TENSOR . FFN_GATE_EXP : (
2025-07-17 23:15:32 +02:00
"layers. {bid} .feed_forward.experts.w1" , # mixtral (merged)
"transformer.decoder_layer. {bid} .moe.linear" , # Grok (merged)
"transformer.blocks. {bid} .ffn.experts.mlp.w1" , # dbrx
"model.layers. {bid} .mlp.experts.gate_proj" , # qwen2moe olmoe (merged) ernie4.5-moe
"model.layers. {bid} .block_sparse_moe.experts.w1" , # phimoe (merged)
"model.layers. {bid} .feed_forward.experts.gate_proj" , # llama4
2025-07-28 19:47:00 +08:00
"model.layers. {bid} .block_sparse_moe.experts.gate" , # smallthinker
2026-02-07 04:06:14 +08:00
"model.layers. {bid} .moe.gate_proj" , # step3.5
2024-04-16 23:40:48 +08:00
),
MODEL_TENSOR . FFN_GATE_SHEXP : (
2025-05-15 17:40:07 +02:00
"model.layers. {bid} .mlp.shared_expert.gate_proj" , # qwen2moe
"model.layers. {bid} .mlp.shared_experts.gate_proj" , # deepseek deepseek2
"model.layers. {bid} .feed_forward.shared_expert.gate_proj" , # llama4
2025-07-08 10:24:06 +02:00
"model.layers. {bid} .mlp.shared_mlp.gate_proj" , # hunyuan
2025-12-06 10:49:33 +01:00
"layers. {bid} .shared_experts.w1" , # mistral-large
2026-02-06 18:39:58 +08:00
"model.layers. {bid} .block_sparse_moe.shared_experts.gate_proj" , # kimi
2026-02-07 04:06:14 +08:00
"model.layers. {bid} .share_expert.gate_proj" , # step3.5
2023-11-10 22:04:50 -07:00
),
2025-09-25 19:50:28 +02:00
MODEL_TENSOR . FFN_GATE_CHEXP : (
"model.layers. {bid} .mlp.chunk_experts.gate_proj" , # grovemoe
),
2026-02-26 21:01:08 +08:00
MODEL_TENSOR . FFN_GATE_UP_EXP : (
"model.layers. {bid} .mlp.experts.gate_up_proj" ,
2026-04-02 17:10:32 +02:00
"model.layers. {bid} .experts.gate_up_proj" , # gemma4
2026-02-26 21:01:08 +08:00
),
2026-03-11 19:27:53 +01:00
MODEL_TENSOR . MOE_LATENT_DOWN : (
"backbone.layers. {bid} .mixer.fc1_latent_proj" , # nemotron 3 super
),
MODEL_TENSOR . MOE_LATENT_UP : (
"backbone.layers. {bid} .mixer.fc2_latent_proj" , # nemotron 3 super
),
2023-11-10 22:04:50 -07:00
# Feed-forward down
MODEL_TENSOR . FFN_DOWN : (
"gpt_neox.layers. {bid} .mlp.dense_4h_to_h" , # gptneox
2024-07-02 10:36:00 -04:00
"transformer.h. {bid} .mlp.c_proj" , # gpt2 refact qwen jais
2023-11-10 22:04:50 -07:00
"transformer.blocks. {bid} .ffn.down_proj" , # mpt
"transformer.h. {bid} .mlp.dense_4h_to_h" , # falcon
"h. {bid} .mlp.dense_4h_to_h" , # bloom
2024-11-25 10:36:09 -08:00
"model.layers. {bid} .mlp.down_proj" , # llama-hf nemotron olmo2
2025-09-04 18:10:29 +02:00
"layers. {bid} .mlp.down_proj" , # embeddinggemma
2023-11-10 22:04:50 -07:00
"layers. {bid} .feed_forward.w2" , # llama-pth
"encoder.layer. {bid} .output.dense" , # bert
2025-12-22 18:28:19 -05:00
"layers. {bid} .mlp.Wo" , # modern-bert
2025-05-30 18:56:02 +09:00
"transformer.layer. {bid} .ffn.lin2" , # distillbert
2023-11-10 22:04:50 -07:00
"transformer.h. {bid} .mlp.fc_out" , # gpt-j
2024-01-12 13:01:56 +02:00
"model.layers. {bid} .mlp.dense_4h_to_h" , # persimmon
2023-12-28 09:03:57 -05:00
"h. {bid} .mlp.c_proj" , # gpt2
2023-12-18 17:27:47 +00:00
"transformer.h. {bid} .mlp.fc2" , # phi2
2024-01-13 13:44:37 +02:00
"model.layers. {bid} .mlp.fc2" , # phi2
2023-12-24 22:35:49 +09:00
"model.layers.layers. {bid} .mlp.down_proj" , # plamo
2024-02-01 17:19:51 +08:00
"model.layers. {bid} .feed_forward.w2" , # internlm2
2024-02-13 12:03:53 -05:00
"encoder.layers. {bid} .mlp.fc2" , # nomic-bert
2024-03-02 01:00:46 +05:30
"model.layers. {bid} .mlp.c_proj" , # starcoder2
2024-05-11 09:46:09 +02:00
"encoder.layer. {bid} .mlp.wo" , # jina-bert-v2
2024-07-05 05:14:21 +12:00
"transformer.layers. {bid} .ffn.proj_2" , # openelm
2024-05-24 14:31:13 +02:00
"model.layers. {bid} .residual_mlp.w2" , # arctic
2024-06-06 09:22:41 +02:00
"encoder.layer. {bid} .mlp.down_layer" , # jina-bert-v2
2024-07-07 20:52:10 +08:00
"encoder.layers. {bid} .mlp.dense_4h_to_h" , # chatglm
2024-08-16 15:35:18 +09:00
"model.layers.h. {bid} .mlp.c_proj" , # exaone
2025-07-10 18:20:13 -06:00
"model.layers. {bid} .feed_forward.down_proj" , # llama4 jamba granite-hybrid
2025-06-16 21:53:41 +09:00
"transformer_encoder. {bid} .ffn.w3" , # neobert
2025-07-28 19:47:00 +08:00
"model.layers. {bid} .block_sparse_moe.down" , # smallthinker
2025-08-02 03:44:50 -05:00
"model.transformer.blocks. {bid} .ff_out" , # llada
"layers. {bid} .mlp.down_proj" , # qwen3-embedding
2025-08-28 18:39:31 -06:00
"backbone.layers. {bid} .mixer.down_proj" , # nemotron-h
2025-10-30 07:18:50 -04:00
"model.layers. {bid} .mlp.language_mlp.down_proj" , # cogvlm
2023-11-10 22:04:50 -07:00
),
2023-12-13 13:04:25 +01:00
MODEL_TENSOR . FFN_DOWN_EXP : (
2025-07-17 23:15:32 +02:00
"layers. {bid} .feed_forward.experts.w2" , # mixtral (merged)
"transformer.decoder_layer. {bid} .moe.linear_1" , # Grok (merged)
"transformer.blocks. {bid} .ffn.experts.mlp.w2" , # dbrx
2025-12-16 07:19:26 +01:00
"model.layers. {bid} .mlp.experts.down_proj" , # qwen2moe olmoe (merged) ernie4.5-moe nemotron-h-moe (merged)
2025-07-17 23:15:32 +02:00
"model.layers. {bid} .block_sparse_moe.output_linear" , # granitemoe
"model.layers. {bid} .block_sparse_moe.experts.w2" , # phimoe (merged)
"model.layers. {bid} .feed_forward.experts.down_proj" , # llama4
"encoder.layers. {bid} .mlp.experts.mlp.w2" , # nomic-bert-moe
2025-07-28 19:47:00 +08:00
"model.layers. {bid} .block_sparse_moe.experts.down" , # smallthinker
2026-02-07 04:06:14 +08:00
"model.layers. {bid} .moe.down_proj" , # step3.5
2026-04-02 17:10:32 +02:00
"model.layers. {bid} .experts.down_proj" , # gemma4
2024-04-16 23:40:48 +08:00
),
MODEL_TENSOR . FFN_DOWN_SHEXP : (
2025-05-15 17:40:07 +02:00
"model.layers. {bid} .mlp.shared_expert.down_proj" , # qwen2moe
"model.layers. {bid} .mlp.shared_experts.down_proj" , # deepseek deepseek2
"model.layers. {bid} .feed_forward.shared_expert.down_proj" , # llama4
"model.layers. {bid} .shared_mlp.output_linear" , # granitemoe
2025-07-08 10:24:06 +02:00
"model.layers. {bid} .mlp.shared_mlp.down_proj" , # hunyuan
2025-12-06 10:49:33 +01:00
"layers. {bid} .shared_experts.w2" , # mistral-large
2025-12-16 07:19:26 +01:00
"backbone.layers. {bid} .mixer.shared_experts.down_proj" , # nemotron-h-moe
2026-02-06 18:39:58 +08:00
"model.layers. {bid} .block_sparse_moe.shared_experts.down_proj" , # kimi
2026-02-07 04:06:14 +08:00
"model.layers. {bid} .share_expert.down_proj" , # step3.5
2023-12-13 13:04:25 +01:00
),
2025-09-25 19:50:28 +02:00
MODEL_TENSOR . FFN_DOWN_CHEXP : (
"model.layers. {bid} .mlp.chunk_experts.down_proj" , # grovemoe
),
2023-11-10 22:04:50 -07:00
MODEL_TENSOR . ATTN_Q_NORM : (
2026-05-06 08:06:05 +02:00
"encoder.layers. {bid} .self_attention.q_layernorm" ,
2024-01-12 13:01:56 +02:00
"model.layers. {bid} .self_attn.q_layernorm" , # persimmon
2025-07-08 10:24:06 +02:00
"model.layers. {bid} .self_attn.query_layernorm" , # hunyuan
2025-10-20 21:38:20 +02:00
"model.layers. {bid} .attention.query_layernorm" , # bailingmoe2
2024-11-25 10:36:09 -08:00
"model.layers. {bid} .self_attn.q_norm" , # cohere olmoe chameleon olmo2
2025-09-04 18:10:29 +02:00
"layers. {bid} .self_attn.q_norm" , # embeddinggemma
2024-04-04 02:05:10 +08:00
"transformer.blocks. {bid} .attn.q_ln" , # sea-lion
2024-07-05 05:14:21 +12:00
"encoder.layer. {bid} .attention.self.layer_norm_q" , # jina-bert-v2
"transformer.layers. {bid} .attn.q_norm" , # openelm
2025-07-16 01:11:42 +09:00
"model.layers.layers. {bid} .mixer.q" , # plamo2
2025-12-29 01:28:31 +09:00
"model.layers.layers. {bid} .mixer.q_norm" , # plamo3
2025-08-02 03:44:50 -05:00
"layers. {bid} .self_attn.q_norm" , # qwen3-embedding
2025-10-02 19:43:22 +02:00
"model.layers. {bid} .attention.query_layernorm" , # apertus
2023-11-10 22:04:50 -07:00
),
MODEL_TENSOR . ATTN_K_NORM : (
2026-05-06 08:06:05 +02:00
"encoder.layers. {bid} .self_attention.k_layernorm" ,
2024-01-12 13:01:56 +02:00
"model.layers. {bid} .self_attn.k_layernorm" , # persimmon
2025-07-08 10:24:06 +02:00
"model.layers. {bid} .self_attn.key_layernorm" , # hunyuan
2025-10-20 21:38:20 +02:00
"model.layers. {bid} .attention.key_layernorm" , # bailingmoe2
2024-11-25 10:36:09 -08:00
"model.layers. {bid} .self_attn.k_norm" , # cohere olmoe chameleon olmo2
2025-09-04 18:10:29 +02:00
"layers. {bid} .self_attn.k_norm" , # embeddinggemma
2024-04-04 02:05:10 +08:00
"transformer.blocks. {bid} .attn.k_ln" , # sea-lion
2024-07-05 05:14:21 +12:00
"encoder.layer. {bid} .attention.self.layer_norm_k" , # jina-bert-v2
"transformer.layers. {bid} .attn.k_norm" , # openelm
2025-07-16 01:11:42 +09:00
"model.layers.layers. {bid} .mixer.k" , # plamo2
2025-12-29 01:28:31 +09:00
"model.layers.layers. {bid} .mixer.k_norm" , # plamo3
2025-08-02 03:44:50 -05:00
"layers. {bid} .self_attn.k_norm" , # qwen3-embedding
2025-10-02 19:43:22 +02:00
"model.layers. {bid} .attention.key_layernorm" , # apertus
2023-11-10 22:04:50 -07:00
),
MODEL_TENSOR . ROPE_FREQS : (
2026-05-06 08:06:05 +02:00
"encoder.layers. {bid} .self_attention.rotary_emb.inv_freq" , # persimmon
2023-11-10 22:04:50 -07:00
),
2024-02-11 10:21:38 -06:00
MODEL_TENSOR . LAYER_OUT_NORM : (
2024-03-23 17:41:53 +01:00
"encoder.layer. {bid} .output.LayerNorm" , # bert
2025-05-30 18:56:02 +09:00
"transformer.layer. {bid} .output_layer_norm" , # distillbert
2024-03-23 17:41:53 +01:00
"encoder.layers. {bid} .norm2" , # nomic-bert
"transformer.decoder_layer. {bid} .rms_norm_3" , # Grok
2024-05-11 09:46:09 +02:00
"encoder.layer. {bid} .mlp.layernorm" , # jina-bert-v2
2025-07-02 13:10:24 -04:00
"encoder.layer. {bid} .layer_norm_2" , # jina-v2-code
2025-10-20 21:38:20 +02:00
"model.layers. {bid} .final_layernorm" , # bailingmoe2
2024-03-08 17:31:00 -05:00
),
2026-04-02 17:10:32 +02:00
MODEL_TENSOR . LAYER_OUT_SCALE : (
"model.layers. {bid} .layer_scalar" , # gemma4
),
2025-06-26 19:34:02 +02:00
MODEL_TENSOR . PER_LAYER_TOKEN_EMBD : (
"model.embed_tokens_per_layer" , # gemma3n
),
MODEL_TENSOR . PER_LAYER_MODEL_PROJ : (
"model.per_layer_model_projection" , # gemma3n
),
MODEL_TENSOR . PER_LAYER_PROJ_NORM : (
"model.per_layer_projection_norm" , # gemma3n
),
MODEL_TENSOR . ALTUP_PROJ : (
"model.altup_projections" , # gemma3n
),
MODEL_TENSOR . ALTUP_UNEMBD_PROJ : (
"model.altup_unembed_projections" , # gemma3n
),
MODEL_TENSOR . PER_LAYER_INP_GATE : (
"model.layers. {bid} .per_layer_input_gate" , # gemma3n
),
MODEL_TENSOR . PER_LAYER_PROJ : (
"model.layers. {bid} .per_layer_projection" , # gemma3n
),
MODEL_TENSOR . PER_LAYER_POST_NORM : (
"model.layers. {bid} .post_per_layer_input_norm" , # gemma3n
),
MODEL_TENSOR . ALTUP_CORRECT_COEF : (
"model.layers. {bid} .altup.correction_coefs" , # gemma3n
),
MODEL_TENSOR . ALTUP_CORRECT_SCALE : (
"model.layers. {bid} .altup.correct_output_scale" , # gemma3n
),
MODEL_TENSOR . ALTUP_PREDICT_COEF : (
"model.layers. {bid} .altup.prediction_coefs" , # gemma3n
),
MODEL_TENSOR . ALTUP_ROUTER : (
"model.layers. {bid} .altup.modality_router" , # gemma3n
),
MODEL_TENSOR . ALTUP_ROUTER_NORM : (
"model.layers. {bid} .altup.router_norm" , # gemma3n
),
MODEL_TENSOR . LAUREL_L : (
"model.layers. {bid} .laurel.linear_left" , # gemma3n
),
MODEL_TENSOR . LAUREL_R : (
"model.layers. {bid} .laurel.linear_right" , # gemma3n
),
MODEL_TENSOR . LAUREL_POST_NORM : (
"model.layers. {bid} .laurel.post_laurel_norm" , # gemma3n
),
2024-03-08 17:31:00 -05:00
MODEL_TENSOR . SSM_IN : (
2025-11-28 12:02:56 +01:00
"model.layers. {bid} .in_proj" , # mamba-hf
"backbone.layers. {bid} .mixer.in_proj" , # mamba
"model.layers. {bid} .mamba.in_proj" , # jamba falcon-h1 granite-hybrid
"model.layers.layers. {bid} .mixer.in_proj" , # plamo2
"model.layers. {bid} .linear_attn.in_proj_qkvz" , # qwen3next
2024-03-08 17:31:00 -05:00
),
MODEL_TENSOR . SSM_CONV1D : (
2025-07-16 01:11:42 +09:00
"model.layers. {bid} .conv1d" , # mamba-hf
"backbone.layers. {bid} .mixer.conv1d" , # mamba
"model.layers. {bid} .mamba.conv1d" , # jamba falcon-h1 granite-hybrid
"model.layers.layers. {bid} .mixer.conv1d" , # plamo2
2025-11-28 12:02:56 +01:00
"model.layers. {bid} .linear_attn.conv1d" , # qwen3next
2024-03-08 17:31:00 -05:00
),
MODEL_TENSOR . SSM_X : (
2025-07-16 01:11:42 +09:00
"model.layers. {bid} .x_proj" , # mamba-hf
"backbone.layers. {bid} .mixer.x_proj" , # mamba
"model.layers. {bid} .mamba.x_proj" , # jamba
"model.layers.layers. {bid} .mixer.bcdt_proj" , # plamo2
2024-03-08 17:31:00 -05:00
),
MODEL_TENSOR . SSM_DT : (
2025-07-16 01:11:42 +09:00
"model.layers. {bid} .dt_proj" , # mamba-hf
"backbone.layers. {bid} .mixer.dt_proj" , # mamba
"model.layers. {bid} .mamba.dt_proj" , # jamba falcon-h1 granite-hybrid
"model.layers.layers. {bid} .mixer.dt_proj" , # plamo2
2025-11-28 12:02:56 +01:00
"model.layers. {bid} .linear_attn.dt_proj" , # qwen3next
2025-12-16 07:19:26 +01:00
"backbone.layers. {bid} .mixer.dt" , # nemotron-h-moe
2026-02-06 18:39:58 +08:00
"model.layers. {bid} .self_attn.dt_proj" , # kimi
2025-07-09 14:59:57 -04:00
),
MODEL_TENSOR . SSM_DT_NORM : (
2025-07-31 07:59:49 -07:00
"model.layers.layers. {bid} .mixer.dt_norm.weight" , # plamo2
2025-07-09 14:59:57 -04:00
"model.layers. {bid} .mamba.dt_layernorm" , # jamba
2024-03-08 17:31:00 -05:00
),
MODEL_TENSOR . SSM_A : (
2025-07-16 01:11:42 +09:00
"model.layers. {bid} .A_log" , # mamba-hf
"backbone.layers. {bid} .mixer.A_log" , # mamba
"model.layers. {bid} .mamba.A_log" , # jamba falcon-h1 granite-hybrid
"model.layers.layers. {bid} .mixer.A_log" , # plamo2
2025-11-28 12:02:56 +01:00
"model.layers. {bid} .linear_attn.A_log" , # qwen3next
2026-02-06 18:39:58 +08:00
"model.layers. {bid} .self_attn.A_log" , # kimi
2025-07-09 14:59:57 -04:00
),
MODEL_TENSOR . SSM_B_NORM : (
2025-07-16 01:11:42 +09:00
"model.layers. {bid} .mamba.b_layernorm" , # jamba
"model.layers. {bid} .mamba.B_layernorm" , # mini-jamba
"model.layers.layers. {bid} .mixer.B_norm.weight" , # plamo2
2025-07-09 14:59:57 -04:00
),
MODEL_TENSOR . SSM_C_NORM : (
2025-07-16 01:11:42 +09:00
"model.layers. {bid} .mamba.c_layernorm" , # jamba
"model.layers. {bid} .mamba.C_layernorm" , # mini-jamba
"model.layers.layers. {bid} .mixer.C_norm.weight" , # plamo2
2024-03-08 17:31:00 -05:00
),
MODEL_TENSOR . SSM_D : (
2025-07-16 01:11:42 +09:00
"model.layers. {bid} .D" , # mamba-hf
"backbone.layers. {bid} .mixer.D" , # mamba
"model.layers. {bid} .mamba.D" , # jamba falcon-h1 granite-hybrid
"model.layers.layers. {bid} .mixer.D" , # plamo2
),
2025-07-02 13:10:24 -04:00
MODEL_TENSOR . SSM_NORM : (
2025-11-28 12:02:56 +01:00
"model.layers. {bid} .mamba.norm" , # falcon-h1 granite-hybrid
"model.layers. {bid} .linear_attn.norm" , # qwen3next
"backbone.layers. {bid} .mixer.norm" , # mamba2
2026-02-06 18:39:58 +08:00
"model.layers. {bid} .self_attn.o_norm" , # kimi
2025-07-02 13:10:24 -04:00
),
2024-03-08 17:31:00 -05:00
MODEL_TENSOR . SSM_OUT : (
2025-07-16 01:11:42 +09:00
"model.layers. {bid} .out_proj" , # mamba-hf
"backbone.layers. {bid} .mixer.out_proj" , # mamba
"model.layers. {bid} .mamba.out_proj" , # jamba falcon-h1 granite-hybrid
2025-11-28 12:02:56 +01:00
"model.layers. {bid} .linear_attn.out_proj" , # qwen3next
2025-07-16 01:11:42 +09:00
"model.layers.layers. {bid} .mixer.out_proj" , # plamo2
2024-03-08 17:31:00 -05:00
),
2024-05-28 17:07:05 +02:00
2026-02-11 00:00:26 +08:00
MODEL_TENSOR . SSM_ALPHA : (
"model.layers. {bid} .linear_attn.in_proj_a" , # qwen3.5
),
2025-11-28 12:02:56 +01:00
MODEL_TENSOR . SSM_BETA_ALPHA : (
"model.layers. {bid} .linear_attn.in_proj_ba" , # qwen3next
),
2026-02-06 18:39:58 +08:00
# Kimi Linear KDA (using SSM_ prefix for consistency)
MODEL_TENSOR . SSM_CONV1D_Q : (
"model.layers. {bid} .self_attn.q_conv1d" ,
),
MODEL_TENSOR . SSM_CONV1D_K : (
"model.layers. {bid} .self_attn.k_conv1d" ,
),
MODEL_TENSOR . SSM_CONV1D_V : (
"model.layers. {bid} .self_attn.v_conv1d" ,
),
MODEL_TENSOR . SSM_F_A : (
"model.layers. {bid} .self_attn.f_a_proj" ,
),
MODEL_TENSOR . SSM_F_B : (
"model.layers. {bid} .self_attn.f_b_proj" ,
),
MODEL_TENSOR . SSM_BETA : (
2026-02-11 00:00:26 +08:00
"model.layers. {bid} .linear_attn.in_proj_b" , # qwen3.5
"model.layers. {bid} .self_attn.b_proj" , # Kimi Linear
2026-02-06 18:39:58 +08:00
),
MODEL_TENSOR . SSM_G_A : (
"model.layers. {bid} .self_attn.g_a_proj" ,
),
MODEL_TENSOR . SSM_G_B : (
"model.layers. {bid} .self_attn.g_b_proj" ,
),
2025-03-18 07:27:50 +08:00
MODEL_TENSOR . TIME_MIX_W0 : (
"model.layers. {bid} .attention.w0" , # rwkv7
),
2024-09-01 22:38:17 +08:00
MODEL_TENSOR . TIME_MIX_W1 : (
2025-03-18 07:27:50 +08:00
"rwkv.blocks. {bid} .attention.time_maa_w1" , # rwkv6
"model.layers. {bid} .self_attn.time_maa_w1" , # rwkv6qwen2
"model.layers. {bid} .attention.w1" , # rwkv7
2024-09-01 22:38:17 +08:00
),
MODEL_TENSOR . TIME_MIX_W2 : (
2025-03-18 07:27:50 +08:00
"rwkv.blocks. {bid} .attention.time_maa_w2" , # rwkv6
"model.layers. {bid} .self_attn.time_maa_w2" , # rwkv6qwen2
"model.layers. {bid} .attention.w2" , # rwkv7
),
MODEL_TENSOR . TIME_MIX_A0 : (
"model.layers. {bid} .attention.a0" , # rwkv7
),
MODEL_TENSOR . TIME_MIX_A1 : (
"model.layers. {bid} .attention.a1" , # rwkv7
),
MODEL_TENSOR . TIME_MIX_A2 : (
"model.layers. {bid} .attention.a2" , # rwkv7
),
MODEL_TENSOR . TIME_MIX_V0 : (
"model.layers. {bid} .attention.v0" , # rwkv7
),
MODEL_TENSOR . TIME_MIX_V1 : (
"model.layers. {bid} .attention.v1" , # rwkv7
),
MODEL_TENSOR . TIME_MIX_V2 : (
"model.layers. {bid} .attention.v2" , # rwkv7
),
MODEL_TENSOR . TIME_MIX_G1 : (
"model.layers. {bid} .attention.g1" , # rwkv7
),
MODEL_TENSOR . TIME_MIX_G2 : (
"model.layers. {bid} .attention.g2" , # rwkv7
),
MODEL_TENSOR . TIME_MIX_K_K : (
"model.layers. {bid} .attention.k_k" , # rwkv7
),
MODEL_TENSOR . TIME_MIX_K_A : (
"model.layers. {bid} .attention.k_a" , # rwkv7
),
MODEL_TENSOR . TIME_MIX_R_K : (
"model.layers. {bid} .attention.r_k" , # rwkv7
2024-09-01 22:38:17 +08:00
),
MODEL_TENSOR . TIME_MIX_LERP_X : (
2025-03-18 07:27:50 +08:00
"rwkv.blocks. {bid} .attention.time_maa_x" , # rwkv6
2025-01-10 09:58:08 +08:00
"model.layers. {bid} .self_attn.time_maa_x" , # rwkv6qwen2
2024-09-01 22:38:17 +08:00
),
MODEL_TENSOR . TIME_MIX_LERP_K : (
2025-03-18 07:27:50 +08:00
"rwkv.blocks. {bid} .attention.time_maa_k" , # rwkv6
2025-01-10 09:58:08 +08:00
"model.layers. {bid} .self_attn.time_maa_k" , # rwkv6qwen2
2024-09-01 22:38:17 +08:00
),
MODEL_TENSOR . TIME_MIX_LERP_V : (
2025-03-18 07:27:50 +08:00
"rwkv.blocks. {bid} .attention.time_maa_v" , # rwkv6
2025-01-10 09:58:08 +08:00
"model.layers. {bid} .self_attn.time_maa_v" , # rwkv6qwen2
2024-09-01 22:38:17 +08:00
),
MODEL_TENSOR . TIME_MIX_LERP_R : (
2025-03-18 07:27:50 +08:00
"rwkv.blocks. {bid} .attention.time_maa_r" , # rwkv6
2025-01-10 09:58:08 +08:00
"model.layers. {bid} .self_attn.time_maa_r" , # rwkv6qwen2
2024-09-01 22:38:17 +08:00
),
MODEL_TENSOR . TIME_MIX_LERP_G : (
2025-03-18 07:27:50 +08:00
"rwkv.blocks. {bid} .attention.time_maa_g" , # rwkv6
2025-01-10 09:58:08 +08:00
"model.layers. {bid} .self_attn.time_maa_g" , # rwkv6qwen2
2024-09-01 22:38:17 +08:00
),
MODEL_TENSOR . TIME_MIX_LERP_W : (
2025-03-18 07:27:50 +08:00
"rwkv.blocks. {bid} .attention.time_maa_w" , # rwkv6
2025-01-10 09:58:08 +08:00
"model.layers. {bid} .self_attn.time_maa_w" , # rwkv6qwen2
2024-09-01 22:38:17 +08:00
),
MODEL_TENSOR . TIME_MIX_FIRST : (
2025-03-18 07:27:50 +08:00
"rwkv.blocks. {bid} .attention.time_faaaa" , # rwkv6
2024-09-01 22:38:17 +08:00
),
MODEL_TENSOR . TIME_MIX_DECAY : (
2025-03-18 07:27:50 +08:00
"rwkv.blocks. {bid} .attention.time_decay" , # rwkv6
2025-01-10 09:58:08 +08:00
"model.layers. {bid} .self_attn.time_decay" , # rwkv6qwen2
2024-09-01 22:38:17 +08:00
),
MODEL_TENSOR . TIME_MIX_DECAY_W1 : (
2025-03-18 07:27:50 +08:00
"rwkv.blocks. {bid} .attention.time_decay_w1" , # rwkv6
2025-01-10 09:58:08 +08:00
"model.layers. {bid} .self_attn.time_decay_w1" , # rwkv6qwen2
2024-09-01 22:38:17 +08:00
),
MODEL_TENSOR . TIME_MIX_DECAY_W2 : (
2025-03-18 07:27:50 +08:00
"rwkv.blocks. {bid} .attention.time_decay_w2" , # rwkv6
2025-01-10 09:58:08 +08:00
"model.layers. {bid} .self_attn.time_decay_w2" , # rwkv6qwen2
2024-09-01 22:38:17 +08:00
),
MODEL_TENSOR . TIME_MIX_KEY : (
2025-03-18 07:27:50 +08:00
"rwkv.blocks. {bid} .attention.key" , # rwkv6
2025-01-10 09:58:08 +08:00
"model.layers. {bid} .self_attn.k_proj" , # rwkv6qwen2
2025-03-18 07:27:50 +08:00
"model.layers. {bid} .attention.key" , # rwkv7
"model.layers. {bid} .attention.k_proj" , # rwkv7
2024-09-01 22:38:17 +08:00
),
MODEL_TENSOR . TIME_MIX_VALUE : (
2025-03-18 07:27:50 +08:00
"rwkv.blocks. {bid} .attention.value" , # rwkv6
2025-01-10 09:58:08 +08:00
"model.layers. {bid} .self_attn.v_proj" , # rwkv6qwen2
2025-03-18 07:27:50 +08:00
"model.layers. {bid} .attention.value" , # rwkv7
"model.layers. {bid} .attention.v_proj" , # rwkv7
2024-09-01 22:38:17 +08:00
),
MODEL_TENSOR . TIME_MIX_RECEPTANCE : (
2025-03-18 07:27:50 +08:00
"rwkv.blocks. {bid} .attention.receptance" , # rwkv6
"model.layers. {bid} .self_attn.q_proj" , # rwkv6qwen2
"model.layers. {bid} .attention.receptance" , # rwkv7
"model.layers. {bid} .attention.r_proj" , # rwkv7
2024-09-01 22:38:17 +08:00
),
MODEL_TENSOR . TIME_MIX_GATE : (
2025-03-18 07:27:50 +08:00
"rwkv.blocks. {bid} .attention.gate" , # rwkv6
"model.layers. {bid} .self_attn.gate" , # rwkv6qwen2
2024-09-01 22:38:17 +08:00
),
MODEL_TENSOR . TIME_MIX_LN : (
2025-03-18 07:27:50 +08:00
"rwkv.blocks. {bid} .attention.ln_x" , # rwkv6
"model.layers. {bid} .attention.ln_x" # rwkv7
2024-09-01 22:38:17 +08:00
),
MODEL_TENSOR . TIME_MIX_OUTPUT : (
2025-03-18 07:27:50 +08:00
"rwkv.blocks. {bid} .attention.output" , # rwkv6
2025-01-10 09:58:08 +08:00
"model.layers. {bid} .self_attn.o_proj" , # rwkv6qwen2
2025-03-18 07:27:50 +08:00
"model.layers. {bid} .attention.output" , # rwkv7
"model.layers. {bid} .attention.o_proj" , # rwkv7
2024-09-01 22:38:17 +08:00
),
MODEL_TENSOR . CHANNEL_MIX_LERP_K : (
2025-03-18 07:27:50 +08:00
"rwkv.blocks. {bid} .feed_forward.time_maa_k" , # rwkv6
"model.layers. {bid} .feed_forward.x_k" , # rwkv7
2024-09-01 22:38:17 +08:00
),
MODEL_TENSOR . CHANNEL_MIX_LERP_R : (
2025-03-18 07:27:50 +08:00
"rwkv.blocks. {bid} .feed_forward.time_maa_r" , # rwkv6
2024-09-01 22:38:17 +08:00
),
MODEL_TENSOR . CHANNEL_MIX_KEY : (
2025-03-18 07:27:50 +08:00
"rwkv.blocks. {bid} .feed_forward.key" , # rwkv6
"model.layers. {bid} .feed_forward.key" , # rwkv7
2024-09-01 22:38:17 +08:00
),
MODEL_TENSOR . CHANNEL_MIX_RECEPTANCE : (
2025-03-18 07:27:50 +08:00
"rwkv.blocks. {bid} .feed_forward.receptance" , # rwkv6
2024-09-01 22:38:17 +08:00
),
MODEL_TENSOR . CHANNEL_MIX_VALUE : (
2025-03-18 07:27:50 +08:00
"rwkv.blocks. {bid} .feed_forward.value" , # rwkv6
"model.layers. {bid} .feed_forward.value" , # rwkv7
2024-09-01 22:38:17 +08:00
),
2024-05-28 17:07:05 +02:00
MODEL_TENSOR . ATTN_Q_A : (
"model.layers. {bid} .self_attn.q_a_proj" , # deepseek2
2025-12-06 10:49:33 +01:00
"layers. {bid} .attention.wq_a" , # mistral-large
2024-05-28 17:07:05 +02:00
),
MODEL_TENSOR . ATTN_Q_B : (
"model.layers. {bid} .self_attn.q_b_proj" , # deepseek2
2025-12-06 10:49:33 +01:00
"layers. {bid} .attention.wq_b" , # mistral-large
2024-05-28 17:07:05 +02:00
),
MODEL_TENSOR . ATTN_KV_A_MQA : (
"model.layers. {bid} .self_attn.kv_a_proj_with_mqa" , # deepseek2
2025-12-06 10:49:33 +01:00
"layers. {bid} .attention.wkv_a_with_mqa" , # mistral-large
2024-05-28 17:07:05 +02:00
),
MODEL_TENSOR . ATTN_KV_B : (
"model.layers. {bid} .self_attn.kv_b_proj" , # deepseek2
),
2025-04-15 07:49:57 +01:00
MODEL_TENSOR . ATTN_K_B : (
"model.layers. {bid} .self_attn.k_b_proj" , # deepseek2
2025-12-06 10:49:33 +01:00
"layers. {bid} .attention.k_b_proj" , # mistral-large
2025-04-15 07:49:57 +01:00
),
MODEL_TENSOR . ATTN_V_B : (
"model.layers. {bid} .self_attn.v_b_proj" , # deepseek2
2025-12-06 10:49:33 +01:00
"layers. {bid} .attention.v_b_proj" , # mistral-large
2025-04-15 07:49:57 +01:00
),
2024-05-28 17:07:05 +02:00
MODEL_TENSOR . ATTN_Q_A_NORM : (
"model.layers. {bid} .self_attn.q_a_layernorm" , # deepseek2
2025-12-06 10:49:33 +01:00
"layers. {bid} .attention.q_a_norm" , # mistral-large
2024-05-28 17:07:05 +02:00
),
MODEL_TENSOR . ATTN_KV_A_NORM : (
"model.layers. {bid} .self_attn.kv_a_layernorm" , # deepseek2
2025-12-06 10:49:33 +01:00
"layers. {bid} .attention.kv_a_norm" , # mistral-large
2024-05-28 17:07:05 +02:00
),
2024-06-24 02:27:57 +08:00
MODEL_TENSOR . ATTN_SUB_NORM : (
"model.layers. {bid} .self_attn.inner_attn_ln" , # bitnet
),
MODEL_TENSOR . FFN_SUB_NORM : (
"model.layers. {bid} .mlp.ffn_layernorm" , # bitnet
),
2024-06-24 07:06:05 +02:00
MODEL_TENSOR . DEC_ATTN_NORM : (
"decoder.block. {bid} .layer.0.layer_norm" , # t5
),
MODEL_TENSOR . DEC_ATTN_Q : (
"decoder.block. {bid} .layer.0.SelfAttention.q" , # t5
),
MODEL_TENSOR . DEC_ATTN_K : (
"decoder.block. {bid} .layer.0.SelfAttention.k" , # t5
),
MODEL_TENSOR . DEC_ATTN_V : (
"decoder.block. {bid} .layer.0.SelfAttention.v" , # t5
),
MODEL_TENSOR . DEC_ATTN_OUT : (
"decoder.block. {bid} .layer.0.SelfAttention.o" , # t5
),
MODEL_TENSOR . DEC_ATTN_REL_B : (
"decoder.block. {bid} .layer.0.SelfAttention.relative_attention_bias" , # t5
),
MODEL_TENSOR . DEC_CROSS_ATTN_NORM : (
"decoder.block. {bid} .layer.1.layer_norm" , # t5
),
MODEL_TENSOR . DEC_CROSS_ATTN_Q : (
"decoder.block. {bid} .layer.1.EncDecAttention.q" , # t5
),
MODEL_TENSOR . DEC_CROSS_ATTN_K : (
"decoder.block. {bid} .layer.1.EncDecAttention.k" , # t5
),
MODEL_TENSOR . DEC_CROSS_ATTN_V : (
"decoder.block. {bid} .layer.1.EncDecAttention.v" , # t5
),
MODEL_TENSOR . DEC_CROSS_ATTN_OUT : (
"decoder.block. {bid} .layer.1.EncDecAttention.o" , # t5
),
MODEL_TENSOR . DEC_CROSS_ATTN_REL_B : (
"decoder.block. {bid} .layer.1.EncDecAttention.relative_attention_bias" , # t5
),
MODEL_TENSOR . DEC_FFN_NORM : (
"decoder.block. {bid} .layer.2.layer_norm" , # t5
),
MODEL_TENSOR . DEC_FFN_GATE : (
"decoder.block. {bid} .layer.2.DenseReluDense.wi_0" , # flan-t5
),
MODEL_TENSOR . DEC_FFN_UP : (
"decoder.block. {bid} .layer.2.DenseReluDense.wi" , # t5
"decoder.block. {bid} .layer.2.DenseReluDense.wi_1" , # flan-t5
),
MODEL_TENSOR . DEC_FFN_DOWN : (
"decoder.block. {bid} .layer.2.DenseReluDense.wo" , # t5
),
MODEL_TENSOR . DEC_OUTPUT_NORM : (
"decoder.final_layer_norm" , # t5
),
MODEL_TENSOR . ENC_ATTN_NORM : (
"encoder.block. {bid} .layer.0.layer_norm" , # t5
),
MODEL_TENSOR . ENC_ATTN_Q : (
"encoder.block. {bid} .layer.0.SelfAttention.q" , # t5
),
MODEL_TENSOR . ENC_ATTN_K : (
"encoder.block. {bid} .layer.0.SelfAttention.k" , # t5
),
MODEL_TENSOR . ENC_ATTN_V : (
"encoder.block. {bid} .layer.0.SelfAttention.v" , # t5
),
MODEL_TENSOR . ENC_ATTN_OUT : (
"encoder.block. {bid} .layer.0.SelfAttention.o" , # t5
),
MODEL_TENSOR . ENC_ATTN_REL_B : (
"encoder.block. {bid} .layer.0.SelfAttention.relative_attention_bias" , # t5
),
MODEL_TENSOR . ENC_FFN_NORM : (
"encoder.block. {bid} .layer.1.layer_norm" , # t5
),
MODEL_TENSOR . ENC_FFN_GATE : (
"encoder.block. {bid} .layer.1.DenseReluDense.wi_0" , # flan-t5
),
MODEL_TENSOR . ENC_FFN_UP : (
"encoder.block. {bid} .layer.1.DenseReluDense.wi" , # t5
"encoder.block. {bid} .layer.1.DenseReluDense.wi_1" , # flan-t5
),
MODEL_TENSOR . ENC_FFN_DOWN : (
"encoder.block. {bid} .layer.1.DenseReluDense.wo" , # t5
),
2025-10-30 07:18:50 -04:00
MODEL_TENSOR . VISEXP_UP : (
"model.layers. {bid} .mlp.vision_mlp.up_proj" , # cogvlm
),
MODEL_TENSOR . VISEXP_GATE : (
"model.layers. {bid} .mlp.vision_mlp.gate_proj" , # cogvlm
),
MODEL_TENSOR . VISEXP_DOWN : (
"model.layers. {bid} .mlp.vision_mlp.down_proj" , # cogvlm
),
MODEL_TENSOR . VISEXP_ATTN_OUT : (
"model.layers. {bid} .self_attn.vision_expert_dense" , # cogvlm
),
MODEL_TENSOR . VISEXP_ATTN_QKV : (
"model.layers. {bid} .self_attn.vision_expert_query_key_value" , # cogvlm
),
2026-02-13 14:56:53 +01:00
MODEL_TENSOR . INDEXER_K_NORM : (
"model.layers. {bid} .self_attn.indexer.k_norm" , # DSA
),
MODEL_TENSOR . INDEXER_PROJ : (
"model.layers. {bid} .self_attn.indexer.weights_proj" , # DSA
),
MODEL_TENSOR . INDEXER_ATTN_K : (
"model.layers. {bid} .self_attn.indexer.wk" , # DSA
),
MODEL_TENSOR . INDEXER_ATTN_Q_B : (
"model.layers. {bid} .self_attn.indexer.wq_b" , # DSA
),
2024-12-18 19:27:21 +02:00
############################################################################
# TODO: these do not belong to block_mappings_cfg - move them to mappings_cfg
2024-06-24 07:06:05 +02:00
MODEL_TENSOR . ENC_OUTPUT_NORM : (
"encoder.final_layer_norm" , # t5
2025-06-16 21:53:41 +09:00
"layer_norm" , # neobert
2024-06-24 07:06:05 +02:00
),
2024-09-28 17:42:03 +03:00
MODEL_TENSOR . CLS : (
"classifier" , # jina
"classifier.dense" , # roberta
2025-05-30 18:56:02 +09:00
"pre_classifier" , # distillbert
2025-06-16 21:53:41 +09:00
"dense" , # neobert
2025-12-22 18:28:19 -05:00
"head.dense" , # modern-bert
2024-09-28 17:42:03 +03:00
),
MODEL_TENSOR . CLS_OUT : (
"classifier.out_proj" , # roberta
),
2026-02-19 02:52:21 -05:00
MODEL_TENSOR . CLS_NORM : (
"head.norm" , # modern-bert
),
2024-12-18 19:27:21 +02:00
#############################################################################
MODEL_TENSOR . CONVNEXT_DW : (
"backbone.convnext. {bid} .dwconv" , # wavtokenizer
),
MODEL_TENSOR . CONVNEXT_NORM : (
"backbone.convnext. {bid} .norm" , # wavtokenizer
),
MODEL_TENSOR . CONVNEXT_PW1 : (
"backbone.convnext. {bid} .pwconv1" , # wavtokenizer
),
MODEL_TENSOR . CONVNEXT_PW2 : (
"backbone.convnext. {bid} .pwconv2" , # wavtokenizer
),
MODEL_TENSOR . CONVNEXT_GAMMA : (
"backbone.convnext. {bid} .gamma" , # wavtokenizer
),
MODEL_TENSOR . POSNET_CONV1 : (
"backbone.posnet. {bid} .conv1" , # wavtokenizer
),
MODEL_TENSOR . POSNET_CONV2 : (
"backbone.posnet. {bid} .conv2" , # wavtokenizer
),
MODEL_TENSOR . POSNET_NORM : (
"backbone.posnet. {bid} .norm" , # wavtokenizer
),
MODEL_TENSOR . POSNET_NORM1 : (
"backbone.posnet. {bid} .norm1" , # wavtokenizer
),
MODEL_TENSOR . POSNET_NORM2 : (
"backbone.posnet. {bid} .norm2" , # wavtokenizer
),
MODEL_TENSOR . POSNET_ATTN_NORM : (
"backbone.posnet. {bid} .norm" , # wavtokenizer
),
MODEL_TENSOR . POSNET_ATTN_Q : (
"backbone.posnet. {bid} .q" , # wavtokenizer
),
MODEL_TENSOR . POSNET_ATTN_K : (
"backbone.posnet. {bid} .k" , # wavtokenizer
),
MODEL_TENSOR . POSNET_ATTN_V : (
"backbone.posnet. {bid} .v" , # wavtokenizer
),
MODEL_TENSOR . POSNET_ATTN_OUT : (
"backbone.posnet. {bid} .proj_out" , # wavtokenizer
),
2025-04-20 23:29:36 +02:00
2025-07-11 20:27:01 +02:00
MODEL_TENSOR . SHORTCONV_CONV : (
"model.layers. {bid} .conv.conv" ,
),
MODEL_TENSOR . SHORTCONV_INPROJ : (
"model.layers. {bid} .conv.in_proj" ,
),
MODEL_TENSOR . SHORTCONV_OUTPROJ : (
"model.layers. {bid} .conv.out_proj" ,
),
2025-04-20 23:29:36 +02:00
#############################################################################
## Vision encoder
MODEL_TENSOR . V_MMPROJ : (
"multi_modal_projector.linear_ {bid} " ,
2026-02-11 07:47:30 -08:00
"mm_projector.proj.linear_ {bid} " , # Kimi-K2.5
2025-05-02 17:17:15 +02:00
"visual.merger.mlp. {bid} " , # qwen2vl
2026-02-20 00:05:25 +08:00
"mlp_AR.linear_ {bid} " , # PaddleOCR-VL
2026-01-02 02:25:54 +08:00
"merger.mlp. {bid} " ,
2026-04-09 12:16:38 +02:00
"vision_tower.merger.mlp. {bid} " , # dots.ocr
2026-04-05 23:32:14 +02:00
"vit.perceive.proj. {bid} " , # HunyuanOCR (proj.0 = conv1, proj.2 = conv2)
2025-04-20 23:29:36 +02:00
),
MODEL_TENSOR . V_MMPROJ_FC : (
"model.connector.modality_projection.proj" , # SmolVLM
2025-10-30 07:18:50 -04:00
"model.vision.linear_proj.linear_proj" , # cogvlm
2026-03-25 19:57:40 +01:00
"model.projector.layers" , # Deepseek-OCR
2025-12-16 11:25:26 +01:00
"visual.merger.proj" , # glm4v
2026-04-05 23:32:14 +02:00
"vit.perceive.mlp" , # HunyuanOCR
2025-04-20 23:29:36 +02:00
),
MODEL_TENSOR . V_MMPROJ_MLP : (
"model.mm_projector.mlp.mlp. {bid} " ,
2025-05-19 13:04:14 +02:00
"vision_model.vision_adapter.mlp.fc {bid} " , # llama 4
2025-05-10 16:26:42 +02:00
"mlp1. {bid} " , # InternVL
2025-11-02 13:08:04 -08:00
"model.aligner.fc1.hidden_layers. {bid} " , # Janus Pro
2025-04-20 23:29:36 +02:00
),
MODEL_TENSOR . V_MMPROJ_PEG : (
"model.mm_projector.peg.peg. {bid} " ,
),
MODEL_TENSOR . V_ENC_EMBD_CLS : (
"vision_tower.vision_model.embeddings.class_embedding" ,
2025-08-08 00:20:40 +08:00
"model.vision_tower.embeddings.cls_token" , # Intern-S1
2025-05-19 13:04:14 +02:00
"vision_model.class_embedding" , # llama 4
2025-10-30 07:18:50 -04:00
"model.vision.patch_embedding.cls_embedding" , # cogvlm
2026-02-14 05:07:00 -08:00
"vision_model.radio_model.model.patch_generator.cls_token.token" , # Nemotron Nano v2 VL
2026-03-25 19:57:40 +01:00
"model.vision_model.embeddings.class_embedding" , # Deepseek-OCR
2025-04-20 23:29:36 +02:00
),
MODEL_TENSOR . V_ENC_EMBD_PATCH : (
"vision_tower.vision_model.embeddings.patch_embedding" ,
2026-05-07 03:54:09 +08:00
"model.vision_tower.embeddings.patch_embedding" , # minicpmv4_6
2025-08-08 00:20:40 +08:00
"model.vision_tower.embeddings.patch_embeddings.projection" , # Intern-S1
2025-04-20 23:29:36 +02:00
"vpm.embeddings.patch_embedding" ,
"model.vision_model.embeddings.patch_embedding" , # SmolVLM
2026-04-05 23:32:14 +02:00
"vit.embeddings.patch_embedding" , # HunyuanOCR
2025-08-11 10:07:49 +02:00
"vision_tower.patch_conv" , # pixtral-hf
"vision_encoder.patch_conv" , # pixtral
2025-05-19 13:04:14 +02:00
"vision_model.patch_embedding.linear" , # llama 4
2025-05-02 17:17:15 +02:00
"visual.patch_embed.proj" , # qwen2vl
2025-08-26 12:54:19 +02:00
"vision_tower.patch_embed.proj" , # kimi-vl
2025-10-30 07:18:50 -04:00
"model.vision.patch_embedding.proj" , # cogvlm
2026-03-25 19:57:40 +01:00
"model.vision_model.embeddings.patch_embedding" , # Deepseek-OCR CLIP
2026-01-02 02:25:54 +08:00
"siglip2.vision_model.embeddings.patch_embedding" ,
2026-02-14 05:07:00 -08:00
"vision_model.radio_model.model.patch_generator.embedder" , # Nemotron Nano v2 VL
2026-04-02 17:10:32 +02:00
"model.vision_tower.patch_embedder.input_proj" , # gemma4
2026-04-09 12:16:38 +02:00
"vision_tower.patch_embed.patchifier.proj" , # dots.ocr
2026-04-08 15:51:31 +08:00
"vision_model.conv1" , # Step3-VL
2025-04-20 23:29:36 +02:00
),
2025-12-16 11:25:26 +01:00
MODEL_TENSOR . V_ENC_EMBD_NORM : (
"visual.post_conv_layernorm" , # glm4v
2026-04-09 12:16:38 +02:00
"vision_tower.patch_embed.patchifier.norm" , # dots.ocr
2025-12-16 11:25:26 +01:00
),
2025-04-20 23:29:36 +02:00
MODEL_TENSOR . V_ENC_EMBD_POS : (
"vision_tower.vision_model.embeddings.position_embedding" ,
2026-05-07 03:54:09 +08:00
"model.vision_tower.embeddings.position_embedding" , # minicpmv4_6
2025-08-08 00:20:40 +08:00
"model.vision_tower.embeddings.position_embeddings" , # Intern-S1
2025-04-20 23:29:36 +02:00
"vpm.embeddings.position_embedding" ,
"model.vision_model.embeddings.position_embedding" , # SmolVLM
2026-04-05 23:32:14 +02:00
"vit.embeddings.position_embedding" , # HunyuanOCR
2025-05-19 13:04:14 +02:00
"vision_model.positional_embedding_vlm" , # llama 4
2025-08-26 12:54:19 +02:00
"vision_tower.patch_embed.pos_emb" , # kimi-vl
2025-10-30 23:19:14 +08:00
"visual.pos_embed" , # qwen3vl
2025-10-30 07:18:50 -04:00
"model.vision.patch_embedding.position_embedding" , # cogvlm
2025-12-16 11:25:26 +01:00
"visual.embeddings.position_embedding" , # glm4v
2026-02-14 05:07:00 -08:00
"vision_model.radio_model.model.patch_generator.pos_embed" , # Nemotron Nano v2 VL
2026-04-02 17:10:32 +02:00
"model.vision_tower.patch_embedder.position_embedding_table" , # gemma4
2026-04-08 15:51:31 +08:00
"vision_model.positional_embedding" , # Step3-VL
2025-10-30 07:18:50 -04:00
),
2026-03-25 19:57:40 +01:00
MODEL_TENSOR . V_ENC_EMBD_IMGNL : (
"model.image_newline" , # Deepseek-OCR
2026-04-05 23:32:14 +02:00
"vit.perceive.image_newline" , # HunyuanOCR
2026-03-25 19:57:40 +01:00
),
MODEL_TENSOR . V_ENC_EMBD_VSEP : (
"model.view_seperator" , # Deepseek-OCR
2026-04-05 23:32:14 +02:00
"vit.perceive.image_sep" , # HunyuanOCR
2026-03-25 19:57:40 +01:00
),
2025-10-30 07:18:50 -04:00
MODEL_TENSOR . V_ENC_ATTN_QKV : (
2025-10-30 23:19:14 +08:00
"visual.blocks. {bid} .attn.qkv" , # qwen3vl
2026-04-09 12:16:38 +02:00
"vision_tower.blocks. {bid} .attn.qkv" , # dots.ocr
2025-10-30 07:18:50 -04:00
"model.vision.transformer.layers. {bid} .attention.query_key_value" , # cogvlm
2026-03-25 19:57:40 +01:00
"model.vision_model.transformer.layers. {bid} .self_attn.qkv_proj" , # Deepseek-OCR CLIP
2026-04-07 21:24:25 +02:00
"vision_tower.encoder.blocks. {bid} .wqkv" , # Kimi-K2.5
2026-02-14 05:07:00 -08:00
"vision_model.radio_model.model.blocks. {bid} .attn.qkv" , # Nemotron Nano v2 VL
2026-04-08 15:51:31 +08:00
"vision_model.transformer.resblocks. {bid} .attn.in_proj" , # Step3-VL
2025-04-20 23:29:36 +02:00
),
MODEL_TENSOR . V_ENC_ATTN_Q : (
"vision_tower.vision_model.encoder.layers. {bid} .self_attn.q_proj" ,
2026-05-07 03:54:09 +08:00
"model.vision_tower.encoder.layers. {bid} .self_attn.q_proj" , # minicpmv4_6
2025-08-08 00:20:40 +08:00
"model.vision_tower.encoder.layer. {bid} .attention.q_proj" , # Intern-S1
2025-04-20 23:29:36 +02:00
"vpm.encoder.layers. {bid} .self_attn.q_proj" ,
"model.vision_model.encoder.layers. {bid} .self_attn.q_proj" , # SmolVLM
2026-04-05 23:32:14 +02:00
"vit.layers. {bid} .self_attn.q_proj" , # HunyuanOCR
2025-05-19 13:04:14 +02:00
"vision_model.model.layers. {bid} .self_attn.q_proj" , # llama4
2025-08-11 10:07:49 +02:00
"vision_tower.transformer.layers. {bid} .attention.q_proj" , # pixtral-hf
"vision_encoder.transformer.layers. {bid} .attention.wq" , # pixtral
2025-05-02 17:17:15 +02:00
"visual.blocks. {bid} .attn.q" , # qwen2vl, generated
2025-08-26 12:54:19 +02:00
"vision_tower.encoder.blocks. {bid} .wq" , # kimi-vl, generated
2026-01-02 02:25:54 +08:00
"siglip2.vision_model.encoder.layers. {bid} .self_attn.q_proj" , # youtuvl
2026-03-25 19:57:40 +01:00
"model.vision_model.transformer.layers. {bid} .self_attn.q_proj" , # Deepseek-OCR CLIP, generated
2026-04-02 17:10:32 +02:00
"vision_model.model.layers. {bid} .self_attn.q_proj.linear" , # gemma4
2025-04-20 23:29:36 +02:00
),
2025-05-11 11:35:52 +02:00
MODEL_TENSOR . V_ENC_ATTN_Q_NORM : (
"vision_tower.vision_model.encoder.layers. {bid} .attn.q_norm" , # InternVL
2025-08-08 00:20:40 +08:00
"model.vision_tower.encoder.layer. {bid} .attention.q_norm" , # Intern-S1
2026-02-18 17:51:40 +01:00
"visual.blocks. {bid} .attn.q_norm" , # GLM-OCR
2026-04-02 17:10:32 +02:00
"vision_model.model.layers. {bid} .self_attn.q_norm" , # gemma4
2025-05-11 11:35:52 +02:00
),
2025-04-20 23:29:36 +02:00
MODEL_TENSOR . V_ENC_ATTN_K : (
"vision_tower.vision_model.encoder.layers. {bid} .self_attn.k_proj" ,
2026-05-07 03:54:09 +08:00
"model.vision_tower.encoder.layers. {bid} .self_attn.k_proj" , # minicpmv4_6
2025-08-08 00:20:40 +08:00
"model.vision_tower.encoder.layer. {bid} .attention.k_proj" , # Intern-S1
2025-04-20 23:29:36 +02:00
"vpm.encoder.layers. {bid} .self_attn.k_proj" ,
"model.vision_model.encoder.layers. {bid} .self_attn.k_proj" , # SmolVLM
2026-04-05 23:32:14 +02:00
"vit.layers. {bid} .self_attn.k_proj" , # HunyuanOCR
2025-05-19 13:04:14 +02:00
"vision_model.model.layers. {bid} .self_attn.k_proj" , # llama4
2025-08-11 10:07:49 +02:00
"vision_tower.transformer.layers. {bid} .attention.k_proj" , # pixtral-hf
"vision_encoder.transformer.layers. {bid} .attention.wk" , # pixtral
2025-05-02 17:17:15 +02:00
"visual.blocks. {bid} .attn.k" , # qwen2vl, generated
2025-08-26 12:54:19 +02:00
"vision_tower.encoder.blocks. {bid} .wk" , # kimi-vl, generated
2026-03-25 19:57:40 +01:00
"model.vision_model.transformer.layers. {bid} .self_attn.k_proj" , # Deepseek-OCR CLIP, generated
2026-01-02 02:25:54 +08:00
"siglip2.vision_model.encoder.layers. {bid} .self_attn.k_proj" ,
2026-04-02 17:10:32 +02:00
"vision_model.model.layers. {bid} .self_attn.k_proj.linear" , # gemma4
2025-04-20 23:29:36 +02:00
),
2025-05-11 11:35:52 +02:00
MODEL_TENSOR . V_ENC_ATTN_K_NORM : (
"vision_tower.vision_model.encoder.layers. {bid} .attn.k_norm" , # InternVL
2025-08-08 00:20:40 +08:00
"model.vision_tower.encoder.layer. {bid} .attention.k_norm" , # Intern-S1
2026-02-18 17:51:40 +01:00
"visual.blocks. {bid} .attn.k_norm" , # GLM-OCR
2026-04-02 17:10:32 +02:00
"vision_model.model.layers. {bid} .self_attn.k_norm" , # gemma4
2025-05-11 11:35:52 +02:00
),
2025-04-20 23:29:36 +02:00
MODEL_TENSOR . V_ENC_ATTN_V : (
"vision_tower.vision_model.encoder.layers. {bid} .self_attn.v_proj" ,
2026-05-07 03:54:09 +08:00
"model.vision_tower.encoder.layers. {bid} .self_attn.v_proj" , # minicpmv4_6
2025-08-08 00:20:40 +08:00
"model.vision_tower.encoder.layer. {bid} .attention.v_proj" , # Intern-S1
2025-04-20 23:29:36 +02:00
"vpm.encoder.layers. {bid} .self_attn.v_proj" ,
"model.vision_model.encoder.layers. {bid} .self_attn.v_proj" , # SmolVLM
2026-04-05 23:32:14 +02:00
"vit.layers. {bid} .self_attn.v_proj" , # HunyuanOCR
2025-05-19 13:04:14 +02:00
"vision_model.model.layers. {bid} .self_attn.v_proj" , # llama4
2025-08-11 10:07:49 +02:00
"vision_tower.transformer.layers. {bid} .attention.v_proj" , # pixtral-hf
"vision_encoder.transformer.layers. {bid} .attention.wv" , # pixtral
2025-05-02 17:17:15 +02:00
"visual.blocks. {bid} .attn.v" , # qwen2vl, generated
2025-08-26 12:54:19 +02:00
"vision_tower.encoder.blocks. {bid} .wv" , # kimi-vl, generated
2026-01-02 02:25:54 +08:00
"siglip2.vision_model.encoder.layers. {bid} .self_attn.v_proj" ,
2026-03-25 19:57:40 +01:00
"model.vision_model.transformer.layers. {bid} .self_attn.v_proj" , # Deepseek-OCR CLIP, generated
2026-04-02 17:10:32 +02:00
"vision_model.model.layers. {bid} .self_attn.v_proj.linear" , # gemma4
2025-04-20 23:29:36 +02:00
),
MODEL_TENSOR . V_ENC_INPUT_NORM : (
"vision_tower.vision_model.encoder.layers. {bid} .layer_norm1" ,
2026-05-07 03:54:09 +08:00
"model.vision_tower.encoder.layers. {bid} .layer_norm1" , # minicpmv4_6
2025-05-10 16:26:42 +02:00
"vision_tower.vision_model.encoder.layers. {bid} .norm1" , # InternVL
2025-08-08 00:20:40 +08:00
"model.vision_tower.encoder.layer. {bid} .layernorm_before" , # Intern-S1
2025-04-20 23:29:36 +02:00
"vpm.encoder.layers. {bid} .layer_norm1" ,
"model.vision_model.encoder.layers. {bid} .layer_norm1" , # SmolVLM
2026-04-05 23:32:14 +02:00
"vit.layers. {bid} .input_layernorm" , # HunyuanOCR
2025-08-11 10:07:49 +02:00
"vision_tower.transformer.layers. {bid} .attention_norm" , # pixtral-hf
"vision_encoder.transformer.layers. {bid} .attention_norm" , # pixtral
2026-04-02 17:10:32 +02:00
"vision_model.model.layers. {bid} .input_layernorm" , # llama4, gemma4
2025-05-02 17:17:15 +02:00
"visual.blocks. {bid} .norm1" , # qwen2vl
2025-08-26 12:54:19 +02:00
"vision_tower.encoder.blocks. {bid} .norm0" , # kimi-vl (norm0/norm1)
2025-10-30 07:18:50 -04:00
"model.vision.transformer.layers. {bid} .input_layernorm" , # cogvlm
2026-03-25 19:57:40 +01:00
"model.vision_model.transformer.layers. {bid} .layer_norm1" , # Deepseek-OCR CLIP
2026-01-02 02:25:54 +08:00
"siglip2.vision_model.encoder.layers. {bid} .layer_norm1" ,
2026-02-14 05:07:00 -08:00
"vision_model.radio_model.model.blocks. {bid} .norm1" , # Nemotron Nano v2 VL
2026-04-09 12:16:38 +02:00
"vision_tower.blocks. {bid} .norm1" , # dots.ocr
2026-04-08 15:51:31 +08:00
"vision_model.transformer.resblocks. {bid} .ln_1" , # Step3-VL
2025-04-20 23:29:36 +02:00
),
2025-05-19 13:04:14 +02:00
MODEL_TENSOR . V_ENC_ATTN_O : (
2025-04-20 23:29:36 +02:00
"vision_tower.vision_model.encoder.layers. {bid} .self_attn.out_proj" ,
2026-05-07 03:54:09 +08:00
"model.vision_tower.encoder.layers. {bid} .self_attn.out_proj" , # minicpmv4_6
2025-05-10 16:26:42 +02:00
"vision_tower.vision_model.encoder.layers. {bid} .attn.proj" , # InternVL
2025-08-08 00:20:40 +08:00
"model.vision_tower.encoder.layer. {bid} .attention.projection_layer" , # Intern-S1
2025-04-20 23:29:36 +02:00
"vpm.encoder.layers. {bid} .self_attn.out_proj" ,
"model.vision_model.encoder.layers. {bid} .self_attn.out_proj" , # SmolVLM
2026-04-05 23:32:14 +02:00
"vit.layers. {bid} .self_attn.o_proj" , # HunyuanOCR
2025-11-02 13:08:04 -08:00
"model.vision_model.encoder.layers. {bid} .self_attn.projection_layer" , # Janus Pro
2025-05-19 13:04:14 +02:00
"vision_model.model.layers. {bid} .self_attn.o_proj" , # llama4
2025-08-11 10:07:49 +02:00
"vision_tower.transformer.layers. {bid} .attention.o_proj" , # pixtral-hf
"vision_encoder.transformer.layers. {bid} .attention.wo" , # pixtral
2025-05-02 17:17:15 +02:00
"visual.blocks. {bid} .attn.proj" , # qwen2vl
2025-08-26 12:54:19 +02:00
"vision_tower.encoder.blocks. {bid} .wo" , # kimi-vl
2025-10-30 07:18:50 -04:00
"model.vision.transformer.layers. {bid} .attention.dense" , # cogvlm
2026-03-25 19:57:40 +01:00
"model.vision_model.transformer.layers. {bid} .self_attn.out_proj" , # Deepseek-OCR CLIP
2026-01-02 02:25:54 +08:00
"siglip2.vision_model.encoder.layers. {bid} .self_attn.out_proj" , # youtuvl
2026-02-14 05:07:00 -08:00
"vision_model.radio_model.model.blocks. {bid} .attn.proj" , # Nemotron Nano v2 VL
2026-04-02 17:10:32 +02:00
"vision_model.model.layers. {bid} .self_attn.o_proj.linear" , # gemma4
2026-04-09 12:16:38 +02:00
"vision_tower.blocks. {bid} .attn.proj" , # dots.ocr
2026-04-08 15:51:31 +08:00
"vision_model.transformer.resblocks. {bid} .attn.out_proj" , # Step3-VL
2025-04-20 23:29:36 +02:00
),
2025-05-19 13:04:14 +02:00
MODEL_TENSOR . V_ENC_POST_ATTN_NORM : (
2025-04-20 23:29:36 +02:00
"vision_tower.vision_model.encoder.layers. {bid} .layer_norm2" ,
2026-05-07 03:54:09 +08:00
"model.vision_tower.encoder.layers. {bid} .layer_norm2" , # minicpmv4_6
2025-05-10 16:26:42 +02:00
"vision_tower.vision_model.encoder.layers. {bid} .norm2" , # InternVL
2025-08-08 00:20:40 +08:00
"model.vision_tower.encoder.layer. {bid} .layernorm_after" , # Intern-S1
2025-04-20 23:29:36 +02:00
"vpm.encoder.layers. {bid} .layer_norm2" ,
"model.vision_model.encoder.layers. {bid} .layer_norm2" , # SmolVLM
2026-04-05 23:32:14 +02:00
"vit.layers. {bid} .post_attention_layernorm" , # HunyuanOCR
2025-05-19 13:04:14 +02:00
"vision_model.model.layers. {bid} .post_attention_layernorm" , # llama4
2025-08-11 10:07:49 +02:00
"vision_tower.transformer.layers. {bid} .ffn_norm" , # pixtral-hf
"vision_encoder.transformer.layers. {bid} .ffn_norm" , # pixtral
2025-05-02 17:17:15 +02:00
"visual.blocks. {bid} .norm2" , # qwen2vl
2025-08-26 12:54:19 +02:00
"vision_tower.encoder.blocks. {bid} .norm1" , # kimi-vl (norm0/norm1)
2025-10-30 07:18:50 -04:00
"model.vision.transformer.layers. {bid} .post_attention_layernorm" , # cogvlm
2026-03-25 19:57:40 +01:00
"model.vision_model.transformer.layers. {bid} .layer_norm2" , # Deepseek-OCR CLIP
2026-01-02 02:25:54 +08:00
"siglip2.vision_model.encoder.layers. {bid} .layer_norm2" ,
2026-02-14 05:07:00 -08:00
"vision_model.radio_model.model.blocks. {bid} .norm2" , # Nemotron Nano v2 VL
2026-04-02 17:10:32 +02:00
"vision_model.model.layers. {bid} .pre_feedforward_layernorm" , # gemma4
2026-04-09 12:16:38 +02:00
"vision_tower.blocks. {bid} .norm2" , # dots.ocr
2026-04-08 15:51:31 +08:00
"vision_model.transformer.resblocks. {bid} .ln_2" , # Step3-VL
2025-04-20 23:29:36 +02:00
),
MODEL_TENSOR . V_ENC_FFN_UP : (
"vision_tower.vision_model.encoder.layers. {bid} .mlp.fc1" ,
2026-05-07 03:54:09 +08:00
"model.vision_tower.encoder.layers. {bid} .mlp.fc1" , # minicpmv4_6
2025-08-08 00:20:40 +08:00
"model.vision_tower.encoder.layer. {bid} .mlp.fc1" , # Intern-S1
2025-04-20 23:29:36 +02:00
"vpm.encoder.layers. {bid} .mlp.fc1" ,
2025-05-05 12:54:44 +02:00
"model.vision_model.encoder.layers. {bid} .mlp.fc1" , # SmolVLM, gemma3
2026-04-05 23:32:14 +02:00
"vit.layers. {bid} .mlp.dense_h_to_4h" , # HunyuanOCR
2025-08-11 10:07:49 +02:00
"vision_tower.transformer.layers. {bid} .feed_forward.up_proj" , # pixtral-hf
"vision_encoder.transformer.layers. {bid} .feed_forward.w3" , # pixtral
2025-05-19 13:04:14 +02:00
"vision_model.model.layers. {bid} .mlp.fc1" , # llama4
2025-05-05 12:54:44 +02:00
"visual.blocks. {bid} .mlp.fc1" , # qwen2vl
2025-05-02 17:17:15 +02:00
"visual.blocks. {bid} .mlp.up_proj" , # qwen2.5vl
2025-10-30 23:19:14 +08:00
"visual.blocks. {bid} .mlp.linear_fc1" , # qwen3vl
2025-08-26 12:54:19 +02:00
"vision_tower.encoder.blocks. {bid} .mlp.fc0" , # kimi-vl (fc0/fc1)
2026-03-25 19:57:40 +01:00
"model.vision_model.transformer.layers. {bid} .mlp.fc1" , # Deepseek-OCR CLIP
2025-10-30 07:18:50 -04:00
"model.vision.transformer.layers. {bid} .mlp.fc1" , # cogvlm
2026-01-02 02:25:54 +08:00
"siglip2.vision_model.encoder.layers. {bid} .mlp.fc1" ,
2026-02-14 05:07:00 -08:00
"vision_model.radio_model.model.blocks. {bid} .mlp.fc1" , # Nemotron Nano v2 VL
2026-04-02 17:10:32 +02:00
"vision_model.model.layers. {bid} .mlp.up_proj" , # gemma4
2026-04-08 15:51:31 +08:00
"vision_model.transformer.resblocks. {bid} .mlp.c_fc" , # Step3-VL
2025-04-23 20:21:59 +02:00
),
MODEL_TENSOR . V_ENC_FFN_GATE : (
2025-08-11 10:07:49 +02:00
"vision_tower.transformer.layers. {bid} .feed_forward.gate_proj" , # pixtral-hf
"vision_encoder.transformer.layers. {bid} .feed_forward.w1" , # pixtral
2025-05-02 17:17:15 +02:00
"visual.blocks. {bid} .mlp.gate_proj" , # qwen2.5vl
2026-04-02 17:10:32 +02:00
"vision_model.model.layers. {bid} .mlp.gate_proj" , # gemma4
2025-04-20 23:29:36 +02:00
),
MODEL_TENSOR . V_ENC_FFN_DOWN : (
"vision_tower.vision_model.encoder.layers. {bid} .mlp.fc2" ,
2026-05-07 03:54:09 +08:00
"model.vision_tower.encoder.layers. {bid} .mlp.fc2" , # minicpmv4_6
2025-08-08 00:20:40 +08:00
"model.vision_tower.encoder.layer. {bid} .mlp.fc2" , # Intern-S1
2025-04-20 23:29:36 +02:00
"vpm.encoder.layers. {bid} .mlp.fc2" ,
2025-05-05 12:54:44 +02:00
"model.vision_model.encoder.layers. {bid} .mlp.fc2" , # SmolVLM, gemma3
2026-04-05 23:32:14 +02:00
"vit.layers. {bid} .mlp.dense_4h_to_h" , # HunyuanOCR
2025-08-11 10:07:49 +02:00
"vision_tower.transformer.layers. {bid} .feed_forward.down_proj" , # pixtral-hf
"vision_encoder.transformer.layers. {bid} .feed_forward.w2" , # pixtral
2025-05-19 13:04:14 +02:00
"vision_model.model.layers. {bid} .mlp.fc2" , # llama4
2025-05-05 12:54:44 +02:00
"visual.blocks. {bid} .mlp.fc2" , # qwen2vl
2025-05-02 17:17:15 +02:00
"visual.blocks. {bid} .mlp.down_proj" , # qwen2.5vl
2025-10-30 23:19:14 +08:00
"visual.blocks. {bid} .mlp.linear_fc2" , # qwen3vl
2025-08-26 12:54:19 +02:00
"vision_tower.encoder.blocks. {bid} .mlp.fc1" , # kimi-vl (fc0/fc1)
2025-10-30 07:18:50 -04:00
"model.vision.transformer.layers. {bid} .mlp.fc2" , # cogvlm
2026-03-25 19:57:40 +01:00
"model.vision_model.transformer.layers. {bid} .mlp.fc2" , # Deepseek-OCR CLIP
2026-01-02 02:25:54 +08:00
"siglip2.vision_model.encoder.layers. {bid} .mlp.fc2" ,
2026-02-14 05:07:00 -08:00
"vision_model.radio_model.model.blocks. {bid} .mlp.fc2" , # Nemotron Nano v2 VL
2026-04-02 17:10:32 +02:00
"vision_model.model.layers. {bid} .mlp.down_proj" , # gemma4
2026-04-08 15:51:31 +08:00
"vision_model.transformer.resblocks. {bid} .mlp.c_proj" , # Step3-VL
2026-04-02 17:10:32 +02:00
),
MODEL_TENSOR . V_ENC_ATTN_POST_NORM : (
"vision_model.model.layers. {bid} .post_attention_layernorm" , # gemma4
),
MODEL_TENSOR . V_ENC_FFN_POST_NORM : (
"vision_model.model.layers. {bid} .post_feedforward_layernorm" , # gemma4
2025-04-20 23:29:36 +02:00
),
2025-05-10 16:26:42 +02:00
MODEL_TENSOR . V_LAYER_SCALE_1 : (
"vision_tower.vision_model.encoder.layers. {bid} .ls1" , # InternVL
2025-08-08 00:20:40 +08:00
"model.vision_tower.encoder.layer. {bid} .lambda_1" , # Intern-S1
2026-04-08 15:51:31 +08:00
"vision_model.transformer.resblocks. {bid} .ls_1" , # Step3-VL
2025-05-10 16:26:42 +02:00
),
MODEL_TENSOR . V_LAYER_SCALE_2 : (
"vision_tower.vision_model.encoder.layers. {bid} .ls2" , # InternVL
2025-08-08 00:20:40 +08:00
"model.vision_tower.encoder.layer. {bid} .lambda_2" , # Intern-S1
2026-04-08 15:51:31 +08:00
"vision_model.transformer.resblocks. {bid} .ls_2" , # Step3-VL
2025-05-10 16:26:42 +02:00
),
2026-04-02 17:10:32 +02:00
MODEL_TENSOR . V_LAYER_OUT_SCALE : (
"vision_model.model.layers. {bid} .layer_scalar" , # gemma4
),
2025-04-20 23:29:36 +02:00
MODEL_TENSOR . V_PRE_NORM : (
"vision_tower.vision_model.pre_layrnorm" ,
2025-08-11 10:07:49 +02:00
"vision_tower.ln_pre" , # pixtral-hf
"vision_encoder.ln_pre" , # pixtral
2025-05-19 13:04:14 +02:00
"vision_model.layernorm_pre" , # llama4
2026-03-25 19:57:40 +01:00
"model.vision_model.pre_layrnorm" , # Deepseek-OCR CLIP
2026-04-09 12:16:38 +02:00
"vision_tower.patch_embed.patchifier.norm" , # dots.ocr
2026-04-08 15:51:31 +08:00
"vision_model.ln_pre" , # Step3-VL
2025-04-20 23:29:36 +02:00
),
MODEL_TENSOR . V_POST_NORM : (
"vision_tower.vision_model.post_layernorm" ,
2026-05-07 03:54:09 +08:00
"model.vision_tower.post_layernorm" , # minicpmv4_6
2025-04-20 23:29:36 +02:00
"model.vision_model.post_layernorm" , # SmolVLM
2025-05-19 13:04:14 +02:00
"vision_model.layernorm_post" , # llama4
2025-05-02 17:17:15 +02:00
"visual.merger.ln_q" , # qwen2vl
2025-08-26 12:54:19 +02:00
"vision_tower.encoder.final_layernorm" , # kimi-vl
2025-12-16 11:25:26 +01:00
"visual.post_layernorm" , # glm4v
2026-01-02 02:25:54 +08:00
"siglip2.vision_model.post_layernorm" ,
2025-12-16 11:25:26 +01:00
),
MODEL_TENSOR . V_MM_POST_NORM : (
"visual.merger.post_projection_norm" , # glm4v
2026-04-09 12:16:38 +02:00
"vision_tower.post_trunk_norm" , # dots.ocr
2026-04-05 23:32:14 +02:00
"vit.perceive.after_rms" , # HunyuanOCR
2025-04-20 23:29:36 +02:00
),
MODEL_TENSOR . V_MM_INP_PROJ : (
"multi_modal_projector.mm_input_projection" ,
),
2025-05-01 17:05:42 +02:00
MODEL_TENSOR . V_MM_INP_NORM : (
"multi_modal_projector.norm" ,
2025-08-16 23:33:54 +02:00
"multi_modal_projector.layer_norm" ,
2025-08-26 12:54:19 +02:00
"multi_modal_projector.pre_norm" ,
2026-02-11 07:47:30 -08:00
"mm_projector.pre_norm" , # Kimi-K2.5
2025-08-11 10:07:49 +02:00
"pre_mm_projector_norm" ,
2025-10-30 07:18:50 -04:00
"model.vision.linear_proj.norm1" , # cogvlm
2026-02-20 00:05:25 +08:00
"mlp_AR.pre_norm" , # PaddleOCR-VL
2026-01-02 02:25:54 +08:00
"merger.ln_q" ,
2026-04-09 12:16:38 +02:00
"vision_tower.merger.ln_q" , # dots.ocr
2026-05-07 03:54:09 +08:00
"model.merger.mlp.0.pre_norm" , # minicpmv4_6
2025-05-01 17:05:42 +02:00
),
2025-04-20 23:29:36 +02:00
MODEL_TENSOR . V_MM_SOFT_EMB_NORM : (
"multi_modal_projector.mm_soft_emb_norm" ,
),
MODEL_TENSOR . V_RESMPL_POS_EMBD_K : (
"resampler.pos_embed_k" ,
),
MODEL_TENSOR . V_RESMPL_ATTN_Q : (
"resampler.attn.in_proj_q" , # tensor generated from resampler.attn.in_proj
),
MODEL_TENSOR . V_RESMPL_ATTN_K : (
"resampler.attn.in_proj_k" , # tensor generated from resampler.attn.in_proj
),
MODEL_TENSOR . V_RESMPL_ATTN_V : (
"resampler.attn.in_proj_v" , # tensor generated from resampler.attn.in_proj
),
MODEL_TENSOR . V_RESMPL_ATTN_OUT : (
"resampler.attn.out_proj" ,
2026-02-20 00:05:25 +08:00
"model.vision_model.head.attention.out_proj" ,
2025-04-20 23:29:36 +02:00
),
MODEL_TENSOR . V_RESMPL_KV : (
"resampler.kv_proj" ,
),
MODEL_TENSOR . V_RESMPL_POST_NORM : (
"resampler.ln_post" ,
),
MODEL_TENSOR . V_RESMPL_KV_NORM : (
"resampler.ln_kv" ,
),
MODEL_TENSOR . V_RESMPL_Q_NORM : (
"resampler.ln_q" ,
),
MODEL_TENSOR . V_RESMPL_PROJ : (
"resampler.proj" ,
),
MODEL_TENSOR . V_RESMPL_QUERY : (
"resampler.query" ,
),
2025-04-23 20:21:59 +02:00
MODEL_TENSOR . V_TOK_EMBD_IMG_BREAK : (
"v.token_embd.img_break" , # for pixtral, this is a generated vector
),
2025-05-01 17:05:42 +02:00
MODEL_TENSOR . V_MM_PATCH_MERGER : (
2025-08-11 10:07:49 +02:00
"multi_modal_projector.patch_merger.merging_layer" , # mistral small 3.1 - hf
"patch_merger.merging_layer" , # mistral
2025-12-16 11:25:26 +01:00
"visual.downsample" , # glm4v
2025-05-01 17:05:42 +02:00
),
2025-05-22 20:42:48 +02:00
2025-10-30 23:19:14 +08:00
MODEL_TENSOR . V_DS_NORM : (
"model.visual.deepstack_merger_list. {bid} .norm" , # deepstack in qwen3vl
),
MODEL_TENSOR . V_DS_FC1 : (
"model.visual.deepstack_merger_list. {bid} .linear_fc1" , # deepstack in qwen3vl
),
MODEL_TENSOR . V_DS_FC2 : (
"model.visual.deepstack_merger_list. {bid} .linear_fc2" , # deepstack in qwen3vl
),
2026-05-07 03:54:09 +08:00
MODEL_TENSOR . V_MERGER_LN1 : (
"model.vision_tower.vit_merger.layer_norm1" , # minicpmv4_6
),
MODEL_TENSOR . V_MERGER_ATTN_Q : (
"model.vision_tower.vit_merger.self_attn.q_proj" , # minicpmv4_6
),
MODEL_TENSOR . V_MERGER_ATTN_K : (
"model.vision_tower.vit_merger.self_attn.k_proj" , # minicpmv4_6
),
MODEL_TENSOR . V_MERGER_ATTN_V : (
"model.vision_tower.vit_merger.self_attn.v_proj" , # minicpmv4_6
),
MODEL_TENSOR . V_MERGER_ATTN_O : (
"model.vision_tower.vit_merger.self_attn.out_proj" , # minicpmv4_6
),
MODEL_TENSOR . V_MERGER_DS_LN : (
"model.vision_tower.vit_merger.pre_norm" , # minicpmv4_6
),
MODEL_TENSOR . V_MERGER_DS_UP : (
"model.vision_tower.vit_merger.linear_1" , # minicpmv4_6
),
MODEL_TENSOR . V_MERGER_DS_DOWN : (
"model.vision_tower.vit_merger.linear_2" , # minicpmv4_6
),
2026-03-25 19:57:40 +01:00
MODEL_TENSOR . V_SAM_POS_EMBD : (
"model.sam_model.pos_embed" ,
),
MODEL_TENSOR . V_SAM_PATCH_EMBD : (
"model.sam_model.patch_embed.proj" ,
),
MODEL_TENSOR . V_SAM_PRE_NORM : (
"model.sam_model.blocks. {bid} .norm1" , # deepstack in qwen3vl
),
MODEL_TENSOR . V_SAM_POST_NORM : (
"model.sam_model.blocks. {bid} .norm2" , # deepstack in qwen3vl
),
MODEL_TENSOR . V_SAM_ATTN_POS_H : (
"model.sam_model.blocks. {bid} .attn.rel_pos_h" ,
),
MODEL_TENSOR . V_SAM_ATTN_POS_W : (
"model.sam_model.blocks. {bid} .attn.rel_pos_w" ,
),
MODEL_TENSOR . V_SAM_ATTN_QKV : (
"model.sam_model.blocks. {bid} .attn.qkv" ,
),
MODEL_TENSOR . V_SAM_ATTN_OUT : (
"model.sam_model.blocks. {bid} .attn.proj" ,
),
MODEL_TENSOR . V_SAM_MLP_LIN_1 : (
"model.sam_model.blocks. {bid} .mlp.lin1" ,
),
MODEL_TENSOR . V_SAM_MLP_LIN_2 : (
"model.sam_model.blocks. {bid} .mlp.lin2" ,
),
MODEL_TENSOR . V_SAM_NECK : (
"model.sam_model.neck. {bid} " ,
),
MODEL_TENSOR . V_SAM_NET_2 : (
"model.sam_model.net_2" ,
),
MODEL_TENSOR . V_SAM_NET_3 : (
"model.sam_model.net_3" ,
),
2025-10-30 07:18:50 -04:00
MODEL_TENSOR . V_MM_POST_FC_NORM : (
"model.vision.linear_proj.norm1" , # cogvlm
),
MODEL_TENSOR . V_MM_UP : (
"model.vision.linear_proj.dense_h_to_4h" , # cogvlm
2025-12-16 11:25:26 +01:00
"visual.merger.up_proj" , # glm4v
2026-05-07 03:54:09 +08:00
"model.merger.mlp.0.linear_1" , # minicpmv4_6
2025-10-30 07:18:50 -04:00
),
MODEL_TENSOR . V_MM_DOWN : (
"model.vision.linear_proj.dense_4h_to_h" , # cogvlm
2025-12-16 11:25:26 +01:00
"visual.merger.down_proj" , # glm4v
2026-05-07 03:54:09 +08:00
"model.merger.mlp.0.linear_2" , # minicpmv4_6
2025-10-30 07:18:50 -04:00
),
MODEL_TENSOR . V_MM_GATE : (
"model.vision.linear_proj.gate_proj" , # cogvlm
2025-12-16 11:25:26 +01:00
"visual.merger.gate_proj" , # glm4v
2025-10-30 07:18:50 -04:00
),
MODEL_TENSOR . V_TOK_BOI : (
"model.vision.boi" , # cogvlm
),
MODEL_TENSOR . V_TOK_EOI : (
"model.vision.eoi" , # cogvlm
),
2026-04-05 23:32:14 +02:00
MODEL_TENSOR . V_MM_PRE_NORM : (
"vit.perceive.before_rms" , # HunyuanOCR
),
MODEL_TENSOR . V_TOK_IMG_BEGIN : (
"vit.perceive.image_begin" , # HunyuanOCR
),
MODEL_TENSOR . V_TOK_IMG_END : (
"vit.perceive.image_end" , # HunyuanOCR
),
2026-04-02 17:10:32 +02:00
MODEL_TENSOR . V_STD_BIAS : (
"model.vision_tower.std_bias" , # gemma4
),
MODEL_TENSOR . V_STD_SCALE : (
"model.vision_tower.std_scale" , # gemma4
),
2025-05-22 20:42:48 +02:00
# audio (mtmd)
MODEL_TENSOR . A_ENC_EMBD_POS : (
"audio_tower.embed_positions" , # ultravox
2025-12-19 00:18:01 +01:00
"audio_embedding.embedding" , # lfm2
),
MODEL_TENSOR . A_ENC_EMBD_NORM : (
"audio_embedding.embedding_norm" , # lfm2
),
MODEL_TENSOR . A_ENC_EMBD_TO_LOGITS : (
"audio_embedding.to_logits" , # lfm2
2025-05-22 20:42:48 +02:00
),
MODEL_TENSOR . A_ENC_CONV1D : (
"audio_tower.conv {bid} " , # ultravox
2025-12-19 00:18:01 +01:00
"conformer.pre_encode.conv. {bid} " , # lfm2
2026-01-09 22:42:38 +00:00
"model.audio_tower.subsample_conv_projection.conv_ {bid} .conv" , # gemma3n
2026-04-02 17:10:32 +02:00
"conformer.subsample_conv_projection.layer {bid} .conv" , # gemma4
2026-01-09 22:42:38 +00:00
),
MODEL_TENSOR . A_ENC_CONV1D_NORM : (
2026-04-02 17:10:32 +02:00
"conformer.subsample_conv_projection.layer {bid} .norm" , # gemma4
),
MODEL_TENSOR . A_ENC_INP_PROJ : (
"conformer.subsample_conv_projection.input_proj_linear" , # gemma4
2026-05-06 14:40:59 +02:00
"encoder.input_linear" ,
2025-05-22 20:42:48 +02:00
),
2026-04-12 23:57:25 +02:00
MODEL_TENSOR . A_ENC_CONV2D : (
"audio_tower.conv2d {bid} " , # qwen3omni
),
MODEL_TENSOR . A_ENC_CONV_OUT : (
"audio_tower.conv_out" , # qwen3omni
),
2025-05-22 20:42:48 +02:00
MODEL_TENSOR . A_PRE_NORM : (),
MODEL_TENSOR . A_POST_NORM : (
"audio_tower.layer_norm" , # ultravox
2025-05-27 14:06:10 +02:00
"audio_tower.ln_post" , # qwen2omni
2025-05-22 20:42:48 +02:00
),
MODEL_TENSOR . A_ENC_ATTN_Q : (
"audio_tower.layers. {bid} .self_attn.q_proj" , # ultravox
2025-12-19 00:18:01 +01:00
"conformer.layers. {bid} .self_attn.linear_q" , # lfm2
2026-01-09 22:42:38 +00:00
"conformer.layers. {bid} .attention.attn.q_proj" , # gemma3n
2026-04-02 17:10:32 +02:00
"conformer.layers. {bid} .self_attn.q_proj" , # gemma4
2026-05-06 14:40:59 +02:00
"encoder.layers. {bid} .attn.to_q" , # granite_speech
2025-05-22 20:42:48 +02:00
),
MODEL_TENSOR . A_ENC_ATTN_K : (
"audio_tower.layers. {bid} .self_attn.k_proj" , # ultravox
2025-12-19 00:18:01 +01:00
"conformer.layers. {bid} .self_attn.linear_k" , # lfm2
2026-01-09 22:42:38 +00:00
"conformer.layers. {bid} .attention.attn.k_proj" , # gemma3n
2026-04-02 17:10:32 +02:00
"conformer.layers. {bid} .self_attn.k_proj" , # gemma4
2026-05-06 14:40:59 +02:00
"encoder.layers. {bid} .attn.to_k" , # granite_speech (split from to_kv)
2025-05-22 20:42:48 +02:00
),
MODEL_TENSOR . A_ENC_ATTN_V : (
"audio_tower.layers. {bid} .self_attn.v_proj" , # ultravox
2025-12-19 00:18:01 +01:00
"conformer.layers. {bid} .self_attn.linear_v" , # lfm2
2026-01-09 22:42:38 +00:00
"conformer.layers. {bid} .attention.attn.v_proj" , # gemma3n
2026-04-02 17:10:32 +02:00
"conformer.layers. {bid} .self_attn.v_proj" , # gemma4
2026-05-06 14:40:59 +02:00
"encoder.layers. {bid} .attn.to_v" , # granite_speech (split from to_kv)
2026-04-02 17:10:32 +02:00
),
MODEL_TENSOR . A_ENC_ATTN_K_REL : (
"conformer.layers. {bid} .self_attn.relative_k_proj" , # gemma4
),
MODEL_TENSOR . A_ENC_ATTN_POST_NORM : (
"conformer.layers. {bid} .norm_post_attn" , # gemma4
),
MODEL_TENSOR . A_ENC_ATTN_PRE_NORM : (
"conformer.layers. {bid} .norm_pre_attn" , # gemma4
2026-01-09 22:42:38 +00:00
),
MODEL_TENSOR . A_ENC_PER_DIM_SCALE : (
"conformer.layers. {bid} .attention.attn.per_dim_scale" , # gemma3n
2026-04-02 17:10:32 +02:00
"conformer.layers. {bid} .self_attn.per_dim_scale" , # gemma3n
2026-01-09 22:42:38 +00:00
),
MODEL_TENSOR . A_ENC_LAYER_PRE_NORM : (
"conformer.layers. {bid} .norm" , # gemma3n
2025-05-22 20:42:48 +02:00
),
MODEL_TENSOR . A_ENC_INPUT_NORM : (
"audio_tower.layers. {bid} .self_attn_layer_norm" , # ultravox
2025-12-19 00:18:01 +01:00
"conformer.layers. {bid} .norm_self_att" , # lfm2
2026-01-09 22:42:38 +00:00
"conformer.layers. {bid} .attention.pre_attn_norm" , # gemma3n
2026-05-06 14:40:59 +02:00
"encoder.layers. {bid} .attn.pre_norm" , # granite_speech
2025-05-22 20:42:48 +02:00
),
MODEL_TENSOR . A_ENC_OUTPUT : (
"audio_tower.layers. {bid} .self_attn.out_proj" , # ultravox
2025-12-19 00:18:01 +01:00
"conformer.layers. {bid} .self_attn.linear_out" , # lfm2
2026-01-09 22:42:38 +00:00
"conformer.layers. {bid} .attention.post" , # gemma3n
2026-04-02 17:10:32 +02:00
"conformer.layers. {bid} .self_attn.post" , # gemma4
2026-05-06 14:40:59 +02:00
"encoder.layers. {bid} .attn.to_out" , # granite_speech
2025-05-22 20:42:48 +02:00
),
MODEL_TENSOR . A_ENC_OUTPUT_NORM : (
"audio_tower.layers. {bid} .final_layer_norm" , # ultravox
2025-12-19 00:18:01 +01:00
"conformer.layers. {bid} .norm_out" , # lfm2
2026-01-09 22:42:38 +00:00
"conformer.layers. {bid} .attention.post_norm" , # gemma3n
2026-05-06 14:40:59 +02:00
"encoder.layers. {bid} .post_norm" , # granite_speech
2025-12-19 00:18:01 +01:00
),
MODEL_TENSOR . A_ENC_FFN_NORM : (
"conformer.layers. {bid} .norm_feed_forward1" , # lfm2
2026-01-09 22:42:38 +00:00
"conformer.layers. {bid} .ffw_layer_start.pre_layer_norm" , # gemma3n
2026-04-02 17:10:32 +02:00
"conformer.layers. {bid} .feed_forward1.pre_layer_norm" , # gemma4
2026-05-06 14:40:59 +02:00
"encoder.layers. {bid} .ff1.pre_norm" , # granite_speech
2026-01-09 22:42:38 +00:00
),
MODEL_TENSOR . A_ENC_FFN_POST_NORM : (
"conformer.layers. {bid} .ffw_layer_start.post_layer_norm" , # gemma3n
2026-04-02 17:10:32 +02:00
"conformer.layers. {bid} .feed_forward1.post_layer_norm" , # gemma4
2026-01-09 22:42:38 +00:00
),
MODEL_TENSOR . A_ENC_FFN_SCALE : (
"conformer.layers. {bid} .ffw_layer_start.post_layer_scale" , # gemma3n
2025-05-22 20:42:48 +02:00
),
MODEL_TENSOR . A_ENC_FFN_UP : (
"audio_tower.layers. {bid} .fc1" , # ultravox
2025-12-19 00:18:01 +01:00
"conformer.layers. {bid} .feed_forward1.linear1" , # lfm2
2026-01-09 22:42:38 +00:00
"conformer.layers. {bid} .ffw_layer_start.ffw_layer_1" , # gemma3n
2026-04-02 17:10:32 +02:00
"conformer.layers. {bid} .feed_forward1.ffw_layer_1" , # gemma4
2026-05-06 14:40:59 +02:00
"encoder.layers. {bid} .ff1.up_proj" , # granite_speech
2025-05-22 20:42:48 +02:00
),
MODEL_TENSOR . A_ENC_FFN_GATE : (),
MODEL_TENSOR . A_ENC_FFN_DOWN : (
"audio_tower.layers. {bid} .fc2" , # ultravox
2025-12-19 00:18:01 +01:00
"conformer.layers. {bid} .feed_forward1.linear2" , # lfm2
2026-01-09 22:42:38 +00:00
"conformer.layers. {bid} .ffw_layer_start.ffw_layer_2" , # gemma3n
2026-04-02 17:10:32 +02:00
"conformer.layers. {bid} .feed_forward1.ffw_layer_2" , # gemma4
2026-05-06 14:40:59 +02:00
"encoder.layers. {bid} .ff1.down_proj" , # granite_speech
2025-12-19 00:18:01 +01:00
),
MODEL_TENSOR . A_ENC_FFN_UP_1 : (
"conformer.layers. {bid} .feed_forward2.linear1" , # lfm2
2026-01-09 22:42:38 +00:00
"conformer.layers. {bid} .ffw_layer_end.ffw_layer_1" , # gemma3n
2026-04-02 17:10:32 +02:00
"conformer.layers. {bid} .feed_forward2.ffw_layer_1" , # gemma4
2026-05-06 14:40:59 +02:00
"encoder.layers. {bid} .ff2.up_proj" , # granite_speech
2025-12-19 00:18:01 +01:00
),
MODEL_TENSOR . A_ENC_FFN_DOWN_1 : (
"conformer.layers. {bid} .feed_forward2.linear2" , # lfm2
2026-01-09 22:42:38 +00:00
"conformer.layers. {bid} .ffw_layer_end.ffw_layer_2" , # gemma3n
2026-04-02 17:10:32 +02:00
"conformer.layers. {bid} .feed_forward2.ffw_layer_2" , # gemma4
2026-05-06 14:40:59 +02:00
"encoder.layers. {bid} .ff2.down_proj" , # granite_speech
2025-12-19 00:18:01 +01:00
),
MODEL_TENSOR . A_ENC_FFN_NORM_1 : (
"conformer.layers. {bid} .norm_feed_forward2" , # lfm2
2026-01-09 22:42:38 +00:00
"conformer.layers. {bid} .ffw_layer_end.pre_layer_norm" , # gemma3n
2026-04-02 17:10:32 +02:00
"conformer.layers. {bid} .feed_forward2.pre_layer_norm" , # gemma4
2026-05-06 14:40:59 +02:00
"encoder.layers. {bid} .ff2.pre_norm" , # granite_speech
2026-01-09 22:42:38 +00:00
),
MODEL_TENSOR . A_ENC_FFN_POST_NORM_1 : (
"conformer.layers. {bid} .ffw_layer_end.post_layer_norm" , # gemma3n
2026-04-02 17:10:32 +02:00
"conformer.layers. {bid} .feed_forward2.post_layer_norm" , # gemma4
2026-01-09 22:42:38 +00:00
),
MODEL_TENSOR . A_ENC_FFN_SCALE_1 : (
"conformer.layers. {bid} .ffw_layer_end.post_layer_scale" , # gemma3n
2025-12-19 00:18:01 +01:00
),
MODEL_TENSOR . A_ENC_LINEAR_POS : (
"conformer.layers. {bid} .self_attn.linear_pos" , # lfm2
2026-01-09 22:42:38 +00:00
"conformer.layers. {bid} .attention.attn.relative_position_embedding.pos_proj" , # gemma3n
2025-12-19 00:18:01 +01:00
),
MODEL_TENSOR . A_ENC_POS_BIAS_U : (
"conformer.layers. {bid} .self_attn.pos_bias_u" , # lfm2
),
MODEL_TENSOR . A_ENC_POS_BIAS_V : (
"conformer.layers. {bid} .self_attn.pos_bias_v" , # lfm2
),
MODEL_TENSOR . A_ENC_OUT : (
"conformer.pre_encode.out" , # lfm2
2026-04-02 17:10:32 +02:00
"model.audio_tower.subsample_conv_projection.input_proj_linear" , # gemma3n (note: it should be A_ENC_INP_PROJ, this is a mistake; it should be corrected in C++ code when it's supported)
"conformer.output_proj" , # gemma4
2025-05-22 20:42:48 +02:00
),
2025-05-27 14:06:10 +02:00
# note: some tensors below has "audio." pseudo-prefix, to prevent conflicts with vision tensors
# this prefix is added in the conversion code in modify_tensors()
2025-05-22 20:42:48 +02:00
MODEL_TENSOR . A_MMPROJ : (
2026-04-11 20:15:48 +08:00
"audio.multi_modal_projector.linear_ {bid} " , # ultravox, meralion
2026-04-12 23:57:25 +02:00
"audio_adapter.model. {bid} " , # lfm2
"audio_tower.proj {bid} " , # qwen3omni
2025-05-22 20:42:48 +02:00
),
2025-05-25 14:06:32 +02:00
MODEL_TENSOR . A_MMPROJ_FC : (
"audio.multi_modal_projector.linear" , # qwen2audio
2025-05-27 14:06:10 +02:00
"audio_tower.proj" , # qwen2omni
2026-04-02 17:10:32 +02:00
"model.audio_tower.output_proj" # gemma4
2025-05-25 14:06:32 +02:00
),
2025-05-22 20:42:48 +02:00
MODEL_TENSOR . A_MM_NORM_PRE : (
"audio.multi_modal_projector.ln_pre" , # ultravox
),
MODEL_TENSOR . A_MM_NORM_MID : (
"audio.multi_modal_projector.ln_mid" , # ultravox
),
2025-08-05 04:29:25 +10:00
2025-12-19 00:18:01 +01:00
MODEL_TENSOR . A_ENC_CONV_DW : (
"conformer.layers. {bid} .conv.depthwise_conv" , # lfm2
2026-01-09 22:42:38 +00:00
"conformer.layers. {bid} .lconv1d.depthwise_conv1d" , # gemma3n
2026-05-06 14:40:59 +02:00
"encoder.layers. {bid} .conv.depth_conv.conv" , # granite_speech
2025-12-19 00:18:01 +01:00
),
MODEL_TENSOR . A_ENC_CONV_NORM : (
"conformer.layers. {bid} .conv.batch_norm" , # lfm2
2026-01-09 22:42:38 +00:00
"conformer.layers. {bid} .lconv1d.pre_layer_norm" , # gemma3n
2026-05-06 14:40:59 +02:00
"encoder.layers. {bid} .conv.batch_norm" , # granite_speech
2025-12-19 00:18:01 +01:00
),
MODEL_TENSOR . A_ENC_CONV_PW1 : (
"conformer.layers. {bid} .conv.pointwise_conv1" , # lfm2
2026-01-09 22:42:38 +00:00
"conformer.layers. {bid} .lconv1d.linear_start" , # gemma3n
2026-05-06 14:40:59 +02:00
"encoder.layers. {bid} .conv.up_conv" , # granite_speech
2025-12-19 00:18:01 +01:00
),
MODEL_TENSOR . A_ENC_CONV_PW2 : (
"conformer.layers. {bid} .conv.pointwise_conv2" , # lfm2
2026-01-09 22:42:38 +00:00
"conformer.layers. {bid} .lconv1d.linear_end" , # gemma3n
2026-05-06 14:40:59 +02:00
"encoder.layers. {bid} .conv.down_conv" , # granite_speech
2025-12-19 00:18:01 +01:00
),
MODEL_TENSOR . A_ENC_NORM_CONV : (
"conformer.layers. {bid} .norm_conv" , # lfm2
2026-01-09 22:42:38 +00:00
"conformer.layers. {bid} .lconv1d.conv_norm" , # gemma3n
2026-05-06 14:40:59 +02:00
"encoder.layers. {bid} .conv.norm" , # granite_speech
2026-01-09 22:42:38 +00:00
),
2026-04-02 17:10:32 +02:00
MODEL_TENSOR . A_PER_DIM_K_SCALE : (
"conformer.layers. {bid} .attention.attn.per_dim_key_scale" , # gemma4
),
MODEL_TENSOR . A_PER_DIM_SCALE : (
"conformer.layers. {bid} .attention.attn.per_dim_scale" , # gemma4
),
2026-01-09 22:42:38 +00:00
MODEL_TENSOR . A_MM_EMBEDDING : (
"model.embed_audio.embedding" , # gemma3n
),
MODEL_TENSOR . A_MM_HARD_EMB_NORM : (
"model.embed_audio.hard_embedding_norm" , # gemma3n
),
MODEL_TENSOR . A_MM_INP_PROJ : (
"model.embed_audio.embedding_projection" , # gemma3n
),
MODEL_TENSOR . A_MM_SOFT_EMB_NORM : (
"model.embed_audio.soft_embedding_norm" , # gemma3n
2025-12-19 00:18:01 +01:00
),
2026-05-06 14:40:59 +02:00
MODEL_TENSOR . A_ENC_ATTN_REL_POS_EMB : (
"encoder.layers. {bid} .attn.rel_pos_emb.weight" ,
),
MODEL_TENSOR . A_QF_SELF_ATTN_Q : (
"projector.qformer.encoder.layer. {bid} .attention.attention.query" ,
),
MODEL_TENSOR . A_QF_SELF_ATTN_K : (
"projector.qformer.encoder.layer. {bid} .attention.attention.key" ,
),
MODEL_TENSOR . A_QF_SELF_ATTN_V : (
"projector.qformer.encoder.layer. {bid} .attention.attention.value" ,
),
MODEL_TENSOR . A_QF_SELF_ATTN_O : (
"projector.qformer.encoder.layer. {bid} .attention.output.dense" ,
),
MODEL_TENSOR . A_QF_SELF_ATTN_NORM : (
"projector.qformer.encoder.layer. {bid} .attention.output.LayerNorm" ,
),
MODEL_TENSOR . A_QF_CROSS_ATTN_Q : (
"projector.qformer.encoder.layer. {bid} .crossattention.attention.query" ,
),
MODEL_TENSOR . A_QF_CROSS_ATTN_K : (
"projector.qformer.encoder.layer. {bid} .crossattention.attention.key" ,
),
MODEL_TENSOR . A_QF_CROSS_ATTN_V : (
"projector.qformer.encoder.layer. {bid} .crossattention.attention.value" ,
),
MODEL_TENSOR . A_QF_CROSS_ATTN_O : (
"projector.qformer.encoder.layer. {bid} .crossattention.output.dense" ,
),
MODEL_TENSOR . A_QF_CROSS_ATTN_NORM : (
"projector.qformer.encoder.layer. {bid} .crossattention.output.LayerNorm" ,
),
MODEL_TENSOR . A_QF_FFN_UP : (
"projector.qformer.encoder.layer. {bid} .intermediate_query.dense" ,
),
MODEL_TENSOR . A_QF_FFN_DOWN : (
"projector.qformer.encoder.layer. {bid} .output_query.dense" ,
),
MODEL_TENSOR . A_QF_FFN_NORM : (
"projector.qformer.encoder.layer. {bid} .output_query.LayerNorm" ,
),
2026-01-14 07:28:38 +09:00
# NextN/MTP tensors
2025-08-05 04:29:25 +10:00
MODEL_TENSOR . NEXTN_EH_PROJ : (
"model.layers. {bid} .eh_proj" ,
),
MODEL_TENSOR . NEXTN_EMBED_TOKENS : (
"model.layers. {bid} .embed_tokens" ,
),
MODEL_TENSOR . NEXTN_ENORM : (
"model.layers. {bid} .enorm" ,
),
MODEL_TENSOR . NEXTN_HNORM : (
"model.layers. {bid} .hnorm" ,
),
MODEL_TENSOR . NEXTN_SHARED_HEAD_HEAD : (
"model.layers. {bid} .shared_head.head" ,
),
MODEL_TENSOR . NEXTN_SHARED_HEAD_NORM : (
"model.layers. {bid} .shared_head.norm" ,
),
2023-11-10 22:04:50 -07:00
}
2024-05-24 14:31:13 +02:00
# architecture-specific block mappings
arch_block_mappings_cfg : dict [ MODEL_ARCH , dict [ MODEL_TENSOR , tuple [ str , ... ]]] = {
MODEL_ARCH . ARCTIC : {
MODEL_TENSOR . FFN_NORM : (
"model.layers. {bid} .residual_layernorm" ,
),
MODEL_TENSOR . FFN_NORM_EXP : (
"model.layers. {bid} .post_attention_layernorm" ,
),
},
}
2023-11-10 22:04:50 -07:00
mapping : dict [ str , tuple [ MODEL_TENSOR , str ]]
def __init__ ( self , arch : MODEL_ARCH , n_blocks : int ):
self . mapping = {}
for tensor , keys in self . mappings_cfg . items ():
if tensor not in MODEL_TENSORS [ arch ]:
continue
tensor_name = TENSOR_NAMES [ tensor ]
self . mapping [ tensor_name ] = ( tensor , tensor_name )
for key in keys :
self . mapping [ key ] = ( tensor , tensor_name )
2024-05-24 14:31:13 +02:00
if arch in self . arch_block_mappings_cfg :
self . block_mappings_cfg . update ( self . arch_block_mappings_cfg [ arch ])
2023-11-10 22:04:50 -07:00
for bid in range ( n_blocks ):
for tensor , keys in self . block_mappings_cfg . items ():
if tensor not in MODEL_TENSORS [ arch ]:
continue
2024-07-15 23:13:10 -04:00
tensor_name = TENSOR_NAMES [ tensor ] . format ( bid = bid )
self . mapping [ tensor_name ] = ( tensor , tensor_name )
for key in keys :
key = key . format ( bid = bid )
self . mapping [ key ] = ( tensor , tensor_name )
2023-11-10 22:04:50 -07:00
def get_type_and_name ( self , key : str , try_suffixes : Sequence [ str ] = ()) -> tuple [ MODEL_TENSOR , str ] | None :
result = self . mapping . get ( key )
if result is not None :
return result
for suffix in try_suffixes :
if key . endswith ( suffix ):
result = self . mapping . get ( key [: - len ( suffix )])
if result is not None :
return result [ 0 ], result [ 1 ] + suffix
return None
def get_name ( self , key : str , try_suffixes : Sequence [ str ] = ()) -> str | None :
result = self . get_type_and_name ( key , try_suffixes = try_suffixes )
if result is None :
return None
return result [ 1 ]
def get_type ( self , key : str , try_suffixes : Sequence [ str ] = ()) -> MODEL_TENSOR | None :
result = self . get_type_and_name ( key , try_suffixes = try_suffixes )
if result is None :
return None
return result [ 0 ]
def __getitem__ ( self , key : str ) -> str :
try :
return self . mapping [ key ][ 1 ]
except KeyError :
raise KeyError ( key )
def __contains__ ( self , key : str ) -> bool :
return key in self . mapping
def __repr__ ( self ) -> str :
return repr ( self . mapping )
def get_tensor_name_map ( arch : MODEL_ARCH , n_blocks : int ) -> TensorNameMap :
return TensorNameMap ( arch , n_blocks )