char-fork/llama.cpp
git clone https://git.t4t.associates/char-fork/llama.cpp
d23c47f2a
char/aliceai-t5-moe
1from __future__import annotations 2 3from typing import Sequence 4 5from .constants import MODEL_ARCH ,MODEL_TENSOR ,MODEL_TENSORS ,TENSOR_NAMES 6 7 8class TensorNameMap : 9mappings_cfg :dict [MODEL_TENSOR ,tuple [str , ...]]= { 10# Token embeddings 11MODEL_TENSOR .TOKEN_EMBD : ( 12"gpt_neox.embed_in" ,# gptneox 13"transformer.wte" ,# gpt2 gpt-j mpt refact qwen dbrx jais exaone 14"transformer.word_embeddings" ,# falcon 15"word_embeddings" ,# bloom 16"model.embed_tokens" ,# llama-hf nemotron olmoe olmo2 rwkv6qwen2 glm4-0414 plamo2 granite-hybrid 17"embed_tokens" ,# embeddinggemma 18"tok_embeddings" ,# llama-pth 19"embeddings.word_embeddings" ,# bert nomic-bert 20"embeddings.tok_embeddings" ,# modern-bert 21"wte" ,# gpt2 22"transformer.embd.wte" ,# phi2 23"model.tok_embeddings" ,# internlm2 24"model.embedding" ,# mamba-qbert 25"backbone.embedding" ,# mamba 26"backbone.embeddings" ,# mamba-hf 27"transformer.in_out_embed" ,# Grok 28"embedding.word_embeddings" ,# chatglm 29"transformer.token_embeddings" ,# openelm 30"shared" ,# t5 31"rwkv.embeddings" ,# rwkv6 32"model.embeddings" ,# rwkv7 33"model.word_embeddings" ,# bailingmoe 34"encoder" ,# neobert 35"model.transformer.wte" ,# llada 36"embed_tokens" ,# qwen3-embedding 37"model.embed" ,# talkie 38 ), 39 40# Masked embeddings 41MODEL_TENSOR .MASKED_EMBD_CENTROIDS : ( 42"masked_embedding.centroids" ,# gemma-4 E2B/E4B assistants 43 ), 44MODEL_TENSOR .MASKED_EMBD_ORDERING : ( 45"masked_embedding.token_ordering" ,# gemma-4 E2B/E4B assistants 46 ), 47 48# Token type embeddings 49MODEL_TENSOR .TOKEN_TYPES : ( 50"embeddings.token_type_embeddings" ,# bert nomic-bert 51 ), 52 53# Normalization of token embeddings 54MODEL_TENSOR .TOKEN_EMBD_NORM : ( 55"word_embeddings_layernorm" ,# bloom 56"embeddings.LayerNorm" ,# bert 57"embeddings.norm" ,# modern-bert 58"emb_ln" ,# nomic-bert 59"transformer.norm" ,# openelm 60"rwkv.blocks.0.pre_ln" ,# rwkv 61"rwkv.blocks.0.pre_ln" ,# rwkv6 62"model.pre_ln" ,# rwkv7 63"model.layers.0.pre_norm" ,# rwkv7 64"backbone.norm" ,# wavtokenizer 65"model.embedding_norm" ,# lfm2 66 ), 67 68# Position embeddings 69MODEL_TENSOR .POS_EMBD : ( 70"transformer.wpe" ,# gpt2 71"embeddings.position_embeddings" ,# bert 72"wpe" ,# gpt2 73"model.embed_positions" ,# rugpt3xl 74 ), 75 76# Output 77MODEL_TENSOR .OUTPUT : ( 78"embed_out" ,# gptneox 79"lm_head" ,# gpt2 mpt falcon llama-hf baichuan qwen mamba dbrx jais nemotron exaone olmoe olmo2 phimoe plamo2 llama4 80"output" ,# llama-pth bloom internlm2 81"word_embeddings_for_head" ,# persimmon 82"lm_head.linear" ,# phi2 83"output_layer" ,# chatglm 84"head" ,# rwkv 85"head.out" ,# wavtokenizer 86"model.lm_head" ,# dflash 87"model.transformer.ff_out" ,# llada 88"head.decoder" ,# modern-bert 89 ), 90MODEL_TENSOR .DENSE_2_OUT : ( 91"dense_2_out" ,# embeddinggemma 92 ), 93MODEL_TENSOR .DENSE_3_OUT : ( 94"dense_3_out" ,# embeddinggemma 95 ), 96# Output norm 97MODEL_TENSOR .OUTPUT_NORM : ( 98"gpt_neox.final_layer_norm" ,# gptneox 99"transformer.ln_f" ,# gpt2 gpt-j falcon jais exaone 100"model.norm" ,# llama-hf baichuan internlm2 olmoe olmo2 phimoe plamo2 101"norm" ,# llama-pth 102"transformer.norm_f" ,# mpt dbrx 103"ln_f" ,# refact bloom qwen gpt2 104"model.final_layernorm" ,# persimmon 105"lm_head.ln" ,# phi2 106"model.norm_f" ,# mamba-qbert 107"backbone.norm_f" ,# mamba 108"transformer.rms_norm" ,# Grok 109"encoder.final_layernorm" ,# chatglm 110"transformer.norm" ,# openelm 111"model.norm" ,# nemotron 112"rwkv.ln_out" ,# rwkv6 113"model.ln_out" ,# rwkv7 114"backbone.final_layer_norm" ,# wavtokenizer 115"model.norm" ,# llama4 116"model.transformer.ln_f" ,# llada 117"final_norm" ,# modern-bert 118"model.norm" ,# cogvlm 119 ), 120 121# Rope frequencies 122MODEL_TENSOR .ROPE_FREQS : ( 123"rope.freqs" ,# llama-pth 124"rotary_pos_emb.inv_freq" ,# chatglm 125 ), 126 127MODEL_TENSOR .ROPE_FACTORS_LONG : (), 128MODEL_TENSOR .ROPE_FACTORS_SHORT : (), 129 130MODEL_TENSOR .CONV1D : ( 131"backbone.embed" ,# roberta 132 ), 133 134MODEL_TENSOR .V_MM_EMBEDDING : ( 135"model.embed_vision.embedding" ,# gemma3n 136 ), 137MODEL_TENSOR .V_MM_HARD_EMB_NORM : ( 138"model.embed_vision.hard_embedding_norm" ,# gemma3n 139 ), 140MODEL_TENSOR .V_MM_INP_PROJ : ( 141"model.embed_vision.embedding_projection" ,# gemma3n 142 ), 143MODEL_TENSOR .V_MM_SOFT_EMB_NORM : ( 144"model.embed_vision.soft_embedding_norm" ,# gemma3n 145 ), 146MODEL_TENSOR .V_ENC_CONV_STEM : ( 147"model.vision_tower.timm_model.conv_stem.conv" ,# gemma3n 148 ), 149MODEL_TENSOR .V_ENC_CONV_STEM_NORM : ( 150"model.vision_tower.timm_model.conv_stem.bn" ,# gemma3n 151 ), 152MODEL_TENSOR .V_ENC_MSFA_EXP : ( 153"model.vision_tower.timm_model.msfa.ffn.pw_exp.conv" ,# gemma3n 154 ), 155MODEL_TENSOR .V_ENC_MSFA_EXP_NORM : ( 156"model.vision_tower.timm_model.msfa.ffn.pw_exp.bn" ,# gemma3n 157 ), 158MODEL_TENSOR .V_ENC_MSFA_PROJ : ( 159"model.vision_tower.timm_model.msfa.ffn.pw_proj.conv" ,# gemma3n 160 ), 161MODEL_TENSOR .V_ENC_MSFA_PROJ_NORM : ( 162"model.vision_tower.timm_model.msfa.ffn.pw_proj.bn" ,# gemma3n 163 ), 164MODEL_TENSOR .V_ENC_MSFA_NORM : ( 165"model.vision_tower.timm_model.msfa.norm" ,# gemma3n 166 ), 167MODEL_TENSOR .A_CTC_OUT : ( 168"encoder.out" , 169 ), 170MODEL_TENSOR .A_CTC_OUT_MID : ( 171"encoder.out_mid" , 172 ), 173MODEL_TENSOR .A_QF_PROJ_QUERY : ( 174"projector.query" , 175 ), 176MODEL_TENSOR .A_QF_PROJ_NORM : ( 177"projector.qformer.layernorm" , 178 ), 179MODEL_TENSOR .A_QF_PROJ_LINEAR : ( 180"projector.linear" , 181 ), 182 } 183 184block_mappings_cfg :dict [MODEL_TENSOR ,tuple [str , ...]]= { 185# Attention norm 186MODEL_TENSOR .ATTN_NORM : ( 187"gpt_neox.layers.{bid}.input_layernorm" ,# gptneox 188"transformer.h.{bid}.ln_1" ,# gpt2 gpt-j refact qwen jais exaone 189"transformer.blocks.{bid}.norm_1" ,# mpt 190"transformer.h.{bid}.input_layernorm" ,# falcon7b 191"h.{bid}.input_layernorm" ,# bloom 192"transformer.h.{bid}.ln_mlp" ,# falcon40b 193"model.layers.{bid}.input_layernorm" ,# llama-hf nemotron olmoe phimoe granite-hybrid 194"layers.{bid}.attention_norm" ,# llama-pth 195"model.layers.{bid}.ln1" ,# yi 196"h.{bid}.ln_1" ,# gpt2 197"transformer.h.{bid}.ln" ,# phi2 198"model.layers.layers.{bid}.norm" ,# plamo 199"model.layers.layers.{bid}.pre_mixer_norm" ,# plamo2 200"model.layers.{bid}.attention_norm" ,# internlm2 201"model.layers.{bid}.norm" ,# mamba-qbert 202"backbone.layers.{bid}.norm" ,# mamba 203"transformer.decoder_layer.{bid}.rms_norm" ,# Grok 204"model.layers.{bid}.pre_attn_norm" ,# grok-2 205"transformer.blocks.{bid}.norm_attn_norm.norm_1" ,# dbrx 206"encoder.layers.{bid}.input_layernorm" ,# chatglm 207"transformer.layers.{bid}.attn_norm" ,# openelm 208"rwkv.blocks.{bid}.ln1" ,# rwkv6 209"model.layers.{bid}.ln1" ,# rwkv7 210"model.layers.{bid}.input_layernorm" ,# llama4 211"layers.{bid}.input_layernorm" ,# embeddinggemma 212"transformer_encoder.{bid}.attention_norm" ,# neobert 213"layers.{bid}.attn_norm" ,# modern-bert 214"model.layers.{bid}.operator_norm" ,# lfm2 215"model.transformer.blocks.{bid}.attn_norm" ,# llada 216"layers.{bid}.input_layernorm" ,# qwen3-embedding 217"model.layers.{bid}.attention_layernorm" ,# apertus 218"model.layers.{bid}.pre_attention_layernorm" ,# kormo 219 ), 220 221# Attention norm 2 222MODEL_TENSOR .ATTN_NORM_2 : ( 223"transformer.h.{bid}.ln_attn" ,# falcon40b 224"encoder.layer.{bid}.layer_norm_1" ,# jina-v2-code 225"rwkv.blocks.{bid}.ln2" ,# rwkv6 226"model.layers.{bid}.ln2" ,# rwkv7 227"model.layers.{bid}.post_attention_layernorm" ,# cogvlm 228"model.layers.{bid}.self_attn.norm" ,# minimax-01 229 ), 230 231# Attention query-key-value 232MODEL_TENSOR .ATTN_QKV : ( 233"gpt_neox.layers.{bid}.attention.query_key_value" ,# gptneox 234"transformer.h.{bid}.attn.c_attn" ,# gpt2 qwen jais 235"transformer.blocks.{bid}.attn.Wqkv" ,# mpt 236"transformer.blocks.{bid}.norm_attn_norm.attn.Wqkv" ,# dbrx 237"transformer.h.{bid}.self_attention.query_key_value" ,# falcon 238"h.{bid}.self_attention.query_key_value" ,# bloom 239"model.layers.{bid}.self_attn.query_key_value" ,# persimmon 240"model.layers.{bid}.attention.query_key_value" ,# bailingmoe2 241"h.{bid}.attn.c_attn" ,# gpt2 242"transformer.h.{bid}.mixer.Wqkv" ,# phi2 243"encoder.layers.{bid}.attn.Wqkv" ,# nomic-bert 244"encoder.layers.{bid}.mixer.Wqkv" ,# jina 245"model.layers.{bid}.self_attn.qkv_proj" ,# phi3 246"model.layers.layers.{bid}.mixer.qkv_proj" ,# plamo2 247"encoder.layers.{bid}.self_attention.query_key_value" ,# chatglm 248"transformer.layers.{bid}.attn.qkv_proj" ,# openelm 249"transformer_encoder.{bid}.qkv" ,# neobert 250"layers.{bid}.attn.Wqkv" ,# modern-bert 251"model.layers.{bid}.self_attn.language_expert_query_key_value" ,# cogvlm 252"model.layers.{bid}.linear_attn.in_proj_qkv" ,# qwen3.5 253 ), 254 255# Attention query 256MODEL_TENSOR .ATTN_Q : ( 257"model.layers.{bid}.self_attn.q_proj" ,# llama-hf nemotron olmoe olmo2 phimoe 258"model.layers.{bid}.attention.q_proj" ,# bailingmoe3 259"layers.{bid}.self_attn.q_proj" ,# embeddinggemma 260"model.layers.{bid}.self_attn.q_proj_no_perm" ,# llama-custom 261"layers.{bid}.attention.wq" ,# llama-pth 262"encoder.layer.{bid}.attention.self.query" ,# bert 263"transformer.layer.{bid}.attention.q_lin" ,# distillbert 264"transformer.h.{bid}.attn.q_proj" ,# gpt-j 265"model.layers.layers.{bid}.self_attn.q_proj" ,# plamo 266"model.layers.{bid}.attention.wq" ,# internlm2 267"transformer.decoder_layer.{bid}.multi_head_attention.query" ,# Grok 268"transformer.h.{bid}.attn.attention.q_proj" ,# exaone 269"model.layers.{bid}.self_attn.q_proj" ,# llama4 270"model.transformer.blocks.{bid}.q_proj" ,# llada 271"layers.{bid}.self_attn.q_proj" ,# qwen3-embedding 272"backbone.layers.{bid}.mixer.q_proj" ,# nemotron-h 273"model.blocks.{bid}.attn.attn_query" ,# talkie 274 ), 275 276# Attention key 277MODEL_TENSOR .ATTN_K : ( 278"model.layers.{bid}.self_attn.k_proj" ,# llama-hf nemotron olmoe olmo2 phimoe 279"model.layers.{bid}.attention.k_proj" ,# bailingmoe3 280"layers.{bid}.self_attn.k_proj" ,# embeddinggemma 281"model.layers.{bid}.self_attn.k_proj_no_perm" ,# llama-custom 282"layers.{bid}.attention.wk" ,# llama-pth 283"encoder.layer.{bid}.attention.self.key" ,# bert 284"transformer.layer.{bid}.attention.k_lin" ,# distillbert 285"transformer.h.{bid}.attn.k_proj" ,# gpt-j 286"transformer.h.{bid}.attn.k" ,# refact 287"model.layers.layers.{bid}.self_attn.k_proj" ,# plamo 288"model.layers.{bid}.attention.wk" ,# internlm2 289"transformer.decoder_layer.{bid}.multi_head_attention.key" ,# Grok 290"transformer.h.{bid}.attn.attention.k_proj" ,# exaone 291"model.layers.{bid}.self_attn.k_proj" ,# llama4 292"model.transformer.blocks.{bid}.k_proj" ,# llada 293"layers.{bid}.self_attn.k_proj" ,# qwen3-embedding 294"backbone.layers.{bid}.mixer.k_proj" ,# nemotron-h 295"model.blocks.{bid}.attn.attn_key" ,# talkie 296 ), 297 298# Attention value 299MODEL_TENSOR .ATTN_V : ( 300"model.layers.{bid}.self_attn.v_proj" ,# llama-hf nemotron olmoe olmo2 phimoe 301"model.layers.{bid}.attention.v_proj" ,# bailingmoe3 302"layers.{bid}.self_attn.v_proj" ,# embeddinggemma 303"layers.{bid}.attention.wv" ,# llama-pth 304"encoder.layer.{bid}.attention.self.value" ,# bert 305"transformer.layer.{bid}.attention.v_lin" ,# distillbert 306"transformer.h.{bid}.attn.v_proj" ,# gpt-j 307"transformer.h.{bid}.attn.v" ,# refact 308"model.layers.layers.{bid}.self_attn.v_proj" ,# plamo 309"model.layers.{bid}.attention.wv" ,# internlm2 310"transformer.decoder_layer.{bid}.multi_head_attention.value" ,# Grok 311"transformer.h.{bid}.attn.attention.v_proj" ,# exaone 312"model.layers.{bid}.self_attn.v_proj" ,# llama4 313"model.transformer.blocks.{bid}.v_proj" ,# llada 314"layers.{bid}.self_attn.v_proj" ,# qwen3-embedding 315"backbone.layers.{bid}.mixer.v_proj" ,# nemotron-h 316"model.blocks.{bid}.attn.attn_value" ,# talkie 317 ), 318 319# Attention output 320MODEL_TENSOR .ATTN_OUT : ( 321"gpt_neox.layers.{bid}.attention.dense" ,# gptneox 322"transformer.h.{bid}.attn.c_proj" ,# gpt2 refact qwen jais 323"transformer.blocks.{bid}.attn.out_proj" ,# mpt 324"transformer.h.{bid}.self_attention.dense" ,# falcon 325"h.{bid}.self_attention.dense" ,# bloom 326"model.layers.{bid}.self_attn.o_proj" ,# llama-hf nemotron olmoe olmo2 phimoe 327"model.layers.{bid}.attention.o_proj" ,# bailingmoe3 328"model.layers.{bid}.attention.dense" ,# bailingmoe3 MLA 329"layers.{bid}.self_attn.o_proj" ,# embeddinggemma 330"model.layers.{bid}.self_attn.out_proj" ,# lfm2 minimax-01 331"model.layers.{bid}.self_attn.linear_attn" ,# deci 332"layers.{bid}.attention.wo" ,# llama-pth 333"encoder.layer.{bid}.attention.output.dense" ,# bert 334"layers.{bid}.attn.Wo" ,# modern-bert 335"transformer.layer.{bid}.attention.out_lin" ,# distillbert 336"transformer.h.{bid}.attn.out_proj" ,# gpt-j 337"model.layers.{bid}.self_attn.dense" ,# persimmon 338"model.layers.{bid}.attention.dense" ,# bailingmoe2 339"h.{bid}.attn.c_proj" ,# gpt2 340"transformer.h.{bid}.mixer.out_proj" ,# phi2 341"model.layers.layers.{bid}.self_attn.o_proj" ,# plamo 342"model.layers.layers.{bid}.mixer.o_proj" ,# plamo2 343"model.layers.{bid}.attention.wo" ,# internlm2 344"encoder.layers.{bid}.attn.out_proj" ,# nomic-bert 345"encoder.layers.{bid}.mixer.out_proj" ,# jina 346"transformer.decoder_layer.{bid}.multi_head_attention.linear" ,# Grok 347"transformer.blocks.{bid}.norm_attn_norm.attn.out_proj" ,# dbrx 348"encoder.layers.{bid}.self_attention.dense" ,# chatglm 349"transformer.layers.{bid}.attn.out_proj" ,# openelm 350"transformer.h.{bid}.attn.attention.out_proj" ,# exaone 351"model.layers.{bid}.self_attn.o_proj" ,# llama4 352"transformer_encoder.{bid}.wo" ,# neobert 353"model.transformer.blocks.{bid}.attn_out" ,# llada 354"layers.{bid}.self_attn.o_proj" ,# qwen3-embedding 355"backbone.layers.{bid}.mixer.o_proj" ,# nemotron-h 356"model.layers.{bid}.self_attn.language_expert_dense" ,# cogvlm 357"model.blocks.{bid}.attn.attn_resid" ,# talkie 358 ), 359 360# Attention output norm 361MODEL_TENSOR .ATTN_OUT_NORM : ( 362"encoder.layer.{bid}.attention.output.LayerNorm" ,# bert 363"transformer.layer.{bid}.sa_layer_norm" ,# distillbert 364"encoder.layers.{bid}.norm1" ,# nomic-bert 365"transformer.decoder_layer.{bid}.rms_norm_1" ,# Grok 366"model.layers.{bid}.post_attn_norm" ,# grok-2 367"transformer.blocks.{bid}.norm_attn_norm.norm_2" ,# dbrx 368 ), 369 370MODEL_TENSOR .ATTN_POST_NORM : ( 371"model.layers.{bid}.post_attention_layernorm" ,# gemma2 olmo2 # ge 372"layers.{bid}.post_attention_layernorm" ,# embeddinggemma 373"model.layers.{bid}.post_self_attn_layernorm" ,# glm-4-0414 374"model.layers.layers.{bid}.post_mixer_norm.weight" ,# plamo2 375 ), 376 377# Rotary embeddings 378MODEL_TENSOR .ATTN_ROT_EMBD : ( 379"model.layers.{bid}.self_attn.rotary_emb.inv_freq" ,# llama-hf 380"layers.{bid}.attention.inner_attention.rope.freqs" ,# llama-pth 381"model.layers.layers.{bid}.self_attn.rotary_emb.inv_freq" ,# plamo 382"transformer.h.{bid}.attn.rotary_emb.inv_freq" ,# codeshell 383 ), 384 385MODEL_TENSOR .ATTN_SINKS : ( 386"model.layers.{bid}.self_attn.sinks" ,# openai-moe 387"model.layers.{bid}.self_attn.attention_sink_bias" ,# mimov2 388"model.layers.{bid}.self_attn.learnable_sink_param" ,# hy-v4 389 ), 390 391MODEL_TENSOR .ATTN_GATE : ( 392"model.layers.{bid}.self_attn.gate_proj" ,# afmoe muse-glimmer 393"model.layers.{bid}.linear_attn.in_proj_z" ,# qwen3.5 394"model.layers.{bid}.self_attn.g_proj" ,# step3.5 head-wise attention gate 395"model.layers.{bid}.self_attn.output_gate" ,# minimax-01 396"model.layers.{bid}.self_attn.linear_gate" ,# hy-v4 397 ), 398 399# Feed-forward norm 400MODEL_TENSOR .FFN_NORM : ( 401"gpt_neox.layers.{bid}.post_attention_layernorm" ,# gptneox 402"transformer.h.{bid}.ln_2" ,# gpt2 refact qwen jais exaone 403"h.{bid}.post_attention_layernorm" ,# bloom 404"transformer.blocks.{bid}.norm_2" ,# mpt 405"model.layers.{bid}.post_attention_layernorm" ,# llama-hf nemotron olmoe phimoe 406"layers.{bid}.ffn_norm" ,# llama-pth 407"model.layers.{bid}.ln2" ,# yi 408"h.{bid}.ln_2" ,# gpt2 409"model.layers.{bid}.ffn_norm" ,# internlm2 410"transformer.decoder_layer.{bid}.rms_norm_2" ,# Grok 411"model.layers.{bid}.pre_moe_norm" ,# grok-2 412"encoder.layers.{bid}.post_attention_layernorm" ,# chatglm 413"transformer.layers.{bid}.ffn_norm" ,# openelm 414"model.layers.{bid}.pre_ff_layernorm" ,# jamba granite-hybrid 415"model.layers.{bid}.pre_moe_layernorm" ,# mini-jamba 416"model.layers.{bid}.post_attention_layernorm" ,# llama4 417"transformer_encoder.{bid}.ffn_norm" ,# neobert 418"model.layers.layers.{bid}.pre_mlp_norm" ,# plamo2 419"model.transformer.blocks.{bid}.ff_norm" ,# llada 420"layers.{bid}.post_attention_layernorm" ,# qwen3-embedding 421"model.layers.{bid}.feedforward_layernorm" ,# apertus 422"model.layers.{bid}.pre_mlp_layernorm" ,# kormo 423"layers.{bid}.mlp_norm" # modern-bert 424 ), 425 426# Pre feed-forward norm 427MODEL_TENSOR .FFN_PRE_NORM : ( 428"model.layers.{bid}.pre_feedforward_layernorm" ,# gemma2 429"layers.{bid}.pre_feedforward_layernorm" ,# embeddinggemma 430"model.layers.{bid}.pre_ff_layernorm.weight" , 431"model.layers.{bid}.pre_mlp_layernorm" ,# afmoe 432 ), 433 434MODEL_TENSOR .FFN_PRE_NORM_2 : ( 435"model.layers.{bid}.pre_feedforward_layernorm_2" ,# gemma4 436 ), 437 438# Post feed-forward norm 439MODEL_TENSOR .FFN_POST_NORM : ( 440"model.layers.{bid}.post_feedforward_layernorm" ,# gemma2 olmo2 441"layers.{bid}.post_feedforward_layernorm" ,# embeddinggemma 442"model.layers.{bid}.post_mlp_layernorm" ,# glm-4-0414 443"model.layers.layers.{bid}.post_mlp_norm.weight" ,# plamo2 444"model.layers.{bid}.feed_forward.up_proj" , 445"model.layers.{bid}.post_moe_norm" ,# grok-2 446 ), 447 448MODEL_TENSOR .FFN_POST_NORM_1 : ( 449"model.layers.{bid}.post_feedforward_layernorm_1" ,# gemma4 450 ), 451 452MODEL_TENSOR .FFN_POST_NORM_2 : ( 453"model.layers.{bid}.post_feedforward_layernorm_2" ,# gemma4 454 ), 455 456MODEL_TENSOR .FFN_GATE_INP : ( 457"layers.{bid}.feed_forward.gate" ,# mixtral 458"model.layers.{bid}.block_sparse_moe.gate" ,# mixtral phimoe 459"model.layers.{bid}.mlp.gate" ,# qwen2moe olmoe 460"transformer.decoder_layer.{bid}.router" ,# Grok 461"transformer.blocks.{bid}.ffn.router.layer" ,# dbrx 462"model.layers.{bid}.block_sparse_moe.router.layer" ,# granitemoe 463"model.layers.{bid}.block_sparse_moe.router" ,# granite_swa 464"model.layers.{bid}.feed_forward.router" ,# llama4 jamba 465"encoder.layers.{bid}.mlp.router.layer" ,# nomic-bert-moe 466"model.layers.{bid}.mlp.router" ,# openai-moe 467"model.layers.{bid}.mlp.gate.wg" ,# hunyuan 468"model.layers.{bid}.block_sparse_moe.primary_router" ,# smallthinker 469"model.layers.{bid}.feed_forward.gate" ,# lfm2moe 470"model.layers.{bid}.mlp.router.gate" ,# afmoe 471"layers.{bid}.gate" ,# mistral-large 472"backbone.layers.{bid}.mixer.gate" ,# nemotron-h-moe 473"model.layers.{bid}.moe.gate" ,# step3.5 474"model.layers.{bid}.router.proj" ,# gemma4 475 ), 476 477MODEL_TENSOR .FFN_GATE_INP_SHEXP : ( 478"model.layers.{bid}.mlp.shared_expert_gate" ,# qwen2moe 479 ), 480 481MODEL_TENSOR .FFN_EXP_PROBS_B : ( 482"model.layers.{bid}.mlp.gate.e_score_correction" ,# deepseek-v3 dots1 483"model.layers.{bid}.mlp.moe_statics.e_score_correction" ,# ernie4.5-moe 484"model.layers.{bid}.mlp.gate.expert_bias" ,# bailingmoe2 485"model.layers.{bid}.mlp.expert_bias" ,# afmoe 486"model.layers.{bid}.feed_forward.expert_bias" ,# lfm2moe 487"model.layers.{bid}.block_sparse_moe.e_score_correction" ,# minimax-m2 488"backbone.layers.{bid}.mixer.gate.e_score_correction" ,# nemotron-h-moe 489"model.layers.{bid}.mlp.e_score_correction" ,# exaone-moe 490"model.layers.{bid}.block_sparse_moe.gate.e_score_correction" ,# kimi 491"model.layers.{bid}.moe.router_bias" ,# step3.5 expert selection bias 492"model.layers.{bid}.mlp.experts.e_score_correction" ,# laguna 493 ), 494 495# Feed-forward up 496MODEL_TENSOR .FFN_UP : ( 497"gpt_neox.layers.{bid}.mlp.dense_h_to_4h" ,# gptneox 498"transformer.h.{bid}.mlp.c_fc" ,# gpt2 jais 499"transformer.blocks.{bid}.ffn.up_proj" ,# mpt 500"transformer.h.{bid}.mlp.dense_h_to_4h" ,# falcon 501"h.{bid}.mlp.dense_h_to_4h" ,# bloom 502"model.layers.{bid}.mlp.up_proj" ,# llama-hf refact nemotron olmo2 503"layers.{bid}.mlp.up_proj" ,# embeddinggemma 504"layers.{bid}.feed_forward.w3" ,# llama-pth 505"encoder.layer.{bid}.intermediate.dense" ,# bert 506"layers.{bid}.mlp.Wi" ,# modern-bert 507"transformer.layer.{bid}.ffn.lin1" ,# distillbert 508"transformer.h.{bid}.mlp.fc_in" ,# gpt-j 509"transformer.h.{bid}.mlp.linear_3" ,# refact 510"model.layers.{bid}.mlp.dense_h_to_4h" ,# persimmon 511"transformer.h.{bid}.mlp.w1" ,# qwen 512"h.{bid}.mlp.c_fc" ,# gpt2 513"transformer.h.{bid}.mlp.fc1" ,# phi2 514"model.layers.{bid}.mlp.fc1" ,# phi2 515"model.layers.{bid}.mlp.gate_up_proj" ,# phi3 glm-4-0414 516"model.layers.layers.{bid}.mlp.up_proj" ,# plamo 517"model.layers.layers.{bid}.mlp.gate_up_proj" ,# plamo2 518"model.layers.{bid}.feed_forward.w3" ,# internlm2 519"encoder.layers.{bid}.mlp.fc11" ,# nomic-bert 520"encoder.layers.{bid}.mlp.fc1" ,# nomic-bert-moe 521"model.layers.{bid}.mlp.c_fc" ,# starcoder2 522"encoder.layer.{bid}.mlp.gated_layers_v" ,# jina-bert-v2 (split up/gate, no longer used) 523"encoder.layer.{bid}.mlp.gated_layers" ,# jina-bert-v2 (GEGLU) 524"encoder.layer.{bid}.mlp.up_gated_layer" ,# jina-v2-code (GEGLU) 525"model.layers.{bid}.residual_mlp.w3" ,# arctic 526"encoder.layers.{bid}.mlp.dense_h_to_4h" ,# chatglm 527"transformer.h.{bid}.mlp.c_fc_1" ,# exaone 528"model.layers.{bid}.feed_forward.up_proj" ,# llama4 jamba granite-hybrid 529"transformer_encoder.{bid}.ffn.w12" ,# neobert 530"model.layers.{bid}.block_sparse_moe.up" ,# smallthinker 531"model.transformer.blocks.{bid}.up_proj" ,# llada 532"layers.{bid}.mlp.up_proj" ,# qwen3-embedding 533"backbone.layers.{bid}.mixer.up_proj" ,# nemotron-h 534"model.layers.{bid}.mlp.language_mlp.up_proj" ,# cogvlm 535"model.blocks.{bid}.mlp.mlp_linear" ,# talkie 536 ), 537 538MODEL_TENSOR .FFN_UP_EXP : ( 539"layers.{bid}.feed_forward.experts.w3" ,# mixtral (merged) 540"transformer.decoder_layer.{bid}.moe.linear_v" ,# Grok (merged) 541"transformer.blocks.{bid}.ffn.experts.mlp.v1" ,# dbrx 542"model.layers.{bid}.mlp.experts.up_proj" ,# qwen2moe olmoe (merged) ernie4.5-moe, nemotron-h-moe (merged) 543"model.layers.{bid}.block_sparse_moe.experts.w3" ,# phimoe (merged) 544"model.layers.{bid}.feed_forward.experts.up_proj" ,# llama4 545"encoder.layers.{bid}.mlp.experts.mlp.w1" ,# nomic-bert-moe 546"model.layers.{bid}.block_sparse_moe.experts.up" ,# smallthinker 547"model.layers.{bid}.moe.up_proj" ,# step3.5 548 ), 549 550MODEL_TENSOR .FFN_UP_SHEXP : ( 551"model.layers.{bid}.mlp.shared_expert.up_proj" ,# qwen2moe 552"model.layers.{bid}.mlp.shared_experts.up_proj" ,# deepseek deepseek2 553"model.layers.{bid}.feed_forward.shared_expert.up_proj" ,# llama4 554"model.layers.{bid}.feed_forward.down_proj" , 555"model.layers.{bid}.mlp.shared_mlp.up_proj" ,# hunyuan 556"layers.{bid}.shared_experts.w3" ,# mistral-large 557"backbone.layers.{bid}.mixer.shared_experts.up_proj" ,# nemotron-h-moe 558"model.layers.{bid}.block_sparse_moe.shared_experts.up_proj" ,# kimi 559"model.layers.{bid}.share_expert.up_proj" ,# step3.5 560 ), 561 562MODEL_TENSOR .FFN_UP_CHEXP : ( 563"model.layers.{bid}.mlp.chunk_experts.up_proj" ,# grovemoe 564 ), 565 566# AWQ-activation gate 567MODEL_TENSOR .FFN_ACT : ( 568"transformer.blocks.{bid}.ffn.act" ,# mpt 569 ), 570 571# Feed-forward gate 572MODEL_TENSOR .FFN_GATE : ( 573"model.layers.{bid}.mlp.gate_proj" ,# llama-hf refact olmo2 574"layers.{bid}.mlp.gate_proj" ,# embeddinggemma 575"layers.{bid}.feed_forward.w1" ,# llama-pth 576"transformer.h.{bid}.mlp.w2" ,# qwen 577"transformer.h.{bid}.mlp.c_fc2" ,# jais 578"model.layers.layers.{bid}.mlp.gate_proj" ,# plamo 579"model.layers.{bid}.feed_forward.w1" ,# internlm2 580"encoder.layers.{bid}.mlp.fc12" ,# nomic-bert 581"encoder.layer.{bid}.mlp.gated_layers_w" ,# jina-bert-v2 (split up/gate, no longer used) 582"transformer.h.{bid}.mlp.linear_1" ,# refact 583"model.layers.{bid}.residual_mlp.w1" ,# arctic 584"transformer.h.{bid}.mlp.c_fc_0" ,# exaone 585"model.layers.{bid}.feed_forward.gate_proj" ,# llama4 jamba granite-hybrid 586"model.transformer.blocks.{bid}.ff_proj" ,# llada 587"layers.{bid}.mlp.gate_proj" ,# qwen3-embedding 588"model.layers.{bid}.mlp.language_mlp.gate_proj" ,# cogvlm 589"model.blocks.{bid}.mlp.mlp_gate" ,# talkie 590 ), 591 592MODEL_TENSOR .FFN_GATE_EXP : ( 593"layers.{bid}.feed_forward.experts.w1" ,# mixtral (merged) 594"transformer.decoder_layer.{bid}.moe.linear" ,# Grok (merged) 595"transformer.blocks.{bid}.ffn.experts.mlp.w1" ,# dbrx 596"model.layers.{bid}.mlp.experts.gate_proj" ,# qwen2moe olmoe (merged) ernie4.5-moe 597"model.layers.{bid}.block_sparse_moe.experts.w1" ,# phimoe (merged) 598"model.layers.{bid}.feed_forward.experts.gate_proj" ,# llama4 599"model.layers.{bid}.block_sparse_moe.experts.gate" ,# smallthinker 600"model.layers.{bid}.moe.gate_proj" ,# step3.5 601 ), 602 603MODEL_TENSOR .FFN_GATE_SHEXP : ( 604"model.layers.{bid}.mlp.shared_expert.gate_proj" ,# qwen2moe 605"model.layers.{bid}.mlp.shared_experts.gate_proj" ,# deepseek deepseek2 606"model.layers.{bid}.feed_forward.shared_expert.gate_proj" ,# llama4 607"model.layers.{bid}.mlp.shared_mlp.gate_proj" ,# hunyuan 608"layers.{bid}.shared_experts.w1" ,# mistral-large 609"model.layers.{bid}.block_sparse_moe.shared_experts.gate_proj" ,# kimi 610"model.layers.{bid}.share_expert.gate_proj" ,# step3.5 611 ), 612 613MODEL_TENSOR .FFN_GATE_CHEXP : ( 614"model.layers.{bid}.mlp.chunk_experts.gate_proj" ,# grovemoe 615 ), 616 617MODEL_TENSOR .FFN_GATE_UP_EXP : ( 618"model.layers.{bid}.mlp.experts.gate_up_proj" , 619"model.layers.{bid}.experts.gate_up_proj" ,# gemma4 620 ), 621 622MODEL_TENSOR .MOE_LATENT_DOWN : ( 623"backbone.layers.{bid}.mixer.fc1_latent_proj" ,# nemotron 3 super 624 ), 625 626MODEL_TENSOR .MOE_LATENT_UP : ( 627"backbone.layers.{bid}.mixer.fc2_latent_proj" ,# nemotron 3 super 628 ), 629 630# Feed-forward down 631MODEL_TENSOR .FFN_DOWN : ( 632"gpt_neox.layers.{bid}.mlp.dense_4h_to_h" ,# gptneox 633"transformer.h.{bid}.mlp.c_proj" ,# gpt2 refact qwen jais 634"transformer.blocks.{bid}.ffn.down_proj" ,# mpt 635"transformer.h.{bid}.mlp.dense_4h_to_h" ,# falcon 636"h.{bid}.mlp.dense_4h_to_h" ,# bloom 637"model.layers.{bid}.mlp.down_proj" ,# llama-hf nemotron olmo2 638"layers.{bid}.mlp.down_proj" ,# embeddinggemma 639"layers.{bid}.feed_forward.w2" ,# llama-pth 640"encoder.layer.{bid}.output.dense" ,# bert 641"layers.{bid}.mlp.Wo" ,# modern-bert 642"transformer.layer.{bid}.ffn.lin2" ,# distillbert 643"transformer.h.{bid}.mlp.fc_out" ,# gpt-j 644"model.layers.{bid}.mlp.dense_4h_to_h" ,# persimmon 645"h.{bid}.mlp.c_proj" ,# gpt2 646"transformer.h.{bid}.mlp.fc2" ,# phi2 647"model.layers.{bid}.mlp.fc2" ,# phi2 648"model.layers.layers.{bid}.mlp.down_proj" ,# plamo 649"model.layers.{bid}.feed_forward.w2" ,# internlm2 650"encoder.layers.{bid}.mlp.fc2" ,# nomic-bert 651"model.layers.{bid}.mlp.c_proj" ,# starcoder2 652"encoder.layer.{bid}.mlp.wo" ,# jina-bert-v2 653"transformer.layers.{bid}.ffn.proj_2" ,# openelm 654"model.layers.{bid}.residual_mlp.w2" ,# arctic 655"encoder.layer.{bid}.mlp.down_layer" ,# jina-bert-v2 656"encoder.layers.{bid}.mlp.dense_4h_to_h" ,# chatglm 657"model.layers.h.{bid}.mlp.c_proj" ,# exaone 658"model.layers.{bid}.feed_forward.down_proj" ,# llama4 jamba granite-hybrid 659"transformer_encoder.{bid}.ffn.w3" ,# neobert 660"model.layers.{bid}.block_sparse_moe.down" ,# smallthinker 661"model.transformer.blocks.{bid}.ff_out" ,# llada 662"layers.{bid}.mlp.down_proj" ,# qwen3-embedding 663"backbone.layers.{bid}.mixer.down_proj" ,# nemotron-h 664"model.layers.{bid}.mlp.language_mlp.down_proj" ,# cogvlm 665"model.blocks.{bid}.mlp.mlp_resid" ,# talkie 666 ), 667 668MODEL_TENSOR .FFN_DOWN_EXP : ( 669"layers.{bid}.feed_forward.experts.w2" ,# mixtral (merged) 670"transformer.decoder_layer.{bid}.moe.linear_1" ,# Grok (merged) 671"transformer.blocks.{bid}.ffn.experts.mlp.w2" ,# dbrx 672"model.layers.{bid}.mlp.experts.down_proj" ,# qwen2moe olmoe (merged) ernie4.5-moe nemotron-h-moe (merged) 673"model.layers.{bid}.block_sparse_moe.output_linear" ,# granitemoe 674"model.layers.{bid}.block_sparse_moe.experts.w2" ,# phimoe (merged) 675"model.layers.{bid}.feed_forward.experts.down_proj" ,# llama4 676"encoder.layers.{bid}.mlp.experts.mlp.w2" ,# nomic-bert-moe 677"model.layers.{bid}.block_sparse_moe.experts.down" ,# smallthinker 678"model.layers.{bid}.moe.down_proj" ,# step3.5 679"model.layers.{bid}.experts.down_proj" ,# gemma4 680 ), 681 682MODEL_TENSOR .FFN_DOWN_SHEXP : ( 683"model.layers.{bid}.mlp.shared_expert.down_proj" ,# qwen2moe 684"model.layers.{bid}.mlp.shared_experts.down_proj" ,# deepseek deepseek2 685"model.layers.{bid}.feed_forward.shared_expert.down_proj" ,# llama4 686"model.layers.{bid}.shared_mlp.output_linear" ,# granitemoe 687"model.layers.{bid}.mlp.shared_mlp.down_proj" ,# hunyuan 688"layers.{bid}.shared_experts.w2" ,# mistral-large 689"backbone.layers.{bid}.mixer.shared_experts.down_proj" ,# nemotron-h-moe 690"model.layers.{bid}.block_sparse_moe.shared_experts.down_proj" ,# kimi 691"model.layers.{bid}.share_expert.down_proj" ,# step3.5 692 ), 693 694MODEL_TENSOR .FFN_DOWN_CHEXP : ( 695"model.layers.{bid}.mlp.chunk_experts.down_proj" ,# grovemoe 696 ), 697 698MODEL_TENSOR .ATTN_Q_NORM : ( 699"encoder.layers.{bid}.self_attention.q_layernorm" , 700"model.layers.{bid}.self_attn.q_layernorm" ,# persimmon 701"model.layers.{bid}.self_attn.query_layernorm" ,# hunyuan 702"model.layers.{bid}.attention.query_layernorm" ,# bailingmoe2 703"model.layers.{bid}.self_attn.q_norm" ,# cohere olmoe chameleon olmo2 704"layers.{bid}.self_attn.q_norm" ,# embeddinggemma 705"transformer.blocks.{bid}.attn.q_ln" ,# sea-lion 706"encoder.layer.{bid}.attention.self.layer_norm_q" ,# jina-bert-v2 707"transformer.layers.{bid}.attn.q_norm" ,# openelm 708"model.layers.layers.{bid}.mixer.q" ,# plamo2 709"model.layers.layers.{bid}.mixer.q_norm" ,# plamo3 710"layers.{bid}.self_attn.q_norm" ,# qwen3-embedding 711"model.layers.{bid}.attention.query_layernorm" ,# apertus 712"model.blocks.{bid}.attn.head_gain.head_g" ,# talkie 713 ), 714 715MODEL_TENSOR .ATTN_K_NORM : ( 716"encoder.layers.{bid}.self_attention.k_layernorm" , 717"model.layers.{bid}.self_attn.k_layernorm" ,# persimmon 718"model.layers.{bid}.self_attn.key_layernorm" ,# hunyuan 719"model.layers.{bid}.attention.key_layernorm" ,# bailingmoe2 720"model.layers.{bid}.self_attn.k_norm" ,# cohere olmoe chameleon olmo2 721"layers.{bid}.self_attn.k_norm" ,# embeddinggemma 722"transformer.blocks.{bid}.attn.k_ln" ,# sea-lion 723"encoder.layer.{bid}.attention.self.layer_norm_k" ,# jina-bert-v2 724"transformer.layers.{bid}.attn.k_norm" ,# openelm 725"model.layers.layers.{bid}.mixer.k" ,# plamo2 726"model.layers.layers.{bid}.mixer.k_norm" ,# plamo3 727"layers.{bid}.self_attn.k_norm" ,# qwen3-embedding 728"model.layers.{bid}.self_attn.k_rope_only_layernorm" ,# dots3note 729"model.layers.{bid}.attention.key_layernorm" ,# apertus 730 ), 731 732MODEL_TENSOR .ROPE_FREQS : ( 733"encoder.layers.{bid}.self_attention.rotary_emb.inv_freq" ,# persimmon 734 ), 735 736MODEL_TENSOR .LAYER_OUT_NORM : ( 737"encoder.layer.{bid}.output.LayerNorm" ,# bert 738"transformer.layer.{bid}.output_layer_norm" ,# distillbert 739"encoder.layers.{bid}.norm2" ,# nomic-bert 740"transformer.decoder_layer.{bid}.rms_norm_3" ,# Grok 741"encoder.layer.{bid}.mlp.layernorm" ,# jina-bert-v2 742"encoder.layer.{bid}.layer_norm_2" ,# jina-v2-code 743"model.layers.{bid}.final_layernorm" ,# bailingmoe2 744 ), 745 746MODEL_TENSOR .LAYER_OUT_SCALE : ( 747"model.layers.{bid}.layer_scalar" ,# gemma4 748"model.blocks.{bid}.embed_skip.a_g" ,# talkie 749 ), 750 751MODEL_TENSOR .PER_LAYER_TOKEN_EMBD : ( 752"model.embed_tokens_per_layer" ,# gemma3n 753 ), 754 755MODEL_TENSOR .PER_LAYER_MODEL_PROJ : ( 756"model.per_layer_model_projection" ,# gemma3n 757 ), 758 759MODEL_TENSOR .PER_LAYER_PROJ_NORM : ( 760"model.per_layer_projection_norm" ,# gemma3n 761 ), 762 763MODEL_TENSOR .ALTUP_PROJ : ( 764"model.altup_projections" ,# gemma3n 765 ), 766 767MODEL_TENSOR .ALTUP_UNEMBD_PROJ : ( 768"model.altup_unembed_projections" ,# gemma3n 769 ), 770 771MODEL_TENSOR .PER_LAYER_INP_GATE : ( 772"model.layers.{bid}.per_layer_input_gate" ,# gemma3n 773 ), 774 775MODEL_TENSOR .PER_LAYER_PROJ : ( 776"model.layers.{bid}.per_layer_projection" ,# gemma3n 777 ), 778 779MODEL_TENSOR .PER_LAYER_POST_NORM : ( 780"model.layers.{bid}.post_per_layer_input_norm" ,# gemma3n 781 ), 782 783MODEL_TENSOR .ALTUP_CORRECT_COEF : ( 784"model.layers.{bid}.altup.correction_coefs" ,# gemma3n 785 ), 786 787MODEL_TENSOR .ALTUP_CORRECT_SCALE : ( 788"model.layers.{bid}.altup.correct_output_scale" ,# gemma3n 789 ), 790 791MODEL_TENSOR .ALTUP_PREDICT_COEF : ( 792"model.layers.{bid}.altup.prediction_coefs" ,# gemma3n 793 ), 794 795MODEL_TENSOR .ALTUP_ROUTER : ( 796"model.layers.{bid}.altup.modality_router" ,# gemma3n 797 ), 798 799MODEL_TENSOR .ALTUP_ROUTER_NORM : ( 800"model.layers.{bid}.altup.router_norm" ,# gemma3n 801 ), 802 803MODEL_TENSOR .LAUREL_L : ( 804"model.layers.{bid}.laurel.linear_left" ,# gemma3n 805 ), 806 807MODEL_TENSOR .LAUREL_R : ( 808"model.layers.{bid}.laurel.linear_right" ,# gemma3n 809 ), 810 811MODEL_TENSOR .LAUREL_POST_NORM : ( 812"model.layers.{bid}.laurel.post_laurel_norm" ,# gemma3n 813 ), 814 815MODEL_TENSOR .SSM_IN : ( 816"model.layers.{bid}.in_proj" ,# mamba-hf 817"backbone.layers.{bid}.mixer.in_proj" ,# mamba 818"model.layers.{bid}.mamba.in_proj" ,# jamba falcon-h1 granite-hybrid 819"model.layers.layers.{bid}.mixer.in_proj" ,# plamo2 820"model.layers.{bid}.linear_attn.in_proj_qkvz" ,# qwen3next 821 ), 822 823MODEL_TENSOR .SSM_CONV1D : ( 824"model.layers.{bid}.conv1d" ,# mamba-hf 825"backbone.layers.{bid}.mixer.conv1d" ,# mamba 826"model.layers.{bid}.mamba.conv1d" ,# jamba falcon-h1 granite-hybrid 827"model.layers.layers.{bid}.mixer.conv1d" ,# plamo2 828"model.layers.{bid}.linear_attn.conv1d" ,# qwen3next 829 ), 830 831MODEL_TENSOR .SSM_X : ( 832"model.layers.{bid}.x_proj" ,# mamba-hf 833"backbone.layers.{bid}.mixer.x_proj" ,# mamba 834"model.layers.{bid}.mamba.x_proj" ,# jamba 835"model.layers.layers.{bid}.mixer.bcdt_proj" ,# plamo2 836 ), 837 838MODEL_TENSOR .SSM_DT : ( 839"model.layers.{bid}.dt_proj" ,# mamba-hf 840"backbone.layers.{bid}.mixer.dt_proj" ,# mamba 841"model.layers.{bid}.mamba.dt_proj" ,# jamba falcon-h1 granite-hybrid 842"model.layers.layers.{bid}.mixer.dt_proj" ,# plamo2 843"model.layers.{bid}.linear_attn.dt_proj" ,# qwen3next 844"backbone.layers.{bid}.mixer.dt" ,# nemotron-h-moe 845"model.layers.{bid}.self_attn.dt_proj" ,# kimi 846"model.layers.{bid}.attention.dt_proj" ,# bailingmoe3 847 ), 848 849MODEL_TENSOR .SSM_DT_NORM : ( 850"model.layers.layers.{bid}.mixer.dt_norm.weight" ,# plamo2 851"model.layers.{bid}.mamba.dt_layernorm" ,# jamba 852 ), 853 854MODEL_TENSOR .SSM_A : ( 855"model.layers.{bid}.A_log" ,# mamba-hf 856"backbone.layers.{bid}.mixer.A_log" ,# mamba 857"model.layers.{bid}.mamba.A_log" ,# jamba falcon-h1 granite-hybrid 858"model.layers.layers.{bid}.mixer.A_log" ,# plamo2 859"model.layers.{bid}.linear_attn.A_log" ,# qwen3next 860"model.layers.{bid}.self_attn.A_log" ,# kimi 861"model.layers.{bid}.attention.A_log" ,# bailingmoe3 862 ), 863 864MODEL_TENSOR .SSM_B_NORM : ( 865"model.layers.{bid}.mamba.b_layernorm" ,# jamba 866"model.layers.{bid}.mamba.B_layernorm" ,# mini-jamba 867"model.layers.layers.{bid}.mixer.B_norm.weight" ,# plamo2 868 ), 869 870MODEL_TENSOR .SSM_C_NORM : ( 871"model.layers.{bid}.mamba.c_layernorm" ,# jamba 872"model.layers.{bid}.mamba.C_layernorm" ,# mini-jamba 873"model.layers.layers.{bid}.mixer.C_norm.weight" ,# plamo2 874 ), 875 876MODEL_TENSOR .SSM_D : ( 877"model.layers.{bid}.D" ,# mamba-hf 878"backbone.layers.{bid}.mixer.D" ,# mamba 879"model.layers.{bid}.mamba.D" ,# jamba falcon-h1 granite-hybrid 880"model.layers.layers.{bid}.mixer.D" ,# plamo2 881 ), 882 883MODEL_TENSOR .SSM_NORM : ( 884"model.layers.{bid}.mamba.norm" ,# falcon-h1 granite-hybrid 885"model.layers.{bid}.linear_attn.norm" ,# qwen3next 886"backbone.layers.{bid}.mixer.norm" ,# mamba2 887"model.layers.{bid}.self_attn.o_norm" ,# kimi 888"model.layers.{bid}.attention.o_norm" ,# bailingmoe3 889 ), 890 891MODEL_TENSOR .SSM_OUT : ( 892"model.layers.{bid}.out_proj" ,# mamba-hf 893"backbone.layers.{bid}.mixer.out_proj" ,# mamba 894"model.layers.{bid}.mamba.out_proj" ,# jamba falcon-h1 granite-hybrid 895"model.layers.{bid}.linear_attn.out_proj" ,# qwen3next 896"model.layers.layers.{bid}.mixer.out_proj" ,# plamo2 897 ), 898 899MODEL_TENSOR .SSM_ALPHA : ( 900"model.layers.{bid}.linear_attn.in_proj_a" ,# qwen3.5 901 ), 902 903MODEL_TENSOR .SSM_BETA_ALPHA : ( 904"model.layers.{bid}.linear_attn.in_proj_ba" ,# qwen3next 905 ), 906 907# Kimi Linear KDA (using SSM_ prefix for consistency) 908MODEL_TENSOR .SSM_CONV1D_Q : ( 909"model.layers.{bid}.self_attn.q_conv1d" , 910"model.layers.{bid}.attention.q_conv1d" , 911 ), 912MODEL_TENSOR .SSM_CONV1D_K : ( 913"model.layers.{bid}.self_attn.k_conv1d" , 914"model.layers.{bid}.attention.k_conv1d" , 915 ), 916MODEL_TENSOR .SSM_CONV1D_V : ( 917"model.layers.{bid}.self_attn.v_conv1d" , 918"model.layers.{bid}.attention.v_conv1d" , 919 ), 920MODEL_TENSOR .SSM_F_A : ( 921"model.layers.{bid}.self_attn.f_a_proj" , 922 ), 923MODEL_TENSOR .SSM_F_B : ( 924"model.layers.{bid}.self_attn.f_b_proj" , 925 ), 926MODEL_TENSOR .SSM_BETA : ( 927"model.layers.{bid}.linear_attn.in_proj_b" ,# qwen3.5 928"model.layers.{bid}.self_attn.b_proj" ,# Kimi Linear 929"model.layers.{bid}.attention.b_proj" ,# bailingmoe3 930 ), 931# Kimi K3 latent MoE: routed experts operate in a down-projected space 932MODEL_TENSOR .FFN_ROUTED_DOWN : ( 933"model.layers.{bid}.block_sparse_moe.routed_expert_down_proj" , 934 ), 935 936MODEL_TENSOR .FFN_ROUTED_UP : ( 937"model.layers.{bid}.block_sparse_moe.routed_expert_up_proj" , 938 ), 939 940MODEL_TENSOR .FFN_ROUTED_NORM : ( 941"model.layers.{bid}.block_sparse_moe.routed_expert_norm" , 942 ), 943 944MODEL_TENSOR .SSM_G_A : ( 945"model.layers.{bid}.self_attn.g_a_proj" , 946 ), 947MODEL_TENSOR .SSM_G_B : ( 948"model.layers.{bid}.self_attn.g_b_proj" , 949 ), 950MODEL_TENSOR .TIME_MIX_W0 : ( 951"model.layers.{bid}.attention.w0" ,# rwkv7 952 ), 953 954MODEL_TENSOR .TIME_MIX_W1 : ( 955"rwkv.blocks.{bid}.attention.time_maa_w1" ,# rwkv6 956"model.layers.{bid}.self_attn.time_maa_w1" ,# rwkv6qwen2 957"model.layers.{bid}.attention.w1" ,# rwkv7 958 ), 959 960MODEL_TENSOR .TIME_MIX_W2 : ( 961"rwkv.blocks.{bid}.attention.time_maa_w2" ,# rwkv6 962"model.layers.{bid}.self_attn.time_maa_w2" ,# rwkv6qwen2 963"model.layers.{bid}.attention.w2" ,# rwkv7 964 ), 965 966MODEL_TENSOR .TIME_MIX_A0 : ( 967"model.layers.{bid}.attention.a0" ,# rwkv7 968 ), 969 970MODEL_TENSOR .TIME_MIX_A1 : ( 971"model.layers.{bid}.attention.a1" ,# rwkv7 972 ), 973 974MODEL_TENSOR .TIME_MIX_A2 : ( 975"model.layers.{bid}.attention.a2" ,# rwkv7 976 ), 977 978MODEL_TENSOR .TIME_MIX_V0 : ( 979"model.layers.{bid}.attention.v0" ,# rwkv7 980 ), 981 982MODEL_TENSOR .TIME_MIX_V1 : ( 983"model.layers.{bid}.attention.v1" ,# rwkv7 984 ), 985 986MODEL_TENSOR .TIME_MIX_V2 : ( 987"model.layers.{bid}.attention.v2" ,# rwkv7 988 ), 989 990MODEL_TENSOR .TIME_MIX_G1 : ( 991"model.layers.{bid}.attention.g1" ,# rwkv7 992 ), 993 994MODEL_TENSOR .TIME_MIX_G2 : ( 995"model.layers.{bid}.attention.g2" ,# rwkv7 996 ), 997 998MODEL_TENSOR .TIME_MIX_K_K : ( 999"model.layers.{bid}.attention.k_k" ,# rwkv7 1000 ), 1001 1002MODEL_TENSOR .TIME_MIX_K_A : ( 1003"model.layers.{bid}.attention.k_a" ,# rwkv7 1004 ), 1005 1006MODEL_TENSOR .TIME_MIX_R_K : ( 1007"model.layers.{bid}.attention.r_k" ,# rwkv7 1008 ), 1009 1010MODEL_TENSOR .TIME_MIX_LERP_X : ( 1011"rwkv.blocks.{bid}.attention.time_maa_x" ,# rwkv6 1012"model.layers.{bid}.self_attn.time_maa_x" ,# rwkv6qwen2 1013 ), 1014 1015MODEL_TENSOR .TIME_MIX_LERP_K : ( 1016"rwkv.blocks.{bid}.attention.time_maa_k" ,# rwkv6 1017"model.layers.{bid}.self_attn.time_maa_k" ,# rwkv6qwen2 1018 ), 1019 1020MODEL_TENSOR .TIME_MIX_LERP_V : ( 1021"rwkv.blocks.{bid}.attention.time_maa_v" ,# rwkv6 1022"model.layers.{bid}.self_attn.time_maa_v" ,# rwkv6qwen2 1023 ), 1024 1025MODEL_TENSOR .TIME_MIX_LERP_R : ( 1026"rwkv.blocks.{bid}.attention.time_maa_r" ,# rwkv6 1027"model.layers.{bid}.self_attn.time_maa_r" ,# rwkv6qwen2 1028 ), 1029 1030MODEL_TENSOR .TIME_MIX_LERP_G : ( 1031"rwkv.blocks.{bid}.attention.time_maa_g" ,# rwkv6 1032"model.layers.{bid}.self_attn.time_maa_g" ,# rwkv6qwen2 1033 ), 1034 1035MODEL_TENSOR .TIME_MIX_LERP_W : ( 1036"rwkv.blocks.{bid}.attention.time_maa_w" ,# rwkv6 1037"model.layers.{bid}.self_attn.time_maa_w" ,# rwkv6qwen2 1038 ), 1039 1040MODEL_TENSOR .TIME_MIX_FIRST : ( 1041"rwkv.blocks.{bid}.attention.time_faaaa" ,# rwkv6 1042 ), 1043 1044MODEL_TENSOR .TIME_MIX_DECAY : ( 1045"rwkv.blocks.{bid}.attention.time_decay" ,# rwkv6 1046"model.layers.{bid}.self_attn.time_decay" ,# rwkv6qwen2 1047 ), 1048 1049MODEL_TENSOR .TIME_MIX_DECAY_W1 : ( 1050"rwkv.blocks.{bid}.attention.time_decay_w1" ,# rwkv6 1051"model.layers.{bid}.self_attn.time_decay_w1" ,# rwkv6qwen2 1052 ), 1053 1054MODEL_TENSOR .TIME_MIX_DECAY_W2 : ( 1055"rwkv.blocks.{bid}.attention.time_decay_w2" ,# rwkv6 1056"model.layers.{bid}.self_attn.time_decay_w2" ,# rwkv6qwen2 1057 ), 1058 1059MODEL_TENSOR .TIME_MIX_KEY : ( 1060"rwkv.blocks.{bid}.attention.key" ,# rwkv6 1061"model.layers.{bid}.self_attn.k_proj" ,# rwkv6qwen2 1062"model.layers.{bid}.attention.key" ,# rwkv7 1063"model.layers.{bid}.attention.k_proj" ,# rwkv7 1064 ), 1065 1066MODEL_TENSOR .TIME_MIX_VALUE : ( 1067"rwkv.blocks.{bid}.attention.value" ,# rwkv6 1068"model.layers.{bid}.self_attn.v_proj" ,# rwkv6qwen2 1069"model.layers.{bid}.attention.value" ,# rwkv7 1070"model.layers.{bid}.attention.v_proj" ,# rwkv7 1071 ), 1072 1073MODEL_TENSOR .TIME_MIX_RECEPTANCE : ( 1074"rwkv.blocks.{bid}.attention.receptance" ,# rwkv6 1075"model.layers.{bid}.self_attn.q_proj" ,# rwkv6qwen2 1076"model.layers.{bid}.attention.receptance" ,# rwkv7 1077"model.layers.{bid}.attention.r_proj" ,# rwkv7 1078 ), 1079 1080MODEL_TENSOR .TIME_MIX_GATE : ( 1081"rwkv.blocks.{bid}.attention.gate" ,# rwkv6 1082"model.layers.{bid}.self_attn.gate" ,# rwkv6qwen2 1083 ), 1084 1085MODEL_TENSOR .TIME_MIX_LN : ( 1086"rwkv.blocks.{bid}.attention.ln_x" ,# rwkv6 1087"model.layers.{bid}.attention.ln_x" # rwkv7 1088 ), 1089 1090MODEL_TENSOR .TIME_MIX_OUTPUT : ( 1091"rwkv.blocks.{bid}.attention.output" ,# rwkv6 1092"model.layers.{bid}.self_attn.o_proj" ,# rwkv6qwen2 1093"model.layers.{bid}.attention.output" ,# rwkv7 1094"model.layers.{bid}.attention.o_proj" ,# rwkv7 1095 ), 1096 1097MODEL_TENSOR .CHANNEL_MIX_LERP_K : ( 1098"rwkv.blocks.{bid}.feed_forward.time_maa_k" ,# rwkv6 1099"model.layers.{bid}.feed_forward.x_k" ,# rwkv7 1100 ), 1101 1102MODEL_TENSOR .CHANNEL_MIX_LERP_R : ( 1103"rwkv.blocks.{bid}.feed_forward.time_maa_r" ,# rwkv6 1104 ), 1105 1106MODEL_TENSOR .CHANNEL_MIX_KEY : ( 1107"rwkv.blocks.{bid}.feed_forward.key" ,# rwkv6 1108"model.layers.{bid}.feed_forward.key" ,# rwkv7 1109 ), 1110 1111MODEL_TENSOR .CHANNEL_MIX_RECEPTANCE : ( 1112"rwkv.blocks.{bid}.feed_forward.receptance" ,# rwkv6 1113 ), 1114 1115MODEL_TENSOR .CHANNEL_MIX_VALUE : ( 1116"rwkv.blocks.{bid}.feed_forward.value" ,# rwkv6 1117"model.layers.{bid}.feed_forward.value" ,# rwkv7 1118 ), 1119 1120MODEL_TENSOR .ATTN_Q_A : ( 1121"model.layers.{bid}.self_attn.q_a_proj" ,# deepseek2 1122"model.layers.{bid}.attention.q_a_proj" ,# bailingmoe3 (Ling-3.0-tiny) 1123"layers.{bid}.attention.wq_a" ,# mistral-large 1124 ), 1125 1126MODEL_TENSOR .ATTN_Q_B : ( 1127"model.layers.{bid}.self_attn.q_b_proj" ,# deepseek2 1128"model.layers.{bid}.attention.q_b_proj" ,# bailingmoe3 (Ling-3.0-tiny) 1129"layers.{bid}.attention.wq_b" ,# mistral-large 1130 ), 1131 1132MODEL_TENSOR .ATTN_KV_A_MQA : ( 1133"model.layers.{bid}.self_attn.kv_a_proj_with_mqa" ,# deepseek2 1134"model.layers.{bid}.attention.kv_a_proj_with_mqa" ,# bailingmoe3 1135"layers.{bid}.attention.wkv_a_with_mqa" ,# mistral-large 1136 ), 1137 1138MODEL_TENSOR .ATTN_KV_B : ( 1139"model.layers.{bid}.self_attn.kv_b_proj" ,# deepseek2 1140"model.layers.{bid}.attention.kv_b_proj" ,# bailingmoe3 1141 ), 1142 1143MODEL_TENSOR .ATTN_K_B : ( 1144"model.layers.{bid}.self_attn.k_b_proj" ,# deepseek2 1145"model.layers.{bid}.attention.k_b_proj" ,# bailingmoe3 1146"layers.{bid}.attention.k_b_proj" ,# mistral-large 1147 ), 1148 1149MODEL_TENSOR .ATTN_V_B : ( 1150"model.layers.{bid}.self_attn.v_b_proj" ,# deepseek2 1151"model.layers.{bid}.attention.v_b_proj" ,# bailingmoe3 1152"layers.{bid}.attention.v_b_proj" ,# mistral-large 1153 ), 1154 1155MODEL_TENSOR .ATTN_Q_A_NORM : ( 1156"model.layers.{bid}.self_attn.q_a_layernorm" ,# deepseek2 1157"model.layers.{bid}.attention.q_a_layernorm" ,# bailingmoe3 (Ling-3.0-tiny) 1158"layers.{bid}.attention.q_a_norm" ,# mistral-large 1159 ), 1160 1161MODEL_TENSOR .ATTN_KV_A_NORM : ( 1162"model.layers.{bid}.self_attn.kv_a_layernorm" ,# deepseek2 1163"model.layers.{bid}.attention.kv_a_layernorm" ,# bailingmoe3 1164"layers.{bid}.attention.kv_a_norm" ,# mistral-large 1165 ), 1166 1167MODEL_TENSOR .ATTN_SUB_NORM : ( 1168"model.layers.{bid}.self_attn.inner_attn_ln" ,# bitnet 1169 ), 1170 1171MODEL_TENSOR .FFN_SUB_NORM : ( 1172"model.layers.{bid}.mlp.ffn_layernorm" ,# bitnet 1173 ), 1174 1175MODEL_TENSOR .DEC_ATTN_NORM : ( 1176"decoder.block.{bid}.layer.0.layer_norm" ,# t5 1177 ), 1178 1179MODEL_TENSOR .DEC_ATTN_Q : ( 1180"decoder.block.{bid}.layer.0.SelfAttention.q" ,# t5 1181 ), 1182 1183MODEL_TENSOR .DEC_ATTN_K : ( 1184"decoder.block.{bid}.layer.0.SelfAttention.k" ,# t5 1185 ), 1186 1187MODEL_TENSOR .DEC_ATTN_V : ( 1188"decoder.block.{bid}.layer.0.SelfAttention.v" ,# t5 1189 ), 1190 1191MODEL_TENSOR .DEC_ATTN_OUT : ( 1192"decoder.block.{bid}.layer.0.SelfAttention.o" ,# t5 1193 ), 1194 1195MODEL_TENSOR .DEC_ATTN_REL_B : ( 1196"decoder.block.{bid}.layer.0.SelfAttention.relative_attention_bias" ,# t5 1197 ), 1198 1199MODEL_TENSOR .DEC_CROSS_ATTN_NORM : ( 1200"decoder.block.{bid}.layer.1.layer_norm" ,# t5 1201 ), 1202 1203MODEL_TENSOR .DEC_CROSS_ATTN_Q : ( 1204"decoder.block.{bid}.layer.1.EncDecAttention.q" ,# t5 1205 ), 1206 1207MODEL_TENSOR .DEC_CROSS_ATTN_K : ( 1208"decoder.block.{bid}.layer.1.EncDecAttention.k" ,# t5 1209 ), 1210 1211MODEL_TENSOR .DEC_CROSS_ATTN_V : ( 1212"decoder.block.{bid}.layer.1.EncDecAttention.v" ,# t5 1213 ), 1214 1215MODEL_TENSOR .DEC_CROSS_ATTN_OUT : ( 1216"decoder.block.{bid}.layer.1.EncDecAttention.o" ,# t5 1217 ), 1218 1219MODEL_TENSOR .DEC_CROSS_ATTN_REL_B : ( 1220"decoder.block.{bid}.layer.1.EncDecAttention.relative_attention_bias" ,# t5 1221 ), 1222 1223MODEL_TENSOR .DEC_FFN_NORM : ( 1224"decoder.block.{bid}.layer.2.layer_norm" ,# t5 1225 ), 1226 1227MODEL_TENSOR .DEC_FFN_GATE : ( 1228"decoder.block.{bid}.layer.2.DenseReluDense.wi_0" ,# flan-t5 1229 ), 1230 1231MODEL_TENSOR .DEC_FFN_UP : ( 1232"decoder.block.{bid}.layer.2.DenseReluDense.wi" ,# t5 1233"decoder.block.{bid}.layer.2.DenseReluDense.wi_1" ,# flan-t5 1234 ), 1235 1236MODEL_TENSOR .DEC_FFN_DOWN : ( 1237"decoder.block.{bid}.layer.2.DenseReluDense.wo" ,# t5 1238 ), 1239 1240MODEL_TENSOR .DEC_OUTPUT_NORM : ( 1241"decoder.final_layer_norm" ,# t5 1242 ), 1243 1244MODEL_TENSOR .ENC_ATTN_NORM : ( 1245"encoder.block.{bid}.layer.0.layer_norm" ,# t5 1246 ), 1247 1248MODEL_TENSOR .ENC_ATTN_Q : ( 1249"encoder.block.{bid}.layer.0.SelfAttention.q" ,# t5 1250 ), 1251 1252MODEL_TENSOR .ENC_ATTN_K : ( 1253"encoder.block.{bid}.layer.0.SelfAttention.k" ,# t5 1254 ), 1255 1256MODEL_TENSOR .ENC_ATTN_V : ( 1257"encoder.block.{bid}.layer.0.SelfAttention.v" ,# t5 1258 ), 1259 1260MODEL_TENSOR .ENC_ATTN_OUT : ( 1261"encoder.block.{bid}.layer.0.SelfAttention.o" ,# t5 1262 ), 1263 1264MODEL_TENSOR .ENC_ATTN_REL_B : ( 1265"encoder.block.{bid}.layer.0.SelfAttention.relative_attention_bias" ,# t5 1266 ), 1267 1268MODEL_TENSOR .ENC_FFN_NORM : ( 1269"encoder.block.{bid}.layer.1.layer_norm" ,# t5 1270 ), 1271 1272MODEL_TENSOR .ENC_FFN_GATE : ( 1273"encoder.block.{bid}.layer.1.DenseReluDense.wi_0" ,# flan-t5 1274 ), 1275 1276MODEL_TENSOR .ENC_FFN_UP : ( 1277"encoder.block.{bid}.layer.1.DenseReluDense.wi" ,# t5 1278"encoder.block.{bid}.layer.1.DenseReluDense.wi_1" ,# flan-t5 1279 ), 1280 1281MODEL_TENSOR .ENC_FFN_DOWN : ( 1282"encoder.block.{bid}.layer.1.DenseReluDense.wo" ,# t5 1283 ), 1284 1285MODEL_TENSOR .VISEXP_UP : ( 1286"model.layers.{bid}.mlp.vision_mlp.up_proj" ,# cogvlm 1287 ), 1288 1289MODEL_TENSOR .VISEXP_GATE : ( 1290"model.layers.{bid}.mlp.vision_mlp.gate_proj" ,# cogvlm 1291 ), 1292 1293MODEL_TENSOR .VISEXP_DOWN : ( 1294"model.layers.{bid}.mlp.vision_mlp.down_proj" ,# cogvlm 1295 ), 1296 1297MODEL_TENSOR .VISEXP_ATTN_OUT : ( 1298"model.layers.{bid}.self_attn.vision_expert_dense" ,# cogvlm 1299 ), 1300 1301MODEL_TENSOR .VISEXP_ATTN_QKV : ( 1302"model.layers.{bid}.self_attn.vision_expert_query_key_value" ,# cogvlm 1303 ), 1304 1305MODEL_TENSOR .INDEXER_K_NORM : ( 1306"model.layers.{bid}.self_attn.indexer.k_norm" ,# DSA 1307"model.layers.{bid}.self_attn.index_k_norm" ,# MSA 1308 ), 1309 1310MODEL_TENSOR .INDEXER_PROJ : ( 1311"model.layers.{bid}.self_attn.indexer.weights_proj" ,# DSA 1312 ), 1313 1314MODEL_TENSOR .INDEXER_ATTN_K : ( 1315"model.layers.{bid}.self_attn.indexer.wk" ,# DSA 1316 ), 1317 1318MODEL_TENSOR .INDEXER_ATTN_Q_B : ( 1319"model.layers.{bid}.self_attn.indexer.wq_b" ,# DSA 1320 ), 1321 1322MODEL_TENSOR .INDEXER_Q_PROJ : ( 1323"model.layers.{bid}.self_attn.index_q_proj" ,# MSA 1324 ), 1325 1326MODEL_TENSOR .INDEXER_K_PROJ : ( 1327"model.layers.{bid}.self_attn.index_k_proj" ,# MSA 1328 ), 1329 1330MODEL_TENSOR .INDEXER_Q_NORM : ( 1331"model.layers.{bid}.self_attn.index_q_norm" ,# MSA 1332 ), 1333 1334MODEL_TENSOR .HC_ATTN_FN : ( 1335"model.layers.{bid}.hc_attn_layer.hc_pre.hc_fn" ,# hy-v4 1336 ), 1337 1338MODEL_TENSOR .HC_ATTN_BASE : ( 1339"model.layers.{bid}.hc_attn_layer.hc_pre.hc_base" ,# hy-v4 1340 ), 1341 1342MODEL_TENSOR .HC_ATTN_SCALE : ( 1343"model.layers.{bid}.hc_attn_layer.hc_pre.hc_scale" ,# hy-v4 1344 ), 1345 1346MODEL_TENSOR .HC_FFN_FN : ( 1347"model.layers.{bid}.hc_mlp_layer.hc_pre.hc_fn" ,# hy-v4 1348 ), 1349 1350MODEL_TENSOR .HC_FFN_BASE : ( 1351"model.layers.{bid}.hc_mlp_layer.hc_pre.hc_base" ,# hy-v4 1352 ), 1353 1354MODEL_TENSOR .HC_FFN_SCALE : ( 1355"model.layers.{bid}.hc_mlp_layer.hc_pre.hc_scale" ,# hy-v4 1356 ), 1357 1358MODEL_TENSOR .HC_HEAD_FN : ( 1359"model.hc_head.hc_head_fn" ,# hy-v4 1360 ), 1361 1362MODEL_TENSOR .HC_HEAD_BASE : ( 1363"model.hc_head.hc_head_base" ,# hy-v4 1364 ), 1365 1366MODEL_TENSOR .HC_HEAD_SCALE : ( 1367"model.hc_head.hc_head_scale" ,# hy-v4 1368 ), 1369 1370############################################################################ 1371# TODO: these do not belong to block_mappings_cfg - move them to mappings_cfg 1372MODEL_TENSOR .ENC_OUTPUT_NORM : ( 1373"encoder.final_layer_norm" ,# t5 1374"layer_norm" ,# neobert 1375"model.hidden_norm" ,# dflash 1376"encoder.output_norm_enc" ,# dflash (transformers MuseGlimmerAssistant) 1377 ), 1378 1379MODEL_TENSOR .FC : ( 1380"model.fc" ,# dflash 1381"encoder.fc" ,# dflash (transformers MuseGlimmerAssistant) 1382 ), 1383 1384MODEL_TENSOR .DSPARK_MARKOV_W1 : ( 1385"model.markov_head.markov_w1" ,# dspark 1386 ), 1387 1388MODEL_TENSOR .DSPARK_MARKOV_W2 : ( 1389"model.markov_head.markov_w2" ,# dspark 1390 ), 1391 1392MODEL_TENSOR .DSPARK_CONF_PROJ : ( 1393"model.confidence_head.proj" ,# dspark 1394 ), 1395 1396MODEL_TENSOR .DFLASH_ATTN_CONV_BASE : ( 1397"model.layers.{bid}.attention_conv.base_kernel" , 1398 ), 1399 1400MODEL_TENSOR .DFLASH_ATTN_CONV_PROJ : ( 1401"model.layers.{bid}.attention_conv.kernel_projection" , 1402 ), 1403 1404MODEL_TENSOR .DFLASH_FFN_CONV_BASE : ( 1405"model.layers.{bid}.mlp_conv.base_kernel" , 1406 ), 1407 1408MODEL_TENSOR .DFLASH_FFN_CONV_PROJ : ( 1409"model.layers.{bid}.mlp_conv.kernel_projection" , 1410 ), 1411 1412MODEL_TENSOR .DFLASH_SELECTOR_PREV : ( 1413"model.candidate_selector.predecessor_codebook" , 1414 ), 1415 1416MODEL_TENSOR .DFLASH_SELECTOR_NEXT : ( 1417"model.candidate_selector.successor_codebook" , 1418 ), 1419 1420MODEL_TENSOR .DFLASH_SELECTOR_HIDDEN : ( 1421"model.candidate_selector.hidden_projection" , 1422 ), 1423 1424MODEL_TENSOR .CLS : ( 1425"classifier" ,# jina 1426"classifier.dense" ,# roberta 1427"pre_classifier" ,# distillbert 1428"dense" ,# neobert 1429"head.dense" ,# modern-bert 1430 ), 1431 1432MODEL_TENSOR .CLS_OUT : ( 1433"classifier.out_proj" ,# roberta 1434 ), 1435 1436MODEL_TENSOR .CLS_NORM : ( 1437"head.norm" ,# modern-bert 1438 ), 1439############################################################################# 1440 1441MODEL_TENSOR .CONVNEXT_DW : ( 1442"backbone.convnext.{bid}.dwconv" ,# wavtokenizer 1443 ), 1444 1445MODEL_TENSOR .CONVNEXT_NORM : ( 1446"backbone.convnext.{bid}.norm" ,# wavtokenizer 1447 ), 1448 1449MODEL_TENSOR .CONVNEXT_PW1 : ( 1450"backbone.convnext.{bid}.pwconv1" ,# wavtokenizer 1451 ), 1452 1453MODEL_TENSOR .CONVNEXT_PW2 : ( 1454"backbone.convnext.{bid}.pwconv2" ,# wavtokenizer 1455 ), 1456 1457MODEL_TENSOR .CONVNEXT_GAMMA : ( 1458"backbone.convnext.{bid}.gamma" ,# wavtokenizer 1459 ), 1460 1461MODEL_TENSOR .POSNET_CONV1 : ( 1462"backbone.posnet.{bid}.conv1" ,# wavtokenizer 1463 ), 1464 1465MODEL_TENSOR .POSNET_CONV2 : ( 1466"backbone.posnet.{bid}.conv2" ,# wavtokenizer 1467 ), 1468 1469MODEL_TENSOR .POSNET_NORM : ( 1470"backbone.posnet.{bid}.norm" ,# wavtokenizer 1471 ), 1472 1473MODEL_TENSOR .POSNET_NORM1 : ( 1474"backbone.posnet.{bid}.norm1" ,# wavtokenizer 1475 ), 1476 1477MODEL_TENSOR .POSNET_NORM2 : ( 1478"backbone.posnet.{bid}.norm2" ,# wavtokenizer 1479 ), 1480 1481MODEL_TENSOR .POSNET_ATTN_NORM : ( 1482"backbone.posnet.{bid}.norm" ,# wavtokenizer 1483 ), 1484 1485MODEL_TENSOR .POSNET_ATTN_Q : ( 1486"backbone.posnet.{bid}.q" ,# wavtokenizer 1487 ), 1488 1489MODEL_TENSOR .POSNET_ATTN_K : ( 1490"backbone.posnet.{bid}.k" ,# wavtokenizer 1491 ), 1492 1493MODEL_TENSOR .POSNET_ATTN_V : ( 1494"backbone.posnet.{bid}.v" ,# wavtokenizer 1495 ), 1496 1497MODEL_TENSOR .POSNET_ATTN_OUT : ( 1498"backbone.posnet.{bid}.proj_out" ,# wavtokenizer 1499 ), 1500 1501MODEL_TENSOR .SHORTCONV_CONV : ( 1502"model.layers.{bid}.conv.conv" , 1503 ), 1504 1505MODEL_TENSOR .SHORTCONV_INPROJ : ( 1506"model.layers.{bid}.conv.in_proj" , 1507 ), 1508 1509MODEL_TENSOR .SHORTCONV_OUTPROJ : ( 1510"model.layers.{bid}.conv.out_proj" , 1511 ), 1512 1513############################################################################# 1514## Vision encoder 1515 1516MODEL_TENSOR .V_MMPROJ : ( 1517"aligner.w{bid}" ,# deepseek4v (w1 -> mm.1, w2 -> mm.2) 1518"multi_modal_projector.linear_{bid}" , 1519"mm_projector.proj.linear_{bid}" ,# Kimi-K2.5 1520"visual.merger.mlp.{bid}" ,# qwen2vl 1521"mlp_AR.linear_{bid}" ,# PaddleOCR-VL 1522"merger.mlp.{bid}" , 1523"vision_tower.merger.mlp.{bid}" ,# dots.ocr 1524"vision_encoder.adapter.mlp.{bid}" ,# dots3note 1525"vit.perceive.proj.{bid}" ,# HunyuanVL (proj.0 = conv1, proj.2 = conv2) 1526 ), 1527 1528MODEL_TENSOR .V_MMPROJ_FC : ( 1529"model.connector.modality_projection.proj" ,# SmolVLM 1530"model.vision.linear_proj.linear_proj" ,# cogvlm 1531"model.projector.layers" ,# Deepseek-OCR 1532"visual.merger.proj" ,# glm4v 1533"vit.perceive.mlp" ,# HunyuanVL 1534 ), 1535 1536MODEL_TENSOR .V_MMPROJ_MLP : ( 1537"model.mm_projector.mlp.mlp.{bid}" , 1538"vision_model.vision_adapter.mlp.fc{bid}" ,# llama 4 1539"mlp1.{bid}" ,# InternVL 1540"model.aligner.fc1.hidden_layers.{bid}" ,# Janus Pro 1541 ), 1542 1543MODEL_TENSOR .V_MMPROJ_PEG : ( 1544"model.mm_projector.peg.peg.{bid}" , 1545 ), 1546 1547MODEL_TENSOR .V_ENC_EMBD_CLS : ( 1548"vision_tower.vision_model.embeddings.class_embedding" , 1549"model.vision_tower.embeddings.cls_token" ,# Intern-S1 1550"vision_model.class_embedding" ,# llama 4 1551"model.vision.patch_embedding.cls_embedding" ,# cogvlm 1552"vision_model.radio_model.model.patch_generator.cls_token.token" ,# Nemotron Nano v2 VL 1553"model.vision_model.embeddings.class_embedding" ,# Deepseek-OCR 1554 ), 1555 1556MODEL_TENSOR .V_ENC_EMBD_PATCH : ( 1557"vision.patch_embed.proj" ,# deepseek4v 1558"model.vision_tower.vision_model.embeddings.patch_embedding" ,# Granite4Vision 1559"vision_tower.vision_model.embeddings.patch_embedding" , 1560"model.vision_tower.embeddings.patch_embedding" ,# minicpmv4_6 1561"model.vision_tower.embeddings.patch_embeddings.projection" ,# Intern-S1 1562"vpm.embeddings.patch_embedding" , 1563"model.vision_model.embeddings.patch_embedding" ,# SmolVLM 1564"vit.embeddings.patch_embedding" ,# HunyuanVL 1565"vision_tower.patch_conv" ,# pixtral-hf 1566"vision_encoder.patch_conv" ,# pixtral 1567"vision_model.patch_embedding.linear" ,# llama 4 1568"visual.patch_embed.proj" ,# qwen2vl 1569"vision_tower.patch_embed.proj" ,# kimi-vl 1570"model.vision.patch_embedding.proj" ,# cogvlm 1571"model.vision_model.embeddings.patch_embedding" ,# Deepseek-OCR CLIP 1572"siglip2.vision_model.embeddings.patch_embedding" , 1573"vision_model.radio_model.model.patch_generator.embedder" ,# Nemotron Nano v2 VL 1574"model.vision_tower.patch_embedder.input_proj" ,# gemma4 1575"vision_tower.patch_embed.patchifier.proj" ,# dots.ocr 1576"vision_encoder.patch_embed.proj" ,# dots3note 1577"vision_model.conv1" ,# Step3-VL 1578"model.vision_embedder.patch_dense" ,# gemma4 unified 1579"model.vision_tower.patch_embedder.patch_embedding" ,# muse-glimmer 1580 ), 1581 1582MODEL_TENSOR .V_ENC_EMBD_NORM : ( 1583"visual.post_conv_layernorm" ,# glm4v 1584"vision_tower.patch_embed.patchifier.norm" ,# dots.ocr 1585"vision_encoder.patch_embed.norm" ,# dots3note 1586 ), 1587 1588MODEL_TENSOR .V_ENC_EMBD_PATCH_NORM : ( 1589"model.vision_embedder.patch_ln{bid}" ,# gemma4 unified 1590 ), 1591 1592MODEL_TENSOR .V_ENC_EMBD_POS : ( 1593"model.vision_tower.vision_model.embeddings.position_embedding" ,# Granite4Vision 1594"vision_tower.vision_model.embeddings.position_embedding" , 1595"model.vision_tower.embeddings.position_embedding" ,# minicpmv4_6 1596"model.vision_tower.embeddings.position_embeddings" ,# Intern-S1 1597"vpm.embeddings.position_embedding" , 1598"model.vision_model.embeddings.position_embedding" ,# SmolVLM 1599"vit.embeddings.position_embedding" ,# HunyuanVL 1600"vision_model.positional_embedding_vlm" ,# llama 4 1601"vision_tower.patch_embed.pos_emb" ,# kimi-vl 1602"visual.pos_embed" ,# qwen3vl 1603"model.vision.patch_embedding.position_embedding" ,# cogvlm 1604"visual.embeddings.position_embedding" ,# glm4v 1605"vision_model.radio_model.model.patch_generator.pos_embed" ,# Nemotron Nano v2 VL 1606"model.vision_tower.patch_embedder.position_embedding_table" ,# gemma4 1607"vision_model.positional_embedding" ,# Step3-VL 1608"model.vision_embedder.pos_embedding" ,# gemma4 unified 1609 ), 1610 1611# TODO: I think these should all be moved to mapping_cfg? 1612MODEL_TENSOR .V_ENC_EMBD_IMGNL : ( 1613"image_newline" ,# deepseek4v 1614"model.image_newline" ,# Deepseek-OCR, Granite4Vision 1615"vit.perceive.image_newline" ,# HunyuanVL 1616 ), 1617 1618MODEL_TENSOR .V_ENC_EMBD_VSEP : ( 1619"model.view_seperator" ,# Deepseek-OCR 1620"vit.perceive.image_sep" ,# HunyuanVL 1621 ), 1622 1623MODEL_TENSOR .V_ENC_ATTN_QKV : ( 1624"vision.blocks.{bid}.attn.wqkv" ,# deepseek4v 1625"visual.blocks.{bid}.attn.qkv" ,# qwen3vl 1626"vision_tower.blocks.{bid}.attn.qkv" ,# dots.ocr 1627"vision_encoder.blocks.{bid}.attn.qkv" ,# dots3note 1628"model.vision.transformer.layers.{bid}.attention.query_key_value" ,# cogvlm 1629"model.vision_model.transformer.layers.{bid}.self_attn.qkv_proj" ,# Deepseek-OCR CLIP 1630"vision_tower.encoder.blocks.{bid}.wqkv" ,# Kimi-K2.5 1631"vision_model.radio_model.model.blocks.{bid}.attn.qkv" ,# Nemotron Nano v2 VL 1632"vision_model.transformer.resblocks.{bid}.attn.in_proj" ,# Step3-VL 1633 ), 1634 1635MODEL_TENSOR .V_ENC_ATTN_Q : ( 1636"model.vision_tower.vision_model.encoder.layers.{bid}.self_attn.q_proj" ,# Granite4Vision 1637"vision_tower.vision_model.encoder.layers.{bid}.self_attn.q_proj" , 1638"model.vision_tower.encoder.layers.{bid}.self_attn.q_proj" ,# minicpmv4_6 1639"model.vision_tower.encoder.layer.{bid}.attention.q_proj" ,# Intern-S1 1640"vpm.encoder.layers.{bid}.self_attn.q_proj" , 1641"model.vision_model.encoder.layers.{bid}.self_attn.q_proj" ,# SmolVLM 1642"vit.layers.{bid}.self_attn.q_proj" ,# HunyuanVL 1643"vision_model.model.layers.{bid}.self_attn.q_proj" ,# llama4 1644"vision_tower.transformer.layers.{bid}.attention.q_proj" ,# pixtral-hf 1645"vision_encoder.transformer.layers.{bid}.attention.wq" ,# pixtral 1646"visual.blocks.{bid}.attn.q" ,# qwen2vl, generated 1647"vision_tower.encoder.blocks.{bid}.wq" ,# kimi-vl, generated 1648"siglip2.vision_model.encoder.layers.{bid}.self_attn.q_proj" ,# youtuvl 1649"model.vision_model.transformer.layers.{bid}.self_attn.q_proj" ,# Deepseek-OCR CLIP, generated 1650"vision_model.model.layers.{bid}.self_attn.q_proj.linear" ,# gemma4 1651"model.qwen2_model.model.model.layers.{bid}.self_attn.q_proj" ,# Deepseek-OCR-2 qwen2 1652"model.vision_tower.layers.{bid}.attn.q_proj" ,# muse-glimmer 1653 ), 1654 1655MODEL_TENSOR .V_ENC_ATTN_Q_NORM : ( 1656"vision_encoder.blocks.{bid}.attn.q_norm" ,# dots3note 1657"vision_tower.vision_model.encoder.layers.{bid}.attn.q_norm" ,# InternVL 1658"model.vision_tower.encoder.layer.{bid}.attention.q_norm" ,# Intern-S1 1659"visual.blocks.{bid}.attn.q_norm" ,# GLM-OCR 1660"vision_model.model.layers.{bid}.self_attn.q_norm" ,# gemma4 1661 ), 1662 1663MODEL_TENSOR .V_ENC_ATTN_K : ( 1664"model.vision_tower.vision_model.encoder.layers.{bid}.self_attn.k_proj" ,# Granite4Vision 1665"vision_tower.vision_model.encoder.layers.{bid}.self_attn.k_proj" , 1666"model.vision_tower.encoder.layers.{bid}.self_attn.k_proj" ,# minicpmv4_6 1667"model.vision_tower.encoder.layer.{bid}.attention.k_proj" ,# Intern-S1 1668"vpm.encoder.layers.{bid}.self_attn.k_proj" , 1669"model.vision_model.encoder.layers.{bid}.self_attn.k_proj" ,# SmolVLM 1670"vit.layers.{bid}.self_attn.k_proj" ,# HunyuanVL 1671"vision_model.model.layers.{bid}.self_attn.k_proj" ,# llama4 1672"vision_tower.transformer.layers.{bid}.attention.k_proj" ,# pixtral-hf 1673"vision_encoder.transformer.layers.{bid}.attention.wk" ,# pixtral 1674"visual.blocks.{bid}.attn.k" ,# qwen2vl, generated 1675"vision_tower.encoder.blocks.{bid}.wk" ,# kimi-vl, generated 1676"model.vision_model.transformer.layers.{bid}.self_attn.k_proj" ,# Deepseek-OCR CLIP, generated 1677"siglip2.vision_model.encoder.layers.{bid}.self_attn.k_proj" , 1678"vision_model.model.layers.{bid}.self_attn.k_proj.linear" ,# gemma4 1679"model.qwen2_model.model.model.layers.{bid}.self_attn.k_proj" ,# Deepseek-OCR-2 qwen2 1680"model.vision_tower.layers.{bid}.attn.k_proj" ,# muse-glimmer 1681 ), 1682 1683MODEL_TENSOR .V_ENC_ATTN_K_NORM : ( 1684"vision_encoder.blocks.{bid}.attn.k_norm" ,# dots3note 1685"vision_tower.vision_model.encoder.layers.{bid}.attn.k_norm" ,# InternVL 1686"model.vision_tower.encoder.layer.{bid}.attention.k_norm" ,# Intern-S1 1687"visual.blocks.{bid}.attn.k_norm" ,# GLM-OCR 1688"vision_model.model.layers.{bid}.self_attn.k_norm" ,# gemma4 1689 ), 1690 1691MODEL_TENSOR .V_ENC_ATTN_V : ( 1692"model.vision_tower.vision_model.encoder.layers.{bid}.self_attn.v_proj" ,# Granite4Vision 1693"vision_tower.vision_model.encoder.layers.{bid}.self_attn.v_proj" , 1694"model.vision_tower.encoder.layers.{bid}.self_attn.v_proj" ,# minicpmv4_6 1695"model.vision_tower.encoder.layer.{bid}.attention.v_proj" ,# Intern-S1 1696"vpm.encoder.layers.{bid}.self_attn.v_proj" , 1697"model.vision_model.encoder.layers.{bid}.self_attn.v_proj" ,# SmolVLM 1698"vit.layers.{bid}.self_attn.v_proj" ,# HunyuanVL 1699"vision_model.model.layers.{bid}.self_attn.v_proj" ,# llama4 1700"vision_tower.transformer.layers.{bid}.attention.v_proj" ,# pixtral-hf 1701"vision_encoder.transformer.layers.{bid}.attention.wv" ,# pixtral 1702"visual.blocks.{bid}.attn.v" ,# qwen2vl, generated 1703"vision_tower.encoder.blocks.{bid}.wv" ,# kimi-vl, generated 1704"siglip2.vision_model.encoder.layers.{bid}.self_attn.v_proj" , 1705"model.vision_model.transformer.layers.{bid}.self_attn.v_proj" ,# Deepseek-OCR CLIP, generated 1706"vision_model.model.layers.{bid}.self_attn.v_proj.linear" ,# gemma4 1707"model.qwen2_model.model.model.layers.{bid}.self_attn.v_proj" ,# Deepseek-OCR-2 qwen2 1708"model.vision_tower.layers.{bid}.attn.v_proj" ,# muse-glimmer 1709 ), 1710 1711MODEL_TENSOR .V_ENC_INPUT_NORM : ( 1712"vision.blocks.{bid}.norm1" ,# deepseek4v 1713"model.vision_tower.vision_model.encoder.layers.{bid}.layer_norm1" ,# Granite4Vision 1714"vision_tower.vision_model.encoder.layers.{bid}.layer_norm1" , 1715"model.vision_tower.encoder.layers.{bid}.layer_norm1" ,# minicpmv4_6 1716"vision_tower.vision_model.encoder.layers.{bid}.norm1" ,# InternVL 1717"model.vision_tower.encoder.layer.{bid}.layernorm_before" ,# Intern-S1 1718"vpm.encoder.layers.{bid}.layer_norm1" , 1719"model.vision_model.encoder.layers.{bid}.layer_norm1" ,# SmolVLM 1720"vit.layers.{bid}.input_layernorm" ,# HunyuanVL 1721"vision_tower.transformer.layers.{bid}.attention_norm" ,# pixtral-hf 1722"vision_encoder.transformer.layers.{bid}.attention_norm" ,# pixtral 1723"vision_model.model.layers.{bid}.input_layernorm" ,# llama4, gemma4 1724"visual.blocks.{bid}.norm1" ,# qwen2vl 1725"vision_tower.encoder.blocks.{bid}.norm0" ,# kimi-vl (norm0/norm1) 1726"model.vision.transformer.layers.{bid}.input_layernorm" ,# cogvlm 1727"model.vision_model.transformer.layers.{bid}.layer_norm1" ,# Deepseek-OCR CLIP 1728"siglip2.vision_model.encoder.layers.{bid}.layer_norm1" , 1729"vision_model.radio_model.model.blocks.{bid}.norm1" ,# Nemotron Nano v2 VL 1730"vision_tower.blocks.{bid}.norm1" ,# dots.ocr 1731"vision_encoder.blocks.{bid}.norm_1" ,# dots3note 1732"vision_model.transformer.resblocks.{bid}.ln_1" ,# Step3-VL 1733"model.qwen2_model.model.model.layers.{bid}.input_layernorm" ,# Deepseek-OCR-2 qwen2 1734"model.vision_tower.layers.{bid}.norm1" ,# muse-glimmer 1735 ), 1736 1737MODEL_TENSOR .V_ENC_ATTN_O : ( 1738"vision.blocks.{bid}.attn.wo" ,# deepseek4v 1739"model.vision_tower.vision_model.encoder.layers.{bid}.self_attn.out_proj" ,# Granite4Vision 1740"vision_tower.vision_model.encoder.layers.{bid}.self_attn.out_proj" , 1741"model.vision_tower.encoder.layers.{bid}.self_attn.out_proj" ,# minicpmv4_6 1742"vision_tower.vision_model.encoder.layers.{bid}.attn.proj" ,# InternVL 1743"model.vision_tower.encoder.layer.{bid}.attention.projection_layer" ,# Intern-S1 1744"vpm.encoder.layers.{bid}.self_attn.out_proj" , 1745"model.vision_model.encoder.layers.{bid}.self_attn.out_proj" ,# SmolVLM 1746"vit.layers.{bid}.self_attn.o_proj" ,# HunyuanVL 1747"model.vision_model.encoder.layers.{bid}.self_attn.projection_layer" ,# Janus Pro 1748"vision_model.model.layers.{bid}.self_attn.o_proj" ,# llama4 1749"vision_tower.transformer.layers.{bid}.attention.o_proj" ,# pixtral-hf 1750"vision_encoder.transformer.layers.{bid}.attention.wo" ,# pixtral 1751"visual.blocks.{bid}.attn.proj" ,# qwen2vl 1752"vision_tower.encoder.blocks.{bid}.wo" ,# kimi-vl 1753"model.vision.transformer.layers.{bid}.attention.dense" ,# cogvlm 1754"model.vision_model.transformer.layers.{bid}.self_attn.out_proj" ,# Deepseek-OCR CLIP 1755"siglip2.vision_model.encoder.layers.{bid}.self_attn.out_proj" ,# youtuvl 1756"vision_model.radio_model.model.blocks.{bid}.attn.proj" ,# Nemotron Nano v2 VL 1757"model.qwen2_model.model.model.layers.{bid}.self_attn.o_proj" ,# Deepseek-OCR-2 qwen2 1758"vision_model.model.layers.{bid}.self_attn.o_proj.linear" ,# gemma4 1759"vision_tower.blocks.{bid}.attn.proj" ,# dots.ocr 1760"vision_encoder.blocks.{bid}.attn.proj" ,# dots3note 1761"vision_model.transformer.resblocks.{bid}.attn.out_proj" ,# Step3-VL 1762"model.vision_tower.layers.{bid}.attn.proj" ,# muse-glimmer 1763 ), 1764 1765MODEL_TENSOR .V_ENC_ATTN_SINKS : ( 1766"visual.blocks.{bid}.attn.sinks" ,# mimovl 1767 ), 1768 1769MODEL_TENSOR .V_ENC_POST_ATTN_NORM : ( 1770"vision.blocks.{bid}.norm2" ,# deepseek4v 1771"model.vision_tower.vision_model.encoder.layers.{bid}.layer_norm2" ,# Granite4Vision 1772"vision_tower.vision_model.encoder.layers.{bid}.layer_norm2" , 1773"model.vision_tower.encoder.layers.{bid}.layer_norm2" ,# minicpmv4_6 1774"vision_tower.vision_model.encoder.layers.{bid}.norm2" ,# InternVL 1775"model.vision_tower.encoder.layer.{bid}.layernorm_after" ,# Intern-S1 1776"vpm.encoder.layers.{bid}.layer_norm2" , 1777"model.vision_model.encoder.layers.{bid}.layer_norm2" ,# SmolVLM 1778"vit.layers.{bid}.post_attention_layernorm" ,# HunyuanVL 1779"vision_model.model.layers.{bid}.post_attention_layernorm" ,# llama4 1780"vision_tower.transformer.layers.{bid}.ffn_norm" ,# pixtral-hf 1781"vision_encoder.transformer.layers.{bid}.ffn_norm" ,# pixtral 1782"visual.blocks.{bid}.norm2" ,# qwen2vl 1783"vision_tower.encoder.blocks.{bid}.norm1" ,# kimi-vl (norm0/norm1) 1784"model.vision.transformer.layers.{bid}.post_attention_layernorm" ,# cogvlm 1785"model.vision_model.transformer.layers.{bid}.layer_norm2" ,# Deepseek-OCR CLIP 1786"siglip2.vision_model.encoder.layers.{bid}.layer_norm2" , 1787"vision_model.radio_model.model.blocks.{bid}.norm2" ,# Nemotron Nano v2 VL 1788"vision_model.model.layers.{bid}.pre_feedforward_layernorm" ,# gemma4 1789"vision_tower.blocks.{bid}.norm2" ,# dots.ocr 1790"vision_encoder.blocks.{bid}.norm_2" ,# dots3note 1791"vision_model.transformer.resblocks.{bid}.ln_2" ,# Step3-VL 1792"model.qwen2_model.model.model.layers.{bid}.post_attention_layernorm" ,# Deepseek-OCR-2 qwen2 1793"model.vision_tower.layers.{bid}.norm2" ,# muse-glimmer 1794 ), 1795 1796MODEL_TENSOR .V_ENC_FFN_UP : ( 1797"vision.blocks.{bid}.mlp.w1_up" ,# deepseek4v (split from fused w1) 1798"vision_encoder.blocks.{bid}.mlp.fc3" ,# dots3note 1799"model.vision_tower.vision_model.encoder.layers.{bid}.mlp.fc1" ,# Granite4Vision 1800"vision_tower.vision_model.encoder.layers.{bid}.mlp.fc1" , 1801"model.vision_tower.encoder.layers.{bid}.mlp.fc1" ,# minicpmv4_6 1802"model.vision_tower.encoder.layer.{bid}.mlp.fc1" ,# Intern-S1 1803"vpm.encoder.layers.{bid}.mlp.fc1" , 1804"model.vision_model.encoder.layers.{bid}.mlp.fc1" ,# SmolVLM, gemma3 1805"vit.layers.{bid}.mlp.dense_h_to_4h" ,# HunyuanVL 1806"vision_tower.transformer.layers.{bid}.feed_forward.up_proj" ,# pixtral-hf 1807"vision_encoder.transformer.layers.{bid}.feed_forward.w3" ,# pixtral 1808"vision_model.model.layers.{bid}.mlp.fc1" ,# llama4 1809"visual.blocks.{bid}.mlp.fc1" ,# qwen2vl 1810"visual.blocks.{bid}.mlp.up_proj" ,# qwen2.5vl 1811"visual.blocks.{bid}.mlp.linear_fc1" ,# qwen3vl 1812"vision_tower.encoder.blocks.{bid}.mlp.fc0" ,# kimi-vl (fc0/fc1) 1813"model.vision_model.transformer.layers.{bid}.mlp.fc1" ,# Deepseek-OCR CLIP 1814"model.vision.transformer.layers.{bid}.mlp.fc1" ,# cogvlm 1815"siglip2.vision_model.encoder.layers.{bid}.mlp.fc1" , 1816"vision_model.radio_model.model.blocks.{bid}.mlp.fc1" ,# Nemotron Nano v2 VL 1817"vision_model.model.layers.{bid}.mlp.up_proj" ,# gemma4 1818"vision_model.transformer.resblocks.{bid}.mlp.c_fc" ,# Step3-VL 1819"model.qwen2_model.model.model.layers.{bid}.mlp.up_proj" ,# Deepseek-OCR-2 qwen2 1820"model.vision_tower.layers.{bid}.mlp.fc1" ,# muse-glimmer 1821 ), 1822 1823MODEL_TENSOR .V_ENC_FFN_GATE : ( 1824"vision.blocks.{bid}.mlp.w1_gate" ,# deepseek4v (split from fused w1) 1825"vision_encoder.blocks.{bid}.mlp.fc1" ,# dots3note 1826"vision_tower.transformer.layers.{bid}.feed_forward.gate_proj" ,# pixtral-hf 1827"vision_encoder.transformer.layers.{bid}.feed_forward.w1" ,# pixtral 1828"visual.blocks.{bid}.mlp.gate_proj" ,# qwen2.5vl 1829"vision_model.model.layers.{bid}.mlp.gate_proj" ,# gemma4 1830"model.qwen2_model.model.model.layers.{bid}.mlp.gate_proj" ,# Deepseek-OCR-2 qwen2 1831 ), 1832 1833MODEL_TENSOR .V_ENC_FFN_DOWN : ( 1834"vision.blocks.{bid}.mlp.w2" ,# deepseek4v 1835"vision_encoder.blocks.{bid}.mlp.fc2" ,# dots3note 1836"model.vision_tower.vision_model.encoder.layers.{bid}.mlp.fc2" ,# Granite4Vision 1837"vision_tower.vision_model.encoder.layers.{bid}.mlp.fc2" , 1838"model.vision_tower.encoder.layers.{bid}.mlp.fc2" ,# minicpmv4_6 1839"model.vision_tower.encoder.layer.{bid}.mlp.fc2" ,# Intern-S1 1840"vpm.encoder.layers.{bid}.mlp.fc2" , 1841"model.vision_model.encoder.layers.{bid}.mlp.fc2" ,# SmolVLM, gemma3 1842"vit.layers.{bid}.mlp.dense_4h_to_h" ,# HunyuanVL 1843"vision_tower.transformer.layers.{bid}.feed_forward.down_proj" ,# pixtral-hf 1844"vision_encoder.transformer.layers.{bid}.feed_forward.w2" ,# pixtral 1845"vision_model.model.layers.{bid}.mlp.fc2" ,# llama4 1846"visual.blocks.{bid}.mlp.fc2" ,# qwen2vl 1847"visual.blocks.{bid}.mlp.down_proj" ,# qwen2.5vl 1848"visual.blocks.{bid}.mlp.linear_fc2" ,# qwen3vl 1849"vision_tower.encoder.blocks.{bid}.mlp.fc1" ,# kimi-vl (fc0/fc1) 1850"model.vision.transformer.layers.{bid}.mlp.fc2" ,# cogvlm 1851"model.vision_model.transformer.layers.{bid}.mlp.fc2" ,# Deepseek-OCR CLIP 1852"siglip2.vision_model.encoder.layers.{bid}.mlp.fc2" , 1853"vision_model.radio_model.model.blocks.{bid}.mlp.fc2" ,# Nemotron Nano v2 VL 1854"model.qwen2_model.model.model.layers.{bid}.mlp.down_proj" ,# Deepseek-OCR-2 qwen2 1855"vision_model.model.layers.{bid}.mlp.down_proj" ,# gemma4 1856"vision_model.transformer.resblocks.{bid}.mlp.c_proj" ,# Step3-VL 1857"model.vision_tower.layers.{bid}.mlp.fc2" ,# muse-glimmer 1858 ), 1859 1860 1861MODEL_TENSOR .V_ENC_FFN_GATE_INP : ( 1862"vision_encoder.blocks.{bid}.mlp.gate_weight" ,# dots3note 1863 ), 1864 1865MODEL_TENSOR .V_ENC_FFN_EXP_PROBS_B : ( 1866"vision_encoder.blocks.{bid}.mlp.router_bias" ,# dots3note 1867 ), 1868 1869# note: expert weights are stacked into a single 3D tensor in conversion code, 1870# which emits the pseudo-names below 1871MODEL_TENSOR .V_ENC_FFN_GATE_EXPS : ( 1872"vision_encoder.blocks.{bid}.mlp.experts.fc1" ,# dots3note 1873 ), 1874 1875MODEL_TENSOR .V_ENC_FFN_UP_EXPS : ( 1876"vision_encoder.blocks.{bid}.mlp.experts.fc3" ,# dots3note 1877 ), 1878 1879MODEL_TENSOR .V_ENC_FFN_DOWN_EXPS : ( 1880"vision_encoder.blocks.{bid}.mlp.experts.fc2" ,# dots3note 1881 ), 1882 1883MODEL_TENSOR .V_ENC_ATTN_POST_NORM : ( 1884"vision_model.model.layers.{bid}.post_attention_layernorm" ,# gemma4 1885 ), 1886 1887MODEL_TENSOR .V_ENC_FFN_POST_NORM : ( 1888"vision_model.model.layers.{bid}.post_feedforward_layernorm" ,# gemma4 1889 ), 1890 1891MODEL_TENSOR .V_LAYER_SCALE_1 : ( 1892"vision_tower.vision_model.encoder.layers.{bid}.ls1" ,# InternVL 1893"model.vision_tower.encoder.layer.{bid}.lambda_1" ,# Intern-S1 1894"vision_model.transformer.resblocks.{bid}.ls_1" ,# Step3-VL 1895 ), 1896 1897MODEL_TENSOR .V_LAYER_SCALE_2 : ( 1898"vision_tower.vision_model.encoder.layers.{bid}.ls2" ,# InternVL 1899"model.vision_tower.encoder.layer.{bid}.lambda_2" ,# Intern-S1 1900"vision_model.transformer.resblocks.{bid}.ls_2" ,# Step3-VL 1901 ), 1902 1903MODEL_TENSOR .V_LAYER_OUT_SCALE : ( 1904"vision_model.model.layers.{bid}.layer_scalar" ,# gemma4 1905 ), 1906 1907MODEL_TENSOR .V_PRE_NORM : ( 1908"vision_tower.vision_model.pre_layrnorm" , 1909"vision_tower.ln_pre" ,# pixtral-hf 1910"vision_encoder.ln_pre" ,# pixtral 1911"vision_model.layernorm_pre" ,# llama4 1912"model.vision_model.pre_layrnorm" ,# Deepseek-OCR CLIP 1913"vision_tower.patch_embed.patchifier.norm" ,# dots.ocr 1914"vision_encoder.patch_embed.norm" ,# dots3note 1915"vision_model.ln_pre" ,# Step3-VL 1916"model.vision_tower.ln_pre" ,# muse-glimmer 1917 ), 1918 1919MODEL_TENSOR .V_POST_NORM : ( 1920"vision.norm" ,# deepseek4v 1921"model.vision_tower.vision_model.post_layernorm" ,# Granite4Vision 1922"vision_tower.vision_model.post_layernorm" , 1923"model.vision_tower.post_layernorm" ,# minicpmv4_6 1924"model.vision_model.post_layernorm" ,# SmolVLM 1925"vision_model.layernorm_post" ,# llama4 1926"visual.merger.ln_q" ,# qwen2vl 1927"vision_tower.encoder.final_layernorm" ,# kimi-vl 1928"visual.post_layernorm" ,# glm4v 1929"siglip2.vision_model.post_layernorm" , 1930"model.qwen2_model.model.model.norm" ,# Deepseek-OCR-2 qwen2 1931"model.vision_tower.ln_post" ,# muse-glimmer 1932 ), 1933 1934MODEL_TENSOR .V_MM_POST_NORM : ( 1935"visual.merger.post_projection_norm" ,# glm4v 1936"vision_tower.post_trunk_norm" ,# dots.ocr 1937"vision_encoder.post_trunk_norm" ,# dots3note 1938"vit.perceive.after_rms" ,# HunyuanVL 1939 ), 1940 1941MODEL_TENSOR .V_MM_INP_PROJ : ( 1942"multi_modal_projector.mm_input_projection" , 1943 ), 1944 1945MODEL_TENSOR .V_MM_INP_NORM : ( 1946"multi_modal_projector.norm" , 1947"multi_modal_projector.layer_norm" , 1948"multi_modal_projector.pre_norm" , 1949"mm_projector.pre_norm" ,# Kimi-K2.5 1950"pre_mm_projector_norm" , 1951"model.vision.linear_proj.norm1" ,# cogvlm 1952"mlp_AR.pre_norm" ,# PaddleOCR-VL 1953"merger.ln_q" , 1954"vision_tower.merger.ln_q" ,# dots.ocr 1955"vision_encoder.adapter.ln_q" ,# dots3note 1956"model.merger.mlp.0.pre_norm" ,# minicpmv4_6 1957 ), 1958 1959MODEL_TENSOR .V_MM_SOFT_EMB_NORM : ( 1960"multi_modal_projector.mm_soft_emb_norm" , 1961 ), 1962 1963MODEL_TENSOR .V_RESMPL_POS_EMBD_K : ( 1964"resampler.pos_embed_k" , 1965 ), 1966 1967MODEL_TENSOR .V_RESMPL_ATTN_Q : ( 1968"resampler.attn.in_proj_q" ,# tensor generated from resampler.attn.in_proj 1969 ), 1970 1971MODEL_TENSOR .V_RESMPL_ATTN_K : ( 1972"resampler.attn.in_proj_k" ,# tensor generated from resampler.attn.in_proj 1973 ), 1974 1975MODEL_TENSOR .V_RESMPL_ATTN_V : ( 1976"resampler.attn.in_proj_v" ,# tensor generated from resampler.attn.in_proj 1977 ), 1978 1979MODEL_TENSOR .V_RESMPL_ATTN_OUT : ( 1980"resampler.attn.out_proj" , 1981"model.vision_model.head.attention.out_proj" , 1982 ), 1983 1984MODEL_TENSOR .V_RESMPL_KV : ( 1985"resampler.kv_proj" , 1986 ), 1987 1988MODEL_TENSOR .V_RESMPL_POST_NORM : ( 1989"resampler.ln_post" , 1990 ), 1991 1992MODEL_TENSOR .V_RESMPL_KV_NORM : ( 1993"resampler.ln_kv" , 1994 ), 1995 1996MODEL_TENSOR .V_RESMPL_Q_NORM : ( 1997"resampler.ln_q" , 1998 ), 1999 2000MODEL_TENSOR .V_RESMPL_PROJ : ( 2001"resampler.proj" , 2002 ), 2003 2004MODEL_TENSOR .V_RESMPL_QUERY : ( 2005"resampler.query" , 2006 ), 2007 2008MODEL_TENSOR .V_TOK_EMBD_IMG_BREAK : ( 2009"v.token_embd.img_break" ,# for pixtral, this is a generated vector 2010 ), 2011 2012MODEL_TENSOR .V_TOK_EMBD_IMG_START : ( 2013"image_start" ,# deepseek4v 2014 ), 2015 2016MODEL_TENSOR .V_TOK_EMBD_IMG_END : ( 2017"image_end" ,# deepseek4v 2018 ), 2019 2020MODEL_TENSOR .V_TOK_EMBD_IMG_PAD : ( 2021"image_pad" ,# deepseek4v 2022 ), 2023 2024MODEL_TENSOR .V_MM_PATCH_MERGER : ( 2025"multi_modal_projector.patch_merger.merging_layer" ,# mistral small 3.1 - hf 2026"patch_merger.merging_layer" ,# mistral 2027"visual.downsample" ,# glm4v 2028 ), 2029 2030MODEL_TENSOR .V_MM_MERGER_FC1 : ( 2031"patch_merge_mlp.linear_1" ,# minimax-m3 2032 ), 2033 2034MODEL_TENSOR .V_MM_MERGER_FC2 : ( 2035"patch_merge_mlp.linear_2" ,# minimax-m3 2036 ), 2037 2038MODEL_TENSOR .V_DS_NORM : ( 2039"model.visual.deepstack_merger_list.{bid}.norm" ,# deepstack in qwen3vl 2040 ), 2041 2042MODEL_TENSOR .V_DS_FC1 : ( 2043"model.visual.deepstack_merger_list.{bid}.linear_fc1" ,# deepstack in qwen3vl 2044 ), 2045 2046MODEL_TENSOR .V_DS_FC2 : ( 2047"model.visual.deepstack_merger_list.{bid}.linear_fc2" ,# deepstack in qwen3vl 2048 ), 2049 2050MODEL_TENSOR .V_MERGER_LN1 : ( 2051"model.vision_tower.vit_merger.layer_norm1" ,# minicpmv4_6 2052 ), 2053 2054MODEL_TENSOR .V_MERGER_ATTN_Q : ( 2055"model.vision_tower.vit_merger.self_attn.q_proj" ,# minicpmv4_6 2056 ), 2057 2058MODEL_TENSOR .V_MERGER_ATTN_K : ( 2059"model.vision_tower.vit_merger.self_attn.k_proj" ,# minicpmv4_6 2060 ), 2061 2062MODEL_TENSOR .V_MERGER_ATTN_V : ( 2063"model.vision_tower.vit_merger.self_attn.v_proj" ,# minicpmv4_6 2064 ), 2065 2066MODEL_TENSOR .V_MERGER_ATTN_O : ( 2067"model.vision_tower.vit_merger.self_attn.out_proj" ,# minicpmv4_6 2068 ), 2069 2070MODEL_TENSOR .V_MERGER_DS_LN : ( 2071"model.vision_tower.vit_merger.pre_norm" ,# minicpmv4_6 2072 ), 2073 2074MODEL_TENSOR .V_MERGER_DS_UP : ( 2075"model.vision_tower.vit_merger.linear_1" ,# minicpmv4_6 2076 ), 2077 2078MODEL_TENSOR .V_MERGER_DS_DOWN : ( 2079"model.vision_tower.vit_merger.linear_2" ,# minicpmv4_6 2080 ), 2081 2082MODEL_TENSOR .V_SAM_POS_EMBD : ( 2083"model.sam_model.pos_embed" , 2084 ), 2085 2086MODEL_TENSOR .V_SAM_PATCH_EMBD : ( 2087"model.sam_model.patch_embed.proj" , 2088 ), 2089 2090MODEL_TENSOR .V_SAM_PRE_NORM : ( 2091"model.sam_model.blocks.{bid}.norm1" ,# deepstack in qwen3vl 2092 ), 2093 2094MODEL_TENSOR .V_SAM_POST_NORM : ( 2095"model.sam_model.blocks.{bid}.norm2" ,# deepstack in qwen3vl 2096 ), 2097 2098MODEL_TENSOR .V_SAM_ATTN_POS_H : ( 2099"model.sam_model.blocks.{bid}.attn.rel_pos_h" , 2100 ), 2101 2102MODEL_TENSOR .V_SAM_ATTN_POS_W : ( 2103"model.sam_model.blocks.{bid}.attn.rel_pos_w" , 2104 ), 2105 2106MODEL_TENSOR .V_SAM_ATTN_QKV : ( 2107"model.sam_model.blocks.{bid}.attn.qkv" , 2108 ), 2109 2110MODEL_TENSOR .V_SAM_ATTN_OUT : ( 2111"model.sam_model.blocks.{bid}.attn.proj" , 2112 ), 2113 2114MODEL_TENSOR .V_SAM_MLP_LIN_1 : ( 2115"model.sam_model.blocks.{bid}.mlp.lin1" , 2116 ), 2117 2118MODEL_TENSOR .V_SAM_MLP_LIN_2 : ( 2119"model.sam_model.blocks.{bid}.mlp.lin2" , 2120 ), 2121 2122MODEL_TENSOR .V_SAM_NECK : ( 2123"model.sam_model.neck.{bid}" , 2124 ), 2125 2126MODEL_TENSOR .V_SAM_NET_2 : ( 2127"model.sam_model.net_2" , 2128 ), 2129 2130MODEL_TENSOR .V_SAM_NET_3 : ( 2131"model.sam_model.net_3" , 2132 ), 2133 2134MODEL_TENSOR .V_RESMPL_QUERY_768 : ( 2135"model.qwen2_model.query_768" ,# Deepseek-OCR-2 qwen2 2136 ), 2137 2138MODEL_TENSOR .V_RESMPL_QUERY_1024 : ( 2139"model.qwen2_model.query_1024" ,# Deepseek-OCR-2 qwen2 2140 ), 2141 2142MODEL_TENSOR .V_MM_POST_FC_NORM : ( 2143"model.vision.linear_proj.norm1" ,# cogvlm 2144 ), 2145 2146MODEL_TENSOR .V_MM_UP : ( 2147"model.vision.linear_proj.dense_h_to_4h" ,# cogvlm 2148"visual.merger.up_proj" ,# glm4v 2149"model.merger.mlp.0.linear_1" ,# minicpmv4_6 2150 ), 2151 2152MODEL_TENSOR .V_MM_DOWN : ( 2153"model.vision.linear_proj.dense_4h_to_h" ,# cogvlm 2154"visual.merger.down_proj" ,# glm4v 2155"model.merger.mlp.0.linear_2" ,# minicpmv4_6 2156 ), 2157 2158MODEL_TENSOR .V_MM_GATE : ( 2159"model.vision.linear_proj.gate_proj" ,# cogvlm 2160"visual.merger.gate_proj" ,# glm4v 2161 ), 2162 2163MODEL_TENSOR .V_TOK_BOI : ( 2164"model.vision.boi" ,# cogvlm 2165 ), 2166 2167MODEL_TENSOR .V_TOK_EOI : ( 2168"model.vision.eoi" ,# cogvlm 2169 ), 2170 2171MODEL_TENSOR .V_MM_PRE_NORM : ( 2172"vit.perceive.before_rms" ,# HunyuanVL 2173 ), 2174 2175MODEL_TENSOR .V_TOK_IMG_BEGIN : ( 2176"vit.perceive.image_begin" ,# HunyuanVL 2177 ), 2178 2179MODEL_TENSOR .V_TOK_IMG_END : ( 2180"vit.perceive.image_end" ,# HunyuanVL 2181 ), 2182 2183MODEL_TENSOR .V_STD_BIAS : ( 2184"model.vision_tower.std_bias" ,# gemma4 2185 ), 2186 2187MODEL_TENSOR .V_STD_SCALE : ( 2188"model.vision_tower.std_scale" ,# gemma4 2189 ), 2190 2191# For these tensors, bid => projector ID 2192MODEL_TENSOR .V_MULTI_PROJ_IMG_POS : ( 2193"model.layerwise_projectors.{bid}.image_positions" ,# Granite4 Vision 2194"model.spatial_projectors.{bid}.image_positions" ,# Granite4 Vision 2195 ), 2196MODEL_TENSOR .V_MULTI_PROJ_QUERY : ( 2197"model.layerwise_projectors.{bid}.query" ,# Granite4 Vision 2198"model.spatial_projectors.{bid}.query" ,# Granite4 Vision 2199 ), 2200MODEL_TENSOR .V_MULTI_PROJ_LINEAR : ( 2201"model.layerwise_projectors.{bid}.out_linear" ,# Granite4 Vision 2202"model.spatial_projectors.{bid}.out_linear" ,# Granite4 Vision 2203 ), 2204MODEL_TENSOR .V_MULTI_PROJ_NORM : ( 2205"model.layerwise_projectors.{bid}.norm" ,# Granite4 Vision 2206"model.spatial_projectors.{bid}.norm" ,# Granite4 Vision 2207 ), 2208MODEL_TENSOR .V_MULTI_PROJ_POST_NORM : ( 2209"model.layerwise_projectors.{bid}.qformer.layernorm" ,# Granite4 Vision 2210"model.spatial_projectors.{bid}.qformer.layernorm" ,# Granite4 Vision 2211 ), 2212 2213# For these tensors, bid => proj-id 2214MODEL_TENSOR .V_QF_SELF_ATTN_Q : ( 2215"model.layerwise_projectors.qformer.encoder.layer.{bid}.attention.attention.query" ,# Granite4 Vision 2216"model.spatial_projectors.qformer.encoder.layer.{bid}.attention.attention.query" ,# Granite4 Vision 2217 ), 2218MODEL_TENSOR .V_QF_SELF_ATTN_K : ( 2219"model.layerwise_projectors.qformer.encoder.layer.{bid}.attention.attention.key" ,# Granite4 Vision 2220"model.spatial_projectors.qformer.encoder.layer.{bid}.attention.attention.key" ,# Granite4 Vision 2221 ), 2222MODEL_TENSOR .V_QF_SELF_ATTN_V : ( 2223"model.layerwise_projectors.qformer.encoder.layer.{bid}.attention.attention.value" ,# Granite4 Vision 2224"model.spatial_projectors.qformer.encoder.layer.{bid}.attention.attention.value" ,# Granite4 Vision 2225 ), 2226MODEL_TENSOR .V_QF_SELF_ATTN_O : ( 2227"model.layerwise_projectors.qformer.encoder.layer.{bid}.attention.output.dense" ,# Granite4 Vision 2228"model.spatial_projectors.qformer.encoder.layer.{bid}.attention.output.dense" ,# Granite4 Vision 2229 ), 2230MODEL_TENSOR .V_QF_SELF_ATTN_NORM : ( 2231"model.layerwise_projectors.qformer.encoder.layer.{bid}.attention.output.LayerNorm" ,# Granite4 Vision 2232"model.spatial_projectors.qformer.encoder.layer.{bid}.attention.output.LayerNorm" ,# Granite4 Vision 2233 ), 2234MODEL_TENSOR .V_QF_CROSS_ATTN_Q : ( 2235"model.layerwise_projectors.qformer.encoder.layer.{bid}.crossattention.attention.query" ,# Granite4 Vision 2236"model.spatial_projectors.qformer.encoder.layer.{bid}.crossattention.attention.query" ,# Granite4 Vision 2237 ), 2238MODEL_TENSOR .V_QF_CROSS_ATTN_K : ( 2239"model.layerwise_projectors.qformer.encoder.layer.{bid}.crossattention.attention.key" ,# Granite4 Vision 2240"model.spatial_projectors.qformer.encoder.layer.{bid}.crossattention.attention.key" ,# Granite4 Vision 2241 ), 2242MODEL_TENSOR .V_QF_CROSS_ATTN_V : ( 2243"model.layerwise_projectors.qformer.encoder.layer.{bid}.crossattention.attention.value" ,# Granite4 Vision 2244"model.spatial_projectors.qformer.encoder.layer.{bid}.crossattention.attention.value" ,# Granite4 Vision 2245 ), 2246MODEL_TENSOR .V_QF_CROSS_ATTN_O : ( 2247"model.layerwise_projectors.qformer.encoder.layer.{bid}.crossattention.output.dense" ,# Granite4 Vision 2248"model.spatial_projectors.qformer.encoder.layer.{bid}.crossattention.output.dense" ,# Granite4 Vision 2249 ), 2250MODEL_TENSOR .V_QF_CROSS_ATTN_NORM : ( 2251"model.layerwise_projectors.qformer.encoder.layer.{bid}.crossattention.output.LayerNorm" ,# Granite4 Vision 2252"model.spatial_projectors.qformer.encoder.layer.{bid}.crossattention.output.LayerNorm" ,# Granite4 Vision 2253 ), 2254MODEL_TENSOR .V_QF_FFN_UP : ( 2255"model.layerwise_projectors.qformer.encoder.layer.{bid}.intermediate_query.dense" ,# Granite4 Vision 2256"model.spatial_projectors.qformer.encoder.layer.{bid}.intermediate_query.dense" ,# Granite4 Vision 2257 ), 2258MODEL_TENSOR .V_QF_FFN_DOWN : ( 2259"model.layerwise_projectors.qformer.encoder.layer.{bid}.output_query.dense" ,# Granite4 Vision 2260"model.spatial_projectors.qformer.encoder.layer.{bid}.output_query.dense" ,# Granite4 Vision 2261 ), 2262MODEL_TENSOR .V_QF_FFN_NORM : ( 2263"model.layerwise_projectors.qformer.encoder.layer.{bid}.output_query.LayerNorm" ,# Granite4 Vision 2264"model.spatial_projectors.qformer.encoder.layer.{bid}.output_query.LayerNorm" ,# Granite4 Vision 2265 ), 2266 2267# audio (mtmd) 2268 2269MODEL_TENSOR .A_ENC_EMBD_POS : ( 2270"audio_tower.embed_positions" ,# ultravox 2271"audio_embedding.embedding" ,# lfm2 2272 ), 2273 2274MODEL_TENSOR .A_ENC_EMBD_NORM : ( 2275"audio_embedding.embedding_norm" ,# lfm2 2276 ), 2277 2278MODEL_TENSOR .A_ENC_EMBD_TO_LOGITS : ( 2279"audio_embedding.to_logits" ,# lfm2 2280 ), 2281 2282MODEL_TENSOR .A_ENC_CONV1D : ( 2283"audio_tower.conv{bid}" ,# ultravox 2284"conformer.pre_encode.conv.{bid}" ,# lfm2 2285"model.audio_tower.subsample_conv_projection.conv_{bid}.conv" ,# gemma3n 2286"conformer.subsample_conv_projection.layer{bid}.conv" ,# gemma4 2287"sound_encoder.encoder.subsampling.layers.{bid}" ,# parakeet 2288"encoder.conv{bid}" ,# mimo-audio-tokenizer 2289"speaker_encoder.blocks.{bid}.conv" ,# qwen3tts speaker encoder (only bid=0, the stem TDNN) 2290 ), 2291 2292MODEL_TENSOR .A_ENC_CONV1D_NORM : ( 2293"conformer.subsample_conv_projection.layer{bid}.norm" ,# gemma4 2294 ), 2295 2296MODEL_TENSOR .A_ENC_INP_PROJ : ( 2297"conformer.subsample_conv_projection.input_proj_linear" ,# gemma4 2298"encoder.input_linear" , 2299 ), 2300 2301MODEL_TENSOR .A_ENC_CONV2D : ( 2302"audio_tower.conv2d{bid}" ,# qwen3omni 2303"audio_encoder.dots_encoder.speech_encoder.conv2d{bid}" ,# dots3note 2304 ), 2305 2306MODEL_TENSOR .A_ENC_CONV_OUT : ( 2307"audio_tower.conv_out" ,# qwen3omni 2308"audio_encoder.dots_encoder.speech_encoder.conv_out" ,# dots3note 2309"speaker_encoder.mfa.conv" ,# qwen3tts speaker encoder: multi-layer feature aggregation 2310 ), 2311 2312MODEL_TENSOR .A_PRE_NORM : (), 2313 2314MODEL_TENSOR .A_POST_NORM : ( 2315"audio_tower.layer_norm" ,# ultravox 2316"audio_encoder.dots_encoder.speech_encoder.layer_norm" ,# dots3note 2317"audio_tower.ln_post" ,# qwen2omni 2318"encoder.layer_norm" ,# mimo-audio-tokenizer 2319 ), 2320 2321MODEL_TENSOR .A_ENC_ATTN_Q : ( 2322"audio_tower.layers.{bid}.self_attn.q_proj" ,# ultravox 2323"audio_encoder.dots_encoder.speech_encoder.layers.{bid}.self_attn.q_proj" ,# dots3note 2324"conformer.layers.{bid}.self_attn.linear_q" ,# lfm2 2325"conformer.layers.{bid}.attention.attn.q_proj" ,# gemma3n 2326"conformer.layers.{bid}.self_attn.q_proj" ,# gemma4 2327"sound_encoder.encoder.layers.{bid}.self_attn.q_proj" ,# parakeet 2328"encoder.layers.{bid}.attn.to_q" ,# granite_speech 2329"encoder.layers.{bid}.self_attn.q_proj" ,# mimo-audio-tokenizer 2330 ), 2331 2332MODEL_TENSOR .A_ENC_ATTN_K : ( 2333"audio_tower.layers.{bid}.self_attn.k_proj" ,# ultravox 2334"audio_encoder.dots_encoder.speech_encoder.layers.{bid}.self_attn.k_proj" ,# dots3note 2335"conformer.layers.{bid}.self_attn.linear_k" ,# lfm2 2336"conformer.layers.{bid}.attention.attn.k_proj" ,# gemma3n 2337"conformer.layers.{bid}.self_attn.k_proj" ,# gemma4 2338"sound_encoder.encoder.layers.{bid}.self_attn.k_proj" ,# parakeet 2339"encoder.layers.{bid}.attn.to_k" ,# granite_speech (split from to_kv) 2340"encoder.layers.{bid}.self_attn.k_proj" ,# mimo-audio-tokenizer 2341 ), 2342 2343MODEL_TENSOR .A_ENC_ATTN_V : ( 2344"audio_tower.layers.{bid}.self_attn.v_proj" ,# ultravox 2345"audio_encoder.dots_encoder.speech_encoder.layers.{bid}.self_attn.v_proj" ,# dots3note 2346"conformer.layers.{bid}.self_attn.linear_v" ,# lfm2 2347"conformer.layers.{bid}.attention.attn.v_proj" ,# gemma3n 2348"conformer.layers.{bid}.self_attn.v_proj" ,# gemma4 2349"sound_encoder.encoder.layers.{bid}.self_attn.v_proj" ,# parakeet 2350"encoder.layers.{bid}.attn.to_v" ,# granite_speech (split from to_kv) 2351"encoder.layers.{bid}.self_attn.v_proj" ,# mimo-audio-tokenizer 2352 ), 2353 2354MODEL_TENSOR .A_ENC_ATTN_K_REL : ( 2355"conformer.layers.{bid}.self_attn.relative_k_proj" ,# gemma4 2356 ), 2357 2358MODEL_TENSOR .A_ENC_ATTN_POST_NORM : ( 2359"conformer.layers.{bid}.norm_post_attn" ,# gemma4 2360 ), 2361 2362MODEL_TENSOR .A_ENC_ATTN_PRE_NORM : ( 2363"conformer.layers.{bid}.norm_pre_attn" ,# gemma4 2364 ), 2365 2366MODEL_TENSOR .A_ENC_PER_DIM_SCALE : ( 2367"conformer.layers.{bid}.attention.attn.per_dim_scale" ,# gemma3n 2368"conformer.layers.{bid}.self_attn.per_dim_scale" ,# gemma3n 2369 ), 2370 2371MODEL_TENSOR .A_ENC_LAYER_PRE_NORM : ( 2372"conformer.layers.{bid}.norm" ,# gemma3n 2373 ), 2374 2375MODEL_TENSOR .A_ENC_INPUT_NORM : ( 2376"audio_tower.layers.{bid}.self_attn_layer_norm" ,# ultravox 2377"audio_encoder.dots_encoder.speech_encoder.layers.{bid}.self_attn_layer_norm" ,# dots3note 2378"conformer.layers.{bid}.norm_self_att" ,# lfm2 2379"conformer.layers.{bid}.attention.pre_attn_norm" ,# gemma3n 2380"sound_encoder.encoder.layers.{bid}.norm_self_att" ,# parakeet 2381"encoder.layers.{bid}.attn.pre_norm" ,# granite_speech 2382"encoder.layers.{bid}.self_attn_layer_norm" ,# mimo-audio-tokenizer 2383 ), 2384 2385MODEL_TENSOR .A_ENC_OUTPUT : ( 2386"audio_tower.layers.{bid}.self_attn.out_proj" ,# ultravox 2387"audio_encoder.dots_encoder.speech_encoder.layers.{bid}.self_attn.out_proj" ,# dots3note 2388"conformer.layers.{bid}.self_attn.linear_out" ,# lfm2 2389"conformer.layers.{bid}.attention.post" ,# gemma3n 2390"conformer.layers.{bid}.self_attn.post" ,# gemma4 2391"sound_encoder.encoder.layers.{bid}.self_attn.o_proj" ,# parakeet 2392"encoder.layers.{bid}.attn.to_out" ,# granite_speech 2393"encoder.layers.{bid}.self_attn.out_proj" ,# mimo-audio-tokenizer 2394 ), 2395 2396MODEL_TENSOR .A_ENC_OUTPUT_NORM : ( 2397"audio_tower.layers.{bid}.final_layer_norm" ,# ultravox 2398"audio_encoder.dots_encoder.speech_encoder.layers.{bid}.final_layer_norm" ,# dots3note 2399"conformer.layers.{bid}.norm_out" ,# lfm2 2400"conformer.layers.{bid}.attention.post_norm" ,# gemma3n 2401"sound_encoder.encoder.layers.{bid}.norm_out" ,# parakeet 2402"encoder.layers.{bid}.post_norm" ,# granite_speech 2403"encoder.layers.{bid}.final_layer_norm" ,# mimo-audio-tokenizer 2404 ), 2405 2406MODEL_TENSOR .A_ENC_FFN_NORM : ( 2407"conformer.layers.{bid}.norm_feed_forward1" ,# lfm2 2408"conformer.layers.{bid}.ffw_layer_start.pre_layer_norm" ,# gemma3n 2409"conformer.layers.{bid}.feed_forward1.pre_layer_norm" ,# gemma4 2410"sound_encoder.encoder.layers.{bid}.norm_feed_forward1" ,# parakeet 2411"encoder.layers.{bid}.ff1.pre_norm" ,# granite_speech 2412 ), 2413 2414MODEL_TENSOR .A_ENC_FFN_POST_NORM : ( 2415"conformer.layers.{bid}.ffw_layer_start.post_layer_norm" ,# gemma3n 2416"conformer.layers.{bid}.feed_forward1.post_layer_norm" ,# gemma4 2417 ), 2418 2419MODEL_TENSOR .A_ENC_FFN_SCALE : ( 2420"conformer.layers.{bid}.ffw_layer_start.post_layer_scale" ,# gemma3n 2421 ), 2422 2423MODEL_TENSOR .A_ENC_FFN_UP : ( 2424"audio_encoder.dots_encoder.speech_encoder.layers.{bid}.fc1_up" ,# dots3note (split from fc1 in conversion code) 2425"audio_tower.layers.{bid}.fc1" ,# ultravox 2426"conformer.layers.{bid}.feed_forward1.linear1" ,# lfm2 2427"conformer.layers.{bid}.ffw_layer_start.ffw_layer_1" ,# gemma3n 2428"conformer.layers.{bid}.feed_forward1.ffw_layer_1" ,# gemma4 2429"sound_encoder.encoder.layers.{bid}.feed_forward1.linear1" ,# parakeet 2430"encoder.layers.{bid}.ff1.up_proj" ,# granite_speech 2431"encoder.layers.{bid}.fc1" ,# mimo-audio-tokenizer 2432 ), 2433 2434MODEL_TENSOR .A_ENC_FFN_GATE : ( 2435"audio_encoder.dots_encoder.speech_encoder.layers.{bid}.fc1_gate" ,# dots3note (split from fc1 in conversion code) 2436 ), 2437 2438MODEL_TENSOR .A_ENC_FFN_DOWN : ( 2439"audio_encoder.dots_encoder.speech_encoder.layers.{bid}.fc2" ,# dots3note 2440"audio_tower.layers.{bid}.fc2" ,# ultravox 2441"conformer.layers.{bid}.feed_forward1.linear2" ,# lfm2 2442"conformer.layers.{bid}.ffw_layer_start.ffw_layer_2" ,# gemma3n 2443"conformer.layers.{bid}.feed_forward1.ffw_layer_2" ,# gemma4 2444"sound_encoder.encoder.layers.{bid}.feed_forward1.linear2" ,# parakeet 2445"encoder.layers.{bid}.ff1.down_proj" ,# granite_speech 2446"encoder.layers.{bid}.fc2" ,# mimo-audio-tokenizer 2447 ), 2448 2449MODEL_TENSOR .A_ENC_FFN_UP_1 : ( 2450"conformer.layers.{bid}.feed_forward2.linear1" ,# lfm2 2451"conformer.layers.{bid}.ffw_layer_end.ffw_layer_1" ,# gemma3n 2452"conformer.layers.{bid}.feed_forward2.ffw_layer_1" ,# gemma4 2453"sound_encoder.encoder.layers.{bid}.feed_forward2.linear1" ,# parakeet 2454"encoder.layers.{bid}.ff2.up_proj" ,# granite_speech 2455 ), 2456 2457MODEL_TENSOR .A_ENC_FFN_DOWN_1 : ( 2458"conformer.layers.{bid}.feed_forward2.linear2" ,# lfm2 2459"conformer.layers.{bid}.ffw_layer_end.ffw_layer_2" ,# gemma3n 2460"conformer.layers.{bid}.feed_forward2.ffw_layer_2" ,# gemma4 2461"sound_encoder.encoder.layers.{bid}.feed_forward2.linear2" ,# parakeet 2462"encoder.layers.{bid}.ff2.down_proj" ,# granite_speech 2463 ), 2464 2465MODEL_TENSOR .A_ENC_FFN_NORM_1 : ( 2466"conformer.layers.{bid}.norm_feed_forward2" ,# lfm2 2467"conformer.layers.{bid}.ffw_layer_end.pre_layer_norm" ,# gemma3n 2468"conformer.layers.{bid}.feed_forward2.pre_layer_norm" ,# gemma4 2469"sound_encoder.encoder.layers.{bid}.norm_feed_forward2" ,# parakeet 2470"encoder.layers.{bid}.ff2.pre_norm" ,# granite_speech 2471 ), 2472 2473MODEL_TENSOR .A_ENC_DOWNSAMPLE_CONV : ( 2474"encoder.down_sample_layer.0" ,# mimo-audio-tokenizer 2475 ), 2476 2477MODEL_TENSOR .A_ENC_DOWNSAMPLE_NORM : ( 2478"encoder.down_sample_norm" ,# mimo-audio-tokenizer 2479 ), 2480 2481# note: the raw per-quantizer "encoder.quantizer.vq.layers.{i}._codebook.embed" 2482# tensors are merged (padded + stacked, like MoE experts) into this single 3D 2483# tensor in conversion code, so no raw-name mapping is registered here. 2484MODEL_TENSOR .A_ENC_RVQ_CODEBOOK : (), 2485 2486MODEL_TENSOR .A_ENC_FFN_POST_NORM_1 : ( 2487"conformer.layers.{bid}.ffw_layer_end.post_layer_norm" ,# gemma3n 2488"conformer.layers.{bid}.feed_forward2.post_layer_norm" ,# gemma4 2489 ), 2490 2491MODEL_TENSOR .A_ENC_FFN_SCALE_1 : ( 2492"conformer.layers.{bid}.ffw_layer_end.post_layer_scale" ,# gemma3n 2493 ), 2494 2495MODEL_TENSOR .A_ENC_LINEAR_POS : ( 2496"conformer.layers.{bid}.self_attn.linear_pos" ,# lfm2 2497"conformer.layers.{bid}.attention.attn.relative_position_embedding.pos_proj" ,# gemma3n 2498"sound_encoder.encoder.layers.{bid}.self_attn.relative_k_proj" ,# parakeet 2499 ), 2500 2501MODEL_TENSOR .A_ENC_POS_BIAS_U : ( 2502"conformer.layers.{bid}.self_attn.pos_bias_u" ,# lfm2 2503"sound_encoder.encoder.layers.{bid}.self_attn.bias_u" ,# parakeet 2504 ), 2505 2506MODEL_TENSOR .A_ENC_POS_BIAS_V : ( 2507"conformer.layers.{bid}.self_attn.pos_bias_v" ,# lfm2 2508"sound_encoder.encoder.layers.{bid}.self_attn.bias_v" ,# parakeet 2509 ), 2510 2511MODEL_TENSOR .A_ENC_OUT : ( 2512"conformer.pre_encode.out" ,# lfm2 2513"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) 2514"conformer.output_proj" ,# gemma4 2515"sound_encoder.encoder.subsampling.linear" ,# parakeet 2516 ), 2517 2518# note: some tensors below has "audio." pseudo-prefix, to prevent conflicts with vision tensors 2519# this prefix is added in the conversion code in modify_tensors() 2520 2521MODEL_TENSOR .A_MMPROJ : ( 2522"audio.multi_modal_projector.linear_{bid}" ,# ultravox, meralion 2523"audio_encoder.audio_adapter.proj.{bid}" ,# dots3note (proj.1, proj.3) 2524"audio_adapter.model.{bid}" ,# lfm2 2525"audio_tower.proj{bid}" ,# qwen3omni 2526"sound_projection.linear{bid}" ,# parakeet (linear1, linear2) 2527 ), 2528 2529MODEL_TENSOR .A_MMPROJ_FC : ( 2530"audio.multi_modal_projector.linear" ,# qwen2audio 2531"audio_tower.proj" ,# qwen2omni 2532"model.audio_tower.output_proj" ,# gemma4 2533"speaker_encoder.fc" ,# qwen3tts speaker encoder: final speaker embedding projection 2534 ), 2535 2536MODEL_TENSOR .A_MM_NORM_PRE : ( 2537"audio.multi_modal_projector.ln_pre" ,# ultravox 2538"audio_encoder.audio_adapter.proj.0" ,# dots3note 2539"sound_projection.norm" ,# parakeet 2540 ), 2541 2542MODEL_TENSOR .A_MM_NORM_MID : ( 2543"audio.multi_modal_projector.ln_mid" ,# ultravox 2544 ), 2545 2546# note: the raw per-channel "speech_embeddings.{i}" tensors are merged 2547# (stacked, like MoE experts) into this single 3D tensor in conversion 2548# code, so no raw-name mapping is registered here. 2549MODEL_TENSOR .A_MM_CODE_EMBD : (), 2550 2551MODEL_TENSOR .A_MM_LOCAL_ATTN_Q : ( 2552"audio_encoder.input_local_transformer.layers.{bid}.self_attn.q_proj" ,# mimo-v2.5 2553 ), 2554MODEL_TENSOR .A_MM_LOCAL_ATTN_K : ( 2555"audio_encoder.input_local_transformer.layers.{bid}.self_attn.k_proj" ,# mimo-v2.5 2556 ), 2557MODEL_TENSOR .A_MM_LOCAL_ATTN_V : ( 2558"audio_encoder.input_local_transformer.layers.{bid}.self_attn.v_proj" ,# mimo-v2.5 2559 ), 2560MODEL_TENSOR .A_MM_LOCAL_ATTN_OUT : ( 2561"audio_encoder.input_local_transformer.layers.{bid}.self_attn.o_proj" ,# mimo-v2.5 2562 ), 2563MODEL_TENSOR .A_MM_LOCAL_FFN_GATE : ( 2564"audio_encoder.input_local_transformer.layers.{bid}.mlp.gate_proj" ,# mimo-v2.5 2565 ), 2566MODEL_TENSOR .A_MM_LOCAL_FFN_UP : ( 2567"audio_encoder.input_local_transformer.layers.{bid}.mlp.up_proj" ,# mimo-v2.5 2568 ), 2569MODEL_TENSOR .A_MM_LOCAL_FFN_DOWN : ( 2570"audio_encoder.input_local_transformer.layers.{bid}.mlp.down_proj" ,# mimo-v2.5 2571 ), 2572MODEL_TENSOR .A_MM_LOCAL_LN1 : ( 2573"audio_encoder.input_local_transformer.layers.{bid}.input_layernorm" ,# mimo-v2.5 2574 ), 2575MODEL_TENSOR .A_MM_LOCAL_LN2 : ( 2576"audio_encoder.input_local_transformer.layers.{bid}.post_attention_layernorm" ,# mimo-v2.5 2577 ), 2578MODEL_TENSOR .A_MM_LOCAL_NORM : ( 2579"audio_encoder.input_local_transformer.norm" ,# mimo-v2.5 2580 ), 2581 2582MODEL_TENSOR .A_ENC_CONV_DW : ( 2583"conformer.layers.{bid}.conv.depthwise_conv" ,# lfm2 2584"conformer.layers.{bid}.lconv1d.depthwise_conv1d" ,# gemma3n 2585"sound_encoder.encoder.layers.{bid}.conv.depthwise_conv" ,# parakeet 2586"encoder.layers.{bid}.conv.depth_conv.conv" ,# granite_speech 2587 ), 2588 2589MODEL_TENSOR .A_ENC_CONV_NORM : ( 2590"conformer.layers.{bid}.conv.batch_norm" ,# lfm2 2591"conformer.layers.{bid}.lconv1d.pre_layer_norm" ,# gemma3n 2592"sound_encoder.encoder.layers.{bid}.conv.norm" ,# parakeet 2593 ), 2594 2595MODEL_TENSOR .A_ENC_CONV_NORM_MEAN : ( 2596"sound_encoder.encoder.layers.{bid}.conv.norm.running_mean" ,# parakeet 2597 ), 2598 2599MODEL_TENSOR .A_ENC_CONV_NORM_VAR : ( 2600"sound_encoder.encoder.layers.{bid}.conv.norm.running_var" ,# parakeet 2601"encoder.layers.{bid}.conv.batch_norm" ,# granite_speech 2602 ), 2603 2604MODEL_TENSOR .A_ENC_CONV_PW1 : ( 2605"conformer.layers.{bid}.conv.pointwise_conv1" ,# lfm2 2606"conformer.layers.{bid}.lconv1d.linear_start" ,# gemma3n 2607"sound_encoder.encoder.layers.{bid}.conv.pointwise_conv1" ,# parakeet 2608"encoder.layers.{bid}.conv.up_conv" ,# granite_speech 2609"speaker_encoder.blocks.{bid}.tdnn1.conv" ,# qwen3tts speaker encoder 2610 ), 2611 2612MODEL_TENSOR .A_ENC_CONV_PW2 : ( 2613"conformer.layers.{bid}.conv.pointwise_conv2" ,# lfm2 2614"conformer.layers.{bid}.lconv1d.linear_end" ,# gemma3n 2615"sound_encoder.encoder.layers.{bid}.conv.pointwise_conv2" ,# parakeet 2616"encoder.layers.{bid}.conv.down_conv" ,# granite_speech 2617"speaker_encoder.blocks.{bid}.tdnn2.conv" ,# qwen3tts speaker encoder 2618 ), 2619 2620MODEL_TENSOR .A_ENC_SE_CONV1 : ( 2621"speaker_encoder.blocks.{bid}.se_block.conv1" ,# qwen3tts 2622 ), 2623 2624MODEL_TENSOR .A_ENC_SE_CONV2 : ( 2625"speaker_encoder.blocks.{bid}.se_block.conv2" ,# qwen3tts 2626 ), 2627 2628MODEL_TENSOR .A_ENC_ASP_ATTN : ( 2629"speaker_encoder.asp.conv" ,# qwen3tts 2630 ), 2631 2632MODEL_TENSOR .A_ENC_ASP_TDNN : ( 2633"speaker_encoder.asp.tdnn.conv" ,# qwen3tts 2634 ), 2635 2636MODEL_TENSOR .A_ENC_NORM_CONV : ( 2637"conformer.layers.{bid}.norm_conv" ,# lfm2 2638"conformer.layers.{bid}.lconv1d.conv_norm" ,# gemma3n 2639"sound_encoder.encoder.layers.{bid}.norm_conv" ,# parakeet 2640"encoder.layers.{bid}.conv.norm" ,# granite_speech 2641 ), 2642 2643MODEL_TENSOR .A_PER_DIM_K_SCALE : ( 2644"conformer.layers.{bid}.attention.attn.per_dim_key_scale" ,# gemma4 2645 ), 2646 2647MODEL_TENSOR .A_PER_DIM_SCALE : ( 2648"conformer.layers.{bid}.attention.attn.per_dim_scale" ,# gemma4 2649 ), 2650 2651MODEL_TENSOR .A_ENC_MEL_FILTERS : ( 2652"sound_encoder.encoder.feature_extractor.featurizer.fb" ,# parakeet 2653 ), 2654 2655MODEL_TENSOR .A_ENC_WINDOW : ( 2656"sound_encoder.encoder.feature_extractor.featurizer.window" ,# parakeet 2657 ), 2658 2659MODEL_TENSOR .A_MM_EMBEDDING : ( 2660"model.embed_audio.embedding" ,# gemma3n 2661 ), 2662MODEL_TENSOR .A_MM_HARD_EMB_NORM : ( 2663"model.embed_audio.hard_embedding_norm" ,# gemma3n 2664 ), 2665MODEL_TENSOR .A_MM_INP_PROJ : ( 2666"model.embed_audio.embedding_projection" ,# gemma3n 2667 ), 2668MODEL_TENSOR .A_MM_SOFT_EMB_NORM : ( 2669"model.embed_audio.soft_embedding_norm" ,# gemma3n 2670 ), 2671 2672MODEL_TENSOR .A_ENC_ATTN_REL_POS_EMB : ( 2673"encoder.layers.{bid}.attn.rel_pos_emb.weight" , 2674 ), 2675 2676MODEL_TENSOR .A_QF_SELF_ATTN_Q : ( 2677"projector.qformer.encoder.layer.{bid}.attention.attention.query" , 2678 ), 2679 2680MODEL_TENSOR .A_QF_SELF_ATTN_K : ( 2681"projector.qformer.encoder.layer.{bid}.attention.attention.key" , 2682 ), 2683 2684MODEL_TENSOR .A_QF_SELF_ATTN_V : ( 2685"projector.qformer.encoder.layer.{bid}.attention.attention.value" , 2686 ), 2687 2688MODEL_TENSOR .A_QF_SELF_ATTN_O : ( 2689"projector.qformer.encoder.layer.{bid}.attention.output.dense" , 2690 ), 2691 2692MODEL_TENSOR .A_QF_SELF_ATTN_NORM : ( 2693"projector.qformer.encoder.layer.{bid}.attention.output.LayerNorm" , 2694 ), 2695 2696MODEL_TENSOR .A_QF_CROSS_ATTN_Q : ( 2697"projector.qformer.encoder.layer.{bid}.crossattention.attention.query" , 2698 ), 2699 2700MODEL_TENSOR .A_QF_CROSS_ATTN_K : ( 2701"projector.qformer.encoder.layer.{bid}.crossattention.attention.key" , 2702 ), 2703 2704MODEL_TENSOR .A_QF_CROSS_ATTN_V : ( 2705"projector.qformer.encoder.layer.{bid}.crossattention.attention.value" , 2706 ), 2707 2708MODEL_TENSOR .A_QF_CROSS_ATTN_O : ( 2709"projector.qformer.encoder.layer.{bid}.crossattention.output.dense" , 2710 ), 2711 2712MODEL_TENSOR .A_QF_CROSS_ATTN_NORM : ( 2713"projector.qformer.encoder.layer.{bid}.crossattention.output.LayerNorm" , 2714 ), 2715 2716MODEL_TENSOR .A_QF_FFN_UP : ( 2717"projector.qformer.encoder.layer.{bid}.intermediate_query.dense" , 2718 ), 2719 2720MODEL_TENSOR .A_QF_FFN_DOWN : ( 2721"projector.qformer.encoder.layer.{bid}.output_query.dense" , 2722 ), 2723 2724MODEL_TENSOR .A_QF_FFN_NORM : ( 2725"projector.qformer.encoder.layer.{bid}.output_query.LayerNorm" , 2726 ), 2727 2728# NextN/MTP tensors 2729MODEL_TENSOR .NEXTN_PROJ_PRE : ( 2730"pre_projection" , 2731 ), 2732 2733MODEL_TENSOR .NEXTN_PROJ_POST : ( 2734"post_projection" , 2735 ), 2736 2737MODEL_TENSOR .NEXTN_EH_PROJ : ( 2738"model.layers.{bid}.eh_proj" , 2739 ), 2740 2741MODEL_TENSOR .NEXTN_EMBED_TOKENS : ( 2742"model.layers.{bid}.embed_tokens" , 2743 ), 2744 2745MODEL_TENSOR .NEXTN_ENORM : ( 2746"model.layers.{bid}.enorm" , 2747 ), 2748 2749MODEL_TENSOR .NEXTN_HNORM : ( 2750"model.layers.{bid}.hnorm" , 2751 ), 2752 2753MODEL_TENSOR .NEXTN_SHARED_HEAD_HEAD : ( 2754"model.layers.{bid}.shared_head.head" , 2755 ), 2756 2757MODEL_TENSOR .NEXTN_SHARED_HEAD_NORM : ( 2758"model.layers.{bid}.shared_head.norm" , 2759 ), 2760 } 2761 2762# architecture-specific block mappings 2763arch_block_mappings_cfg :dict [MODEL_ARCH ,dict [MODEL_TENSOR ,tuple [str , ...]]]= { 2764MODEL_ARCH .ARCTIC : { 2765MODEL_TENSOR .FFN_NORM : ( 2766"model.layers.{bid}.residual_layernorm" , 2767 ), 2768MODEL_TENSOR .FFN_NORM_EXP : ( 2769"model.layers.{bid}.post_attention_layernorm" , 2770 ), 2771 }, 2772MODEL_ARCH .QWEN4EXP : { 2773MODEL_TENSOR .HC_ATTN_NORM : ( 2774"model.layers.{bid}.attn_hyper_connection.hc_norm" , 2775 ), 2776MODEL_TENSOR .HC_ATTN_DOWN : ( 2777"model.layers.{bid}.attn_hyper_connection.input_mix_weight_down" , 2778 ), 2779MODEL_TENSOR .HC_ATTN_UP : ( 2780"model.layers.{bid}.attn_hyper_connection.input_mix_weight_up" , 2781 ), 2782MODEL_TENSOR .HC_ATTN_INJECT : ( 2783"model.layers.{bid}.attn_hyper_connection.block_inject_weight" , 2784 ), 2785MODEL_TENSOR .HC_FFN_NORM : ( 2786"model.layers.{bid}.mlp_hyper_connection.hc_norm" , 2787 ), 2788MODEL_TENSOR .HC_FFN_DOWN : ( 2789"model.layers.{bid}.mlp_hyper_connection.input_mix_weight_down" , 2790 ), 2791MODEL_TENSOR .HC_FFN_UP : ( 2792"model.layers.{bid}.mlp_hyper_connection.input_mix_weight_up" , 2793 ), 2794MODEL_TENSOR .HC_FFN_INJECT : ( 2795"model.layers.{bid}.mlp_hyper_connection.block_inject_weight" , 2796 ), 2797MODEL_TENSOR .HC_HEAD_NORM : ( 2798"model.hyper_connection_mixer.hc_norm" , 2799 ), 2800MODEL_TENSOR .HC_HEAD_DOWN : ( 2801"model.hyper_connection_mixer.input_mix_weight_down" , 2802 ), 2803MODEL_TENSOR .HC_HEAD_UP : ( 2804"model.hyper_connection_mixer.input_mix_weight_up" , 2805 ), 2806MODEL_TENSOR .INDEXER_Q_NORM : ( 2807"model.layers.{bid}.self_attn.indexer.q_layernorm" , 2808 ), 2809MODEL_TENSOR .INDEXER_K_NORM : ( 2810"model.layers.{bid}.self_attn.indexer.k_layernorm" , 2811 ), 2812MODEL_TENSOR .PLE_KEY : ( 2813"model.layers.{bid}.ple.key_proj" , 2814 ), 2815MODEL_TENSOR .PLE_VALUE : ( 2816"model.layers.{bid}.ple.value_proj" , 2817 ), 2818MODEL_TENSOR .PLE_NORM_KEY : ( 2819"model.layers.{bid}.ple.norm_key" , 2820 ), 2821MODEL_TENSOR .PLE_NORM_QUERY : ( 2822"model.layers.{bid}.ple.norm_query" , 2823 ), 2824MODEL_TENSOR .PLE_NORM_CONV : ( 2825"model.layers.{bid}.ple.norm_conv" , 2826 ), 2827MODEL_TENSOR .PLE_CONV1D : ( 2828"model.layers.{bid}.ple.conv1d" , 2829 ), 2830 }, 2831 } 2832 2833mapping :dict [str ,tuple [MODEL_TENSOR ,str ]] 2834 2835def __init__ (self ,arch :MODEL_ARCH ,n_blocks :int ): 2836self .mapping = {} 2837for tensor ,keys in self .mappings_cfg .items (): 2838if tensor not in MODEL_TENSORS [arch ]: 2839continue 2840tensor_name = TENSOR_NAMES [tensor ] 2841self .mapping [tensor_name ]= (tensor ,tensor_name ) 2842for key in keys : 2843self .mapping [key ]= (tensor ,tensor_name ) 2844if arch in self .arch_block_mappings_cfg : 2845self .block_mappings_cfg .update (self .arch_block_mappings_cfg [arch ]) 2846for bid in range (n_blocks ): 2847for tensor ,keys in self .block_mappings_cfg .items (): 2848if tensor not in MODEL_TENSORS [arch ]: 2849continue 2850 2851tensor_name = TENSOR_NAMES [tensor ].format (bid = bid ) 2852self .mapping [tensor_name ]= (tensor ,tensor_name ) 2853for key in keys : 2854key = key .format (bid = bid ) 2855self .mapping [key ]= (tensor ,tensor_name ) 2856 2857def get_type_and_name (self ,key :str ,try_suffixes :Sequence [str ]= ())-> tuple [MODEL_TENSOR ,str ]| None : 2858result = self .mapping .get (key ) 2859if result is not None : 2860return result 2861for suffix in try_suffixes : 2862if key .endswith (suffix ): 2863result = self .mapping .get (key [:- len (suffix )]) 2864if result is not None : 2865return result [0 ],result [1 ]+ suffix 2866return None 2867 2868def get_name (self ,key :str ,try_suffixes :Sequence [str ]= ())-> str | None : 2869result = self .get_type_and_name (key ,try_suffixes = try_suffixes ) 2870if result is None : 2871return None 2872return result [1 ] 2873 2874def get_type (self ,key :str ,try_suffixes :Sequence [str ]= ())-> MODEL_TENSOR | None : 2875result = self .get_type_and_name (key ,try_suffixes = try_suffixes ) 2876if result is None : 2877return None 2878return result [0 ] 2879 2880def __getitem__ (self ,key :str )-> str : 2881try : 2882return self .mapping [key ][1 ] 2883except KeyError : 2884raise KeyError (key ) 2885 2886def __contains__ (self ,key :str )-> bool : 2887return key in self .mapping 2888 2889def __repr__ (self )-> str : 2890return repr (self .mapping ) 2891 2892 2893def get_tensor_name_map (arch :MODEL_ARCH ,n_blocks :int )-> TensorNameMap : 2894return TensorNameMap (arch ,n_blocks )