char-fork/llama.cpp

git clone https://git.t4t.associates/char-fork/llama.cpp

Alexllama: add Maple 20B-A1B ternary MoE architecture (CPU) (#27000)3d10bcd19

char/aliceai-t5-moe
227.5 KiB5967 linesraw
1from __future__ import annotations
2
3from enum import Enum, IntEnum, auto
4from typing import Any
5
6#
7# constants
8#
9
10GGUF_MAGIC             = 0x46554747  # "GGUF"
11GGUF_VERSION           = 3
12GGUF_DEFAULT_ALIGNMENT = 32
13GGML_QUANT_VERSION     = 2  # GGML_QNT_VERSION from ggml.h
14GGML_MAX_DIMS          = 4  # GGML_MAX_DIMS from ggml.h
15
16#
17# metadata keys
18#
19
20
21class Keys:
22    class General:
23        TYPE                       = "general.type"
24        ARCHITECTURE               = "general.architecture"
25        QUANTIZATION_VERSION       = "general.quantization_version"
26        ALIGNMENT                  = "general.alignment"
27        FILE_TYPE                  = "general.file_type"
28
29        # Recommended Sampler Parameters
30        SAMPLING_SEQUENCE           = "general.sampling.sequence"
31        SAMPLING_TOP_K              = "general.sampling.top_k"
32        SAMPLING_TOP_P              = "general.sampling.top_p"
33        SAMPLING_MIN_P              = "general.sampling.min_p"
34        SAMPLING_XTC_PROBABILITY    = "general.sampling.xtc_probability"
35        SAMPLING_XTC_THRESHOLD      = "general.sampling.xtc_threshold"
36        SAMPLING_TEMP               = "general.sampling.temp"
37        SAMPLING_PENALTY_LAST_N     = "general.sampling.penalty_last_n"
38        SAMPLING_PENALTY_REPEAT     = "general.sampling.penalty_repeat"
39        SAMPLING_MIROSTAT           = "general.sampling.mirostat"
40        SAMPLING_MIROSTAT_TAU       = "general.sampling.mirostat_tau"
41        SAMPLING_MIROSTAT_ETA       = "general.sampling.mirostat_eta"
42
43        # Authorship Metadata
44        NAME                       = "general.name"
45        AUTHOR                     = "general.author"
46        VERSION                    = "general.version"
47        ORGANIZATION               = "general.organization"
48
49        FINETUNE                   = "general.finetune"
50        BASENAME                   = "general.basename"
51
52        DESCRIPTION                = "general.description"
53        QUANTIZED_BY               = "general.quantized_by"
54
55        SIZE_LABEL                 = "general.size_label"
56
57        # Licensing details
58        LICENSE                    = "general.license"
59        LICENSE_NAME               = "general.license.name"
60        LICENSE_LINK               = "general.license.link"
61
62        # Typically represents the converted GGUF repo (Unless native)
63        URL                        = "general.url" # Model Website/Paper
64        DOI                        = "general.doi"
65        UUID                       = "general.uuid"
66        REPO_URL                   = "general.repo_url" # Model Source Repository (git/svn/etc...)
67
68        # Model Source during conversion
69        SOURCE_URL                 = "general.source.url" # Model Website/Paper
70        SOURCE_DOI                 = "general.source.doi"
71        SOURCE_UUID                = "general.source.uuid"
72        SOURCE_REPO_URL            = "general.source.repo_url" # Model Source Repository (git/svn/etc...)
73
74        # Base Model Source. There can be more than one source if it's a merged
75        # model like with 'Mistral-7B-Merge-14-v0.1'. This will assist in
76        # tracing linage of models as it is finetuned or merged over time.
77        BASE_MODEL_COUNT           = "general.base_model.count"
78        BASE_MODEL_NAME            = "general.base_model.{id}.name"
79        BASE_MODEL_AUTHOR          = "general.base_model.{id}.author"
80        BASE_MODEL_VERSION         = "general.base_model.{id}.version"
81        BASE_MODEL_ORGANIZATION    = "general.base_model.{id}.organization"
82        BASE_MODEL_DESCRIPTION     = "general.base_model.{id}.description"
83        BASE_MODEL_URL             = "general.base_model.{id}.url" # Model Website/Paper
84        BASE_MODEL_DOI             = "general.base_model.{id}.doi"
85        BASE_MODEL_UUID            = "general.base_model.{id}.uuid"
86        BASE_MODEL_REPO_URL        = "general.base_model.{id}.repo_url" # Model Source Repository (git/svn/etc...)
87
88        # Dataset Source
89        DATASET_COUNT           = "general.dataset.count"
90        DATASET_NAME            = "general.dataset.{id}.name"
91        DATASET_AUTHOR          = "general.dataset.{id}.author"
92        DATASET_VERSION         = "general.dataset.{id}.version"
93        DATASET_ORGANIZATION    = "general.dataset.{id}.organization"
94        DATASET_DESCRIPTION     = "general.dataset.{id}.description"
95        DATASET_URL             = "general.dataset.{id}.url" # Model Website/Paper
96        DATASET_DOI             = "general.dataset.{id}.doi"
97        DATASET_UUID            = "general.dataset.{id}.uuid"
98        DATASET_REPO_URL        = "general.dataset.{id}.repo_url" # Model Source Repository (git/svn/etc...)
99
100        # Array based KV stores
101        TAGS                       = "general.tags"
102        LANGUAGES                  = "general.languages"
103
104    class LLM:
105        VOCAB_SIZE                        = "{arch}.vocab_size"
106        CONTEXT_LENGTH                    = "{arch}.context_length"
107        EMBEDDING_LENGTH                  = "{arch}.embedding_length"
108        EMBEDDING_LENGTH_OUT              = "{arch}.embedding_length_out"
109        FEATURES_LENGTH                   = "{arch}.features_length"
110        BLOCK_COUNT                       = "{arch}.block_count"
111        LEADING_DENSE_BLOCK_COUNT         = "{arch}.leading_dense_block_count"
112        FEED_FORWARD_LENGTH               = "{arch}.feed_forward_length"
113        EXPERT_FEED_FORWARD_LENGTH        = "{arch}.expert_feed_forward_length"
114        EXPERT_SHARED_FEED_FORWARD_LENGTH = "{arch}.expert_shared_feed_forward_length"
115        EXPERT_CHUNK_FEED_FORWARD_LENGTH  = "{arch}.expert_chunk_feed_forward_length"
116        USE_PARALLEL_RESIDUAL             = "{arch}.use_parallel_residual"
117        TENSOR_DATA_LAYOUT                = "{arch}.tensor_data_layout"
118        EXPERT_COUNT                      = "{arch}.expert_count"
119        EXPERT_USED_COUNT                 = "{arch}.expert_used_count"
120        EXPERT_SHARED_COUNT               = "{arch}.expert_shared_count"
121        EXPERT_GROUP_COUNT                = "{arch}.expert_group_count"
122        EXPERT_GROUP_USED_COUNT           = "{arch}.expert_group_used_count"
123        EXPERT_WEIGHTS_SCALE              = "{arch}.expert_weights_scale"
124        EXPERT_WEIGHTS_NORM               = "{arch}.expert_weights_norm"
125        EXPERT_GATING_FUNC                = "{arch}.expert_gating_func"
126        EXPERT_GROUP_SCALE                = "{arch}.expert_group_scale"
127        EXPERT_LATENT_LENGTH              = "{arch}.expert_latent_length"
128        EXPERTS_PER_GROUP                 = "{arch}.experts_per_group"
129        MOE_EVERY_N_LAYERS                = "{arch}.moe_every_n_layers"
130        MOE_LATENT_SIZE                   = "{arch}.moe_latent_size"
131        NEXTN_PREDICT_LAYERS              = "{arch}.nextn_predict_layers"
132        NUM_DEEPSTACK_LAYERS              = "{arch}.n_deepstack_layers"
133        DEEPSTACK_MAPPING                 = "{arch}.deepstack_mapping"
134        POOLING_TYPE                      = "{arch}.pooling_type"
135        LOGIT_SCALE                       = "{arch}.logit_scale"
136        DECODER_START_TOKEN_ID            = "{arch}.decoder_start_token_id"
137        DECODER_BLOCK_COUNT               = "{arch}.decoder_block_count"
138        ATTN_LOGIT_SOFTCAPPING            = "{arch}.attn_logit_softcapping"
139        ROUTER_LOGIT_SOFTCAPPING          = "{arch}.router_logit_softcapping"
140        FINAL_LOGIT_SOFTCAPPING           = "{arch}.final_logit_softcapping"
141        SWIN_NORM                         = "{arch}.swin_norm"
142        RESCALE_EVERY_N_LAYERS            = "{arch}.rescale_every_n_layers"
143        TIME_MIX_EXTRA_DIM                = "{arch}.time_mix_extra_dim"
144        TIME_DECAY_EXTRA_DIM              = "{arch}.time_decay_extra_dim"
145        RESIDUAL_SCALE                    = "{arch}.residual_scale"
146        EMBEDDING_SCALE                   = "{arch}.embedding_scale"
147        TOKEN_SHIFT_COUNT                 = "{arch}.token_shift_count"
148        INTERLEAVE_MOE_LAYER_STEP         = "{arch}.interleave_moe_layer_step"
149        FULL_ATTENTION_INTERVAL           = "{arch}.full_attention_interval"
150        NUM_LOOPS                         = "{arch}.num_loops"
151        SKIP_LOOP_FINAL_NORM              = "{arch}.skip_loop_final_norm"
152        HASH_LAYER_COUNT                  = "{arch}.hash_layer_count"
153        ACTIVATION_SPARSITY_SCALE         = "{arch}.activation_sparsity_scale"
154        ALTUP_ACTIVE_IDX                  = "{arch}.altup.active_idx"
155        ALTUP_NUM_INPUTS                  = "{arch}.altup.num_inputs"
156        EMBD_LENGTH_PER_LAYER_INP         = "{arch}.embedding_length_per_layer_input"
157        SWIGLU_CLAMP_EXP                  = "{arch}.swiglu_clamp_exp"
158        SWIGLU_CLAMP_SHEXP                = "{arch}.swiglu_clamp_shexp"
159        HIDDEN_ACT                        = "{arch}.hidden_activation"
160        DENSE_FEAT_IN_SIZE                = "{arch}.{dense}_feat_in"
161        DENSE_FEAT_OUT_SIZE               = "{arch}.{dense}_feat_out"
162        TARGET_LAYERS                     = "{arch}.target_layers"
163        TARGET_HIDDEN_SIZE                = "{arch}.target_hidden_size"
164        BLOCK_SIZE                        = "{arch}.block_size"
165        CONV_KERNEL_SIZE                  = "{arch}.conv_kernel_size"
166        CONV_GROUP_SIZE                   = "{arch}.conv_group_size"
167        SELECTOR_RANK                     = "{arch}.selector_rank"
168        SELECTOR_TOP_K                    = "{arch}.selector_top_k"
169        SAMPLE_FROM_ANCHOR                = "{arch}.sample_from_anchor"
170        HAS_CONFIDENCE_HEAD               = "{arch}.has_confidence_head"
171        NORM_BEFORE_RESIDUAL              = "{arch}.norm_before_residual"
172        NORM_BEFORE_FC                    = "{arch}.norm_before_fc"
173
174    class Adapters:
175        COUNT                = "{arch}.adapters.count"
176        TOKEN_IDS_ACTIVATE   = "{arch}.adapters.token_ids_activate"
177        TOKEN_IDS_SUBSTITUTE = "{arch}.adapters.token_ids_substitute"
178        LORA_RANK            = "{arch}.adapters.lora_rank"
179        ROUTER_GAIN          = "{arch}.adapters.router_gain"
180
181    class Attention:
182        HEAD_COUNT                   = "{arch}.attention.head_count"
183        HEAD_COUNT_KV                = "{arch}.attention.head_count_kv"
184        MAX_ALIBI_BIAS               = "{arch}.attention.max_alibi_bias"
185        CLAMP_KQV                    = "{arch}.attention.clamp_kqv"
186        KEY_LENGTH                   = "{arch}.attention.key_length"
187        VALUE_LENGTH                 = "{arch}.attention.value_length"
188        LAYERNORM_EPS                = "{arch}.attention.layer_norm_epsilon"
189        LAYERNORM_RMS_EPS            = "{arch}.attention.layer_norm_rms_epsilon"
190        GROUPNORM_EPS                = "{arch}.attention.group_norm_epsilon"
191        GROUPNORM_GROUPS             = "{arch}.attention.group_norm_groups"
192        CAUSAL                       = "{arch}.attention.causal"
193        Q_LORA_RANK                  = "{arch}.attention.q_lora_rank"
194        KV_LORA_RANK                 = "{arch}.attention.kv_lora_rank"
195        DECAY_LORA_RANK              = "{arch}.attention.decay_lora_rank"
196        ICLR_LORA_RANK               = "{arch}.attention.iclr_lora_rank"
197        VALUE_RESIDUAL_MIX_LORA_RANK = "{arch}.attention.value_residual_mix_lora_rank"
198        GATE_LORA_RANK               = "{arch}.attention.gate_lora_rank"
199        REL_BUCKETS_COUNT            = "{arch}.attention.relative_buckets_count"
200        SLIDING_WINDOW               = "{arch}.attention.sliding_window"
201        SCALE                        = "{arch}.attention.scale"
202        OUTPUT_GROUP_COUNT           = "{arch}.attention.output_group_count"
203        OUTPUT_LORA_RANK             = "{arch}.attention.output_lora_rank"
204        OUTPUT_SCALE                 = "{arch}.attention.output_scale"
205        VALUE_SCALE                  = "{arch}.attention.value_scale"
206        COMPRESS_RATIOS              = "{arch}.attention.compress_ratios"
207        COMPRESS_ROPE_FREQ_BASE      = "{arch}.attention.compress_rope_freq_base"
208        TEMPERATURE_LENGTH           = "{arch}.attention.temperature_length"
209        KEY_LENGTH_MLA               = "{arch}.attention.key_length_mla"
210        VALUE_LENGTH_MLA             = "{arch}.attention.value_length_mla"
211        KEY_LENGTH_SWA               = "{arch}.attention.key_length_swa"
212        VALUE_LENGTH_SWA             = "{arch}.attention.value_length_swa"
213        KEY_LENGTH_MLA_SWA           = "{arch}.attention.key_length_mla_swa"
214        VALUE_LENGTH_MLA_SWA         = "{arch}.attention.value_length_mla_swa"
215        KV_LORA_RANK_SWA             = "{arch}.attention.kv_lora_rank_swa"
216        SHARED_KV_LAYERS             = "{arch}.attention.shared_kv_layers"
217        SLIDING_WINDOW_PATTERN       = "{arch}.attention.sliding_window_pattern"
218        RECURRENT_LAYERS             = "{arch}.attention.recurrent_layers"
219        TEMPERATURE_SCALE            = "{arch}.attention.temperature_scale"
220        ROPE_PATTERN                 = "{arch}.attention.rope_pattern"
221
222        class Indexer:
223            HEAD_COUNT = "{arch}.attention.indexer.head_count"
224            KEY_LENGTH = "{arch}.attention.indexer.key_length"
225            TOP_K      = "{arch}.attention.indexer.top_k"
226            BLOCK_SIZE   = "{arch}.attention.indexer.block_size"    # MSA
227            LOCAL_BLOCKS = "{arch}.attention.indexer.local_blocks"  # MSA
228            TYPES      = "{arch}.attention.indexer.types"
229
230    class HyperConnection:
231        COUNT                = "{arch}.hyper_connection.count"
232        SINKHORN_ITERATIONS  = "{arch}.hyper_connection.sinkhorn_iterations"
233        EPSILON              = "{arch}.hyper_connection.epsilon"
234        # scale of the post gate (DeepSeek-V4 hardcodes 2.0)
235        MAGNITUDE            = "{arch}.hyper_connection.magnitude"
236        # absent means the mix projection is full rank (DeepSeek-V4 behaviour)
237        LOW_RANK             = "{arch}.hyper_connection.low_rank"
238
239    class PerLayerEmbedding:
240        LAYERS             = "{arch}.ple.layers"
241        NGRAM_SIZE         = "{arch}.ple.ngram_size"
242        HEADS_PER_NGRAM    = "{arch}.ple.heads_per_ngram"
243        CONV_KERNEL        = "{arch}.ple.conv_kernel"
244        LAYER_MULTIPLIERS  = "{arch}.ple.layer_multipliers"
245        HEAD_OFFSETS       = "{arch}.ple.head_offsets"
246        HEAD_VOCAB_SIZES   = "{arch}.ple.head_vocab_sizes"
247        EOS_TOKEN_ID       = "{arch}.ple.eos_token_id"
248        IMAGE_TOKEN_ID     = "{arch}.ple.image_token_id"
249
250    class Rope:
251        DIMENSION_COUNT           = "{arch}.rope.dimension_count"
252        DIMENSION_COUNT_SWA       = "{arch}.rope.dimension_count_swa"
253        DIMENSION_SECTIONS        = "{arch}.rope.dimension_sections"
254        FREQ_BASE                 = "{arch}.rope.freq_base"
255        FREQ_BASE_SWA             = "{arch}.rope.freq_base_swa"
256        SCALING_TYPE              = "{arch}.rope.scaling.type"
257        SCALING_FACTOR            = "{arch}.rope.scaling.factor"
258        SCALING_ALPHA             = "{arch}.rope.scaling.alpha"
259        SCALING_ATTN_FACTOR       = "{arch}.rope.scaling.attn_factor"
260        SCALING_ORIG_CTX_LEN      = "{arch}.rope.scaling.original_context_length"
261        SCALING_FINETUNED         = "{arch}.rope.scaling.finetuned"
262        SCALING_YARN_LOG_MUL      = "{arch}.rope.scaling.yarn_log_multiplier"
263        SCALING_YARN_EXT_FACTOR   = "{arch}.rope.scaling.yarn_ext_factor"
264        SCALING_YARN_ATTN_FACTOR  = "{arch}.rope.scaling.yarn_attn_factor"
265        SCALING_YARN_BETA_FAST    = "{arch}.rope.scaling.yarn_beta_fast"
266        SCALING_YARN_BETA_SLOW    = "{arch}.rope.scaling.yarn_beta_slow"
267
268    class Activation:
269        SITU_BETA        = "{arch}.activation.situ_beta"
270        SITU_LINEAR_BETA = "{arch}.activation.situ_linear_beta"
271
272    class AttnRes:
273        BLOCK_SIZE = "{arch}.attn_res.block_size"
274
275    class Split:
276        LLM_KV_SPLIT_NO            = "split.no"
277        LLM_KV_SPLIT_COUNT         = "split.count"
278        LLM_KV_SPLIT_TENSORS_COUNT = "split.tensors.count"
279
280    class SSM:
281        CONV_KERNEL    = "{arch}.ssm.conv_kernel"
282        INNER_SIZE     = "{arch}.ssm.inner_size"
283        STATE_SIZE     = "{arch}.ssm.state_size"
284        TIME_STEP_RANK = "{arch}.ssm.time_step_rank"
285        GROUP_COUNT    = "{arch}.ssm.group_count"
286        DT_B_C_RMS     = "{arch}.ssm.dt_b_c_rms"
287
288    class KDA:
289        HEAD_DIM         = "{arch}.kda.head_dim"
290        SAFE_GATE        = "{arch}.kda.safe_gate"
291        GATE_LOWER_BOUND = "{arch}.kda.gate_lower_bound"
292
293    class WKV:
294        HEAD_SIZE = "{arch}.wkv.head_size"
295
296    class PosNet:
297        EMBEDDING_LENGTH = "{arch}.posnet.embedding_length"
298        BLOCK_COUNT      = "{arch}.posnet.block_count"
299
300    class ConvNext:
301        EMBEDDING_LENGTH = "{arch}.convnext.embedding_length"
302        BLOCK_COUNT      = "{arch}.convnext.block_count"
303
304    class Classifier:
305        OUTPUT_LABELS = "{arch}.classifier.output_labels"
306
307    class ShortConv:
308        L_CACHE = "{arch}.shortconv.l_cache"
309
310    class Tokenizer:
311        MODEL                = "tokenizer.ggml.model"
312        PRE                  = "tokenizer.ggml.pre"
313        LIST                 = "tokenizer.ggml.tokens"
314        TOKEN_TYPE           = "tokenizer.ggml.token_type"
315        TOKEN_TYPE_COUNT     = "tokenizer.ggml.token_type_count"  # for BERT-style token types
316        SCORES               = "tokenizer.ggml.scores"
317        MERGES               = "tokenizer.ggml.merges"
318        BOS_ID               = "tokenizer.ggml.bos_token_id"
319        EOS_ID               = "tokenizer.ggml.eos_token_id"
320        EOT_ID               = "tokenizer.ggml.eot_token_id"
321        EOM_ID               = "tokenizer.ggml.eom_token_id"
322        UNK_ID               = "tokenizer.ggml.unknown_token_id"
323        SEP_ID               = "tokenizer.ggml.seperator_token_id"
324        PAD_ID               = "tokenizer.ggml.padding_token_id"
325        MASK_ID              = "tokenizer.ggml.mask_token_id"
326        ADD_BOS              = "tokenizer.ggml.add_bos_token"
327        ADD_EOS              = "tokenizer.ggml.add_eos_token"
328        ADD_SEP              = "tokenizer.ggml.add_sep_token"
329        ADD_PREFIX           = "tokenizer.ggml.add_space_prefix"
330        REMOVE_EXTRA_WS      = "tokenizer.ggml.remove_extra_whitespaces"
331        PRECOMPILED_CHARSMAP = "tokenizer.ggml.precompiled_charsmap"
332        SUPPRESS_TOKENS      = "tokenizer.ggml.suppress_tokens"
333        HF_JSON              = "tokenizer.huggingface.json"
334        RWKV                 = "tokenizer.rwkv.world"
335        CHAT_TEMPLATE        = "tokenizer.chat_template"
336        CHAT_TEMPLATE_N      = "tokenizer.chat_template.{name}"
337        CHAT_TEMPLATES       = "tokenizer.chat_templates"
338        # Normalizer constants
339        NORMALIZER_LOWERCASE     = "tokenizer.ggml.normalizer.lowercase"
340        NORMALIZER_STRIP_ACCENTS = "tokenizer.ggml.normalizer.strip_accents"
341        # FIM/Infill special tokens constants
342        FIM_PRE_ID           = "tokenizer.ggml.fim_pre_token_id"
343        FIM_SUF_ID           = "tokenizer.ggml.fim_suf_token_id"
344        FIM_MID_ID           = "tokenizer.ggml.fim_mid_token_id"
345        FIM_PAD_ID           = "tokenizer.ggml.fim_pad_token_id"
346        FIM_REP_ID           = "tokenizer.ggml.fim_rep_token_id"
347        FIM_SEP_ID           = "tokenizer.ggml.fim_sep_token_id"
348        # deprecated:
349        PREFIX_ID            = "tokenizer.ggml.prefix_token_id"
350        SUFFIX_ID            = "tokenizer.ggml.suffix_token_id"
351        MIDDLE_ID            = "tokenizer.ggml.middle_token_id"
352
353    class Adapter:
354        TYPE                    = "adapter.type"
355        LORA_ALPHA              = "adapter.lora.alpha"
356        LORA_TASK_NAME          = "adapter.lora.task_name"
357        LORA_PROMPT_PREFIX      = "adapter.lora.prompt_prefix"
358        ALORA_INVOCATION_TOKENS = "adapter.alora.invocation_tokens"
359
360    class IMatrix:
361        CHUNK_COUNT = "imatrix.chunk_count"
362        CHUNK_SIZE  = "imatrix.chunk_size"
363        DATASETS    = "imatrix.datasets"
364
365    class Clip:
366        PROJECTOR_TYPE        = "clip.projector_type"
367        HAS_VISION_ENCODER    = "clip.has_vision_encoder"
368        HAS_AUDIO_ENCODER     = "clip.has_audio_encoder"
369        HAS_GEN_AUDIO_ENCODER = "clip.has_gen_audio_encoder"
370        HAS_LLAVA_PROJECTOR   = "clip.has_llava_projector"
371
372    class ClipVision:
373        PROJECTOR_TYPE        = "clip.vision.projector_type" # for mixed modality models
374        IMAGE_SIZE            = "clip.vision.image_size"
375        IMAGE_MIN_PIXELS      = "clip.vision.image_min_pixels"
376        IMAGE_MAX_PIXELS      = "clip.vision.image_max_pixels"
377        PREPROC_MIN_TILES     = "clip.vision.preproc_min_tiles"
378        PREPROC_MAX_TILES     = "clip.vision.preproc_max_tiles"
379        PREPROC_IMAGE_SIZE    = "clip.vision.preproc_image_size"
380        PATCH_SIZE            = "clip.vision.patch_size"
381        EMBEDDING_LENGTH      = "clip.vision.embedding_length"
382        FEED_FORWARD_LENGTH   = "clip.vision.feed_forward_length"
383        PROJECTION_DIM        = "clip.vision.projection_dim"
384        BLOCK_COUNT           = "clip.vision.block_count"
385        IMAGE_MEAN            = "clip.vision.image_mean"
386        IMAGE_STD             = "clip.vision.image_std"
387        SPATIAL_MERGE_SIZE    = "clip.vision.spatial_merge_size"
388        EXPERT_COUNT_PER_LAYER = "clip.vision.expert_count_per_layer" # dots3note pyramid MoE, 0 = dense layer
389        EXPERT_USED_COUNT     = "clip.vision.expert_used_count"
390        USE_GELU              = "clip.use_gelu"
391        USE_SILU              = "clip.use_silu"
392        N_WA_PATTERN          = "clip.vision.n_wa_pattern"     # used by qwen2.5vl
393        WA_LAYER_INDEXES      = "clip.vision.wa_layer_indexes" # used by youtuvl
394        WA_PATTERN_MODE       = "clip.vision.wa_pattern_mode"  # used by mimovl, per-layer -1/0/1
395        IS_DEEPSTACK_LAYERS   = "clip.vision.is_deepstack_layers"
396        WINDOW_SIZE           = "clip.vision.window_size"
397        FEATURE_LAYERS        = "clip.vision.feature_layer" # Granite4 Vision
398        IMAGE_GRID_PINPOINTS  = "clip.vision.image_grid_pinpoints" # Granite4 Vision
399
400        class Attention:
401            HEAD_COUNT      = "clip.vision.attention.head_count"
402            HEAD_COUNT_KV   = "clip.vision.attention.head_count_kv" # used by mimovl (GQA)
403            HEAD_DIM        = "clip.vision.attention.head_dim" # set when qkv width != n_embd
404            LAYERNORM_EPS   = "clip.vision.attention.layer_norm_epsilon"
405
406        class Projector:
407            SCALE_FACTOR    = "clip.vision.projector.scale_factor"
408            QUERY_SIDE      = "clip.vision.projector.query_side"
409            WINDOW_SIDE     = "clip.vision.projector.window_side"
410            SPATIAL_OFFSETS = "clip.vision.projector.spatial_offsets"
411
412        class SAM:
413            BLOCK_COUNT         = "clip.vision.sam.block_count"
414            EMBEDDING_LENGTH    = "clip.vision.sam.embedding_length"
415            HEAD_COUNT          = "clip.vision.sam.head_count"
416
417    class ClipAudio:
418        PROJECTOR_TYPE      = "clip.audio.projector_type" # for mixed modality models
419        NUM_MEL_BINS        = "clip.audio.num_mel_bins"
420        EMBEDDING_LENGTH    = "clip.audio.embedding_length"
421        FEED_FORWARD_LENGTH = "clip.audio.feed_forward_length"
422        PROJECTION_DIM      = "clip.audio.projection_dim"
423        BLOCK_COUNT         = "clip.audio.block_count"
424        SUBSAMPLING_FACTOR  = "clip.audio.subsampling_factor"
425        CHUNK_SIZE          = "clip.audio.chunk_size"
426        CONV_KERNEL_SIZE    = "clip.audio.conv_kernel_size"
427        MAX_POS_EMB         = "clip.audio.max_pos_emb"
428        FEATURE_LAYERS      = "clip.audio.feature_layer" # Granite Speech Plus
429        RVQ_NUM_QUANTIZERS  = "clip.audio.rvq.num_quantizers"
430        RVQ_CODEBOOK_SIZE   = "clip.audio.rvq.codebook_size"
431        WA_PATTERN_MODE     = "clip.audio.wa_pattern_mode" # per-layer -1 (full) / 0 (windowed)
432        WINDOW_SIZE         = "clip.audio.window_size"
433        LOCAL_BLOCK_COUNT   = "clip.audio.local_block_count" # mimo-v2.5: input_local_transformer layer count
434        LOCAL_GROUP_SIZE    = "clip.audio.local_group_size"  # mimo-v2.5: input_local_transformer grouping size
435
436        class Attention:
437            HEAD_COUNT      = "clip.audio.attention.head_count"
438            LAYERNORM_EPS   = "clip.audio.attention.layer_norm_epsilon"
439
440        class Projector:
441            STACK_FACTOR    = "clip.audio.projector.stack_factor"
442            WINDOW_SIZE     = "clip.audio.projector.window_size"
443            DOWNSAMPLE_RATE = "clip.audio.projector.downsample_rate"
444            HEAD_COUNT      = "clip.audio.projector.head_count"
445
446    class ClipGenAudio:
447        PROJECTOR_TYPE      = "clip.gen.audio.projector_type" # for mixed modality models
448        # name of the weight variant, for settings that are not in the checkpoint
449        MODEL_VARIANT       = "clip.gen.audio.model_variant"
450        EMBEDDING_LENGTH    = "clip.gen.audio.embedding_length"
451        FEED_FORWARD_LENGTH = "clip.gen.audio.feed_forward_length"
452        BLOCK_COUNT         = "clip.gen.audio.block_count"
453        PROJECTION_DIM      = "clip.gen.audio.projection_dim"
454
455        class Attention:
456            HEAD_COUNT      = "clip.gen.audio.attention.head_count"
457            HEAD_COUNT_KV   = "clip.gen.audio.attention.head_count_kv"
458            LAYERNORM_EPS   = "clip.gen.audio.attention.layer_norm_epsilon"
459
460    class Diffusion:
461        SHIFT_LOGITS        = "diffusion.shift_logits"
462
463    class xIELU:
464        ALPHA_P             = "xielu.alpha_p"
465        ALPHA_N             = "xielu.alpha_n"
466        BETA                = "xielu.beta"
467        EPS                 = "xielu.eps"
468
469
470#
471# recommended mapping of model tensor names for storage in gguf
472#
473
474
475class GGUFType:
476    MODEL   = "model"
477    ADAPTER = "adapter"
478    IMATRIX = "imatrix"
479    MMPROJ  = "mmproj" # dummy, unused for now
480
481
482class MODEL_ARCH(IntEnum):
483    MMPROJ           = auto() # dummy arch for clip.cpp
484    LLAMA            = auto()
485    LLAMA4           = auto()
486    DECI             = auto()
487    FALCON           = auto()
488    FALCON_H1        = auto()
489    BAICHUAN         = auto()
490    GROK             = auto()
491    GPT2             = auto()
492    GPTJ             = auto()
493    GPTNEOX          = auto()
494    MPT              = auto()
495    STARCODER        = auto()
496    REFACT           = auto()
497    BERT             = auto()
498    MODERN_BERT      = auto()
499    NOMIC_BERT       = auto()
500    NOMIC_BERT_MOE   = auto()
501    NEO_BERT         = auto()
502    JINA_BERT_V2     = auto()
503    JINA_BERT_V3     = auto()
504    EUROBERT         = auto()
505    BLOOM            = auto()
506    STABLELM         = auto()
507    QWEN             = auto()
508    QWEN2            = auto()
509    QWEN2MOE         = auto()
510    QWEN2VL          = auto()
511    QWEN3            = auto()
512    QWEN3MOE         = auto()
513    QWEN3NEXT        = auto()
514    QWEN3VL          = auto()
515    QWEN3VLMOE       = auto()
516    QWEN35           = auto()
517    QWEN35MOE        = auto()
518    QWEN4EXP         = auto()
519    PHI2             = auto()
520    PHI3             = auto()
521    PHIMOE           = auto()
522    PLAMO            = auto()
523    PLAMO2           = auto()
524    PLAMO3           = auto()
525    CODESHELL        = auto()
526    ORION            = auto()
527    INTERNLM2        = auto()
528    MINICPM          = auto()
529    MINICPM3         = auto()
530    GEMMA            = auto()
531    GEMMA2           = auto()
532    GEMMA3           = auto()
533    GEMMA3N          = auto()
534    GEMMA4           = auto()
535    GEMMA4_ASSISTANT = auto()
536    GEMMA_EMBEDDING  = auto()
537    STARCODER2       = auto()
538    RWKV6            = auto()
539    RWKV6QWEN2       = auto()
540    RWKV7            = auto()
541    ARWKV7           = auto()
542    MAMBA            = auto()
543    MAMBA2           = auto()
544    MAPLE            = auto()
545    JAMBA            = auto()
546    XVERSE           = auto()
547    COMMAND_R        = auto()
548    COHERE2          = auto()
549    COHERE2MOE       = auto()
550    DBRX             = auto()
551    OLMO             = auto()
552    OLMO2            = auto()
553    OLMOE            = auto()
554    MUSE_GLIMMER     = auto()
555    OPENELM          = auto()
556    ARCTIC           = auto()
557    DEEPSEEK         = auto()
558    DEEPSEEK2        = auto()
559    DEEPSEEK2OCR     = auto()
560    DEEPSEEK32       = auto()
561    DEEPSEEK4        = auto()
562    CHATGLM          = auto()
563    GLM4             = auto()
564    GLM4_MOE         = auto()
565    GLM_DSA          = auto()
566    BITNET           = auto()
567    T5               = auto()
568    T5ENCODER        = auto()
569    JAIS             = auto()
570    JAIS2            = auto()
571    NEMOTRON         = auto()
572    NEMOTRON_H       = auto()
573    NEMOTRON_H_MOE   = auto()
574    EXAONE           = auto()
575    EXAONE4          = auto()
576    EXAONE_MOE       = auto()
577    GRANITE          = auto()
578    GRANITE_MOE      = auto()
579    GRANITE_HYBRID   = auto()
580    GRANITE_SWITCH   = auto()
581    GRANITE_SWA      = auto()
582    CHAMELEON        = auto()
583    WAVTOKENIZER_DEC = auto()
584    PLM              = auto()
585    BAILINGMOE       = auto()
586    BAILINGMOE2      = auto()
587    BAILINGMOE3      = auto()
588    DOTS1            = auto()
589    DOTS3NOTE        = auto()
590    ARCEE            = auto()
591    AFMOE            = auto()
592    LAGUNA           = auto()
593    ERNIE4_5         = auto()
594    ERNIE4_5_MOE     = auto()
595    HUNYUAN_MOE      = auto()
596    HUNYUAN_DENSE    = auto()
597    HUNYUAN_VL       = auto()
598    HY_V3            = auto()
599    HY_V4            = auto()
600    SMOLLM3          = auto()
601    GPT_OSS          = auto()
602    LFM2             = auto()
603    LFM2MOE          = auto()
604    DREAM            = auto()
605    SMALLTHINKER     = auto()
606    LLADA            = auto()
607    LLADA_MOE        = auto()
608    SEED_OSS         = auto()
609    GROVEMOE         = auto()
610    APERTUS          = auto()
611    COGVLM           = auto()
612    MINIMAX01        = auto()
613    MINIMAXM2        = auto()
614    MINIMAXM3        = auto()
615    RND1             = auto()
616    PANGU_EMBED      = auto()
617    MISTRAL3         = auto()
618    EAGLE3           = auto()
619    DFLASH           = auto()
620    MISTRAL4         = auto()
621    PADDLEOCR        = auto()
622    MIMO2            = auto()
623    STEP35           = auto()
624    SPARK2_5           = auto()
625    LLAMA_EMBED      = auto()
626    MAINCODER        = auto()
627    KIMI_LINEAR      = auto()
628    KIMI_K3          = auto()
629    TALKIE           = auto()
630    MELLUM           = auto()
631    NANBEIGE         = auto()
632    QWEN3TTS         = auto()
633    POCKETTTS        = auto()
634
635
636class VISION_PROJECTOR_TYPE(IntEnum):
637    MLP       = auto()
638    LDP       = auto()
639    LDPV2     = auto()
640    RESAMPLER = auto()
641    GLM_EDGE  = auto()
642    MERGER    = auto()
643    GEMMA3N   = auto()
644    GEMMA3    = auto()
645    QWEN3VL   = auto()
646    STEP3VL   = auto()
647    COGVLM    = auto()
648
649
650class MODEL_TENSOR(IntEnum):
651    TOKEN_EMBD           = auto()
652    TOKEN_EMBD_NORM      = auto()
653    MASKED_EMBD_CENTROIDS= auto()
654    MASKED_EMBD_ORDERING = auto()
655    TOKEN_TYPES          = auto()
656    POS_EMBD             = auto()
657    OUTPUT               = auto()
658    DENSE_2_OUT          = auto() # embeddinggemma 2_Dense
659    DENSE_3_OUT          = auto() # embeddinggemma 3_Dense
660    OUTPUT_NORM          = auto()
661    HC_HEAD_FN           = auto()
662    HC_HEAD_BASE         = auto()
663    HC_HEAD_SCALE        = auto()
664    HC_HEAD_NORM         = auto() # qwen4exp
665    HC_HEAD_DOWN         = auto() # qwen4exp
666    HC_HEAD_UP           = auto() # qwen4exp
667    ROPE_FREQS           = auto()
668    ROPE_FACTORS_LONG    = auto()
669    ROPE_FACTORS_SHORT   = auto()
670    ATTN_Q               = auto()
671    ATTN_K               = auto()
672    ATTN_V               = auto()
673    ATTN_QKV             = auto()
674    ATTN_OUT             = auto()
675    ATTN_NORM            = auto()
676    ATTN_NORM_2          = auto()
677    ATTN_OUT_NORM        = auto()
678    ATTN_POST_NORM       = auto()
679    ATTN_ROT_EMBD        = auto()
680    ATTN_SINKS           = auto()
681    ATTN_GATE            = auto()
682    FFN_GATE_INP         = auto()
683    FFN_GATE_INP_SHEXP   = auto()
684    FFN_NORM             = auto()
685    FFN_PRE_NORM         = auto() # alias of FFN_NORM
686    FFN_PRE_NORM_2       = auto() # gemma4
687    FFN_POST_NORM        = auto()
688    FFN_POST_NORM_1      = auto() # gemma4
689    FFN_POST_NORM_2      = auto() # gemma4
690    FFN_GATE             = auto()
691    FFN_DOWN             = auto()
692    FFN_UP               = auto()
693    FFN_ACT              = auto()
694    FFN_NORM_EXP         = auto()
695    FFN_GATE_EXP         = auto()
696    FFN_DOWN_EXP         = auto()
697    FFN_UP_EXP           = auto()
698    FFN_GATE_UP_EXP      = auto()
699    FFN_GATE_SHEXP       = auto()
700    FFN_DOWN_SHEXP       = auto()
701    FFN_UP_SHEXP         = auto()
702    FFN_GATE_CHEXP       = auto()
703    FFN_DOWN_CHEXP       = auto()
704    FFN_UP_CHEXP         = auto()
705    FFN_EXP_PROBS_B      = auto()
706    FFN_EXP_PROBS_B_VL   = auto() # deepseek4 vision (bias for image tokens)
707    FFN_GATE_TID2EID     = auto()
708    MOE_LATENT_DOWN      = auto() # nemotron 3 super
709    MOE_LATENT_UP        = auto() # nemotron 3 super
710    ATTN_Q_NORM          = auto()
711    ATTN_K_NORM          = auto()
712    LAYER_OUT_NORM       = auto()
713    LAYER_OUT_SCALE      = auto()
714    PER_LAYER_TOKEN_EMBD = auto() # gemma3n
715    PER_LAYER_MODEL_PROJ = auto() # gemma3n
716    PER_LAYER_INP_GATE   = auto() # gemma3n
717    PER_LAYER_PROJ       = auto() # gemma3n
718    PER_LAYER_PROJ_NORM  = auto() # gemma3n
719    PER_LAYER_POST_NORM  = auto() # gemma3n
720    ALTUP_PROJ           = auto() # gemma3n
721    ALTUP_UNEMBD_PROJ    = auto() # gemma3n
722    ALTUP_CORRECT_COEF   = auto() # gemma3n
723    ALTUP_CORRECT_SCALE  = auto() # gemma3n
724    ALTUP_PREDICT_COEF   = auto() # gemma3n
725    ALTUP_ROUTER         = auto() # gemma3n
726    ALTUP_ROUTER_NORM    = auto() # gemma3n
727    LAUREL_L             = auto() # gemma3n
728    LAUREL_R             = auto() # gemma3n
729    LAUREL_POST_NORM     = auto() # gemma3n
730    SSM_IN               = auto()
731    SSM_CONV1D           = auto()
732    SSM_X                = auto()
733    SSM_DT               = auto()
734    SSM_DT_NORM          = auto()
735    SSM_A                = auto()
736    SSM_B_NORM           = auto()
737    SSM_C_NORM           = auto()
738    SSM_D                = auto()
739    SSM_NORM             = auto()
740    SSM_OUT              = auto()
741    SSM_ALPHA            = auto() # qwen3.5
742    SSM_BETA_ALPHA       = auto() # qwen3next
743    SSM_CONV1D_Q         = auto() # Kimi Linear
744    SSM_CONV1D_K         = auto() # Kimi Linear
745    SSM_CONV1D_V         = auto() # Kimi Linear
746    SSM_F_A              = auto() # Kimi Linear
747    SSM_F_B              = auto() # Kimi Linear
748    SSM_BETA             = auto() # Kimi Linear qwen3.5
749    SSM_G_A              = auto() # Kimi Linear
750    SSM_G_B              = auto() # Kimi Linear
751    SSM_G                = auto() # Kimi K3 (full-rank KDA gate, replaces SSM_G_A/SSM_G_B)
752    ATTN_RES_SCORE       = auto() # Kimi K3 (fused res_norm * res_proj, pre-attention)
753    FFN_RES_SCORE        = auto() # Kimi K3 (fused res_norm * res_proj, pre-FFN)
754    OUTPUT_RES_SCORE     = auto() # Kimi K3 (fused res_norm * res_proj, final)
755    FFN_ROUTED_DOWN      = auto() # Kimi K3 (latent MoE: hidden -> latent)
756    FFN_ROUTED_UP        = auto() # Kimi K3 (latent MoE: latent -> hidden)
757    FFN_ROUTED_NORM      = auto() # Kimi K3 (latent MoE: norm on expert output)
758    TIME_MIX_W0          = auto()
759    TIME_MIX_W1          = auto()
760    TIME_MIX_W2          = auto()
761    TIME_MIX_A0          = auto()
762    TIME_MIX_A1          = auto()
763    TIME_MIX_A2          = auto()
764    TIME_MIX_V0          = auto()
765    TIME_MIX_V1          = auto()
766    TIME_MIX_V2          = auto()
767    TIME_MIX_G1          = auto()
768    TIME_MIX_G2          = auto()
769    TIME_MIX_K_K         = auto()
770    TIME_MIX_K_A         = auto()
771    TIME_MIX_R_K         = auto()
772    TIME_MIX_LERP_X      = auto()
773    TIME_MIX_LERP_K      = auto()
774    TIME_MIX_LERP_V      = auto()
775    TIME_MIX_LERP_R      = auto()
776    TIME_MIX_LERP_G      = auto()
777    TIME_MIX_LERP_FUSED  = auto()
778    TIME_MIX_LERP_W      = auto()
779    TIME_MIX_FIRST       = auto()
780    TIME_MIX_DECAY       = auto()
781    TIME_MIX_DECAY_W1    = auto()
782    TIME_MIX_DECAY_W2    = auto()
783    TIME_MIX_KEY         = auto()
784    TIME_MIX_VALUE       = auto()
785    TIME_MIX_RECEPTANCE  = auto()
786    TIME_MIX_GATE        = auto()
787    TIME_MIX_LN          = auto()
788    TIME_MIX_OUTPUT      = auto()
789    CHANNEL_MIX_LERP_K   = auto()
790    CHANNEL_MIX_LERP_R   = auto()
791    CHANNEL_MIX_KEY      = auto()
792    CHANNEL_MIX_RECEPTANCE = auto()
793    CHANNEL_MIX_VALUE    = auto()
794    ATTN_Q_A             = auto()
795    ATTN_Q_B             = auto()
796    ATTN_KV_A_MQA        = auto()
797    ATTN_KV_B            = auto()
798    ATTN_K_B             = auto()
799    ATTN_V_B             = auto()
800    ATTN_Q_A_NORM        = auto()
801    ATTN_KV_A_NORM       = auto()
802    ATTN_KV              = auto()
803    ATTN_KV_NORM         = auto()
804    ATTN_OUT_A           = auto()
805    ATTN_OUT_B           = auto()
806    HC_ATTN_FN           = auto()
807    HC_ATTN_BASE         = auto()
808    HC_ATTN_SCALE        = auto()
809    HC_FFN_FN            = auto()
810    HC_FFN_BASE          = auto()
811    HC_FFN_SCALE         = auto()
812    HC_ATTN_NORM         = auto() # qwen4exp
813    HC_ATTN_DOWN         = auto() # qwen4exp
814    HC_ATTN_UP           = auto() # qwen4exp
815    HC_ATTN_INJECT       = auto() # qwen4exp
816    HC_FFN_NORM          = auto() # qwen4exp
817    HC_FFN_DOWN          = auto() # qwen4exp
818    HC_FFN_UP            = auto() # qwen4exp
819    HC_FFN_INJECT        = auto() # qwen4exp
820    PLE_KEY              = auto() # qwen4exp
821    PLE_VALUE            = auto() # qwen4exp
822    PLE_NORM_KEY         = auto() # qwen4exp
823    PLE_NORM_QUERY       = auto() # qwen4exp
824    PLE_NORM_CONV        = auto() # qwen4exp
825    PLE_CONV1D           = auto() # qwen4exp
826    ATTN_COMPRESSOR_WKV  = auto()
827    ATTN_COMPRESSOR_WGATE = auto()
828    ATTN_COMPRESSOR_APE  = auto()
829    ATTN_COMPRESSOR_NORM = auto()
830    FFN_SUB_NORM         = auto()
831    ATTN_SUB_NORM        = auto()
832    DEC_ATTN_NORM        = auto()
833    DEC_ATTN_Q           = auto()
834    DEC_ATTN_K           = auto()
835    DEC_ATTN_V           = auto()
836    DEC_ATTN_OUT         = auto()
837    DEC_ATTN_REL_B       = auto()
838    DEC_CROSS_ATTN_NORM  = auto()
839    DEC_CROSS_ATTN_Q     = auto()
840    DEC_CROSS_ATTN_K     = auto()
841    DEC_CROSS_ATTN_V     = auto()
842    DEC_CROSS_ATTN_OUT   = auto()
843    DEC_CROSS_ATTN_REL_B = auto()
844    DEC_FFN_NORM         = auto()
845    DEC_FFN_GATE         = auto()
846    DEC_FFN_DOWN         = auto()
847    DEC_FFN_UP           = auto()
848    DEC_OUTPUT_NORM      = auto()
849    ENC_ATTN_NORM        = auto()
850    ENC_ATTN_Q           = auto()
851    ENC_ATTN_K           = auto()
852    ENC_ATTN_V           = auto()
853    ENC_ATTN_OUT         = auto()
854    ENC_ATTN_REL_B       = auto()
855    ENC_FFN_NORM         = auto()
856    ENC_FFN_GATE         = auto()
857    ENC_FFN_DOWN         = auto()
858    ENC_FFN_UP           = auto()
859    ENC_OUTPUT_NORM      = auto()
860    CLS                  = auto() # classifier
861    CLS_OUT              = auto() # classifier output projection
862    CLS_NORM             = auto()
863    CONV1D               = auto()
864    CONVNEXT_DW          = auto()
865    CONVNEXT_NORM        = auto()
866    CONVNEXT_PW1         = auto()
867    CONVNEXT_PW2         = auto()
868    CONVNEXT_GAMMA       = auto()
869    POSNET_CONV1         = auto()
870    POSNET_CONV2         = auto()
871    POSNET_NORM          = auto()
872    POSNET_NORM1         = auto()
873    POSNET_NORM2         = auto()
874    POSNET_ATTN_NORM     = auto()
875    POSNET_ATTN_Q        = auto()
876    POSNET_ATTN_K        = auto()
877    POSNET_ATTN_V        = auto()
878    POSNET_ATTN_OUT      = auto()
879    SHORTCONV_CONV       = auto()
880    SHORTCONV_INPROJ     = auto()
881    SHORTCONV_OUTPROJ    = auto()
882    VISEXP_ATTN_QKV      = auto()
883    VISEXP_ATTN_OUT      = auto()
884    VISEXP_GATE          = auto()
885    VISEXP_DOWN          = auto()
886    VISEXP_UP            = auto()
887    INDEXER_K_NORM       = auto()
888    INDEXER_PROJ         = auto()
889    INDEXER_ATTN_K       = auto()
890    INDEXER_ATTN_Q_B     = auto()
891    INDEXER_Q_PROJ       = auto()
892    INDEXER_K_PROJ       = auto()
893    INDEXER_Q_NORM       = auto()
894    INDEXER_COMPRESSOR_WKV = auto()
895    INDEXER_COMPRESSOR_WGATE = auto()
896    INDEXER_COMPRESSOR_APE = auto()
897    INDEXER_COMPRESSOR_NORM = auto()
898    # vision
899    V_MMPROJ             = auto()
900    V_MMPROJ_FC          = auto()
901    V_MMPROJ_MLP         = auto()
902    V_MMPROJ_PEG         = auto()
903    V_ENC_EMBD_CLS       = auto()
904    V_ENC_EMBD_PATCH     = auto()
905    V_ENC_EMBD_NORM      = auto()
906    V_ENC_EMBD_PATCH_NORM = auto() # allow multiple norms in the same embd, e.g. for gemma4u
907    V_ENC_EMBD_POS       = auto()
908    V_ENC_INPUT_NORM     = auto()
909    V_ENC_ATTN_QKV       = auto()
910    V_ENC_ATTN_Q         = auto()
911    V_ENC_ATTN_Q_NORM    = auto()
912    V_ENC_ATTN_K         = auto()
913    V_ENC_ATTN_K_NORM    = auto()
914    V_ENC_ATTN_V         = auto()
915    V_ENC_ATTN_O         = auto()
916    V_ENC_ATTN_O_NORM    = auto()
917    V_ENC_ATTN_SINKS     = auto() # mimovl
918    V_ENC_POST_ATTN_NORM = auto()
919    V_ENC_FFN_UP         = auto()
920    V_ENC_FFN_GATE       = auto()
921    V_ENC_FFN_DOWN       = auto()
922    V_ENC_FFN_GATE_INP   = auto() # dots3note vision MoE router
923    V_ENC_FFN_GATE_EXPS  = auto()
924    V_ENC_FFN_UP_EXPS    = auto()
925    V_ENC_FFN_DOWN_EXPS  = auto()
926    V_ENC_FFN_EXP_PROBS_B = auto()
927    V_ENC_ATTN_POST_NORM = auto() # gemma4
928    V_ENC_FFN_POST_NORM  = auto()
929    V_LAYER_SCALE_1      = auto()
930    V_LAYER_SCALE_2      = auto()
931    V_LAYER_OUT_SCALE    = auto()
932    V_PRE_NORM           = auto()
933    V_POST_NORM          = auto()
934    V_MM_PRE_NORM        = auto() # hunyuanvl
935    V_MM_POST_NORM       = auto()
936    V_MM_INP_NORM        = auto()
937    V_MM_INP_PROJ        = auto() # gemma3
938    V_MM_SOFT_EMB_NORM   = auto() # gemma3
939    V_MM_EMBEDDING       = auto() # gemma3n
940    V_MM_HARD_EMB_NORM   = auto() # gemma3n
941    V_ENC_CONV_STEM      = auto() # gemma3n
942    V_ENC_CONV_STEM_NORM = auto() # gemma3n
943    V_ENC_MSFA_EXP       = auto() # gemma3n
944    V_ENC_MSFA_EXP_NORM  = auto() # gemma3n
945    V_ENC_MSFA_PROJ      = auto() # gemma3n
946    V_ENC_MSFA_PROJ_NORM = auto() # gemma3n
947    V_ENC_MSFA_NORM      = auto() # gemma3n
948    V_RESMPL_POS_EMBD_K  = auto() # minicpmv
949    V_RESMPL_ATTN_Q      = auto() # minicpmv
950    V_RESMPL_ATTN_K      = auto() # minicpmv
951    V_RESMPL_ATTN_V      = auto() # minicpmv
952    V_RESMPL_ATTN_OUT    = auto() # minicpmv
953    V_RESMPL_KV          = auto() # minicpmv
954    V_RESMPL_KV_NORM     = auto() # minicpmv
955    V_RESMPL_POST_NORM   = auto() # minicpmv
956    V_RESMPL_Q_NORM      = auto() # minicpmv
957    V_RESMPL_PROJ        = auto() # minicpmv
958    V_RESMPL_QUERY       = auto() # minicpmv
959    V_TOK_EMBD_IMG_BREAK = auto() # pixtral
960    V_TOK_EMBD_IMG_START = auto() # deepseek4v
961    V_TOK_EMBD_IMG_END   = auto() # deepseek4v
962    V_TOK_EMBD_IMG_PAD   = auto() # deepseek4v
963    V_MM_PATCH_MERGER    = auto() # mistral small 3.1
964    V_DS_NORM            = auto() # qwen3vl
965    V_DS_FC1             = auto() # qwen3vl
966    V_DS_FC2             = auto() # qwen3vl
967    V_MERGER_LN1         = auto() # minicpmv4_6
968    V_MERGER_ATTN_Q      = auto() # minicpmv4_6
969    V_MERGER_ATTN_K      = auto() # minicpmv4_6
970    V_MERGER_ATTN_V      = auto() # minicpmv4_6
971    V_MERGER_ATTN_O      = auto() # minicpmv4_6
972    V_MERGER_DS_LN       = auto() # minicpmv4_6
973    V_MERGER_DS_UP       = auto() # minicpmv4_6
974    V_MERGER_DS_DOWN     = auto() # minicpmv4_6
975    V_MM_POST_FC_NORM    = auto() # cogvlm
976    V_MM_UP              = auto() # cogvlm
977    V_MM_DOWN            = auto() # cogvlm
978    V_MM_GATE            = auto() # cogvlm
979    V_MM_MERGER_FC1      = auto() # minimax-m3 (patch-merge MLP)
980    V_MM_MERGER_FC2      = auto() # minimax-m3 (patch-merge MLP)
981    V_TOK_BOI            = auto() # cogvlm
982    V_TOK_EOI            = auto() # cogvlm
983    V_TOK_IMG_BEGIN      = auto() # hunyuanvl
984    V_TOK_IMG_END        = auto() # hunyuanvl
985    V_STD_BIAS           = auto() # gemma4
986    V_STD_SCALE          = auto() # gemma4
987    V_SAM_POS_EMBD       = auto() # Deepseek-OCR
988    V_SAM_PATCH_EMBD     = auto() # Deepseek-OCR
989    V_SAM_PRE_NORM       = auto() # Deepseek-OCR
990    V_SAM_POST_NORM      = auto() # Deepseek-OCR
991    V_SAM_ATTN_POS_H     = auto() # Deepseek-OCR
992    V_SAM_ATTN_POS_W     = auto() # Deepseek-OCR
993    V_SAM_ATTN_QKV       = auto() # Deepseek-OCR
994    V_SAM_ATTN_OUT       = auto() # Deepseek-OCR
995    V_SAM_MLP_LIN_1      = auto() # Deepseek-OCR
996    V_SAM_MLP_LIN_2      = auto() # Deepseek-OCR
997    V_SAM_NECK           = auto() # Deepseek-OCR
998    V_SAM_NET_2          = auto() # Deepseek-OCR
999    V_SAM_NET_3          = auto() # Deepseek-OCR
1000    V_ENC_EMBD_IMGNL     = auto() # Deepseek-OCR
1001    V_ENC_EMBD_VSEP      = auto() # Deepseek-OCR
1002    V_RESMPL_QUERY_768   = auto() # Deepseek-OCR-2
1003    V_RESMPL_QUERY_1024  = auto() # Deepseek-OCR-2
1004
1005    # qformer projector (vision) - Granite4 Vision
1006    V_QF_PROJ_QUERY      = auto()
1007    V_QF_PROJ_NORM       = auto()
1008    V_QF_PROJ_LINEAR     = auto()
1009    V_QF_SELF_ATTN_Q     = auto()
1010    V_QF_SELF_ATTN_K     = auto()
1011    V_QF_SELF_ATTN_V     = auto()
1012    V_QF_SELF_ATTN_O     = auto()
1013    V_QF_SELF_ATTN_NORM  = auto()
1014    V_QF_CROSS_ATTN_Q    = auto()
1015    V_QF_CROSS_ATTN_K    = auto()
1016    V_QF_CROSS_ATTN_V    = auto()
1017    V_QF_CROSS_ATTN_O    = auto()
1018    V_QF_CROSS_ATTN_NORM = auto()
1019    V_QF_FFN_UP          = auto()
1020    V_QF_FFN_DOWN        = auto()
1021    V_QF_FFN_NORM        = auto()
1022    V_PROJ_NORM          = auto()
1023    # multi-projector (bid => projector id) - Granite4 vision
1024    V_MULTI_PROJ_IMG_POS   = auto()
1025    V_MULTI_PROJ_QUERY     = auto()
1026    V_MULTI_PROJ_NORM      = auto()
1027    V_MULTI_PROJ_LINEAR    = auto()
1028    V_MULTI_PROJ_POST_NORM = auto()
1029
1030    # audio (mtmd)
1031    A_ENC_EMBD_POS        = auto()
1032    A_ENC_EMBD_NORM       = auto()
1033    A_ENC_EMBD_TO_LOGITS  = auto() # lfm2
1034    A_ENC_INP_PROJ        = auto() # gemma4
1035    A_ENC_CONV1D          = auto()
1036    A_ENC_CONV1D_NORM     = auto() # gemma3n
1037    A_ENC_CONV2D          = auto()
1038    A_ENC_CONV_OUT        = auto()
1039    A_PRE_NORM            = auto()
1040    A_POST_NORM           = auto()
1041    A_ENC_LAYER_PRE_NORM  = auto() # gemma3n
1042    A_ENC_ATTN_Q          = auto()
1043    A_ENC_ATTN_K          = auto()
1044    A_ENC_ATTN_V          = auto()
1045    A_ENC_ATTN_POST_NORM  = auto()
1046    A_ENC_ATTN_PRE_NORM   = auto()
1047    A_ENC_ATTN_K_REL      = auto() # gemma4
1048    A_ENC_PER_DIM_SCALE   = auto() # gemma3n
1049    A_ENC_INPUT_NORM      = auto()
1050    A_ENC_OUTPUT          = auto() # TODO @ngxson: rename to ATTN_OUT
1051    A_ENC_OUTPUT_NORM     = auto() # TODO @ngxson: rename to ATTN_OUT
1052    A_ENC_FFN_UP          = auto()
1053    A_ENC_FFN_NORM        = auto()
1054    A_ENC_FFN_POST_NORM   = auto() # gemma3n
1055    A_ENC_FFN_SCALE       = auto() # gemma3n
1056    A_ENC_FFN_GATE        = auto()
1057    A_ENC_FFN_DOWN        = auto()
1058    A_ENC_FFN_UP_1        = auto() # lfm2, gemma3n
1059    A_ENC_FFN_NORM_1      = auto() # lfm2, gemma3n (pre-norm)
1060    A_ENC_FFN_POST_NORM_1 = auto() # gemma3n
1061    A_ENC_FFN_SCALE_1     = auto() # gemma3n
1062    A_ENC_FFN_GATE_1      = auto() # lfm2, gemma3n
1063    A_ENC_FFN_DOWN_1      = auto() # lfm2, gemma3n
1064    A_ENC_DOWNSAMPLE_CONV = auto() # mimo-audio-tokenizer: post-transformer downsample conv
1065    A_ENC_DOWNSAMPLE_NORM = auto() # mimo-audio-tokenizer: post-transformer downsample norm
1066    A_ENC_RVQ_CODEBOOK    = auto() # mimo-audio-tokenizer: residual vector quantizer codebook, per quantizer index
1067    A_ENC_CONV_RES2       = auto() # qwen3tts
1068    A_ENC_SE_CONV1        = auto() # qwen3tts
1069    A_ENC_SE_CONV2        = auto() # qwen3tts
1070    A_ENC_ASP_ATTN        = auto() # qwen3tts
1071    A_ENC_ASP_TDNN        = auto() # qwen3tts
1072    # qwen3tts code_predictor: predicts the remaining RVQ codebooks
1073    A_GEN_CODE_PROJ_IN     = auto() # small_to_mtp_projection
1074    A_GEN_CODE_EMBD        = auto() # per-codebook embedding table, merged 3D [n_codebooks, vocab, dim]
1075    A_GEN_CODE_HEAD        = auto() # per-codebook output head, merged 3D [n_codebooks, vocab, dim]
1076    A_GEN_CODE_OUT_EMBD    = auto() # codebook-0 embedding, re-fed into the talker backbone (talker.model.codec_embedding)
1077    A_GEN_CODE_ATTN_NORM   = auto()
1078    A_GEN_CODE_ATTN_Q      = auto()
1079    A_GEN_CODE_ATTN_Q_NORM = auto()
1080    A_GEN_CODE_ATTN_K      = auto()
1081    A_GEN_CODE_ATTN_K_NORM = auto()
1082    A_GEN_CODE_ATTN_V      = auto()
1083    A_GEN_CODE_ATTN_OUT    = auto()
1084    A_GEN_CODE_FFN_NORM    = auto()
1085    A_GEN_CODE_FFN_GATE    = auto()
1086    A_GEN_CODE_FFN_UP      = auto()
1087    A_GEN_CODE_FFN_DOWN    = auto()
1088    A_GEN_CODE_OUTPUT_NORM = auto()
1089    # qwen3tts code2wav: RVQ codes -> raw PCM
1090    A_GEN_WAV_QUANT_FIRST_IN       = auto() # semantic RVQ, in_proj (1x1 conv, loaded as 2D)
1091    A_GEN_WAV_QUANT_FIRST_OUT      = auto() # semantic RVQ, out_proj
1092    A_GEN_WAV_QUANT_FIRST_CB = auto() # semantic RVQ codebook (1 layer), folded from embedding_sum/cluster_usage
1093    A_GEN_WAV_QUANT_REST_IN        = auto() # acoustic RVQ, in_proj
1094    A_GEN_WAV_QUANT_REST_OUT       = auto() # acoustic RVQ, out_proj
1095    A_GEN_WAV_QUANT_REST_CB  = auto() # acoustic RVQ codebooks, merged 3D [15, vocab, dim]
1096    A_GEN_WAV_PRE_CONV             = auto()
1097    A_GEN_WAV_TFM_IN_PROJ          = auto()
1098    A_GEN_WAV_TFM_OUT_PROJ         = auto()
1099    A_GEN_WAV_TFM_OUTPUT_NORM      = auto()
1100    A_GEN_WAV_TFM_ATTN_NORM        = auto()
1101    A_GEN_WAV_TFM_ATTN_Q           = auto()
1102    A_GEN_WAV_TFM_ATTN_K           = auto()
1103    A_GEN_WAV_TFM_ATTN_V           = auto()
1104    A_GEN_WAV_TFM_ATTN_OUT         = auto()
1105    A_GEN_WAV_TFM_ATTN_SCALE       = auto() # layer scale (gamma) on the attn output
1106    A_GEN_WAV_TFM_FFN_NORM         = auto()
1107    A_GEN_WAV_TFM_FFN_GATE         = auto()
1108    A_GEN_WAV_TFM_FFN_UP           = auto()
1109    A_GEN_WAV_TFM_FFN_DOWN         = auto()
1110    A_GEN_WAV_TFM_FFN_SCALE        = auto() # layer scale (gamma) on the FFN output
1111    A_GEN_WAV_UP_CONV              = auto() # causal ConvTranspose1d, 2x upsample
1112    A_GEN_WAV_UP_DWCONV            = auto() # ConvNeXt depthwise conv
1113    A_GEN_WAV_UP_NORM              = auto() # ConvNeXt LayerNorm
1114    A_GEN_WAV_UP_PW1               = auto() # ConvNeXt pointwise conv 1 (expand)
1115    A_GEN_WAV_UP_PW2               = auto() # ConvNeXt pointwise conv 2 (project)
1116    A_GEN_WAV_UP_GAMMA             = auto() # ConvNeXt layer scale
1117    A_GEN_WAV_DAC_ENTRY            = auto() # DAC conv_pre
1118    A_GEN_WAV_DAC_UP_SNAKE         = auto() # DAC per-block SnakeBeta before the upsample conv
1119    A_GEN_WAV_DAC_UP_CONV          = auto() # DAC per-block causal ConvTranspose1d
1120    A_GEN_WAV_DAC_RES_ACT1         = auto() # DAC residual unit, SnakeBeta before conv1
1121    A_GEN_WAV_DAC_RES_CONV1        = auto() # DAC residual unit, dilated causal conv
1122    A_GEN_WAV_DAC_RES_ACT2         = auto() # DAC residual unit, SnakeBeta before conv2
1123    A_GEN_WAV_DAC_RES_CONV2        = auto() # DAC residual unit, pointwise causal conv
1124    A_GEN_WAV_DAC_POST_SNAKE       = auto() # DAC final SnakeBeta
1125    A_GEN_WAV_DAC_POST_CONV        = auto() # DAC conv_post -> 1-channel PCM
1126    # pocket-tts: SEANet encoder (speaker path) and decoder (a.gen.wav path)
1127    A_ENC_SEANET_CONV_IN     = auto()
1128    A_ENC_SEANET_CONV_OUT    = auto()
1129    A_ENC_SEANET_RES_CONV1   = auto() # residual unit, dilated conv
1130    A_ENC_SEANET_RES_CONV2   = auto() # residual unit, pointwise conv
1131    A_ENC_SEANET_SCALE_CONV  = auto() # strided downsample conv
1132    A_ENC_ATTN_SCALE         = auto() # layer scale (gamma) on the attn output
1133    A_ENC_FFN_SCALE_LS       = auto() # layer scale (gamma) on the FFN output
1134    A_ENC_SPEAKER_PROJ       = auto() # voice latent -> backbone embd
1135    A_GEN_FLOW_INPUT_PROJ    = auto()
1136    A_GEN_FLOW_COND_EMBD     = auto()
1137    A_GEN_FLOW_TIME_FREQS    = auto() # timestep embedder, stored cos/sin frequencies
1138    A_GEN_FLOW_TIME_UP       = auto()
1139    A_GEN_FLOW_TIME_DOWN     = auto()
1140    A_GEN_FLOW_TIME_NORM     = auto() # RMSNorm alpha
1141    A_GEN_FLOW_BLK_NORM      = auto() # AdaLN res block, in_ln
1142    A_GEN_FLOW_BLK_UP        = auto()
1143    A_GEN_FLOW_BLK_DOWN      = auto()
1144    A_GEN_FLOW_BLK_ADA       = auto() # AdaLN modulation, -> shift/scale/gate
1145    A_GEN_FLOW_FINAL_ADA     = auto() # final layer AdaLN modulation, -> shift/scale
1146    A_GEN_FLOW_FINAL_PROJ    = auto()
1147    A_GEN_OUT_EOS            = auto() # end-of-speech head on the backbone hidden state
1148    A_GEN_INPUT_LINEAR       = auto() # generated latent -> backbone embd
1149    A_GEN_EMB_MEAN           = auto() # latent denormalization stats
1150    A_GEN_EMB_STD            = auto()
1151    A_GEN_WAV_QUANT_OUT      = auto() # DummyQuantizer output_proj, latent -> decoder dim
1152    A_GEN_WAV_UPSAMPLE       = auto() # frame rate -> encoder frame rate, depthwise convtr
1153    A_GEN_WAV_SEANET_CONV_IN   = auto()
1154    A_GEN_WAV_SEANET_CONV_OUT  = auto() # -> 1-channel PCM
1155    A_GEN_WAV_SEANET_RES_CONV1 = auto()
1156    A_GEN_WAV_SEANET_RES_CONV2 = auto()
1157    A_GEN_WAV_SEANET_SCALE_CONV = auto() # strided upsample convtr
1158    A_MMPROJ              = auto()
1159    A_MMPROJ_FC           = auto()
1160    A_MM_NORM_PRE         = auto()
1161    A_MM_NORM_MID         = auto()
1162    A_MM_EMBEDDING        = auto() # gemma3n
1163    A_MM_HARD_EMB_NORM    = auto() # gemma3n
1164    A_MM_SOFT_EMB_NORM    = auto() # gemma3n
1165    A_MM_INP_PROJ         = auto() # gemma3n
1166    A_MM_CODE_EMBD        = auto() # mimo: text-side RVQ code embedding table ("text codebook"), merged 3D [n_channels, vocab, dim]
1167    A_MM_LOCAL_ATTN_Q     = auto() # mimo: input_local_transformer (LLM-side connector)
1168    A_MM_LOCAL_ATTN_K     = auto()
1169    A_MM_LOCAL_ATTN_V     = auto()
1170    A_MM_LOCAL_ATTN_OUT   = auto()
1171    A_MM_LOCAL_FFN_GATE   = auto()
1172    A_MM_LOCAL_FFN_UP     = auto()
1173    A_MM_LOCAL_FFN_DOWN   = auto()
1174    A_MM_LOCAL_LN1        = auto()
1175    A_MM_LOCAL_LN2        = auto()
1176    A_MM_LOCAL_NORM       = auto() # final norm after all input_local_transformer layers
1177    A_PER_DIM_K_SCALE     = auto() # gemma4
1178    A_PER_DIM_SCALE       = auto() # gemma4
1179    # nextn/mtp
1180    NEXTN_PROJ_PRE         = auto()
1181    NEXTN_PROJ_POST        = auto()
1182    NEXTN_EH_PROJ          = auto()
1183    NEXTN_EMBED_TOKENS     = auto()
1184    NEXTN_ENORM            = auto()
1185    NEXTN_HNORM            = auto()
1186    NEXTN_SHARED_HEAD_HEAD = auto()
1187    NEXTN_SHARED_HEAD_NORM = auto()
1188    # eagle3
1189    FC                     = auto()  # feature fusion layer
1190    D2T                    = auto()  # draft to target vocabulary mapping
1191    # dspark
1192    DSPARK_MARKOV_W1       = auto()  # markov head: prev-token embed
1193    DSPARK_MARKOV_W2       = auto()  # markov head: bias projection
1194    DSPARK_CONF_PROJ       = auto()  # confidence head
1195    DFLASH_ATTN_CONV_BASE  = auto()
1196    DFLASH_ATTN_CONV_PROJ  = auto()
1197    DFLASH_FFN_CONV_BASE   = auto()
1198    DFLASH_FFN_CONV_PROJ   = auto()
1199    DFLASH_SELECTOR_PREV   = auto()
1200    DFLASH_SELECTOR_NEXT   = auto()
1201    DFLASH_SELECTOR_HIDDEN = auto()
1202    # lfm2 audio
1203    A_ENC_NORM_CONV        = auto()
1204    A_ENC_LINEAR_POS       = auto()
1205    A_ENC_POS_BIAS_U       = auto()
1206    A_ENC_POS_BIAS_V       = auto()
1207    A_ENC_OUT              = auto()
1208    A_ENC_CONV_DW          = auto() # SSM conv
1209    A_ENC_CONV_NORM        = auto() # SSM conv
1210    A_ENC_CONV_PW1         = auto()
1211    A_ENC_CONV_PW2         = auto()
1212    A_ENC_CONV_NORM_MEAN   = auto() # parakeet
1213    A_ENC_CONV_NORM_VAR    = auto() # parakeet
1214    A_ENC_MEL_FILTERS      = auto() # parakeet
1215    A_ENC_WINDOW           = auto() # parakeet
1216    A_CTC_OUT              = auto()
1217    A_CTC_OUT_MID          = auto()
1218    A_ENC_ATTN_REL_POS_EMB = auto()
1219    # audio qformer projector
1220    A_QF_PROJ_QUERY        = auto()
1221    A_QF_PROJ_NORM         = auto()
1222    A_QF_PROJ_LINEAR       = auto()
1223    A_QF_SELF_ATTN_Q       = auto()
1224    A_QF_SELF_ATTN_K       = auto()
1225    A_QF_SELF_ATTN_V       = auto()
1226    A_QF_SELF_ATTN_O       = auto()
1227    A_QF_SELF_ATTN_NORM    = auto()
1228    A_QF_CROSS_ATTN_Q      = auto()
1229    A_QF_CROSS_ATTN_K      = auto()
1230    A_QF_CROSS_ATTN_V      = auto()
1231    A_QF_CROSS_ATTN_O      = auto()
1232    A_QF_CROSS_ATTN_NORM   = auto()
1233    A_QF_FFN_UP            = auto()
1234    A_QF_FFN_DOWN          = auto()
1235    A_QF_FFN_NORM          = auto()
1236
1237
1238MODEL_ARCH_NAMES: dict[MODEL_ARCH, str] = {
1239    MODEL_ARCH.MMPROJ:           "clip", # dummy arch for clip.cpp
1240    MODEL_ARCH.LLAMA:            "llama",
1241    MODEL_ARCH.LLAMA4:           "llama4",
1242    MODEL_ARCH.DECI:             "deci",
1243    MODEL_ARCH.FALCON:           "falcon",
1244    MODEL_ARCH.BAICHUAN:         "baichuan",
1245    MODEL_ARCH.GROK:             "grok",
1246    MODEL_ARCH.GPT2:             "gpt2",
1247    MODEL_ARCH.GPTJ:             "gptj",
1248    MODEL_ARCH.GPTNEOX:          "gptneox",
1249    MODEL_ARCH.MPT:              "mpt",
1250    MODEL_ARCH.STARCODER:        "starcoder",
1251    MODEL_ARCH.REFACT:           "refact",
1252    MODEL_ARCH.BERT:             "bert",
1253    MODEL_ARCH.MODERN_BERT:      "modern-bert",
1254    MODEL_ARCH.NOMIC_BERT:       "nomic-bert",
1255    MODEL_ARCH.NOMIC_BERT_MOE:   "nomic-bert-moe",
1256    MODEL_ARCH.NEO_BERT:         "neo-bert",
1257    MODEL_ARCH.JINA_BERT_V2:     "jina-bert-v2",
1258    MODEL_ARCH.JINA_BERT_V3:     "jina-bert-v3",
1259    MODEL_ARCH.EUROBERT:         "eurobert",
1260    MODEL_ARCH.BLOOM:            "bloom",
1261    MODEL_ARCH.STABLELM:         "stablelm",
1262    MODEL_ARCH.QWEN:             "qwen",
1263    MODEL_ARCH.QWEN2:            "qwen2",
1264    MODEL_ARCH.QWEN2MOE:         "qwen2moe",
1265    MODEL_ARCH.QWEN2VL:          "qwen2vl",
1266    MODEL_ARCH.QWEN3:            "qwen3",
1267    MODEL_ARCH.QWEN3MOE:         "qwen3moe",
1268    MODEL_ARCH.QWEN3NEXT:        "qwen3next",
1269    MODEL_ARCH.QWEN3VL:          "qwen3vl",
1270    MODEL_ARCH.QWEN3VLMOE:       "qwen3vlmoe",
1271    MODEL_ARCH.QWEN35:           "qwen35",
1272    MODEL_ARCH.QWEN35MOE:        "qwen35moe",
1273    MODEL_ARCH.QWEN4EXP:         "qwen4exp",
1274    MODEL_ARCH.PHI2:             "phi2",
1275    MODEL_ARCH.PHI3:             "phi3",
1276    MODEL_ARCH.PHIMOE:           "phimoe",
1277    MODEL_ARCH.PLAMO:            "plamo",
1278    MODEL_ARCH.PLAMO2:           "plamo2",
1279    MODEL_ARCH.PLAMO3:           "plamo3",
1280    MODEL_ARCH.CODESHELL:        "codeshell",
1281    MODEL_ARCH.ORION:            "orion",
1282    MODEL_ARCH.INTERNLM2:        "internlm2",
1283    MODEL_ARCH.MINICPM:          "minicpm",
1284    MODEL_ARCH.MINICPM3:         "minicpm3",
1285    MODEL_ARCH.GEMMA:            "gemma",
1286    MODEL_ARCH.GEMMA2:           "gemma2",
1287    MODEL_ARCH.GEMMA3:           "gemma3",
1288    MODEL_ARCH.GEMMA3N:          "gemma3n",
1289    MODEL_ARCH.GEMMA4:           "gemma4",
1290    MODEL_ARCH.GEMMA4_ASSISTANT: "gemma4-assistant",
1291    MODEL_ARCH.GEMMA_EMBEDDING:  "gemma-embedding",
1292    MODEL_ARCH.STARCODER2:       "starcoder2",
1293    MODEL_ARCH.RWKV6:            "rwkv6",
1294    MODEL_ARCH.RWKV6QWEN2:       "rwkv6qwen2",
1295    MODEL_ARCH.RWKV7:            "rwkv7",
1296    MODEL_ARCH.ARWKV7:           "arwkv7",
1297    MODEL_ARCH.MAMBA:            "mamba",
1298    MODEL_ARCH.MAMBA2:           "mamba2",
1299    MODEL_ARCH.MAPLE:            "maple",
1300    MODEL_ARCH.JAMBA:            "jamba",
1301    MODEL_ARCH.XVERSE:           "xverse",
1302    MODEL_ARCH.COMMAND_R:        "command-r",
1303    MODEL_ARCH.COHERE2:          "cohere2",
1304    MODEL_ARCH.COHERE2MOE:       "cohere2moe",
1305    MODEL_ARCH.DBRX:             "dbrx",
1306    MODEL_ARCH.OLMO:             "olmo",
1307    MODEL_ARCH.OLMO2:            "olmo2",
1308    MODEL_ARCH.OLMOE:            "olmoe",
1309    MODEL_ARCH.MUSE_GLIMMER:     "muse-glimmer",
1310    MODEL_ARCH.OPENELM:          "openelm",
1311    MODEL_ARCH.ARCTIC:           "arctic",
1312    MODEL_ARCH.DEEPSEEK:         "deepseek",
1313    MODEL_ARCH.DEEPSEEK2:        "deepseek2",
1314    MODEL_ARCH.DEEPSEEK2OCR:     "deepseek2-ocr",
1315    MODEL_ARCH.DEEPSEEK32:       "deepseek32",
1316    MODEL_ARCH.DEEPSEEK4:        "deepseek4",
1317    MODEL_ARCH.CHATGLM:          "chatglm",
1318    MODEL_ARCH.GLM4:             "glm4",
1319    MODEL_ARCH.GLM4_MOE:         "glm4moe",
1320    MODEL_ARCH.GLM_DSA:          "glm-dsa",
1321    MODEL_ARCH.BITNET:           "bitnet",
1322    MODEL_ARCH.T5:               "t5",
1323    MODEL_ARCH.T5ENCODER:        "t5encoder",
1324    MODEL_ARCH.JAIS:             "jais",
1325    MODEL_ARCH.JAIS2:            "jais2",
1326    MODEL_ARCH.NEMOTRON:         "nemotron",
1327    MODEL_ARCH.NEMOTRON_H:       "nemotron_h",
1328    MODEL_ARCH.NEMOTRON_H_MOE:   "nemotron_h_moe",
1329    MODEL_ARCH.EXAONE:           "exaone",
1330    MODEL_ARCH.EXAONE4:          "exaone4",
1331    MODEL_ARCH.EXAONE_MOE:       "exaone-moe",
1332    MODEL_ARCH.GRANITE:          "granite",
1333    MODEL_ARCH.GRANITE_MOE:      "granitemoe",
1334    MODEL_ARCH.GRANITE_HYBRID:   "granitehybrid",
1335    MODEL_ARCH.GRANITE_SWITCH:   "graniteswitch",
1336    MODEL_ARCH.GRANITE_SWA:      "granite_swa",
1337    MODEL_ARCH.CHAMELEON:        "chameleon",
1338    MODEL_ARCH.WAVTOKENIZER_DEC: "wavtokenizer-dec",
1339    MODEL_ARCH.PLM:              "plm",
1340    MODEL_ARCH.BAILINGMOE:       "bailingmoe",
1341    MODEL_ARCH.BAILINGMOE2:      "bailingmoe2",
1342    MODEL_ARCH.BAILINGMOE3:      "bailingmoe3",
1343    MODEL_ARCH.DOTS1:            "dots1",
1344    MODEL_ARCH.DOTS3NOTE:        "dots3note",
1345    MODEL_ARCH.ARCEE:            "arcee",
1346    MODEL_ARCH.AFMOE:            "afmoe",
1347    MODEL_ARCH.LAGUNA:           "laguna",
1348    MODEL_ARCH.ERNIE4_5:         "ernie4_5",
1349    MODEL_ARCH.ERNIE4_5_MOE:     "ernie4_5-moe",
1350    MODEL_ARCH.FALCON_H1:        "falcon-h1",
1351    MODEL_ARCH.HUNYUAN_MOE:      "hunyuan-moe",
1352    MODEL_ARCH.HUNYUAN_DENSE:    "hunyuan-dense",
1353    MODEL_ARCH.HUNYUAN_VL:       "hunyuan_vl",
1354    MODEL_ARCH.HY_V3:            "hy_v3",
1355    MODEL_ARCH.HY_V4:            "hy_v4",
1356    MODEL_ARCH.SMOLLM3:          "smollm3",
1357    MODEL_ARCH.GPT_OSS:          "gpt-oss",
1358    MODEL_ARCH.LFM2:             "lfm2",
1359    MODEL_ARCH.LFM2MOE:          "lfm2moe",
1360    MODEL_ARCH.DREAM:            "dream",
1361    MODEL_ARCH.SMALLTHINKER:     "smallthinker",
1362    MODEL_ARCH.LLADA:            "llada",
1363    MODEL_ARCH.LLADA_MOE:        "llada-moe",
1364    MODEL_ARCH.SEED_OSS:         "seed_oss",
1365    MODEL_ARCH.GROVEMOE:         "grovemoe",
1366    MODEL_ARCH.APERTUS:          "apertus",
1367    MODEL_ARCH.MINIMAX01:        "minimax-01",
1368    MODEL_ARCH.MINIMAXM2:        "minimax-m2",
1369    MODEL_ARCH.MINIMAXM3:        "minimax-m3",
1370    MODEL_ARCH.COGVLM:           "cogvlm",
1371    MODEL_ARCH.RND1:             "rnd1",
1372    MODEL_ARCH.PANGU_EMBED:      "pangu-embedded",
1373    MODEL_ARCH.MISTRAL3:         "mistral3",
1374    MODEL_ARCH.EAGLE3:           "eagle3",
1375    MODEL_ARCH.DFLASH:           "dflash",
1376    MODEL_ARCH.MISTRAL4:         "mistral4",
1377    MODEL_ARCH.PADDLEOCR:        "paddleocr",
1378    MODEL_ARCH.MIMO2:            "mimo2",
1379    MODEL_ARCH.STEP35:           "step35",
1380    MODEL_ARCH.SPARK2_5:         "spark2_5",
1381    MODEL_ARCH.LLAMA_EMBED:      "llama-embed",
1382    MODEL_ARCH.MAINCODER:        "maincoder",
1383    MODEL_ARCH.KIMI_LINEAR:      "kimi-linear",
1384    MODEL_ARCH.KIMI_K3:          "kimi-k3",
1385    MODEL_ARCH.TALKIE:           "talkie",
1386    MODEL_ARCH.MELLUM:           "mellum",
1387    MODEL_ARCH.NANBEIGE:         "nanbeige",
1388    MODEL_ARCH.QWEN3TTS:         "qwen3tts",
1389    MODEL_ARCH.POCKETTTS:        "pockettts",
1390}
1391
1392VISION_PROJECTOR_TYPE_NAMES: dict[VISION_PROJECTOR_TYPE, str] = {
1393    VISION_PROJECTOR_TYPE.MLP:       "mlp",
1394    VISION_PROJECTOR_TYPE.LDP:       "ldp",
1395    VISION_PROJECTOR_TYPE.LDPV2:     "ldpv2",
1396    VISION_PROJECTOR_TYPE.RESAMPLER: "resampler",
1397    VISION_PROJECTOR_TYPE.GLM_EDGE:  "adapter",
1398    VISION_PROJECTOR_TYPE.MERGER:    "qwen2vl_merger",
1399    VISION_PROJECTOR_TYPE.GEMMA3:    "gemma3",
1400    VISION_PROJECTOR_TYPE.QWEN3VL:   "qwen3vl_merger",
1401    VISION_PROJECTOR_TYPE.STEP3VL:   "step3vl",
1402}
1403
1404TENSOR_NAMES: dict[MODEL_TENSOR, str] = {
1405    MODEL_TENSOR.TOKEN_EMBD:                "token_embd",
1406    MODEL_TENSOR.TOKEN_EMBD_NORM:           "token_embd_norm",
1407    MODEL_TENSOR.TOKEN_TYPES:               "token_types",
1408    MODEL_TENSOR.MASKED_EMBD_CENTROIDS:     "masked_embd_centroids",
1409    MODEL_TENSOR.MASKED_EMBD_ORDERING:      "masked_embd_ordering",
1410    MODEL_TENSOR.POS_EMBD:                  "position_embd",
1411    MODEL_TENSOR.OUTPUT_NORM:               "output_norm",
1412    MODEL_TENSOR.OUTPUT:                    "output",
1413    MODEL_TENSOR.DENSE_2_OUT:               "dense_2", # embeddinggemma 2_Dense
1414    MODEL_TENSOR.DENSE_3_OUT:               "dense_3", # embeddinggemma 2_Dense
1415    MODEL_TENSOR.HC_HEAD_FN:                "output_hc_fn",
1416    MODEL_TENSOR.HC_HEAD_BASE:              "output_hc_base",
1417    MODEL_TENSOR.HC_HEAD_SCALE:             "output_hc_scale",
1418    MODEL_TENSOR.HC_HEAD_NORM:              "output_hc_norm",                 # qwen4exp
1419    MODEL_TENSOR.HC_HEAD_DOWN:              "output_hc_down",                 # qwen4exp
1420    MODEL_TENSOR.HC_HEAD_UP:                "output_hc_up",                   # qwen4exp
1421    MODEL_TENSOR.ROPE_FREQS:                "rope_freqs",
1422    MODEL_TENSOR.ROPE_FACTORS_LONG:         "rope_factors_long",
1423    MODEL_TENSOR.ROPE_FACTORS_SHORT:        "rope_factors_short",
1424    MODEL_TENSOR.ATTN_NORM:                 "blk.{bid}.attn_norm",
1425    MODEL_TENSOR.ATTN_NORM_2:               "blk.{bid}.attn_norm_2",
1426    MODEL_TENSOR.ATTN_QKV:                  "blk.{bid}.attn_qkv",
1427    MODEL_TENSOR.ATTN_Q:                    "blk.{bid}.attn_q",
1428    MODEL_TENSOR.ATTN_K:                    "blk.{bid}.attn_k",
1429    MODEL_TENSOR.ATTN_V:                    "blk.{bid}.attn_v",
1430    MODEL_TENSOR.ATTN_OUT:                  "blk.{bid}.attn_output",
1431    MODEL_TENSOR.ATTN_ROT_EMBD:             "blk.{bid}.attn_rot_embd",
1432    MODEL_TENSOR.ATTN_SINKS:                "blk.{bid}.attn_sinks",
1433    MODEL_TENSOR.ATTN_GATE:                 "blk.{bid}.attn_gate",
1434    MODEL_TENSOR.ATTN_Q_NORM:               "blk.{bid}.attn_q_norm",
1435    MODEL_TENSOR.ATTN_K_NORM:               "blk.{bid}.attn_k_norm",
1436    MODEL_TENSOR.ATTN_OUT_NORM:             "blk.{bid}.attn_output_norm",
1437    MODEL_TENSOR.ATTN_POST_NORM:            "blk.{bid}.post_attention_norm",
1438    MODEL_TENSOR.FFN_GATE_INP:              "blk.{bid}.ffn_gate_inp",
1439    MODEL_TENSOR.FFN_GATE_INP_SHEXP:        "blk.{bid}.ffn_gate_inp_shexp",
1440    MODEL_TENSOR.FFN_NORM:                  "blk.{bid}.ffn_norm",
1441    MODEL_TENSOR.FFN_PRE_NORM:              "blk.{bid}.ffn_norm",
1442    MODEL_TENSOR.FFN_POST_NORM:             "blk.{bid}.post_ffw_norm",
1443    MODEL_TENSOR.FFN_PRE_NORM_2:            "blk.{bid}.pre_ffw_norm_2",  # gemma4
1444    MODEL_TENSOR.FFN_POST_NORM_1:           "blk.{bid}.post_ffw_norm_1", # gemma4
1445    MODEL_TENSOR.FFN_POST_NORM_2:           "blk.{bid}.post_ffw_norm_2", # gemma4
1446    MODEL_TENSOR.FFN_GATE:                  "blk.{bid}.ffn_gate",
1447    MODEL_TENSOR.FFN_DOWN:                  "blk.{bid}.ffn_down",
1448    MODEL_TENSOR.FFN_UP:                    "blk.{bid}.ffn_up",
1449    MODEL_TENSOR.FFN_GATE_SHEXP:            "blk.{bid}.ffn_gate_shexp",
1450    MODEL_TENSOR.FFN_DOWN_SHEXP:            "blk.{bid}.ffn_down_shexp",
1451    MODEL_TENSOR.FFN_UP_SHEXP:              "blk.{bid}.ffn_up_shexp",
1452    MODEL_TENSOR.FFN_GATE_CHEXP:            "blk.{bid}.ffn_gate_chexps",
1453    MODEL_TENSOR.FFN_DOWN_CHEXP:            "blk.{bid}.ffn_down_chexps",
1454    MODEL_TENSOR.FFN_UP_CHEXP:              "blk.{bid}.ffn_up_chexps",
1455    MODEL_TENSOR.FFN_ACT:                   "blk.{bid}.ffn",
1456    MODEL_TENSOR.FFN_NORM_EXP:              "blk.{bid}.ffn_norm_exps",
1457    MODEL_TENSOR.FFN_GATE_EXP:              "blk.{bid}.ffn_gate_exps",
1458    MODEL_TENSOR.FFN_DOWN_EXP:              "blk.{bid}.ffn_down_exps",
1459    MODEL_TENSOR.FFN_UP_EXP:                "blk.{bid}.ffn_up_exps",
1460    MODEL_TENSOR.FFN_GATE_UP_EXP:           "blk.{bid}.ffn_gate_up_exps",
1461    MODEL_TENSOR.FFN_EXP_PROBS_B:           "blk.{bid}.exp_probs_b",
1462    MODEL_TENSOR.FFN_EXP_PROBS_B_VL:        "blk.{bid}.exp_probs_b_vl",
1463    MODEL_TENSOR.FFN_GATE_TID2EID:          "blk.{bid}.ffn_gate_tid2eid",
1464    MODEL_TENSOR.MOE_LATENT_DOWN:           "blk.{bid}.ffn_latent_down",      # nemotron 3 super
1465    MODEL_TENSOR.MOE_LATENT_UP:             "blk.{bid}.ffn_latent_up",        # nemotron 3 super
1466    MODEL_TENSOR.LAYER_OUT_NORM:            "blk.{bid}.layer_output_norm",
1467    MODEL_TENSOR.LAYER_OUT_SCALE:           "blk.{bid}.layer_output_scale",
1468    MODEL_TENSOR.PER_LAYER_TOKEN_EMBD:      "per_layer_token_embd",           # gemma3n
1469    MODEL_TENSOR.PER_LAYER_MODEL_PROJ:      "per_layer_model_proj",           # gemma3n
1470    MODEL_TENSOR.PER_LAYER_PROJ_NORM:       "per_layer_proj_norm",            # gemma3n
1471    MODEL_TENSOR.ALTUP_UNEMBD_PROJ:         "altup_unembd_proj",              # gemma3n
1472    MODEL_TENSOR.ALTUP_PROJ:                "altup_proj",                     # gemma3n
1473    MODEL_TENSOR.PER_LAYER_INP_GATE:        "blk.{bid}.inp_gate",             # gemma3n
1474    MODEL_TENSOR.PER_LAYER_PROJ:            "blk.{bid}.proj",                 # gemma3n
1475    MODEL_TENSOR.PER_LAYER_POST_NORM:       "blk.{bid}.post_norm",            # gemma3n
1476    MODEL_TENSOR.ALTUP_CORRECT_COEF:        "blk.{bid}.altup_correct_coef",   # gemma3n
1477    MODEL_TENSOR.ALTUP_CORRECT_SCALE:       "blk.{bid}.altup_correct_scale",  # gemma3n
1478    MODEL_TENSOR.ALTUP_PREDICT_COEF:        "blk.{bid}.altup_predict_coef",   # gemma3n
1479    MODEL_TENSOR.ALTUP_ROUTER:              "blk.{bid}.altup_router",         # gemma3n
1480    MODEL_TENSOR.ALTUP_ROUTER_NORM:         "blk.{bid}.altup_router_norm",    # gemma3n
1481    MODEL_TENSOR.LAUREL_L:                  "blk.{bid}.laurel_l",             # gemma3n
1482    MODEL_TENSOR.LAUREL_R:                  "blk.{bid}.laurel_r",             # gemma3n
1483    MODEL_TENSOR.LAUREL_POST_NORM:          "blk.{bid}.laurel_post_norm",     # gemma3n
1484    MODEL_TENSOR.SSM_IN:                    "blk.{bid}.ssm_in",
1485    MODEL_TENSOR.SSM_CONV1D:                "blk.{bid}.ssm_conv1d",
1486    MODEL_TENSOR.SSM_X:                     "blk.{bid}.ssm_x",
1487    MODEL_TENSOR.SSM_DT:                    "blk.{bid}.ssm_dt",
1488    MODEL_TENSOR.SSM_DT_NORM:               "blk.{bid}.ssm_dt_norm",
1489    MODEL_TENSOR.SSM_A:                     "blk.{bid}.ssm_a",
1490    MODEL_TENSOR.SSM_B_NORM:                "blk.{bid}.ssm_b_norm",
1491    MODEL_TENSOR.SSM_C_NORM:                "blk.{bid}.ssm_c_norm",
1492    MODEL_TENSOR.SSM_D:                     "blk.{bid}.ssm_d",
1493    MODEL_TENSOR.SSM_NORM:                  "blk.{bid}.ssm_norm",
1494    MODEL_TENSOR.SSM_OUT:                   "blk.{bid}.ssm_out",
1495    MODEL_TENSOR.SSM_ALPHA:                 "blk.{bid}.ssm_alpha",            # qwen3.5
1496    MODEL_TENSOR.SSM_BETA_ALPHA:            "blk.{bid}.ssm_ba",
1497    MODEL_TENSOR.SSM_CONV1D_Q:              "blk.{bid}.ssm_conv1d_q",         # Kimi Linear
1498    MODEL_TENSOR.SSM_CONV1D_K:              "blk.{bid}.ssm_conv1d_k",         # Kimi Linear
1499    MODEL_TENSOR.SSM_CONV1D_V:              "blk.{bid}.ssm_conv1d_v",         # Kimi Linear
1500    MODEL_TENSOR.SSM_F_A:                   "blk.{bid}.ssm_f_a",              # Kimi Linear
1501    MODEL_TENSOR.SSM_F_B:                   "blk.{bid}.ssm_f_b",              # Kimi Linear
1502    MODEL_TENSOR.SSM_BETA:                  "blk.{bid}.ssm_beta",             # Kimi Linear qwen3.5
1503    MODEL_TENSOR.SSM_G_A:                   "blk.{bid}.ssm_g_a",              # Kimi Linear
1504    MODEL_TENSOR.SSM_G_B:                   "blk.{bid}.ssm_g_b",              # Kimi Linear
1505    MODEL_TENSOR.SSM_G:                     "blk.{bid}.ssm_g",                # Kimi K3
1506    MODEL_TENSOR.ATTN_RES_SCORE:            "blk.{bid}.attn_res_score",       # Kimi K3
1507    MODEL_TENSOR.FFN_RES_SCORE:             "blk.{bid}.ffn_res_score",        # Kimi K3
1508    MODEL_TENSOR.OUTPUT_RES_SCORE:          "output_res_score",               # Kimi K3
1509    MODEL_TENSOR.FFN_ROUTED_DOWN:           "blk.{bid}.ffn_routed_down",      # Kimi K3
1510    MODEL_TENSOR.FFN_ROUTED_UP:             "blk.{bid}.ffn_routed_up",        # Kimi K3
1511    MODEL_TENSOR.FFN_ROUTED_NORM:           "blk.{bid}.ffn_routed_norm",      # Kimi K3
1512    MODEL_TENSOR.TIME_MIX_W0:               "blk.{bid}.time_mix_w0",
1513    MODEL_TENSOR.TIME_MIX_W1:               "blk.{bid}.time_mix_w1",
1514    MODEL_TENSOR.TIME_MIX_W2:               "blk.{bid}.time_mix_w2",
1515    MODEL_TENSOR.TIME_MIX_A0:               "blk.{bid}.time_mix_a0",
1516    MODEL_TENSOR.TIME_MIX_A1:               "blk.{bid}.time_mix_a1",
1517    MODEL_TENSOR.TIME_MIX_A2:               "blk.{bid}.time_mix_a2",
1518    MODEL_TENSOR.TIME_MIX_V0:               "blk.{bid}.time_mix_v0",
1519    MODEL_TENSOR.TIME_MIX_V1:               "blk.{bid}.time_mix_v1",
1520    MODEL_TENSOR.TIME_MIX_V2:               "blk.{bid}.time_mix_v2",
1521    MODEL_TENSOR.TIME_MIX_G1:               "blk.{bid}.time_mix_g1",
1522    MODEL_TENSOR.TIME_MIX_G2:               "blk.{bid}.time_mix_g2",
1523    MODEL_TENSOR.TIME_MIX_K_K:              "blk.{bid}.time_mix_k_k",
1524    MODEL_TENSOR.TIME_MIX_K_A:              "blk.{bid}.time_mix_k_a",
1525    MODEL_TENSOR.TIME_MIX_R_K:              "blk.{bid}.time_mix_r_k",
1526    MODEL_TENSOR.TIME_MIX_LERP_X:           "blk.{bid}.time_mix_lerp_x",
1527    MODEL_TENSOR.TIME_MIX_LERP_K:           "blk.{bid}.time_mix_lerp_k",
1528    MODEL_TENSOR.TIME_MIX_LERP_V:           "blk.{bid}.time_mix_lerp_v",
1529    MODEL_TENSOR.TIME_MIX_LERP_R:           "blk.{bid}.time_mix_lerp_r",
1530    MODEL_TENSOR.TIME_MIX_LERP_G:           "blk.{bid}.time_mix_lerp_g",
1531    MODEL_TENSOR.TIME_MIX_LERP_FUSED:       "blk.{bid}.time_mix_lerp_fused",
1532    MODEL_TENSOR.TIME_MIX_LERP_W:           "blk.{bid}.time_mix_lerp_w",
1533    MODEL_TENSOR.TIME_MIX_FIRST:            "blk.{bid}.time_mix_first",
1534    MODEL_TENSOR.TIME_MIX_DECAY:            "blk.{bid}.time_mix_decay",
1535    MODEL_TENSOR.TIME_MIX_DECAY_W1:         "blk.{bid}.time_mix_decay_w1",
1536    MODEL_TENSOR.TIME_MIX_DECAY_W2:         "blk.{bid}.time_mix_decay_w2",
1537    MODEL_TENSOR.TIME_MIX_KEY:              "blk.{bid}.time_mix_key",
1538    MODEL_TENSOR.TIME_MIX_VALUE:            "blk.{bid}.time_mix_value",
1539    MODEL_TENSOR.TIME_MIX_RECEPTANCE:       "blk.{bid}.time_mix_receptance",
1540    MODEL_TENSOR.TIME_MIX_GATE:             "blk.{bid}.time_mix_gate",
1541    MODEL_TENSOR.TIME_MIX_LN:               "blk.{bid}.time_mix_ln",
1542    MODEL_TENSOR.TIME_MIX_OUTPUT:           "blk.{bid}.time_mix_output",
1543    MODEL_TENSOR.CHANNEL_MIX_LERP_K:        "blk.{bid}.channel_mix_lerp_k",
1544    MODEL_TENSOR.CHANNEL_MIX_LERP_R:        "blk.{bid}.channel_mix_lerp_r",
1545    MODEL_TENSOR.CHANNEL_MIX_KEY:           "blk.{bid}.channel_mix_key",
1546    MODEL_TENSOR.CHANNEL_MIX_RECEPTANCE:    "blk.{bid}.channel_mix_receptance",
1547    MODEL_TENSOR.CHANNEL_MIX_VALUE:         "blk.{bid}.channel_mix_value",
1548    MODEL_TENSOR.ATTN_Q_A:                  "blk.{bid}.attn_q_a",
1549    MODEL_TENSOR.ATTN_Q_B:                  "blk.{bid}.attn_q_b",
1550    MODEL_TENSOR.ATTN_KV_A_MQA:             "blk.{bid}.attn_kv_a_mqa",
1551    MODEL_TENSOR.ATTN_KV_B:                 "blk.{bid}.attn_kv_b",
1552    MODEL_TENSOR.ATTN_K_B:                  "blk.{bid}.attn_k_b",
1553    MODEL_TENSOR.ATTN_V_B:                  "blk.{bid}.attn_v_b",
1554    MODEL_TENSOR.ATTN_Q_A_NORM:             "blk.{bid}.attn_q_a_norm",
1555    MODEL_TENSOR.ATTN_KV_A_NORM:            "blk.{bid}.attn_kv_a_norm",
1556    MODEL_TENSOR.ATTN_KV:                   "blk.{bid}.attn_kv",
1557    MODEL_TENSOR.ATTN_KV_NORM:              "blk.{bid}.attn_kv_a_norm",
1558    MODEL_TENSOR.ATTN_OUT_A:                "blk.{bid}.attn_output_a",
1559    MODEL_TENSOR.ATTN_OUT_B:                "blk.{bid}.attn_output_b",
1560    MODEL_TENSOR.HC_ATTN_FN:                "blk.{bid}.hc_attn_fn",
1561    MODEL_TENSOR.HC_ATTN_BASE:              "blk.{bid}.hc_attn_base",
1562    MODEL_TENSOR.HC_ATTN_SCALE:             "blk.{bid}.hc_attn_scale",
1563    MODEL_TENSOR.HC_FFN_FN:                 "blk.{bid}.hc_ffn_fn",
1564    MODEL_TENSOR.HC_FFN_BASE:               "blk.{bid}.hc_ffn_base",
1565    MODEL_TENSOR.HC_FFN_SCALE:              "blk.{bid}.hc_ffn_scale",
1566    MODEL_TENSOR.HC_ATTN_NORM:              "blk.{bid}.hc_attn_norm",         # qwen4exp
1567    MODEL_TENSOR.HC_ATTN_DOWN:              "blk.{bid}.hc_attn_down",         # qwen4exp
1568    MODEL_TENSOR.HC_ATTN_UP:                "blk.{bid}.hc_attn_up",           # qwen4exp
1569    MODEL_TENSOR.HC_ATTN_INJECT:            "blk.{bid}.hc_attn_inject",       # qwen4exp
1570    MODEL_TENSOR.HC_FFN_NORM:               "blk.{bid}.hc_ffn_norm",          # qwen4exp
1571    MODEL_TENSOR.HC_FFN_DOWN:               "blk.{bid}.hc_ffn_down",          # qwen4exp
1572    MODEL_TENSOR.HC_FFN_UP:                 "blk.{bid}.hc_ffn_up",            # qwen4exp
1573    MODEL_TENSOR.HC_FFN_INJECT:             "blk.{bid}.hc_ffn_inject",        # qwen4exp
1574    MODEL_TENSOR.PLE_KEY:                   "blk.{bid}.ple_key",              # qwen4exp
1575    MODEL_TENSOR.PLE_VALUE:                 "blk.{bid}.ple_value",            # qwen4exp
1576    MODEL_TENSOR.PLE_NORM_KEY:              "blk.{bid}.ple_norm_key",         # qwen4exp
1577    MODEL_TENSOR.PLE_NORM_QUERY:            "blk.{bid}.ple_norm_query",       # qwen4exp
1578    MODEL_TENSOR.PLE_NORM_CONV:             "blk.{bid}.ple_norm_conv",        # qwen4exp
1579    MODEL_TENSOR.PLE_CONV1D:                "blk.{bid}.ple_conv1d",           # qwen4exp
1580    MODEL_TENSOR.ATTN_COMPRESSOR_WKV:       "blk.{bid}.attn_compressor_kv",
1581    MODEL_TENSOR.ATTN_COMPRESSOR_WGATE:     "blk.{bid}.attn_compressor_gate",
1582    MODEL_TENSOR.ATTN_COMPRESSOR_APE:       "blk.{bid}.attn_compressor_ape",
1583    MODEL_TENSOR.ATTN_COMPRESSOR_NORM:      "blk.{bid}.attn_compressor_norm",
1584    MODEL_TENSOR.ATTN_SUB_NORM:             "blk.{bid}.attn_sub_norm",
1585    MODEL_TENSOR.FFN_SUB_NORM:              "blk.{bid}.ffn_sub_norm",
1586    MODEL_TENSOR.DEC_ATTN_NORM:             "dec.blk.{bid}.attn_norm",
1587    MODEL_TENSOR.DEC_ATTN_Q:                "dec.blk.{bid}.attn_q",
1588    MODEL_TENSOR.DEC_ATTN_K:                "dec.blk.{bid}.attn_k",
1589    MODEL_TENSOR.DEC_ATTN_V:                "dec.blk.{bid}.attn_v",
1590    MODEL_TENSOR.DEC_ATTN_OUT:              "dec.blk.{bid}.attn_o",
1591    MODEL_TENSOR.DEC_ATTN_REL_B:            "dec.blk.{bid}.attn_rel_b",
1592    MODEL_TENSOR.DEC_CROSS_ATTN_NORM:       "dec.blk.{bid}.cross_attn_norm",
1593    MODEL_TENSOR.DEC_CROSS_ATTN_Q:          "dec.blk.{bid}.cross_attn_q",
1594    MODEL_TENSOR.DEC_CROSS_ATTN_K:          "dec.blk.{bid}.cross_attn_k",
1595    MODEL_TENSOR.DEC_CROSS_ATTN_V:          "dec.blk.{bid}.cross_attn_v",
1596    MODEL_TENSOR.DEC_CROSS_ATTN_OUT:        "dec.blk.{bid}.cross_attn_o",
1597    MODEL_TENSOR.DEC_CROSS_ATTN_REL_B:      "dec.blk.{bid}.cross_attn_rel_b",
1598    MODEL_TENSOR.DEC_FFN_NORM:              "dec.blk.{bid}.ffn_norm",
1599    MODEL_TENSOR.DEC_FFN_GATE:              "dec.blk.{bid}.ffn_gate",
1600    MODEL_TENSOR.DEC_FFN_DOWN:              "dec.blk.{bid}.ffn_down",
1601    MODEL_TENSOR.DEC_FFN_UP:                "dec.blk.{bid}.ffn_up",
1602    MODEL_TENSOR.DEC_OUTPUT_NORM:           "dec.output_norm",
1603    MODEL_TENSOR.ENC_ATTN_NORM:             "enc.blk.{bid}.attn_norm",
1604    MODEL_TENSOR.ENC_ATTN_Q:                "enc.blk.{bid}.attn_q",
1605    MODEL_TENSOR.ENC_ATTN_K:                "enc.blk.{bid}.attn_k",
1606    MODEL_TENSOR.ENC_ATTN_V:                "enc.blk.{bid}.attn_v",
1607    MODEL_TENSOR.ENC_ATTN_OUT:              "enc.blk.{bid}.attn_o",
1608    MODEL_TENSOR.ENC_ATTN_REL_B:            "enc.blk.{bid}.attn_rel_b",
1609    MODEL_TENSOR.ENC_FFN_NORM:              "enc.blk.{bid}.ffn_norm",
1610    MODEL_TENSOR.ENC_FFN_GATE:              "enc.blk.{bid}.ffn_gate",
1611    MODEL_TENSOR.ENC_FFN_DOWN:              "enc.blk.{bid}.ffn_down",
1612    MODEL_TENSOR.ENC_FFN_UP:                "enc.blk.{bid}.ffn_up",
1613    MODEL_TENSOR.ENC_OUTPUT_NORM:           "enc.output_norm",
1614    MODEL_TENSOR.CLS:                       "cls",
1615    MODEL_TENSOR.CLS_OUT:                   "cls.output",
1616    MODEL_TENSOR.CLS_NORM:                  "cls.norm",
1617    MODEL_TENSOR.CONV1D:                    "conv1d",
1618    MODEL_TENSOR.CONVNEXT_DW:               "convnext.{bid}.dw",
1619    MODEL_TENSOR.CONVNEXT_NORM:             "convnext.{bid}.norm",
1620    MODEL_TENSOR.CONVNEXT_PW1:              "convnext.{bid}.pw1",
1621    MODEL_TENSOR.CONVNEXT_PW2:              "convnext.{bid}.pw2",
1622    MODEL_TENSOR.CONVNEXT_GAMMA:            "convnext.{bid}.gamma",
1623    MODEL_TENSOR.POSNET_CONV1:              "posnet.{bid}.conv1",
1624    MODEL_TENSOR.POSNET_CONV2:              "posnet.{bid}.conv2",
1625    MODEL_TENSOR.POSNET_NORM:               "posnet.{bid}.norm",
1626    MODEL_TENSOR.POSNET_NORM1:              "posnet.{bid}.norm1",
1627    MODEL_TENSOR.POSNET_NORM2:              "posnet.{bid}.norm2",
1628    MODEL_TENSOR.POSNET_ATTN_NORM:          "posnet.{bid}.attn_norm",
1629    MODEL_TENSOR.POSNET_ATTN_Q:             "posnet.{bid}.attn_q",
1630    MODEL_TENSOR.POSNET_ATTN_K:             "posnet.{bid}.attn_k",
1631    MODEL_TENSOR.POSNET_ATTN_V:             "posnet.{bid}.attn_v",
1632    MODEL_TENSOR.POSNET_ATTN_OUT:           "posnet.{bid}.attn_output",
1633    MODEL_TENSOR.SHORTCONV_CONV:            "blk.{bid}.shortconv.conv",
1634    MODEL_TENSOR.SHORTCONV_INPROJ:          "blk.{bid}.shortconv.in_proj",
1635    MODEL_TENSOR.SHORTCONV_OUTPROJ:         "blk.{bid}.shortconv.out_proj",
1636    MODEL_TENSOR.VISEXP_ATTN_QKV:           "blk.{bid}.vis_attn_qkv",
1637    MODEL_TENSOR.VISEXP_ATTN_OUT:           "blk.{bid}.vis_attn_output",
1638    MODEL_TENSOR.VISEXP_GATE:               "blk.{bid}.vis_gate",
1639    MODEL_TENSOR.VISEXP_DOWN:               "blk.{bid}.vis_down",
1640    MODEL_TENSOR.VISEXP_UP:                 "blk.{bid}.vis_up",
1641    MODEL_TENSOR.INDEXER_K_NORM:            "blk.{bid}.indexer.k_norm",
1642    MODEL_TENSOR.INDEXER_PROJ:              "blk.{bid}.indexer.proj",
1643    MODEL_TENSOR.INDEXER_ATTN_K:            "blk.{bid}.indexer.attn_k",
1644    MODEL_TENSOR.INDEXER_ATTN_Q_B:          "blk.{bid}.indexer.attn_q_b",
1645    MODEL_TENSOR.INDEXER_Q_PROJ:            "blk.{bid}.indexer.q_proj",
1646    MODEL_TENSOR.INDEXER_K_PROJ:            "blk.{bid}.indexer.k_proj",
1647    MODEL_TENSOR.INDEXER_Q_NORM:            "blk.{bid}.indexer.q_norm",
1648    MODEL_TENSOR.INDEXER_COMPRESSOR_WKV:    "blk.{bid}.indexer_compressor_kv",
1649    MODEL_TENSOR.INDEXER_COMPRESSOR_WGATE:  "blk.{bid}.indexer_compressor_gate",
1650    MODEL_TENSOR.INDEXER_COMPRESSOR_APE:    "blk.{bid}.indexer_compressor_ape",
1651    MODEL_TENSOR.INDEXER_COMPRESSOR_NORM:   "blk.{bid}.indexer_compressor_norm",
1652    # vision
1653    MODEL_TENSOR.V_MMPROJ:                  "mm.{bid}",
1654    MODEL_TENSOR.V_MMPROJ_FC:               "mm.model.fc",
1655    MODEL_TENSOR.V_MMPROJ_MLP:              "mm.model.mlp.{bid}",
1656    MODEL_TENSOR.V_MMPROJ_PEG:              "mm.model.peg.{bid}",
1657    MODEL_TENSOR.V_ENC_EMBD_CLS:            "v.class_embd",
1658    MODEL_TENSOR.V_ENC_EMBD_PATCH:          "v.patch_embd",
1659    MODEL_TENSOR.V_ENC_EMBD_NORM:           "v.norm_embd",
1660    MODEL_TENSOR.V_ENC_EMBD_PATCH_NORM:     "v.patch_norm.{bid}",
1661    MODEL_TENSOR.V_ENC_EMBD_POS:            "v.position_embd",
1662    MODEL_TENSOR.V_ENC_ATTN_QKV:            "v.blk.{bid}.attn_qkv",
1663    MODEL_TENSOR.V_ENC_ATTN_Q:              "v.blk.{bid}.attn_q",
1664    MODEL_TENSOR.V_ENC_ATTN_Q_NORM:         "v.blk.{bid}.attn_q_norm",
1665    MODEL_TENSOR.V_ENC_ATTN_K:              "v.blk.{bid}.attn_k",
1666    MODEL_TENSOR.V_ENC_ATTN_K_NORM:         "v.blk.{bid}.attn_k_norm",
1667    MODEL_TENSOR.V_ENC_ATTN_V:              "v.blk.{bid}.attn_v",
1668    MODEL_TENSOR.V_ENC_INPUT_NORM:          "v.blk.{bid}.ln1",
1669    MODEL_TENSOR.V_ENC_ATTN_O:              "v.blk.{bid}.attn_out",
1670    MODEL_TENSOR.V_ENC_ATTN_O_NORM:         "v.blk.{bid}.attn_out_norm",
1671    MODEL_TENSOR.V_ENC_ATTN_SINKS:          "v.blk.{bid}.attn_sinks",
1672    MODEL_TENSOR.V_ENC_POST_ATTN_NORM:      "v.blk.{bid}.ln2",
1673    MODEL_TENSOR.V_ENC_FFN_UP:              "v.blk.{bid}.ffn_up",
1674    MODEL_TENSOR.V_ENC_FFN_GATE:            "v.blk.{bid}.ffn_gate",
1675    MODEL_TENSOR.V_ENC_FFN_DOWN:            "v.blk.{bid}.ffn_down",
1676    MODEL_TENSOR.V_ENC_FFN_GATE_INP:        "v.blk.{bid}.ffn_gate_inp",
1677    MODEL_TENSOR.V_ENC_FFN_GATE_EXPS:       "v.blk.{bid}.ffn_gate_exps",
1678    MODEL_TENSOR.V_ENC_FFN_UP_EXPS:         "v.blk.{bid}.ffn_up_exps",
1679    MODEL_TENSOR.V_ENC_FFN_DOWN_EXPS:       "v.blk.{bid}.ffn_down_exps",
1680    MODEL_TENSOR.V_ENC_FFN_EXP_PROBS_B:     "v.blk.{bid}.exp_probs_b",
1681    MODEL_TENSOR.V_ENC_ATTN_POST_NORM:      "v.blk.{bid}.attn_post_norm",
1682    MODEL_TENSOR.V_ENC_FFN_POST_NORM:       "v.blk.{bid}.ffn_post_norm",
1683    MODEL_TENSOR.V_LAYER_SCALE_1:           "v.blk.{bid}.ls1",
1684    MODEL_TENSOR.V_LAYER_SCALE_2:           "v.blk.{bid}.ls2",
1685    MODEL_TENSOR.V_LAYER_OUT_SCALE:         "v.blk.{bid}.out_scale",
1686    MODEL_TENSOR.V_PRE_NORM:                "v.pre_ln",
1687    MODEL_TENSOR.V_POST_NORM:               "v.post_ln",
1688    MODEL_TENSOR.V_MM_POST_NORM:            "mm.post_norm",
1689    MODEL_TENSOR.V_MM_INP_PROJ:             "mm.input_projection",
1690    MODEL_TENSOR.V_MM_INP_NORM:             "mm.input_norm",
1691    MODEL_TENSOR.V_MM_SOFT_EMB_NORM:        "mm.soft_emb_norm",         # gemma3n
1692    MODEL_TENSOR.V_MM_EMBEDDING:            "mm.embedding",             # gemma3n
1693    MODEL_TENSOR.V_MM_HARD_EMB_NORM:        "mm.hard_emb_norm",         # gemma3n
1694    MODEL_TENSOR.V_ENC_CONV_STEM:           "v.conv_stem.conv",         # gemma3n
1695    MODEL_TENSOR.V_ENC_CONV_STEM_NORM:      "v.conv_stem.bn",           # gemma3n
1696    MODEL_TENSOR.V_ENC_MSFA_EXP:            "v.msfa.ffn.pw_exp.conv",   # gemma3n
1697    MODEL_TENSOR.V_ENC_MSFA_EXP_NORM:       "v.msfa.ffn.pw_exp.bn",     # gemma3n
1698    MODEL_TENSOR.V_ENC_MSFA_PROJ:           "v.msfa.ffn.pw_proj.conv",  # gemma3n
1699    MODEL_TENSOR.V_ENC_MSFA_PROJ_NORM:      "v.msfa.ffn.pw_proj.bn",    # gemma3n
1700    MODEL_TENSOR.V_ENC_MSFA_NORM:           "v.msfa.norm",              # gemma3n
1701    MODEL_TENSOR.V_RESMPL_POS_EMBD_K:       "resampler.pos_embd_k",
1702    MODEL_TENSOR.V_RESMPL_ATTN_Q:           "resampler.attn.q",
1703    MODEL_TENSOR.V_RESMPL_ATTN_K:           "resampler.attn.k",
1704    MODEL_TENSOR.V_RESMPL_ATTN_V:           "resampler.attn.v",
1705    MODEL_TENSOR.V_RESMPL_ATTN_OUT:         "resampler.attn.out",
1706    MODEL_TENSOR.V_RESMPL_KV:               "resampler.kv",
1707    MODEL_TENSOR.V_RESMPL_KV_NORM:          "resampler.ln_kv",
1708    MODEL_TENSOR.V_RESMPL_POST_NORM:        "resampler.ln_post",
1709    MODEL_TENSOR.V_RESMPL_Q_NORM:           "resampler.ln_q",
1710    MODEL_TENSOR.V_RESMPL_PROJ:             "resampler.proj",
1711    MODEL_TENSOR.V_RESMPL_QUERY:            "resampler.query",
1712    MODEL_TENSOR.V_TOK_EMBD_IMG_BREAK:      "v.token_embd.img_break", # pixtral
1713    MODEL_TENSOR.V_TOK_EMBD_IMG_START:      "v.token_embd.img_start", # deepseek4v
1714    MODEL_TENSOR.V_TOK_EMBD_IMG_END:        "v.token_embd.img_end",   # deepseek4v
1715    MODEL_TENSOR.V_TOK_EMBD_IMG_PAD:        "v.token_embd.img_pad",   # deepseek4v
1716    MODEL_TENSOR.V_MM_PATCH_MERGER:         "mm.patch_merger", # mistral small 3.1
1717    MODEL_TENSOR.V_DS_NORM:                 "v.deepstack.{bid}.norm",
1718    MODEL_TENSOR.V_DS_FC1:                  "v.deepstack.{bid}.fc1",
1719    MODEL_TENSOR.V_DS_FC2:                  "v.deepstack.{bid}.fc2",
1720    MODEL_TENSOR.V_MERGER_LN1:              "v.vit_merger.ln1",
1721    MODEL_TENSOR.V_MERGER_ATTN_Q:           "v.vit_merger.attn_q",
1722    MODEL_TENSOR.V_MERGER_ATTN_K:           "v.vit_merger.attn_k",
1723    MODEL_TENSOR.V_MERGER_ATTN_V:           "v.vit_merger.attn_v",
1724    MODEL_TENSOR.V_MERGER_ATTN_O:           "v.vit_merger.attn_out",
1725    MODEL_TENSOR.V_MERGER_DS_LN:            "v.vit_merger.ds_ln",
1726    MODEL_TENSOR.V_MERGER_DS_UP:            "v.vit_merger.ds_ffn_up",
1727    MODEL_TENSOR.V_MERGER_DS_DOWN:          "v.vit_merger.ds_ffn_down",
1728    MODEL_TENSOR.V_MM_POST_FC_NORM:         "mm.post_fc_norm", # cogvlm
1729    MODEL_TENSOR.V_MM_UP:                   "mm.up",
1730    MODEL_TENSOR.V_MM_DOWN:                 "mm.down",
1731    MODEL_TENSOR.V_MM_GATE:                 "mm.gate",
1732    MODEL_TENSOR.V_MM_MERGER_FC1:           "mm.merger.fc1",
1733    MODEL_TENSOR.V_MM_MERGER_FC2:           "mm.merger.fc2",
1734    MODEL_TENSOR.V_TOK_BOI:                 "v.boi",
1735    MODEL_TENSOR.V_TOK_EOI:                 "v.eoi",
1736    MODEL_TENSOR.V_MM_PRE_NORM:             "mm.pre_norm",
1737    MODEL_TENSOR.V_TOK_IMG_BEGIN:           "mm.image_begin",
1738    MODEL_TENSOR.V_TOK_IMG_END:             "mm.image_end",
1739    MODEL_TENSOR.V_STD_BIAS:                "v.std_bias", # gemma4
1740    MODEL_TENSOR.V_STD_SCALE:               "v.std_scale", # gemma4
1741    # DeepSeek-OCR SAM
1742    MODEL_TENSOR.V_SAM_POS_EMBD:            "v.sam.pos_embd",
1743    MODEL_TENSOR.V_SAM_PATCH_EMBD:          "v.sam.patch_embd",
1744    MODEL_TENSOR.V_SAM_PRE_NORM:            "v.sam.blk.{bid}.pre_ln",
1745    MODEL_TENSOR.V_SAM_POST_NORM:           "v.sam.blk.{bid}.post_ln",
1746    MODEL_TENSOR.V_SAM_ATTN_POS_H:          "v.sam.blk.{bid}.attn.pos_h",
1747    MODEL_TENSOR.V_SAM_ATTN_POS_W:          "v.sam.blk.{bid}.attn.pos_w",
1748    MODEL_TENSOR.V_SAM_ATTN_QKV:            "v.sam.blk.{bid}.attn.qkv",
1749    MODEL_TENSOR.V_SAM_ATTN_OUT:            "v.sam.blk.{bid}.attn.out",
1750    MODEL_TENSOR.V_SAM_MLP_LIN_1:           "v.sam.blk.{bid}.mlp.lin1",
1751    MODEL_TENSOR.V_SAM_MLP_LIN_2:           "v.sam.blk.{bid}.mlp.lin2",
1752    MODEL_TENSOR.V_SAM_NECK:                "v.sam.neck.{bid}",
1753    MODEL_TENSOR.V_SAM_NET_2:               "v.sam.net_2",
1754    MODEL_TENSOR.V_SAM_NET_3:               "v.sam.net_3",
1755    MODEL_TENSOR.V_ENC_EMBD_IMGNL:          "v.image_newline", # Deepseek-OCR, Granite4Vision
1756    MODEL_TENSOR.V_ENC_EMBD_VSEP:           "v.view_seperator", # Deepseek-OCR
1757    MODEL_TENSOR.V_RESMPL_QUERY_768:        "v.resample_query_768", # Deepseek-OCR-2 qwen2
1758    MODEL_TENSOR.V_RESMPL_QUERY_1024:       "v.resample_query_1024", # Deepseek-OCR-2 qwen2
1759    # Granite4 Vision
1760    # qformer layers (bid => proj_id)
1761    # NOTE: Names align with A_QF_*
1762    MODEL_TENSOR.V_QF_SELF_ATTN_Q:          "v.proj_blk.{bid}.self_attn_q",
1763    MODEL_TENSOR.V_QF_SELF_ATTN_K:          "v.proj_blk.{bid}.self_attn_k",
1764    MODEL_TENSOR.V_QF_SELF_ATTN_V:          "v.proj_blk.{bid}.self_attn_v",
1765    MODEL_TENSOR.V_QF_SELF_ATTN_O:          "v.proj_blk.{bid}.self_attn_out",
1766    MODEL_TENSOR.V_QF_SELF_ATTN_NORM:       "v.proj_blk.{bid}.self_attn_norm",
1767    MODEL_TENSOR.V_QF_CROSS_ATTN_Q:         "v.proj_blk.{bid}.cross_attn_q",
1768    MODEL_TENSOR.V_QF_CROSS_ATTN_K:         "v.proj_blk.{bid}.cross_attn_k",
1769    MODEL_TENSOR.V_QF_CROSS_ATTN_V:         "v.proj_blk.{bid}.cross_attn_v",
1770    MODEL_TENSOR.V_QF_CROSS_ATTN_O:         "v.proj_blk.{bid}.cross_attn_out",
1771    MODEL_TENSOR.V_QF_CROSS_ATTN_NORM:      "v.proj_blk.{bid}.cross_attn_norm",
1772    MODEL_TENSOR.V_QF_FFN_UP:               "v.proj_blk.{bid}.ffn_up",
1773    MODEL_TENSOR.V_QF_FFN_DOWN:             "v.proj_blk.{bid}.ffn_down",
1774    MODEL_TENSOR.V_QF_FFN_NORM:             "v.proj_blk.{bid}.ffn_norm",
1775    # multi-projector (bid => projector ID)
1776    MODEL_TENSOR.V_MULTI_PROJ_IMG_POS:   "v.proj_blk.{bid}.img_pos",
1777    MODEL_TENSOR.V_MULTI_PROJ_QUERY:     "v.proj_blk.{bid}.query",
1778    MODEL_TENSOR.V_MULTI_PROJ_NORM:      "v.proj_blk.{bid}.norm",
1779    MODEL_TENSOR.V_MULTI_PROJ_LINEAR:    "v.proj_blk.{bid}.linear",
1780    MODEL_TENSOR.V_MULTI_PROJ_POST_NORM: "v.proj_blk.{bid}.post_norm",
1781
1782    # audio (mtmd)
1783    # note: all audio tensor names must use prefix "a." or "mm.a."
1784    MODEL_TENSOR.A_ENC_EMBD_POS:            "a.position_embd",
1785    MODEL_TENSOR.A_ENC_EMBD_NORM:           "a.position_embd_norm",
1786    MODEL_TENSOR.A_ENC_EMBD_TO_LOGITS:      "a.embd_to_logits",
1787    MODEL_TENSOR.A_ENC_INP_PROJ:            "a.input_projection",
1788    MODEL_TENSOR.A_ENC_CONV1D:              "a.conv1d.{bid}",
1789    MODEL_TENSOR.A_ENC_CONV2D:              "a.conv2d.{bid}",
1790    MODEL_TENSOR.A_ENC_CONV_OUT:            "a.conv_out",
1791    MODEL_TENSOR.A_ENC_CONV1D_NORM:         "a.conv1d.{bid}.norm",
1792    MODEL_TENSOR.A_PRE_NORM:                "a.pre_ln",
1793    MODEL_TENSOR.A_POST_NORM:               "a.post_ln",
1794    MODEL_TENSOR.A_ENC_LAYER_PRE_NORM:      "a.blk.{bid}.layer_pre_norm",
1795    MODEL_TENSOR.A_ENC_ATTN_Q:              "a.blk.{bid}.attn_q",
1796    MODEL_TENSOR.A_ENC_ATTN_K:              "a.blk.{bid}.attn_k",
1797    MODEL_TENSOR.A_ENC_ATTN_V:              "a.blk.{bid}.attn_v",
1798    MODEL_TENSOR.A_ENC_ATTN_POST_NORM:      "a.blk.{bid}.attn_post_norm",
1799    MODEL_TENSOR.A_ENC_ATTN_PRE_NORM:       "a.blk.{bid}.attn_pre_norm",
1800    MODEL_TENSOR.A_ENC_ATTN_K_REL:          "a.blk.{bid}.attn_k_rel",
1801    MODEL_TENSOR.A_ENC_PER_DIM_SCALE:       "a.blk.{bid}.per_dim_scale",
1802    MODEL_TENSOR.A_ENC_INPUT_NORM:          "a.blk.{bid}.ln1",
1803    MODEL_TENSOR.A_ENC_OUTPUT:              "a.blk.{bid}.attn_out",
1804    MODEL_TENSOR.A_ENC_OUTPUT_NORM:         "a.blk.{bid}.ln2",
1805    MODEL_TENSOR.A_ENC_FFN_NORM:            "a.blk.{bid}.ffn_norm",
1806    MODEL_TENSOR.A_ENC_FFN_POST_NORM:       "a.blk.{bid}.ffn_post_norm",
1807    MODEL_TENSOR.A_ENC_FFN_SCALE:           "a.blk.{bid}.ffn_scale",
1808    MODEL_TENSOR.A_ENC_FFN_UP:              "a.blk.{bid}.ffn_up",
1809    MODEL_TENSOR.A_ENC_FFN_GATE:            "a.blk.{bid}.ffn_gate",
1810    MODEL_TENSOR.A_ENC_FFN_DOWN:            "a.blk.{bid}.ffn_down",
1811    MODEL_TENSOR.A_ENC_FFN_NORM_1:          "a.blk.{bid}.ffn_norm_1",
1812    MODEL_TENSOR.A_ENC_FFN_POST_NORM_1:     "a.blk.{bid}.ffn_post_norm_1",
1813    MODEL_TENSOR.A_ENC_FFN_SCALE_1:         "a.blk.{bid}.ffn_scale_1",
1814    MODEL_TENSOR.A_ENC_FFN_UP_1:            "a.blk.{bid}.ffn_up_1",
1815    MODEL_TENSOR.A_ENC_FFN_GATE_1:          "a.blk.{bid}.ffn_gate_1",
1816    MODEL_TENSOR.A_ENC_FFN_DOWN_1:          "a.blk.{bid}.ffn_down_1",
1817    MODEL_TENSOR.A_ENC_DOWNSAMPLE_CONV:     "a.downsample.conv",
1818    MODEL_TENSOR.A_ENC_DOWNSAMPLE_NORM:     "a.downsample.norm",
1819    MODEL_TENSOR.A_ENC_RVQ_CODEBOOK:        "a.rvq.codebook",
1820    MODEL_TENSOR.A_ENC_CONV_RES2:           "a.blk.{bid}.res2.{xid}",
1821    MODEL_TENSOR.A_ENC_SE_CONV1:            "a.blk.{bid}.se_conv1",
1822    MODEL_TENSOR.A_ENC_SE_CONV2:            "a.blk.{bid}.se_conv2",
1823    MODEL_TENSOR.A_ENC_ASP_ATTN:            "a.asp_attn",
1824    MODEL_TENSOR.A_ENC_ASP_TDNN:            "a.asp_tdnn",
1825    MODEL_TENSOR.A_GEN_CODE_PROJ_IN:        "a.gen.code.proj_in",
1826    MODEL_TENSOR.A_GEN_CODE_EMBD:           "a.gen.code.embd",
1827    MODEL_TENSOR.A_GEN_CODE_HEAD:           "a.gen.code.head",
1828    MODEL_TENSOR.A_GEN_CODE_OUT_EMBD:       "a.gen.code.out_embd",
1829    MODEL_TENSOR.A_GEN_CODE_ATTN_NORM:      "a.gen.code.blk.{bid}.ln1", # reuses the generic clip.cpp block loader (TN_LN_1)
1830    MODEL_TENSOR.A_GEN_CODE_ATTN_Q:         "a.gen.code.blk.{bid}.attn_q",
1831    MODEL_TENSOR.A_GEN_CODE_ATTN_Q_NORM:    "a.gen.code.blk.{bid}.attn_q_norm",
1832    MODEL_TENSOR.A_GEN_CODE_ATTN_K:         "a.gen.code.blk.{bid}.attn_k",
1833    MODEL_TENSOR.A_GEN_CODE_ATTN_K_NORM:    "a.gen.code.blk.{bid}.attn_k_norm",
1834    MODEL_TENSOR.A_GEN_CODE_ATTN_V:         "a.gen.code.blk.{bid}.attn_v",
1835    MODEL_TENSOR.A_GEN_CODE_ATTN_OUT:       "a.gen.code.blk.{bid}.attn_out",
1836    MODEL_TENSOR.A_GEN_CODE_FFN_NORM:       "a.gen.code.blk.{bid}.ln2", # reuses the generic clip.cpp block loader (TN_LN_2)
1837    MODEL_TENSOR.A_GEN_CODE_FFN_GATE:       "a.gen.code.blk.{bid}.ffn_gate",
1838    MODEL_TENSOR.A_GEN_CODE_FFN_UP:         "a.gen.code.blk.{bid}.ffn_up",
1839    MODEL_TENSOR.A_GEN_CODE_FFN_DOWN:       "a.gen.code.blk.{bid}.ffn_down",
1840    MODEL_TENSOR.A_GEN_CODE_OUTPUT_NORM:    "a.gen.code.output_norm",
1841    MODEL_TENSOR.A_GEN_WAV_QUANT_FIRST_IN:  "a.gen.wav.quant.first.in_proj",
1842    MODEL_TENSOR.A_GEN_WAV_QUANT_FIRST_OUT: "a.gen.wav.quant.first.out_proj",
1843    MODEL_TENSOR.A_GEN_WAV_QUANT_FIRST_CB:  "a.gen.wav.quant.first.codebook",
1844    MODEL_TENSOR.A_GEN_WAV_QUANT_REST_IN:   "a.gen.wav.quant.rest.in_proj",
1845    MODEL_TENSOR.A_GEN_WAV_QUANT_REST_OUT:  "a.gen.wav.quant.rest.out_proj",
1846    MODEL_TENSOR.A_GEN_WAV_QUANT_REST_CB:   "a.gen.wav.quant.rest.codebook",
1847    MODEL_TENSOR.A_GEN_WAV_PRE_CONV:        "a.gen.wav.pre_conv",
1848    MODEL_TENSOR.A_GEN_WAV_TFM_IN_PROJ:     "a.gen.wav.tfm.in_proj",
1849    MODEL_TENSOR.A_GEN_WAV_TFM_OUT_PROJ:    "a.gen.wav.tfm.out_proj",
1850    MODEL_TENSOR.A_GEN_WAV_TFM_OUTPUT_NORM: "a.gen.wav.tfm.output_norm",
1851    MODEL_TENSOR.A_GEN_WAV_TFM_ATTN_NORM:   "a.gen.wav.tfm.blk.{bid}.ln1",
1852    MODEL_TENSOR.A_GEN_WAV_TFM_ATTN_Q:      "a.gen.wav.tfm.blk.{bid}.attn_q",
1853    MODEL_TENSOR.A_GEN_WAV_TFM_ATTN_K:      "a.gen.wav.tfm.blk.{bid}.attn_k",
1854    MODEL_TENSOR.A_GEN_WAV_TFM_ATTN_V:      "a.gen.wav.tfm.blk.{bid}.attn_v",
1855    MODEL_TENSOR.A_GEN_WAV_TFM_ATTN_OUT:    "a.gen.wav.tfm.blk.{bid}.attn_out",
1856    MODEL_TENSOR.A_GEN_WAV_TFM_ATTN_SCALE:  "a.gen.wav.tfm.blk.{bid}.ls1",
1857    MODEL_TENSOR.A_GEN_WAV_TFM_FFN_NORM:    "a.gen.wav.tfm.blk.{bid}.ln2",
1858    MODEL_TENSOR.A_GEN_WAV_TFM_FFN_GATE:    "a.gen.wav.tfm.blk.{bid}.ffn_gate",
1859    MODEL_TENSOR.A_GEN_WAV_TFM_FFN_UP:      "a.gen.wav.tfm.blk.{bid}.ffn_up",
1860    MODEL_TENSOR.A_GEN_WAV_TFM_FFN_DOWN:    "a.gen.wav.tfm.blk.{bid}.ffn_down",
1861    MODEL_TENSOR.A_GEN_WAV_TFM_FFN_SCALE:   "a.gen.wav.tfm.blk.{bid}.ls2",
1862    MODEL_TENSOR.A_GEN_WAV_UP_CONV:         "a.gen.wav.up.blk.{bid}.conv",
1863    MODEL_TENSOR.A_GEN_WAV_UP_DWCONV:       "a.gen.wav.up.blk.{bid}.dwconv",
1864    MODEL_TENSOR.A_GEN_WAV_UP_NORM:         "a.gen.wav.up.blk.{bid}.norm",
1865    MODEL_TENSOR.A_GEN_WAV_UP_PW1:          "a.gen.wav.up.blk.{bid}.pw1",
1866    MODEL_TENSOR.A_GEN_WAV_UP_PW2:          "a.gen.wav.up.blk.{bid}.pw2",
1867    MODEL_TENSOR.A_GEN_WAV_UP_GAMMA:        "a.gen.wav.up.blk.{bid}.gamma",
1868    MODEL_TENSOR.A_GEN_WAV_DAC_ENTRY:       "a.gen.wav.dac.entry",
1869    MODEL_TENSOR.A_GEN_WAV_DAC_UP_SNAKE:    "a.gen.wav.dac.blk.{bid}.snake",
1870    MODEL_TENSOR.A_GEN_WAV_DAC_UP_CONV:     "a.gen.wav.dac.blk.{bid}.conv",
1871    MODEL_TENSOR.A_GEN_WAV_DAC_RES_ACT1:    "a.gen.wav.dac.blk.{bid}.res.{xid}.act1",
1872    MODEL_TENSOR.A_GEN_WAV_DAC_RES_CONV1:   "a.gen.wav.dac.blk.{bid}.res.{xid}.conv1",
1873    MODEL_TENSOR.A_GEN_WAV_DAC_RES_ACT2:    "a.gen.wav.dac.blk.{bid}.res.{xid}.act2",
1874    MODEL_TENSOR.A_GEN_WAV_DAC_RES_CONV2:   "a.gen.wav.dac.blk.{bid}.res.{xid}.conv2",
1875    MODEL_TENSOR.A_GEN_WAV_DAC_POST_SNAKE:  "a.gen.wav.dac.post_snake",
1876    MODEL_TENSOR.A_GEN_WAV_DAC_POST_CONV:   "a.gen.wav.dac.post_conv",
1877    MODEL_TENSOR.A_ENC_SEANET_CONV_IN:      "a.seanet.conv_in",
1878    MODEL_TENSOR.A_ENC_SEANET_CONV_OUT:     "a.seanet.conv_out",
1879    MODEL_TENSOR.A_ENC_SEANET_RES_CONV1:    "a.seanet.blk.{bid}.res_conv1",
1880    MODEL_TENSOR.A_ENC_SEANET_RES_CONV2:    "a.seanet.blk.{bid}.res_conv2",
1881    MODEL_TENSOR.A_ENC_SEANET_SCALE_CONV:   "a.seanet.blk.{bid}.scale_conv",
1882    MODEL_TENSOR.A_ENC_ATTN_SCALE:          "a.blk.{bid}.ls1",
1883    MODEL_TENSOR.A_ENC_FFN_SCALE_LS:        "a.blk.{bid}.ls2",
1884    MODEL_TENSOR.A_ENC_SPEAKER_PROJ:        "a.speaker_proj",
1885    MODEL_TENSOR.A_GEN_FLOW_INPUT_PROJ:     "a.gen.flow.input_proj",
1886    MODEL_TENSOR.A_GEN_FLOW_COND_EMBD:      "a.gen.flow.cond_embd",
1887    MODEL_TENSOR.A_GEN_FLOW_TIME_FREQS:     "a.gen.flow.time.{bid}.freqs",
1888    MODEL_TENSOR.A_GEN_FLOW_TIME_UP:        "a.gen.flow.time.{bid}.up",
1889    MODEL_TENSOR.A_GEN_FLOW_TIME_DOWN:      "a.gen.flow.time.{bid}.down",
1890    MODEL_TENSOR.A_GEN_FLOW_TIME_NORM:      "a.gen.flow.time.{bid}.norm",
1891    MODEL_TENSOR.A_GEN_FLOW_BLK_NORM:       "a.gen.flow.blk.{bid}.norm",
1892    MODEL_TENSOR.A_GEN_FLOW_BLK_UP:         "a.gen.flow.blk.{bid}.up",
1893    MODEL_TENSOR.A_GEN_FLOW_BLK_DOWN:       "a.gen.flow.blk.{bid}.down",
1894    MODEL_TENSOR.A_GEN_FLOW_BLK_ADA:        "a.gen.flow.blk.{bid}.ada",
1895    MODEL_TENSOR.A_GEN_FLOW_FINAL_ADA:      "a.gen.flow.final.ada",
1896    MODEL_TENSOR.A_GEN_FLOW_FINAL_PROJ:     "a.gen.flow.final.proj",
1897    MODEL_TENSOR.A_GEN_OUT_EOS:             "a.gen.out_eos",
1898    MODEL_TENSOR.A_GEN_INPUT_LINEAR:        "a.gen.input_linear",
1899    MODEL_TENSOR.A_GEN_EMB_MEAN:            "a.gen.emb_mean",
1900    MODEL_TENSOR.A_GEN_EMB_STD:             "a.gen.emb_std",
1901    MODEL_TENSOR.A_GEN_WAV_QUANT_OUT:       "a.gen.wav.quant_out",
1902    MODEL_TENSOR.A_GEN_WAV_UPSAMPLE:        "a.gen.wav.upsample",
1903    MODEL_TENSOR.A_GEN_WAV_SEANET_CONV_IN:  "a.gen.wav.seanet.conv_in",
1904    MODEL_TENSOR.A_GEN_WAV_SEANET_CONV_OUT: "a.gen.wav.seanet.conv_out",
1905    MODEL_TENSOR.A_GEN_WAV_SEANET_RES_CONV1: "a.gen.wav.seanet.blk.{bid}.res_conv1",
1906    MODEL_TENSOR.A_GEN_WAV_SEANET_RES_CONV2: "a.gen.wav.seanet.blk.{bid}.res_conv2",
1907    MODEL_TENSOR.A_GEN_WAV_SEANET_SCALE_CONV: "a.gen.wav.seanet.blk.{bid}.scale_conv",
1908    MODEL_TENSOR.A_MMPROJ:                  "mm.a.mlp.{bid}",
1909    MODEL_TENSOR.A_MMPROJ_FC:               "mm.a.fc",
1910    MODEL_TENSOR.A_MM_NORM_PRE:             "mm.a.norm_pre",
1911    MODEL_TENSOR.A_MM_NORM_MID:             "mm.a.norm_mid",
1912    MODEL_TENSOR.A_MM_INP_PROJ:             "mm.a.input_projection",      # gemma3n
1913    MODEL_TENSOR.A_MM_SOFT_EMB_NORM:        "mm.a.soft_emb_norm",         # gemma3n
1914    MODEL_TENSOR.A_MM_EMBEDDING:            "mm.a.embedding",             # gemma3n
1915    MODEL_TENSOR.A_MM_HARD_EMB_NORM:        "mm.a.hard_emb_norm",         # gemma3n
1916    MODEL_TENSOR.A_MM_CODE_EMBD:            "mm.a.code_embd",
1917    MODEL_TENSOR.A_MM_LOCAL_ATTN_Q:         "mm.a.local_blk.{bid}.attn_q",
1918    MODEL_TENSOR.A_MM_LOCAL_ATTN_K:         "mm.a.local_blk.{bid}.attn_k",
1919    MODEL_TENSOR.A_MM_LOCAL_ATTN_V:         "mm.a.local_blk.{bid}.attn_v",
1920    MODEL_TENSOR.A_MM_LOCAL_ATTN_OUT:       "mm.a.local_blk.{bid}.attn_out",
1921    MODEL_TENSOR.A_MM_LOCAL_FFN_GATE:       "mm.a.local_blk.{bid}.ffn_gate",
1922    MODEL_TENSOR.A_MM_LOCAL_FFN_UP:         "mm.a.local_blk.{bid}.ffn_up",
1923    MODEL_TENSOR.A_MM_LOCAL_FFN_DOWN:       "mm.a.local_blk.{bid}.ffn_down",
1924    MODEL_TENSOR.A_MM_LOCAL_LN1:            "mm.a.local_blk.{bid}.ln1",
1925    MODEL_TENSOR.A_MM_LOCAL_LN2:            "mm.a.local_blk.{bid}.ln2",
1926    MODEL_TENSOR.A_MM_LOCAL_NORM:           "mm.a.local_norm",
1927    MODEL_TENSOR.A_PER_DIM_K_SCALE:         "a.blk.{bid}.per_dim_k_scale", # gemma4
1928    MODEL_TENSOR.A_PER_DIM_SCALE:           "a.blk.{bid}.per_dim_scale",   # gemma4
1929    # lfm2 audio
1930    MODEL_TENSOR.A_ENC_NORM_CONV:           "a.blk.{bid}.norm_conv",
1931    MODEL_TENSOR.A_ENC_LINEAR_POS:          "a.blk.{bid}.linear_pos",
1932    MODEL_TENSOR.A_ENC_POS_BIAS_U:          "a.blk.{bid}.pos_bias_u",
1933    MODEL_TENSOR.A_ENC_POS_BIAS_V:          "a.blk.{bid}.pos_bias_v",
1934    MODEL_TENSOR.A_ENC_OUT:                 "a.pre_encode.out",
1935    MODEL_TENSOR.A_ENC_CONV_DW:             "a.blk.{bid}.conv_dw",
1936    MODEL_TENSOR.A_ENC_CONV_NORM:           "a.blk.{bid}.conv_norm",
1937    MODEL_TENSOR.A_ENC_CONV_PW1:            "a.blk.{bid}.conv_pw1",
1938    MODEL_TENSOR.A_ENC_CONV_PW2:            "a.blk.{bid}.conv_pw2",
1939    MODEL_TENSOR.A_ENC_CONV_NORM_MEAN:      "a.blk.{bid}.conv_norm_mean",
1940    MODEL_TENSOR.A_ENC_CONV_NORM_VAR:       "a.blk.{bid}.conv_norm_var",
1941    MODEL_TENSOR.A_ENC_MEL_FILTERS:         "a.mel_filters",
1942    MODEL_TENSOR.A_ENC_WINDOW:              "a.window",
1943    MODEL_TENSOR.A_CTC_OUT:                 "a.enc_ctc_out",
1944    MODEL_TENSOR.A_CTC_OUT_MID:             "a.enc_ctc_out_mid",
1945    MODEL_TENSOR.A_ENC_ATTN_REL_POS_EMB:    "a.blk.{bid}.attn_rel_pos_emb",
1946    # qformer projector
1947    MODEL_TENSOR.A_QF_PROJ_QUERY:           "a.proj_query",
1948    MODEL_TENSOR.A_QF_PROJ_NORM:            "a.proj_norm",
1949    MODEL_TENSOR.A_QF_PROJ_LINEAR:          "a.proj_linear",
1950    MODEL_TENSOR.A_QF_SELF_ATTN_Q:          "a.proj_blk.{bid}.self_attn_q",
1951    MODEL_TENSOR.A_QF_SELF_ATTN_K:          "a.proj_blk.{bid}.self_attn_k",
1952    MODEL_TENSOR.A_QF_SELF_ATTN_V:          "a.proj_blk.{bid}.self_attn_v",
1953    MODEL_TENSOR.A_QF_SELF_ATTN_O:          "a.proj_blk.{bid}.self_attn_out",
1954    MODEL_TENSOR.A_QF_SELF_ATTN_NORM:       "a.proj_blk.{bid}.self_attn_norm",
1955    MODEL_TENSOR.A_QF_CROSS_ATTN_Q:         "a.proj_blk.{bid}.cross_attn_q",
1956    MODEL_TENSOR.A_QF_CROSS_ATTN_K:         "a.proj_blk.{bid}.cross_attn_k",
1957    MODEL_TENSOR.A_QF_CROSS_ATTN_V:         "a.proj_blk.{bid}.cross_attn_v",
1958    MODEL_TENSOR.A_QF_CROSS_ATTN_O:         "a.proj_blk.{bid}.cross_attn_out",
1959    MODEL_TENSOR.A_QF_CROSS_ATTN_NORM:      "a.proj_blk.{bid}.cross_attn_norm",
1960    MODEL_TENSOR.A_QF_FFN_UP:               "a.proj_blk.{bid}.ffn_up",
1961    MODEL_TENSOR.A_QF_FFN_DOWN:             "a.proj_blk.{bid}.ffn_down",
1962    MODEL_TENSOR.A_QF_FFN_NORM:             "a.proj_blk.{bid}.ffn_norm",
1963    # NextN/MTP
1964    MODEL_TENSOR.NEXTN_PROJ_PRE:            "nextn.pre_projection",
1965    MODEL_TENSOR.NEXTN_PROJ_POST:           "nextn.post_projection",
1966    MODEL_TENSOR.NEXTN_EH_PROJ:             "blk.{bid}.nextn.eh_proj",
1967    MODEL_TENSOR.NEXTN_EMBED_TOKENS:        "blk.{bid}.nextn.embed_tokens",
1968    MODEL_TENSOR.NEXTN_ENORM:               "blk.{bid}.nextn.enorm",
1969    MODEL_TENSOR.NEXTN_HNORM:               "blk.{bid}.nextn.hnorm",
1970    MODEL_TENSOR.NEXTN_SHARED_HEAD_HEAD:    "blk.{bid}.nextn.shared_head_head",
1971    MODEL_TENSOR.NEXTN_SHARED_HEAD_NORM:    "blk.{bid}.nextn.shared_head_norm",
1972    MODEL_TENSOR.FC:                        "fc",
1973    MODEL_TENSOR.DSPARK_MARKOV_W1:          "markov_w1",
1974    MODEL_TENSOR.DSPARK_MARKOV_W2:          "markov_w2",
1975    MODEL_TENSOR.DSPARK_CONF_PROJ:          "conf_proj",
1976    MODEL_TENSOR.DFLASH_ATTN_CONV_BASE:     "blk.{bid}.attn_conv_base",
1977    MODEL_TENSOR.DFLASH_ATTN_CONV_PROJ:     "blk.{bid}.attn_conv_proj",
1978    MODEL_TENSOR.DFLASH_FFN_CONV_BASE:      "blk.{bid}.ffn_conv_base",
1979    MODEL_TENSOR.DFLASH_FFN_CONV_PROJ:      "blk.{bid}.ffn_conv_proj",
1980    MODEL_TENSOR.DFLASH_SELECTOR_PREV:      "selector_predecessor",
1981    MODEL_TENSOR.DFLASH_SELECTOR_NEXT:      "selector_successor",
1982    MODEL_TENSOR.DFLASH_SELECTOR_HIDDEN:    "selector_hidden",
1983    MODEL_TENSOR.D2T:                       "d2t",
1984}
1985
1986MODEL_TENSORS: dict[MODEL_ARCH, list[MODEL_TENSOR]] = {
1987    MODEL_ARCH.MMPROJ: [
1988        MODEL_TENSOR.V_MMPROJ,
1989        MODEL_TENSOR.V_MMPROJ_FC,
1990        MODEL_TENSOR.V_MMPROJ_MLP,
1991        MODEL_TENSOR.V_MMPROJ_PEG,
1992        MODEL_TENSOR.V_ENC_EMBD_CLS,
1993        MODEL_TENSOR.V_ENC_EMBD_PATCH,
1994        MODEL_TENSOR.V_ENC_EMBD_NORM,
1995        MODEL_TENSOR.V_ENC_EMBD_PATCH_NORM,
1996        MODEL_TENSOR.V_ENC_EMBD_POS,
1997        MODEL_TENSOR.V_ENC_EMBD_IMGNL,
1998        MODEL_TENSOR.V_ENC_EMBD_VSEP,
1999        MODEL_TENSOR.V_ENC_INPUT_NORM,
2000        MODEL_TENSOR.V_ENC_ATTN_QKV,
2001        MODEL_TENSOR.V_ENC_ATTN_Q,
2002        MODEL_TENSOR.V_ENC_ATTN_Q_NORM,
2003        MODEL_TENSOR.V_ENC_ATTN_K,
2004        MODEL_TENSOR.V_ENC_ATTN_K_NORM,
2005        MODEL_TENSOR.V_ENC_ATTN_V,
2006        MODEL_TENSOR.V_ENC_ATTN_O,
2007        MODEL_TENSOR.V_ENC_ATTN_O_NORM,
2008        MODEL_TENSOR.V_ENC_ATTN_SINKS,
2009        MODEL_TENSOR.V_ENC_POST_ATTN_NORM,
2010        MODEL_TENSOR.V_ENC_FFN_UP,
2011        MODEL_TENSOR.V_ENC_FFN_GATE,
2012        MODEL_TENSOR.V_ENC_FFN_DOWN,
2013        MODEL_TENSOR.V_ENC_FFN_GATE_INP,
2014        MODEL_TENSOR.V_ENC_FFN_GATE_EXPS,
2015        MODEL_TENSOR.V_ENC_FFN_UP_EXPS,
2016        MODEL_TENSOR.V_ENC_FFN_DOWN_EXPS,
2017        MODEL_TENSOR.V_ENC_FFN_EXP_PROBS_B,
2018        MODEL_TENSOR.V_ENC_ATTN_POST_NORM,
2019        MODEL_TENSOR.V_ENC_FFN_POST_NORM,
2020        MODEL_TENSOR.V_LAYER_SCALE_1,
2021        MODEL_TENSOR.V_LAYER_SCALE_2,
2022        MODEL_TENSOR.V_LAYER_OUT_SCALE,
2023        MODEL_TENSOR.V_PRE_NORM,
2024        MODEL_TENSOR.V_POST_NORM,
2025        MODEL_TENSOR.V_MM_POST_NORM,
2026        MODEL_TENSOR.V_MM_INP_PROJ,
2027        MODEL_TENSOR.V_MM_INP_NORM,
2028        MODEL_TENSOR.V_MM_SOFT_EMB_NORM,
2029        MODEL_TENSOR.V_MM_EMBEDDING,
2030        MODEL_TENSOR.V_MM_HARD_EMB_NORM,
2031        MODEL_TENSOR.V_ENC_CONV_STEM,
2032        MODEL_TENSOR.V_ENC_CONV_STEM_NORM,
2033        MODEL_TENSOR.V_ENC_MSFA_EXP,
2034        MODEL_TENSOR.V_ENC_MSFA_EXP_NORM,
2035        MODEL_TENSOR.V_ENC_MSFA_PROJ,
2036        MODEL_TENSOR.V_ENC_MSFA_PROJ_NORM,
2037        MODEL_TENSOR.V_ENC_MSFA_NORM,
2038        MODEL_TENSOR.V_RESMPL_POS_EMBD_K,
2039        MODEL_TENSOR.V_RESMPL_ATTN_Q,
2040        MODEL_TENSOR.V_RESMPL_ATTN_K,
2041        MODEL_TENSOR.V_RESMPL_ATTN_V,
2042        MODEL_TENSOR.V_RESMPL_ATTN_OUT,
2043        MODEL_TENSOR.V_RESMPL_KV,
2044        MODEL_TENSOR.V_RESMPL_KV_NORM,
2045        MODEL_TENSOR.V_RESMPL_POST_NORM,
2046        MODEL_TENSOR.V_RESMPL_Q_NORM,
2047        MODEL_TENSOR.V_RESMPL_PROJ,
2048        MODEL_TENSOR.V_RESMPL_QUERY,
2049        MODEL_TENSOR.V_TOK_EMBD_IMG_BREAK,
2050        MODEL_TENSOR.V_TOK_EMBD_IMG_START,
2051        MODEL_TENSOR.V_TOK_EMBD_IMG_END,
2052        MODEL_TENSOR.V_TOK_EMBD_IMG_PAD,
2053        MODEL_TENSOR.V_MM_PATCH_MERGER,
2054        MODEL_TENSOR.V_MM_MERGER_FC1,
2055        MODEL_TENSOR.V_MM_MERGER_FC2,
2056        MODEL_TENSOR.V_DS_NORM,
2057        MODEL_TENSOR.V_DS_FC1,
2058        MODEL_TENSOR.V_DS_FC2,
2059        MODEL_TENSOR.V_MERGER_LN1,
2060        MODEL_TENSOR.V_MERGER_ATTN_Q,
2061        MODEL_TENSOR.V_MERGER_ATTN_K,
2062        MODEL_TENSOR.V_MERGER_ATTN_V,
2063        MODEL_TENSOR.V_MERGER_ATTN_O,
2064        MODEL_TENSOR.V_MERGER_DS_LN,
2065        MODEL_TENSOR.V_MERGER_DS_UP,
2066        MODEL_TENSOR.V_MERGER_DS_DOWN,
2067        MODEL_TENSOR.V_MM_POST_FC_NORM,
2068        MODEL_TENSOR.V_MM_UP,
2069        MODEL_TENSOR.V_MM_DOWN,
2070        MODEL_TENSOR.V_MM_GATE,
2071        MODEL_TENSOR.V_TOK_BOI,
2072        MODEL_TENSOR.V_TOK_EOI,
2073        MODEL_TENSOR.V_MM_PRE_NORM,
2074        MODEL_TENSOR.V_TOK_IMG_BEGIN,
2075        MODEL_TENSOR.V_TOK_IMG_END,
2076        MODEL_TENSOR.V_STD_BIAS,
2077        MODEL_TENSOR.V_STD_SCALE,
2078        MODEL_TENSOR.V_SAM_POS_EMBD,
2079        MODEL_TENSOR.V_SAM_PATCH_EMBD,
2080        MODEL_TENSOR.V_SAM_PRE_NORM,
2081        MODEL_TENSOR.V_SAM_POST_NORM,
2082        MODEL_TENSOR.V_SAM_ATTN_POS_H,
2083        MODEL_TENSOR.V_SAM_ATTN_POS_W,
2084        MODEL_TENSOR.V_SAM_ATTN_QKV,
2085        MODEL_TENSOR.V_SAM_ATTN_OUT,
2086        MODEL_TENSOR.V_SAM_MLP_LIN_1,
2087        MODEL_TENSOR.V_SAM_MLP_LIN_2,
2088        MODEL_TENSOR.V_SAM_NECK,
2089        MODEL_TENSOR.V_SAM_NET_2,
2090        MODEL_TENSOR.V_SAM_NET_3,
2091        MODEL_TENSOR.V_RESMPL_QUERY_768,
2092        MODEL_TENSOR.V_RESMPL_QUERY_1024,
2093        MODEL_TENSOR.V_PROJ_NORM,
2094        MODEL_TENSOR.V_QF_PROJ_QUERY,
2095        MODEL_TENSOR.V_QF_PROJ_NORM,
2096        MODEL_TENSOR.V_QF_PROJ_LINEAR,
2097        MODEL_TENSOR.V_QF_SELF_ATTN_Q,
2098        MODEL_TENSOR.V_QF_SELF_ATTN_K,
2099        MODEL_TENSOR.V_QF_SELF_ATTN_V,
2100        MODEL_TENSOR.V_QF_SELF_ATTN_O,
2101        MODEL_TENSOR.V_QF_SELF_ATTN_NORM,
2102        MODEL_TENSOR.V_QF_CROSS_ATTN_Q,
2103        MODEL_TENSOR.V_QF_CROSS_ATTN_K,
2104        MODEL_TENSOR.V_QF_CROSS_ATTN_V,
2105        MODEL_TENSOR.V_QF_CROSS_ATTN_O,
2106        MODEL_TENSOR.V_QF_CROSS_ATTN_NORM,
2107        MODEL_TENSOR.V_QF_FFN_UP,
2108        MODEL_TENSOR.V_QF_FFN_DOWN,
2109        MODEL_TENSOR.V_QF_FFN_NORM,
2110        MODEL_TENSOR.V_QF_PROJ_NORM,
2111        MODEL_TENSOR.V_MULTI_PROJ_IMG_POS,
2112        MODEL_TENSOR.V_MULTI_PROJ_QUERY,
2113        MODEL_TENSOR.V_MULTI_PROJ_LINEAR,
2114        MODEL_TENSOR.V_MULTI_PROJ_NORM,
2115        MODEL_TENSOR.V_MULTI_PROJ_POST_NORM,
2116        # audio
2117        MODEL_TENSOR.A_ENC_EMBD_POS,
2118        MODEL_TENSOR.A_ENC_EMBD_NORM,
2119        MODEL_TENSOR.A_ENC_EMBD_TO_LOGITS,
2120        MODEL_TENSOR.A_ENC_INP_PROJ,
2121        MODEL_TENSOR.A_ENC_CONV1D,
2122        MODEL_TENSOR.A_ENC_CONV2D,
2123        MODEL_TENSOR.A_ENC_CONV_OUT,
2124        MODEL_TENSOR.A_ENC_CONV1D_NORM,
2125        MODEL_TENSOR.A_PRE_NORM,
2126        MODEL_TENSOR.A_POST_NORM,
2127        MODEL_TENSOR.A_ENC_LAYER_PRE_NORM,
2128        MODEL_TENSOR.A_ENC_ATTN_Q,
2129        MODEL_TENSOR.A_ENC_ATTN_K,
2130        MODEL_TENSOR.A_ENC_ATTN_V,
2131        MODEL_TENSOR.A_ENC_ATTN_POST_NORM,
2132        MODEL_TENSOR.A_ENC_ATTN_PRE_NORM,
2133        MODEL_TENSOR.A_ENC_ATTN_K_REL,
2134        MODEL_TENSOR.A_ENC_PER_DIM_SCALE,
2135        MODEL_TENSOR.A_ENC_INPUT_NORM,
2136        MODEL_TENSOR.A_ENC_OUTPUT,
2137        MODEL_TENSOR.A_ENC_OUTPUT_NORM,
2138        MODEL_TENSOR.A_ENC_FFN_NORM,
2139        MODEL_TENSOR.A_ENC_FFN_POST_NORM,
2140        MODEL_TENSOR.A_ENC_FFN_SCALE,
2141        MODEL_TENSOR.A_ENC_FFN_UP,
2142        MODEL_TENSOR.A_ENC_FFN_GATE,
2143        MODEL_TENSOR.A_ENC_FFN_DOWN,
2144        MODEL_TENSOR.A_ENC_FFN_NORM_1,
2145        MODEL_TENSOR.A_ENC_FFN_POST_NORM_1,
2146        MODEL_TENSOR.A_ENC_FFN_SCALE_1,
2147        MODEL_TENSOR.A_ENC_FFN_UP_1,
2148        MODEL_TENSOR.A_ENC_FFN_GATE_1,
2149        MODEL_TENSOR.A_ENC_FFN_DOWN_1,
2150        MODEL_TENSOR.A_ENC_DOWNSAMPLE_CONV,
2151        MODEL_TENSOR.A_ENC_DOWNSAMPLE_NORM,
2152        MODEL_TENSOR.A_ENC_RVQ_CODEBOOK,
2153        MODEL_TENSOR.A_MMPROJ,
2154        MODEL_TENSOR.A_MMPROJ_FC,
2155        MODEL_TENSOR.A_MM_NORM_PRE,
2156        MODEL_TENSOR.A_MM_NORM_MID,
2157        MODEL_TENSOR.A_MM_CODE_EMBD,
2158        MODEL_TENSOR.A_MM_LOCAL_ATTN_Q,
2159        MODEL_TENSOR.A_MM_LOCAL_ATTN_K,
2160        MODEL_TENSOR.A_MM_LOCAL_ATTN_V,
2161        MODEL_TENSOR.A_MM_LOCAL_ATTN_OUT,
2162        MODEL_TENSOR.A_MM_LOCAL_FFN_GATE,
2163        MODEL_TENSOR.A_MM_LOCAL_FFN_UP,
2164        MODEL_TENSOR.A_MM_LOCAL_FFN_DOWN,
2165        MODEL_TENSOR.A_MM_LOCAL_LN1,
2166        MODEL_TENSOR.A_MM_LOCAL_LN2,
2167        MODEL_TENSOR.A_MM_LOCAL_NORM,
2168        MODEL_TENSOR.A_ENC_NORM_CONV,
2169        MODEL_TENSOR.A_ENC_LINEAR_POS,
2170        MODEL_TENSOR.A_ENC_POS_BIAS_U,
2171        MODEL_TENSOR.A_ENC_POS_BIAS_V,
2172        MODEL_TENSOR.A_ENC_OUT,
2173        MODEL_TENSOR.A_ENC_CONV_DW,
2174        MODEL_TENSOR.A_ENC_CONV_NORM,
2175        MODEL_TENSOR.A_ENC_CONV_PW1,
2176        MODEL_TENSOR.A_ENC_CONV_PW2,
2177        MODEL_TENSOR.A_ENC_CONV_RES2,
2178        MODEL_TENSOR.A_ENC_SE_CONV1,
2179        MODEL_TENSOR.A_ENC_SE_CONV2,
2180        MODEL_TENSOR.A_ENC_ASP_ATTN,
2181        MODEL_TENSOR.A_ENC_ASP_TDNN,
2182        MODEL_TENSOR.A_GEN_CODE_PROJ_IN,
2183        MODEL_TENSOR.A_GEN_CODE_EMBD,
2184        MODEL_TENSOR.A_GEN_CODE_HEAD,
2185        MODEL_TENSOR.A_GEN_CODE_OUT_EMBD,
2186        MODEL_TENSOR.A_GEN_CODE_ATTN_NORM,
2187        MODEL_TENSOR.A_GEN_CODE_ATTN_Q,
2188        MODEL_TENSOR.A_GEN_CODE_ATTN_Q_NORM,
2189        MODEL_TENSOR.A_GEN_CODE_ATTN_K,
2190        MODEL_TENSOR.A_GEN_CODE_ATTN_K_NORM,
2191        MODEL_TENSOR.A_GEN_CODE_ATTN_V,
2192        MODEL_TENSOR.A_GEN_CODE_ATTN_OUT,
2193        MODEL_TENSOR.A_GEN_CODE_FFN_NORM,
2194        MODEL_TENSOR.A_GEN_CODE_FFN_GATE,
2195        MODEL_TENSOR.A_GEN_CODE_FFN_UP,
2196        MODEL_TENSOR.A_GEN_CODE_FFN_DOWN,
2197        MODEL_TENSOR.A_GEN_CODE_OUTPUT_NORM,
2198        MODEL_TENSOR.A_GEN_WAV_QUANT_FIRST_IN,
2199        MODEL_TENSOR.A_GEN_WAV_QUANT_FIRST_OUT,
2200        MODEL_TENSOR.A_GEN_WAV_QUANT_FIRST_CB,
2201        MODEL_TENSOR.A_GEN_WAV_QUANT_REST_IN,
2202        MODEL_TENSOR.A_GEN_WAV_QUANT_REST_OUT,
2203        MODEL_TENSOR.A_GEN_WAV_QUANT_REST_CB,
2204        MODEL_TENSOR.A_GEN_WAV_PRE_CONV,
2205        MODEL_TENSOR.A_GEN_WAV_TFM_IN_PROJ,
2206        MODEL_TENSOR.A_GEN_WAV_TFM_OUT_PROJ,
2207        MODEL_TENSOR.A_GEN_WAV_TFM_OUTPUT_NORM,
2208        MODEL_TENSOR.A_GEN_WAV_TFM_ATTN_NORM,
2209        MODEL_TENSOR.A_GEN_WAV_TFM_ATTN_Q,
2210        MODEL_TENSOR.A_GEN_WAV_TFM_ATTN_K,
2211        MODEL_TENSOR.A_GEN_WAV_TFM_ATTN_V,
2212        MODEL_TENSOR.A_GEN_WAV_TFM_ATTN_OUT,
2213        MODEL_TENSOR.A_GEN_WAV_TFM_ATTN_SCALE,
2214        MODEL_TENSOR.A_GEN_WAV_TFM_FFN_NORM,
2215        MODEL_TENSOR.A_GEN_WAV_TFM_FFN_GATE,
2216        MODEL_TENSOR.A_GEN_WAV_TFM_FFN_UP,
2217        MODEL_TENSOR.A_GEN_WAV_TFM_FFN_DOWN,
2218        MODEL_TENSOR.A_GEN_WAV_TFM_FFN_SCALE,
2219        MODEL_TENSOR.A_GEN_WAV_UP_CONV,
2220        MODEL_TENSOR.A_GEN_WAV_UP_DWCONV,
2221        MODEL_TENSOR.A_GEN_WAV_UP_NORM,
2222        MODEL_TENSOR.A_GEN_WAV_UP_PW1,
2223        MODEL_TENSOR.A_GEN_WAV_UP_PW2,
2224        MODEL_TENSOR.A_GEN_WAV_UP_GAMMA,
2225        MODEL_TENSOR.A_GEN_WAV_DAC_ENTRY,
2226        MODEL_TENSOR.A_GEN_WAV_DAC_UP_SNAKE,
2227        MODEL_TENSOR.A_GEN_WAV_DAC_UP_CONV,
2228        MODEL_TENSOR.A_GEN_WAV_DAC_RES_ACT1,
2229        MODEL_TENSOR.A_GEN_WAV_DAC_RES_CONV1,
2230        MODEL_TENSOR.A_GEN_WAV_DAC_RES_ACT2,
2231        MODEL_TENSOR.A_GEN_WAV_DAC_RES_CONV2,
2232        MODEL_TENSOR.A_GEN_WAV_DAC_POST_SNAKE,
2233        MODEL_TENSOR.A_GEN_WAV_DAC_POST_CONV,
2234        MODEL_TENSOR.A_ENC_SEANET_CONV_IN,
2235        MODEL_TENSOR.A_ENC_SEANET_CONV_OUT,
2236        MODEL_TENSOR.A_ENC_SEANET_RES_CONV1,
2237        MODEL_TENSOR.A_ENC_SEANET_RES_CONV2,
2238        MODEL_TENSOR.A_ENC_SEANET_SCALE_CONV,
2239        MODEL_TENSOR.A_ENC_ATTN_SCALE,
2240        MODEL_TENSOR.A_ENC_FFN_SCALE_LS,
2241        MODEL_TENSOR.A_ENC_SPEAKER_PROJ,
2242        MODEL_TENSOR.A_GEN_FLOW_INPUT_PROJ,
2243        MODEL_TENSOR.A_GEN_FLOW_COND_EMBD,
2244        MODEL_TENSOR.A_GEN_FLOW_TIME_FREQS,
2245        MODEL_TENSOR.A_GEN_FLOW_TIME_UP,
2246        MODEL_TENSOR.A_GEN_FLOW_TIME_DOWN,
2247        MODEL_TENSOR.A_GEN_FLOW_TIME_NORM,
2248        MODEL_TENSOR.A_GEN_FLOW_BLK_NORM,
2249        MODEL_TENSOR.A_GEN_FLOW_BLK_UP,
2250        MODEL_TENSOR.A_GEN_FLOW_BLK_DOWN,
2251        MODEL_TENSOR.A_GEN_FLOW_BLK_ADA,
2252        MODEL_TENSOR.A_GEN_FLOW_FINAL_ADA,
2253        MODEL_TENSOR.A_GEN_FLOW_FINAL_PROJ,
2254        MODEL_TENSOR.A_GEN_OUT_EOS,
2255        MODEL_TENSOR.A_GEN_INPUT_LINEAR,
2256        MODEL_TENSOR.A_GEN_EMB_MEAN,
2257        MODEL_TENSOR.A_GEN_EMB_STD,
2258        MODEL_TENSOR.A_GEN_WAV_QUANT_OUT,
2259        MODEL_TENSOR.A_GEN_WAV_UPSAMPLE,
2260        MODEL_TENSOR.A_GEN_WAV_SEANET_CONV_IN,
2261        MODEL_TENSOR.A_GEN_WAV_SEANET_CONV_OUT,
2262        MODEL_TENSOR.A_GEN_WAV_SEANET_RES_CONV1,
2263        MODEL_TENSOR.A_GEN_WAV_SEANET_RES_CONV2,
2264        MODEL_TENSOR.A_GEN_WAV_SEANET_SCALE_CONV,
2265        MODEL_TENSOR.A_ENC_CONV_NORM_MEAN,
2266        MODEL_TENSOR.A_ENC_CONV_NORM_VAR,
2267        MODEL_TENSOR.A_ENC_MEL_FILTERS,
2268        MODEL_TENSOR.A_ENC_WINDOW,
2269        MODEL_TENSOR.A_MM_INP_PROJ,
2270        MODEL_TENSOR.A_MM_SOFT_EMB_NORM,
2271        MODEL_TENSOR.A_MM_EMBEDDING,
2272        MODEL_TENSOR.A_MM_HARD_EMB_NORM,
2273        MODEL_TENSOR.A_PER_DIM_K_SCALE,
2274        MODEL_TENSOR.A_PER_DIM_SCALE,
2275        MODEL_TENSOR.A_CTC_OUT,
2276        MODEL_TENSOR.A_CTC_OUT_MID,
2277        MODEL_TENSOR.A_ENC_ATTN_REL_POS_EMB,
2278        # qformer projector
2279        MODEL_TENSOR.A_QF_PROJ_QUERY,
2280        MODEL_TENSOR.A_QF_PROJ_NORM,
2281        MODEL_TENSOR.A_QF_PROJ_LINEAR,
2282        MODEL_TENSOR.A_QF_SELF_ATTN_Q,
2283        MODEL_TENSOR.A_QF_SELF_ATTN_K,
2284        MODEL_TENSOR.A_QF_SELF_ATTN_V,
2285        MODEL_TENSOR.A_QF_SELF_ATTN_O,
2286        MODEL_TENSOR.A_QF_SELF_ATTN_NORM,
2287        MODEL_TENSOR.A_QF_CROSS_ATTN_Q,
2288        MODEL_TENSOR.A_QF_CROSS_ATTN_K,
2289        MODEL_TENSOR.A_QF_CROSS_ATTN_V,
2290        MODEL_TENSOR.A_QF_CROSS_ATTN_O,
2291        MODEL_TENSOR.A_QF_CROSS_ATTN_NORM,
2292        MODEL_TENSOR.A_QF_FFN_UP,
2293        MODEL_TENSOR.A_QF_FFN_DOWN,
2294        MODEL_TENSOR.A_QF_FFN_NORM,
2295    ],
2296    MODEL_ARCH.LLAMA: [
2297        MODEL_TENSOR.TOKEN_EMBD,
2298        MODEL_TENSOR.OUTPUT_NORM,
2299        MODEL_TENSOR.OUTPUT,
2300        MODEL_TENSOR.ROPE_FREQS,
2301        MODEL_TENSOR.ATTN_NORM,
2302        MODEL_TENSOR.ATTN_QKV,
2303        MODEL_TENSOR.ATTN_Q,
2304        MODEL_TENSOR.ATTN_K,
2305        MODEL_TENSOR.ATTN_V,
2306        MODEL_TENSOR.ATTN_OUT,
2307        MODEL_TENSOR.ATTN_ROT_EMBD,
2308        MODEL_TENSOR.FFN_GATE_INP,
2309        MODEL_TENSOR.FFN_NORM,
2310        MODEL_TENSOR.FFN_GATE,
2311        MODEL_TENSOR.FFN_DOWN,
2312        MODEL_TENSOR.FFN_UP,
2313        MODEL_TENSOR.FFN_GATE_EXP,
2314        MODEL_TENSOR.FFN_DOWN_EXP,
2315        MODEL_TENSOR.FFN_UP_EXP,
2316    ],
2317    MODEL_ARCH.LLAMA4: [
2318        MODEL_TENSOR.TOKEN_EMBD,
2319        MODEL_TENSOR.OUTPUT_NORM,
2320        MODEL_TENSOR.OUTPUT,
2321        MODEL_TENSOR.ROPE_FREQS,
2322        MODEL_TENSOR.ATTN_NORM,
2323        MODEL_TENSOR.ATTN_QKV,
2324        MODEL_TENSOR.ATTN_Q,
2325        MODEL_TENSOR.ATTN_K,
2326        MODEL_TENSOR.ATTN_V,
2327        MODEL_TENSOR.ATTN_OUT,
2328        MODEL_TENSOR.ATTN_ROT_EMBD,
2329        MODEL_TENSOR.FFN_GATE_INP,
2330        MODEL_TENSOR.FFN_NORM,
2331        MODEL_TENSOR.FFN_GATE,
2332        MODEL_TENSOR.FFN_DOWN,
2333        MODEL_TENSOR.FFN_UP,
2334        MODEL_TENSOR.FFN_GATE_EXP,
2335        MODEL_TENSOR.FFN_DOWN_EXP,
2336        MODEL_TENSOR.FFN_UP_EXP,
2337        MODEL_TENSOR.FFN_GATE_SHEXP,
2338        MODEL_TENSOR.FFN_DOWN_SHEXP,
2339        MODEL_TENSOR.FFN_UP_SHEXP,
2340    ],
2341    MODEL_ARCH.DECI: [
2342        MODEL_TENSOR.TOKEN_EMBD,
2343        MODEL_TENSOR.OUTPUT_NORM,
2344        MODEL_TENSOR.OUTPUT,
2345        MODEL_TENSOR.ROPE_FREQS,
2346        MODEL_TENSOR.ATTN_NORM,
2347        MODEL_TENSOR.ATTN_QKV,
2348        MODEL_TENSOR.ATTN_Q,
2349        MODEL_TENSOR.ATTN_K,
2350        MODEL_TENSOR.ATTN_V,
2351        MODEL_TENSOR.ATTN_OUT,
2352        MODEL_TENSOR.ATTN_ROT_EMBD,
2353        MODEL_TENSOR.FFN_GATE_INP,
2354        MODEL_TENSOR.FFN_NORM,
2355        MODEL_TENSOR.FFN_GATE,
2356        MODEL_TENSOR.FFN_DOWN,
2357        MODEL_TENSOR.FFN_UP,
2358        MODEL_TENSOR.FFN_GATE_EXP,
2359        MODEL_TENSOR.FFN_DOWN_EXP,
2360        MODEL_TENSOR.FFN_UP_EXP,
2361    ],
2362    MODEL_ARCH.GROK: [
2363        MODEL_TENSOR.TOKEN_EMBD,
2364        MODEL_TENSOR.OUTPUT_NORM,
2365        MODEL_TENSOR.OUTPUT,
2366        MODEL_TENSOR.ROPE_FREQS,
2367        MODEL_TENSOR.ATTN_NORM,
2368        MODEL_TENSOR.ATTN_QKV,
2369        MODEL_TENSOR.ATTN_Q,
2370        MODEL_TENSOR.ATTN_K,
2371        MODEL_TENSOR.ATTN_V,
2372        MODEL_TENSOR.ATTN_OUT,
2373        MODEL_TENSOR.ATTN_ROT_EMBD,
2374        MODEL_TENSOR.ATTN_OUT_NORM,
2375        MODEL_TENSOR.FFN_GATE_INP,
2376        MODEL_TENSOR.FFN_NORM,
2377        MODEL_TENSOR.FFN_GATE,
2378        MODEL_TENSOR.FFN_DOWN,
2379        MODEL_TENSOR.FFN_UP,
2380        MODEL_TENSOR.FFN_GATE_EXP,
2381        MODEL_TENSOR.FFN_DOWN_EXP,
2382        MODEL_TENSOR.FFN_UP_EXP,
2383        MODEL_TENSOR.FFN_POST_NORM,
2384        MODEL_TENSOR.LAYER_OUT_NORM,
2385    ],
2386    MODEL_ARCH.GPTNEOX: [
2387        MODEL_TENSOR.TOKEN_EMBD,
2388        MODEL_TENSOR.OUTPUT_NORM,
2389        MODEL_TENSOR.OUTPUT,
2390        MODEL_TENSOR.ATTN_NORM,
2391        MODEL_TENSOR.ATTN_QKV,
2392        MODEL_TENSOR.ATTN_OUT,
2393        MODEL_TENSOR.FFN_NORM,
2394        MODEL_TENSOR.FFN_DOWN,
2395        MODEL_TENSOR.FFN_UP,
2396    ],
2397    MODEL_ARCH.FALCON: [
2398        MODEL_TENSOR.TOKEN_EMBD,
2399        MODEL_TENSOR.OUTPUT_NORM,
2400        MODEL_TENSOR.OUTPUT,
2401        MODEL_TENSOR.ATTN_NORM,
2402        MODEL_TENSOR.ATTN_NORM_2,
2403        MODEL_TENSOR.ATTN_QKV,
2404        MODEL_TENSOR.ATTN_OUT,
2405        MODEL_TENSOR.FFN_DOWN,
2406        MODEL_TENSOR.FFN_UP,
2407    ],
2408    MODEL_ARCH.BAICHUAN: [
2409        MODEL_TENSOR.TOKEN_EMBD,
2410        MODEL_TENSOR.OUTPUT_NORM,
2411        MODEL_TENSOR.OUTPUT,
2412        MODEL_TENSOR.ROPE_FREQS,
2413        MODEL_TENSOR.ATTN_NORM,
2414        MODEL_TENSOR.ATTN_QKV,
2415        MODEL_TENSOR.ATTN_Q,
2416        MODEL_TENSOR.ATTN_K,
2417        MODEL_TENSOR.ATTN_V,
2418        MODEL_TENSOR.ATTN_OUT,
2419        MODEL_TENSOR.ATTN_ROT_EMBD,
2420        MODEL_TENSOR.FFN_NORM,
2421        MODEL_TENSOR.FFN_GATE,
2422        MODEL_TENSOR.FFN_DOWN,
2423        MODEL_TENSOR.FFN_UP,
2424    ],
2425    MODEL_ARCH.STARCODER: [
2426        MODEL_TENSOR.TOKEN_EMBD,
2427        MODEL_TENSOR.POS_EMBD,
2428        MODEL_TENSOR.OUTPUT_NORM,
2429        MODEL_TENSOR.OUTPUT,
2430        MODEL_TENSOR.ATTN_NORM,
2431        MODEL_TENSOR.ATTN_QKV,
2432        MODEL_TENSOR.ATTN_OUT,
2433        MODEL_TENSOR.FFN_NORM,
2434        MODEL_TENSOR.FFN_DOWN,
2435        MODEL_TENSOR.FFN_UP,
2436    ],
2437    MODEL_ARCH.BERT: [
2438        MODEL_TENSOR.TOKEN_EMBD,
2439        MODEL_TENSOR.TOKEN_EMBD_NORM,
2440        MODEL_TENSOR.TOKEN_TYPES,
2441        MODEL_TENSOR.POS_EMBD,
2442        MODEL_TENSOR.OUTPUT_NORM,
2443        MODEL_TENSOR.ATTN_OUT_NORM,
2444        MODEL_TENSOR.ATTN_QKV,
2445        MODEL_TENSOR.ATTN_Q,
2446        MODEL_TENSOR.ATTN_K,
2447        MODEL_TENSOR.ATTN_V,
2448        MODEL_TENSOR.ATTN_OUT,
2449        MODEL_TENSOR.FFN_DOWN,
2450        MODEL_TENSOR.FFN_UP,
2451        MODEL_TENSOR.LAYER_OUT_NORM,
2452        MODEL_TENSOR.CLS,
2453        MODEL_TENSOR.CLS_OUT,
2454    ],
2455    MODEL_ARCH.MODERN_BERT: [
2456        MODEL_TENSOR.TOKEN_EMBD,
2457        MODEL_TENSOR.TOKEN_EMBD_NORM,
2458        MODEL_TENSOR.OUTPUT_NORM,
2459        MODEL_TENSOR.ATTN_NORM,
2460        MODEL_TENSOR.ATTN_OUT,
2461        MODEL_TENSOR.ATTN_QKV,
2462        MODEL_TENSOR.FFN_UP,
2463        MODEL_TENSOR.FFN_DOWN,
2464        MODEL_TENSOR.FFN_NORM,
2465        MODEL_TENSOR.CLS,
2466        MODEL_TENSOR.CLS_OUT,
2467        MODEL_TENSOR.CLS_NORM,
2468    ],
2469    MODEL_ARCH.NOMIC_BERT: [
2470        MODEL_TENSOR.TOKEN_EMBD,
2471        MODEL_TENSOR.TOKEN_EMBD_NORM,
2472        MODEL_TENSOR.TOKEN_TYPES,
2473        MODEL_TENSOR.POS_EMBD,
2474        MODEL_TENSOR.OUTPUT_NORM,
2475        MODEL_TENSOR.ATTN_OUT_NORM,
2476        MODEL_TENSOR.ATTN_QKV,
2477        MODEL_TENSOR.ATTN_OUT,
2478        MODEL_TENSOR.FFN_GATE,
2479        MODEL_TENSOR.FFN_DOWN,
2480        MODEL_TENSOR.FFN_UP,
2481        MODEL_TENSOR.LAYER_OUT_NORM,
2482    ],
2483    MODEL_ARCH.NOMIC_BERT_MOE: [
2484        MODEL_TENSOR.TOKEN_EMBD,
2485        MODEL_TENSOR.TOKEN_EMBD_NORM,
2486        MODEL_TENSOR.TOKEN_TYPES,
2487        MODEL_TENSOR.POS_EMBD,
2488        MODEL_TENSOR.OUTPUT_NORM,
2489        MODEL_TENSOR.ATTN_OUT_NORM,
2490        MODEL_TENSOR.ATTN_QKV,
2491        MODEL_TENSOR.ATTN_OUT,
2492        MODEL_TENSOR.FFN_DOWN,
2493        MODEL_TENSOR.FFN_UP,
2494        MODEL_TENSOR.FFN_GATE_INP,
2495        MODEL_TENSOR.FFN_DOWN_EXP,
2496        MODEL_TENSOR.FFN_UP_EXP,
2497        MODEL_TENSOR.LAYER_OUT_NORM,
2498    ],
2499    MODEL_ARCH.NEO_BERT: [
2500        MODEL_TENSOR.TOKEN_EMBD,
2501        MODEL_TENSOR.ATTN_NORM,
2502        MODEL_TENSOR.ATTN_QKV,
2503        MODEL_TENSOR.ATTN_OUT,
2504        MODEL_TENSOR.FFN_NORM,
2505        MODEL_TENSOR.FFN_DOWN,
2506        MODEL_TENSOR.FFN_UP,
2507        MODEL_TENSOR.ENC_OUTPUT_NORM,
2508        MODEL_TENSOR.CLS,
2509        MODEL_TENSOR.CLS_OUT,
2510    ],
2511    MODEL_ARCH.JINA_BERT_V2: [
2512        MODEL_TENSOR.TOKEN_EMBD,
2513        MODEL_TENSOR.TOKEN_EMBD_NORM,
2514        MODEL_TENSOR.TOKEN_TYPES,
2515        MODEL_TENSOR.ATTN_NORM_2,
2516        MODEL_TENSOR.ATTN_OUT_NORM,
2517        MODEL_TENSOR.ATTN_QKV,
2518        MODEL_TENSOR.ATTN_Q,
2519        MODEL_TENSOR.ATTN_Q_NORM,
2520        MODEL_TENSOR.ATTN_K,
2521        MODEL_TENSOR.ATTN_K_NORM,
2522        MODEL_TENSOR.ATTN_V,
2523        MODEL_TENSOR.ATTN_OUT,
2524        MODEL_TENSOR.FFN_UP,
2525        MODEL_TENSOR.FFN_GATE,
2526        MODEL_TENSOR.FFN_DOWN,
2527        MODEL_TENSOR.LAYER_OUT_NORM,
2528        MODEL_TENSOR.CLS,
2529    ],
2530    MODEL_ARCH.JINA_BERT_V3: [
2531        MODEL_TENSOR.TOKEN_EMBD,
2532        MODEL_TENSOR.TOKEN_EMBD_NORM,
2533        MODEL_TENSOR.TOKEN_TYPES,
2534        MODEL_TENSOR.OUTPUT_NORM,
2535        MODEL_TENSOR.ATTN_OUT_NORM,
2536        MODEL_TENSOR.ATTN_QKV,
2537        MODEL_TENSOR.ATTN_OUT,
2538        MODEL_TENSOR.FFN_DOWN,
2539        MODEL_TENSOR.FFN_UP,
2540        MODEL_TENSOR.LAYER_OUT_NORM,
2541    ],
2542    MODEL_ARCH.EUROBERT: [
2543        MODEL_TENSOR.TOKEN_EMBD,
2544        MODEL_TENSOR.OUTPUT_NORM,
2545        MODEL_TENSOR.ATTN_NORM,
2546        MODEL_TENSOR.ATTN_QKV,
2547        MODEL_TENSOR.ATTN_Q,
2548        MODEL_TENSOR.ATTN_K,
2549        MODEL_TENSOR.ATTN_V,
2550        MODEL_TENSOR.ATTN_OUT,
2551        MODEL_TENSOR.FFN_NORM,
2552        MODEL_TENSOR.FFN_GATE,
2553        MODEL_TENSOR.FFN_UP,
2554        MODEL_TENSOR.FFN_DOWN,
2555    ],
2556    MODEL_ARCH.MPT: [
2557        MODEL_TENSOR.TOKEN_EMBD,
2558        MODEL_TENSOR.OUTPUT_NORM,
2559        MODEL_TENSOR.OUTPUT,
2560        MODEL_TENSOR.ATTN_NORM,
2561        MODEL_TENSOR.ATTN_QKV,
2562        MODEL_TENSOR.ATTN_OUT,
2563        MODEL_TENSOR.FFN_NORM,
2564        MODEL_TENSOR.FFN_DOWN,
2565        MODEL_TENSOR.FFN_UP,
2566        MODEL_TENSOR.FFN_ACT,
2567        MODEL_TENSOR.ATTN_Q_NORM,
2568        MODEL_TENSOR.ATTN_K_NORM,
2569        MODEL_TENSOR.POS_EMBD,
2570    ],
2571    MODEL_ARCH.GPTJ: [
2572        MODEL_TENSOR.TOKEN_EMBD,
2573        MODEL_TENSOR.OUTPUT_NORM,
2574        MODEL_TENSOR.OUTPUT,
2575        MODEL_TENSOR.ATTN_NORM,
2576        MODEL_TENSOR.ATTN_QKV,
2577        MODEL_TENSOR.ATTN_Q,
2578        MODEL_TENSOR.ATTN_K,
2579        MODEL_TENSOR.ATTN_V,
2580        MODEL_TENSOR.ATTN_OUT,
2581        MODEL_TENSOR.FFN_DOWN,
2582        MODEL_TENSOR.FFN_UP,
2583    ],
2584    MODEL_ARCH.REFACT: [
2585        MODEL_TENSOR.TOKEN_EMBD,
2586        MODEL_TENSOR.OUTPUT_NORM,
2587        MODEL_TENSOR.OUTPUT,
2588        MODEL_TENSOR.ATTN_NORM,
2589        MODEL_TENSOR.ATTN_QKV,
2590        MODEL_TENSOR.ATTN_Q,
2591        MODEL_TENSOR.ATTN_K,
2592        MODEL_TENSOR.ATTN_V,
2593        MODEL_TENSOR.ATTN_OUT,
2594        MODEL_TENSOR.FFN_NORM,
2595        MODEL_TENSOR.FFN_GATE,
2596        MODEL_TENSOR.FFN_DOWN,
2597        MODEL_TENSOR.FFN_UP,
2598    ],
2599    MODEL_ARCH.BLOOM: [
2600        MODEL_TENSOR.TOKEN_EMBD,
2601        MODEL_TENSOR.TOKEN_EMBD_NORM,
2602        MODEL_TENSOR.OUTPUT_NORM,
2603        MODEL_TENSOR.OUTPUT,
2604        MODEL_TENSOR.ATTN_NORM,
2605        MODEL_TENSOR.ATTN_QKV,
2606        MODEL_TENSOR.ATTN_OUT,
2607        MODEL_TENSOR.FFN_NORM,
2608        MODEL_TENSOR.FFN_DOWN,
2609        MODEL_TENSOR.FFN_UP,
2610    ],
2611    MODEL_ARCH.STABLELM: [
2612        MODEL_TENSOR.TOKEN_EMBD,
2613        MODEL_TENSOR.OUTPUT_NORM,
2614        MODEL_TENSOR.OUTPUT,
2615        MODEL_TENSOR.ROPE_FREQS,
2616        MODEL_TENSOR.ATTN_NORM,
2617        MODEL_TENSOR.ATTN_QKV,
2618        MODEL_TENSOR.ATTN_Q,
2619        MODEL_TENSOR.ATTN_K,
2620        MODEL_TENSOR.ATTN_V,
2621        MODEL_TENSOR.ATTN_OUT,
2622        MODEL_TENSOR.FFN_NORM,
2623        MODEL_TENSOR.FFN_GATE,
2624        MODEL_TENSOR.FFN_DOWN,
2625        MODEL_TENSOR.FFN_UP,
2626        MODEL_TENSOR.ATTN_Q_NORM,
2627        MODEL_TENSOR.ATTN_K_NORM,
2628    ],
2629    MODEL_ARCH.QWEN: [
2630        MODEL_TENSOR.TOKEN_EMBD,
2631        MODEL_TENSOR.OUTPUT_NORM,
2632        MODEL_TENSOR.OUTPUT,
2633        MODEL_TENSOR.ROPE_FREQS,
2634        MODEL_TENSOR.ATTN_NORM,
2635        MODEL_TENSOR.ATTN_QKV,
2636        MODEL_TENSOR.ATTN_OUT,
2637        MODEL_TENSOR.ATTN_ROT_EMBD,
2638        MODEL_TENSOR.FFN_NORM,
2639        MODEL_TENSOR.FFN_GATE,
2640        MODEL_TENSOR.FFN_DOWN,
2641        MODEL_TENSOR.FFN_UP,
2642    ],
2643    MODEL_ARCH.QWEN2: [
2644        MODEL_TENSOR.TOKEN_EMBD,
2645        MODEL_TENSOR.OUTPUT_NORM,
2646        MODEL_TENSOR.OUTPUT,
2647        MODEL_TENSOR.ROPE_FREQS,
2648        MODEL_TENSOR.ATTN_NORM,
2649        MODEL_TENSOR.ATTN_QKV,
2650        MODEL_TENSOR.ATTN_Q,
2651        MODEL_TENSOR.ATTN_K,
2652        MODEL_TENSOR.ATTN_V,
2653        MODEL_TENSOR.ATTN_OUT,
2654        MODEL_TENSOR.FFN_NORM,
2655        MODEL_TENSOR.FFN_GATE,
2656        MODEL_TENSOR.FFN_DOWN,
2657        MODEL_TENSOR.FFN_UP,
2658    ],
2659    MODEL_ARCH.DREAM: [
2660        MODEL_TENSOR.TOKEN_EMBD,
2661        MODEL_TENSOR.OUTPUT_NORM,
2662        MODEL_TENSOR.OUTPUT,
2663        MODEL_TENSOR.ROPE_FREQS,
2664        MODEL_TENSOR.ATTN_NORM,
2665        MODEL_TENSOR.ATTN_QKV,
2666        MODEL_TENSOR.ATTN_Q,
2667        MODEL_TENSOR.ATTN_K,
2668        MODEL_TENSOR.ATTN_V,
2669        MODEL_TENSOR.ATTN_OUT,
2670        MODEL_TENSOR.FFN_NORM,
2671        MODEL_TENSOR.FFN_GATE,
2672        MODEL_TENSOR.FFN_DOWN,
2673        MODEL_TENSOR.FFN_UP,
2674    ],
2675    MODEL_ARCH.LLADA: [
2676        MODEL_TENSOR.TOKEN_EMBD,
2677        MODEL_TENSOR.OUTPUT_NORM,
2678        MODEL_TENSOR.OUTPUT,
2679        MODEL_TENSOR.ROPE_FREQS,
2680        MODEL_TENSOR.ATTN_NORM,
2681        MODEL_TENSOR.ATTN_QKV,
2682        MODEL_TENSOR.ATTN_Q,
2683        MODEL_TENSOR.ATTN_K,
2684        MODEL_TENSOR.ATTN_V,
2685        MODEL_TENSOR.ATTN_OUT,
2686        MODEL_TENSOR.FFN_NORM,
2687        MODEL_TENSOR.FFN_GATE,
2688        MODEL_TENSOR.FFN_DOWN,
2689        MODEL_TENSOR.FFN_UP,
2690    ],
2691    MODEL_ARCH.QWEN2VL: [
2692        MODEL_TENSOR.TOKEN_EMBD,
2693        MODEL_TENSOR.OUTPUT_NORM,
2694        MODEL_TENSOR.OUTPUT,
2695        MODEL_TENSOR.ATTN_NORM,
2696        MODEL_TENSOR.ATTN_QKV,
2697        MODEL_TENSOR.ATTN_Q,
2698        MODEL_TENSOR.ATTN_K,
2699        MODEL_TENSOR.ATTN_V,
2700        MODEL_TENSOR.ATTN_OUT,
2701        MODEL_TENSOR.FFN_NORM,
2702        MODEL_TENSOR.FFN_GATE,
2703        MODEL_TENSOR.FFN_DOWN,
2704        MODEL_TENSOR.FFN_UP,
2705    ],
2706    MODEL_ARCH.QWEN2MOE: [
2707        MODEL_TENSOR.TOKEN_EMBD,
2708        MODEL_TENSOR.OUTPUT_NORM,
2709        MODEL_TENSOR.OUTPUT,
2710        MODEL_TENSOR.ATTN_NORM,
2711        MODEL_TENSOR.ATTN_QKV,
2712        MODEL_TENSOR.ATTN_Q,
2713        MODEL_TENSOR.ATTN_K,
2714        MODEL_TENSOR.ATTN_V,
2715        MODEL_TENSOR.ATTN_OUT,
2716        MODEL_TENSOR.FFN_NORM,
2717        MODEL_TENSOR.FFN_GATE_INP,
2718        MODEL_TENSOR.FFN_GATE_EXP,
2719        MODEL_TENSOR.FFN_DOWN_EXP,
2720        MODEL_TENSOR.FFN_UP_EXP,
2721        MODEL_TENSOR.FFN_GATE_INP_SHEXP,
2722        MODEL_TENSOR.FFN_GATE_SHEXP,
2723        MODEL_TENSOR.FFN_DOWN_SHEXP,
2724        MODEL_TENSOR.FFN_UP_SHEXP,
2725    ],
2726    MODEL_ARCH.QWEN3: [
2727        MODEL_TENSOR.TOKEN_EMBD,
2728        MODEL_TENSOR.OUTPUT_NORM,
2729        MODEL_TENSOR.OUTPUT,
2730        MODEL_TENSOR.ROPE_FREQS,
2731        MODEL_TENSOR.ATTN_NORM,
2732        MODEL_TENSOR.ATTN_QKV,
2733        MODEL_TENSOR.ATTN_Q,
2734        MODEL_TENSOR.ATTN_Q_NORM,
2735        MODEL_TENSOR.ATTN_K,
2736        MODEL_TENSOR.ATTN_K_NORM,
2737        MODEL_TENSOR.ATTN_V,
2738        MODEL_TENSOR.ATTN_OUT,
2739        MODEL_TENSOR.FFN_NORM,
2740        MODEL_TENSOR.FFN_GATE,
2741        MODEL_TENSOR.FFN_DOWN,
2742        MODEL_TENSOR.FFN_UP,
2743    ],
2744    MODEL_ARCH.QWEN3MOE: [
2745        MODEL_TENSOR.TOKEN_EMBD,
2746        MODEL_TENSOR.OUTPUT_NORM,
2747        MODEL_TENSOR.OUTPUT,
2748        MODEL_TENSOR.ATTN_NORM,
2749        MODEL_TENSOR.ATTN_QKV,
2750        MODEL_TENSOR.ATTN_Q,
2751        MODEL_TENSOR.ATTN_Q_NORM,
2752        MODEL_TENSOR.ATTN_K,
2753        MODEL_TENSOR.ATTN_K_NORM,
2754        MODEL_TENSOR.ATTN_V,
2755        MODEL_TENSOR.ATTN_OUT,
2756        MODEL_TENSOR.FFN_NORM,
2757        MODEL_TENSOR.FFN_GATE_INP,
2758        MODEL_TENSOR.FFN_GATE_EXP,
2759        MODEL_TENSOR.FFN_DOWN_EXP,
2760        MODEL_TENSOR.FFN_UP_EXP,
2761    ],
2762    MODEL_ARCH.QWEN3NEXT: [
2763        MODEL_TENSOR.TOKEN_EMBD,
2764        MODEL_TENSOR.OUTPUT_NORM,
2765        MODEL_TENSOR.OUTPUT,
2766        MODEL_TENSOR.ATTN_NORM,
2767        MODEL_TENSOR.ATTN_Q,
2768        MODEL_TENSOR.ATTN_Q_NORM,
2769        MODEL_TENSOR.ATTN_K,
2770        MODEL_TENSOR.ATTN_K_NORM,
2771        MODEL_TENSOR.ATTN_V,
2772        MODEL_TENSOR.ATTN_OUT,
2773        MODEL_TENSOR.ATTN_POST_NORM,
2774        MODEL_TENSOR.ATTN_GATE,
2775        MODEL_TENSOR.ATTN_QKV,
2776        MODEL_TENSOR.FFN_GATE_INP,
2777        MODEL_TENSOR.FFN_GATE_INP_SHEXP,
2778        MODEL_TENSOR.FFN_UP_SHEXP,
2779        MODEL_TENSOR.FFN_DOWN_SHEXP,
2780        MODEL_TENSOR.FFN_GATE_SHEXP,
2781        MODEL_TENSOR.FFN_DOWN_EXP,
2782        MODEL_TENSOR.FFN_UP_EXP,
2783        MODEL_TENSOR.FFN_GATE_EXP,
2784        MODEL_TENSOR.FFN_GATE_UP_EXP,
2785        MODEL_TENSOR.SSM_A,
2786        MODEL_TENSOR.SSM_CONV1D,
2787        MODEL_TENSOR.SSM_DT,
2788        MODEL_TENSOR.SSM_NORM,
2789        MODEL_TENSOR.SSM_IN,
2790        MODEL_TENSOR.SSM_BETA_ALPHA,
2791        MODEL_TENSOR.SSM_OUT,
2792        MODEL_TENSOR.NEXTN_EH_PROJ,
2793        MODEL_TENSOR.NEXTN_EMBED_TOKENS,
2794        MODEL_TENSOR.NEXTN_ENORM,
2795        MODEL_TENSOR.NEXTN_HNORM,
2796        MODEL_TENSOR.NEXTN_SHARED_HEAD_HEAD,
2797        MODEL_TENSOR.NEXTN_SHARED_HEAD_NORM,
2798    ],
2799    MODEL_ARCH.QWEN3VL: [
2800        MODEL_TENSOR.TOKEN_EMBD,
2801        MODEL_TENSOR.OUTPUT_NORM,
2802        MODEL_TENSOR.OUTPUT,
2803        MODEL_TENSOR.ROPE_FREQS,
2804        MODEL_TENSOR.ATTN_NORM,
2805        MODEL_TENSOR.ATTN_QKV,
2806        MODEL_TENSOR.ATTN_Q,
2807        MODEL_TENSOR.ATTN_Q_NORM,
2808        MODEL_TENSOR.ATTN_K,
2809        MODEL_TENSOR.ATTN_K_NORM,
2810        MODEL_TENSOR.ATTN_V,
2811        MODEL_TENSOR.ATTN_OUT,
2812        MODEL_TENSOR.FFN_NORM,
2813        MODEL_TENSOR.FFN_GATE,
2814        MODEL_TENSOR.FFN_DOWN,
2815        MODEL_TENSOR.FFN_UP,
2816    ],
2817    MODEL_ARCH.QWEN3VLMOE: [
2818        MODEL_TENSOR.TOKEN_EMBD,
2819        MODEL_TENSOR.OUTPUT_NORM,
2820        MODEL_TENSOR.OUTPUT,
2821        MODEL_TENSOR.ATTN_NORM,
2822        MODEL_TENSOR.ATTN_QKV,
2823        MODEL_TENSOR.ATTN_Q,
2824        MODEL_TENSOR.ATTN_Q_NORM,
2825        MODEL_TENSOR.ATTN_K,
2826        MODEL_TENSOR.ATTN_K_NORM,
2827        MODEL_TENSOR.ATTN_V,
2828        MODEL_TENSOR.ATTN_OUT,
2829        MODEL_TENSOR.FFN_NORM,
2830        MODEL_TENSOR.FFN_GATE_INP,
2831        MODEL_TENSOR.FFN_GATE_EXP,
2832        MODEL_TENSOR.FFN_DOWN_EXP,
2833        MODEL_TENSOR.FFN_UP_EXP,
2834    ],
2835    MODEL_ARCH.QWEN35: [
2836        MODEL_TENSOR.TOKEN_EMBD,
2837        MODEL_TENSOR.OUTPUT_NORM,
2838        MODEL_TENSOR.OUTPUT,
2839        MODEL_TENSOR.ATTN_NORM,
2840        MODEL_TENSOR.ATTN_Q,
2841        MODEL_TENSOR.ATTN_Q_NORM,
2842        MODEL_TENSOR.ATTN_K,
2843        MODEL_TENSOR.ATTN_K_NORM,
2844        MODEL_TENSOR.ATTN_V,
2845        MODEL_TENSOR.ATTN_OUT,
2846        MODEL_TENSOR.ATTN_POST_NORM,
2847        MODEL_TENSOR.ATTN_GATE,
2848        MODEL_TENSOR.ATTN_QKV,
2849        MODEL_TENSOR.FFN_GATE,
2850        MODEL_TENSOR.FFN_DOWN,
2851        MODEL_TENSOR.FFN_UP,
2852        MODEL_TENSOR.SSM_A,
2853        MODEL_TENSOR.SSM_CONV1D,
2854        MODEL_TENSOR.SSM_DT,
2855        MODEL_TENSOR.SSM_NORM,
2856        MODEL_TENSOR.SSM_BETA,
2857        MODEL_TENSOR.SSM_ALPHA,
2858        MODEL_TENSOR.SSM_OUT,
2859        # NextN/MTP tensors - preserved but unused
2860        MODEL_TENSOR.NEXTN_EH_PROJ,
2861        MODEL_TENSOR.NEXTN_EMBED_TOKENS,
2862        MODEL_TENSOR.NEXTN_ENORM,
2863        MODEL_TENSOR.NEXTN_HNORM,
2864        MODEL_TENSOR.NEXTN_SHARED_HEAD_HEAD,
2865        MODEL_TENSOR.NEXTN_SHARED_HEAD_NORM,
2866    ],
2867    MODEL_ARCH.QWEN35MOE: [
2868        MODEL_TENSOR.TOKEN_EMBD,
2869        MODEL_TENSOR.OUTPUT_NORM,
2870        MODEL_TENSOR.OUTPUT,
2871        MODEL_TENSOR.ATTN_NORM,
2872        MODEL_TENSOR.ATTN_Q,
2873        MODEL_TENSOR.ATTN_Q_NORM,
2874        MODEL_TENSOR.ATTN_K,
2875        MODEL_TENSOR.ATTN_K_NORM,
2876        MODEL_TENSOR.ATTN_V,
2877        MODEL_TENSOR.ATTN_OUT,
2878        MODEL_TENSOR.ATTN_POST_NORM,
2879        MODEL_TENSOR.ATTN_GATE,
2880        MODEL_TENSOR.ATTN_QKV,
2881        MODEL_TENSOR.FFN_GATE_INP,
2882        MODEL_TENSOR.FFN_GATE_INP_SHEXP,
2883        MODEL_TENSOR.FFN_UP_SHEXP,
2884        MODEL_TENSOR.FFN_DOWN_SHEXP,
2885        MODEL_TENSOR.FFN_GATE_SHEXP,
2886        MODEL_TENSOR.FFN_DOWN_EXP,
2887        MODEL_TENSOR.FFN_UP_EXP,
2888        MODEL_TENSOR.FFN_GATE_EXP,
2889        MODEL_TENSOR.FFN_GATE_UP_EXP,
2890        MODEL_TENSOR.SSM_A,
2891        MODEL_TENSOR.SSM_CONV1D,
2892        MODEL_TENSOR.SSM_DT,
2893        MODEL_TENSOR.SSM_NORM,
2894        MODEL_TENSOR.SSM_BETA,
2895        MODEL_TENSOR.SSM_ALPHA,
2896        MODEL_TENSOR.SSM_OUT,
2897        # NextN/MTP tensors - preserved but unused
2898        MODEL_TENSOR.NEXTN_EH_PROJ,
2899        MODEL_TENSOR.NEXTN_EMBED_TOKENS,
2900        MODEL_TENSOR.NEXTN_ENORM,
2901        MODEL_TENSOR.NEXTN_HNORM,
2902        MODEL_TENSOR.NEXTN_SHARED_HEAD_HEAD,
2903        MODEL_TENSOR.NEXTN_SHARED_HEAD_NORM,
2904    ],
2905    MODEL_ARCH.QWEN4EXP: [
2906        MODEL_TENSOR.TOKEN_EMBD,
2907        MODEL_TENSOR.OUTPUT,
2908        # no OUTPUT_NORM / ATTN_NORM / ATTN_POST_NORM: hyper-connections replace every layer norm
2909        MODEL_TENSOR.HC_HEAD_NORM,
2910        MODEL_TENSOR.HC_HEAD_DOWN,
2911        MODEL_TENSOR.HC_HEAD_UP,
2912        MODEL_TENSOR.HC_ATTN_NORM,
2913        MODEL_TENSOR.HC_ATTN_DOWN,
2914        MODEL_TENSOR.HC_ATTN_UP,
2915        MODEL_TENSOR.HC_ATTN_INJECT,
2916        MODEL_TENSOR.HC_FFN_NORM,
2917        MODEL_TENSOR.HC_FFN_DOWN,
2918        MODEL_TENSOR.HC_FFN_UP,
2919        MODEL_TENSOR.HC_FFN_INJECT,
2920        # full attention layers: ATTN_Q holds [q|gate] interleaved per head
2921        MODEL_TENSOR.ATTN_Q,
2922        MODEL_TENSOR.ATTN_Q_NORM,
2923        MODEL_TENSOR.ATTN_K,
2924        MODEL_TENSOR.ATTN_K_NORM,
2925        MODEL_TENSOR.ATTN_V,
2926        MODEL_TENSOR.ATTN_OUT,
2927        MODEL_TENSOR.INDEXER_Q_PROJ,
2928        MODEL_TENSOR.INDEXER_K_PROJ,
2929        MODEL_TENSOR.INDEXER_Q_NORM,
2930        MODEL_TENSOR.INDEXER_K_NORM,
2931        MODEL_TENSOR.ATTN_QKV,
2932        MODEL_TENSOR.ATTN_GATE,
2933        MODEL_TENSOR.SSM_A,
2934        MODEL_TENSOR.SSM_CONV1D,
2935        MODEL_TENSOR.SSM_DT,
2936        MODEL_TENSOR.SSM_NORM,
2937        MODEL_TENSOR.SSM_BETA,
2938        MODEL_TENSOR.SSM_ALPHA,
2939        MODEL_TENSOR.SSM_OUT,
2940        MODEL_TENSOR.FFN_GATE_INP,
2941        MODEL_TENSOR.FFN_GATE_INP_SHEXP,
2942        MODEL_TENSOR.FFN_UP_SHEXP,
2943        MODEL_TENSOR.FFN_DOWN_SHEXP,
2944        MODEL_TENSOR.FFN_GATE_SHEXP,
2945        MODEL_TENSOR.FFN_DOWN_EXP,
2946        MODEL_TENSOR.FFN_UP_EXP,
2947        MODEL_TENSOR.FFN_GATE_EXP,
2948        MODEL_TENSOR.FFN_GATE_UP_EXP,
2949        MODEL_TENSOR.PER_LAYER_TOKEN_EMBD,
2950        MODEL_TENSOR.PLE_KEY,
2951        MODEL_TENSOR.PLE_VALUE,
2952        MODEL_TENSOR.PLE_NORM_KEY,
2953        MODEL_TENSOR.PLE_NORM_QUERY,
2954        MODEL_TENSOR.PLE_NORM_CONV,
2955        MODEL_TENSOR.PLE_CONV1D,
2956    ],
2957    MODEL_ARCH.PLAMO: [
2958        MODEL_TENSOR.TOKEN_EMBD,
2959        MODEL_TENSOR.OUTPUT_NORM,
2960        MODEL_TENSOR.OUTPUT,
2961        MODEL_TENSOR.ROPE_FREQS,
2962        MODEL_TENSOR.ATTN_NORM,
2963        MODEL_TENSOR.ATTN_QKV,
2964        MODEL_TENSOR.ATTN_Q,
2965        MODEL_TENSOR.ATTN_K,
2966        MODEL_TENSOR.ATTN_V,
2967        MODEL_TENSOR.ATTN_OUT,
2968        MODEL_TENSOR.ATTN_ROT_EMBD,
2969        MODEL_TENSOR.FFN_GATE,
2970        MODEL_TENSOR.FFN_DOWN,
2971        MODEL_TENSOR.FFN_UP,
2972    ],
2973    MODEL_ARCH.PLAMO2: [
2974        MODEL_TENSOR.TOKEN_EMBD,
2975        MODEL_TENSOR.OUTPUT_NORM,
2976        MODEL_TENSOR.OUTPUT,
2977        MODEL_TENSOR.ROPE_FREQS,
2978        MODEL_TENSOR.ATTN_NORM,
2979        MODEL_TENSOR.ATTN_QKV,
2980        MODEL_TENSOR.ATTN_Q,
2981        MODEL_TENSOR.ATTN_K,
2982        MODEL_TENSOR.ATTN_OUT,
2983        MODEL_TENSOR.ATTN_ROT_EMBD,
2984        MODEL_TENSOR.ATTN_Q_NORM,
2985        MODEL_TENSOR.ATTN_K_NORM,
2986        MODEL_TENSOR.ATTN_POST_NORM,
2987        MODEL_TENSOR.FFN_NORM,
2988        MODEL_TENSOR.FFN_GATE,
2989        MODEL_TENSOR.FFN_DOWN,
2990        MODEL_TENSOR.FFN_UP,
2991        MODEL_TENSOR.FFN_POST_NORM,
2992        MODEL_TENSOR.SSM_IN,
2993        MODEL_TENSOR.SSM_CONV1D,
2994        MODEL_TENSOR.SSM_X,
2995        MODEL_TENSOR.SSM_DT,
2996        MODEL_TENSOR.SSM_A,
2997        MODEL_TENSOR.SSM_D,
2998        MODEL_TENSOR.SSM_OUT,
2999        MODEL_TENSOR.SSM_DT_NORM,
3000        MODEL_TENSOR.SSM_B_NORM,
3001        MODEL_TENSOR.SSM_C_NORM,
3002    ],
3003    MODEL_ARCH.PLAMO3: [
3004        MODEL_TENSOR.TOKEN_EMBD,
3005        MODEL_TENSOR.OUTPUT_NORM,
3006        MODEL_TENSOR.OUTPUT,
3007        MODEL_TENSOR.ATTN_NORM,
3008        MODEL_TENSOR.ATTN_QKV,
3009        MODEL_TENSOR.ATTN_Q_NORM,
3010        MODEL_TENSOR.ATTN_K_NORM,
3011        MODEL_TENSOR.ATTN_OUT,
3012        MODEL_TENSOR.ATTN_POST_NORM,
3013        MODEL_TENSOR.FFN_NORM,
3014        MODEL_TENSOR.FFN_DOWN,
3015        MODEL_TENSOR.FFN_UP,
3016        MODEL_TENSOR.FFN_POST_NORM,
3017    ],
3018    MODEL_ARCH.GPT2: [
3019        MODEL_TENSOR.TOKEN_EMBD,
3020        MODEL_TENSOR.POS_EMBD,
3021        MODEL_TENSOR.OUTPUT_NORM,
3022        MODEL_TENSOR.OUTPUT,
3023        MODEL_TENSOR.ATTN_NORM,
3024        MODEL_TENSOR.ATTN_QKV,
3025        MODEL_TENSOR.ATTN_OUT,
3026        MODEL_TENSOR.FFN_NORM,
3027        MODEL_TENSOR.FFN_DOWN,
3028        MODEL_TENSOR.FFN_UP,
3029    ],
3030    MODEL_ARCH.PHI2: [
3031        MODEL_TENSOR.TOKEN_EMBD,
3032        MODEL_TENSOR.OUTPUT_NORM,
3033        MODEL_TENSOR.OUTPUT,
3034        MODEL_TENSOR.ATTN_NORM,
3035        MODEL_TENSOR.ATTN_QKV,
3036        MODEL_TENSOR.ATTN_Q,
3037        MODEL_TENSOR.ATTN_K,
3038        MODEL_TENSOR.ATTN_V,
3039        MODEL_TENSOR.ATTN_OUT,
3040        MODEL_TENSOR.FFN_NORM,
3041        MODEL_TENSOR.FFN_DOWN,
3042        MODEL_TENSOR.FFN_UP,
3043    ],
3044    MODEL_ARCH.PHI3: [
3045        MODEL_TENSOR.TOKEN_EMBD,
3046        MODEL_TENSOR.OUTPUT_NORM,
3047        MODEL_TENSOR.OUTPUT,
3048        MODEL_TENSOR.ROPE_FACTORS_LONG,
3049        MODEL_TENSOR.ROPE_FACTORS_SHORT,
3050        MODEL_TENSOR.ATTN_NORM,
3051        MODEL_TENSOR.ATTN_QKV,
3052        MODEL_TENSOR.ATTN_Q,
3053        MODEL_TENSOR.ATTN_K,
3054        MODEL_TENSOR.ATTN_V,
3055        MODEL_TENSOR.ATTN_OUT,
3056        MODEL_TENSOR.FFN_NORM,
3057        MODEL_TENSOR.FFN_DOWN,
3058        MODEL_TENSOR.FFN_UP,
3059    ],
3060    MODEL_ARCH.PHIMOE: [
3061        MODEL_TENSOR.TOKEN_EMBD,
3062        MODEL_TENSOR.OUTPUT_NORM,
3063        MODEL_TENSOR.OUTPUT,
3064        MODEL_TENSOR.ROPE_FACTORS_LONG,
3065        MODEL_TENSOR.ROPE_FACTORS_SHORT,
3066        MODEL_TENSOR.ATTN_NORM,
3067        MODEL_TENSOR.ATTN_QKV,
3068        MODEL_TENSOR.ATTN_Q,
3069        MODEL_TENSOR.ATTN_K,
3070        MODEL_TENSOR.ATTN_V,
3071        MODEL_TENSOR.ATTN_OUT,
3072        MODEL_TENSOR.FFN_NORM,
3073        MODEL_TENSOR.FFN_GATE_INP,
3074        MODEL_TENSOR.FFN_GATE_EXP,
3075        MODEL_TENSOR.FFN_DOWN_EXP,
3076        MODEL_TENSOR.FFN_UP_EXP,
3077    ],
3078    MODEL_ARCH.CODESHELL: [
3079        MODEL_TENSOR.TOKEN_EMBD,
3080        MODEL_TENSOR.POS_EMBD,
3081        MODEL_TENSOR.OUTPUT_NORM,
3082        MODEL_TENSOR.OUTPUT,
3083        MODEL_TENSOR.ATTN_NORM,
3084        MODEL_TENSOR.ATTN_QKV,
3085        MODEL_TENSOR.ATTN_OUT,
3086        MODEL_TENSOR.ATTN_ROT_EMBD,
3087        MODEL_TENSOR.FFN_NORM,
3088        MODEL_TENSOR.FFN_DOWN,
3089        MODEL_TENSOR.FFN_UP,
3090    ],
3091    MODEL_ARCH.ORION: [
3092        MODEL_TENSOR.TOKEN_EMBD,
3093        MODEL_TENSOR.OUTPUT_NORM,
3094        MODEL_TENSOR.OUTPUT,
3095        MODEL_TENSOR.ROPE_FREQS,
3096        MODEL_TENSOR.ATTN_NORM,
3097        MODEL_TENSOR.ATTN_QKV,
3098        MODEL_TENSOR.ATTN_Q,
3099        MODEL_TENSOR.ATTN_K,
3100        MODEL_TENSOR.ATTN_V,
3101        MODEL_TENSOR.ATTN_OUT,
3102        MODEL_TENSOR.ATTN_ROT_EMBD,
3103        MODEL_TENSOR.FFN_NORM,
3104        MODEL_TENSOR.FFN_GATE,
3105        MODEL_TENSOR.FFN_DOWN,
3106        MODEL_TENSOR.FFN_UP,
3107    ],
3108    MODEL_ARCH.INTERNLM2: [
3109        MODEL_TENSOR.TOKEN_EMBD,
3110        MODEL_TENSOR.OUTPUT_NORM,
3111        MODEL_TENSOR.OUTPUT,
3112        MODEL_TENSOR.ATTN_NORM,
3113        MODEL_TENSOR.ATTN_QKV,
3114        MODEL_TENSOR.ATTN_Q,
3115        MODEL_TENSOR.ATTN_K,
3116        MODEL_TENSOR.ATTN_V,
3117        MODEL_TENSOR.ATTN_OUT,
3118        MODEL_TENSOR.ATTN_ROT_EMBD,
3119        MODEL_TENSOR.FFN_NORM,
3120        MODEL_TENSOR.FFN_GATE,
3121        MODEL_TENSOR.FFN_DOWN,
3122        MODEL_TENSOR.FFN_UP,
3123    ],
3124    MODEL_ARCH.MINICPM: [
3125        MODEL_TENSOR.TOKEN_EMBD,
3126        MODEL_TENSOR.OUTPUT,
3127        MODEL_TENSOR.OUTPUT_NORM,
3128        MODEL_TENSOR.ROPE_FREQS,
3129        MODEL_TENSOR.ROPE_FACTORS_LONG,
3130        MODEL_TENSOR.ROPE_FACTORS_SHORT,
3131        MODEL_TENSOR.ATTN_NORM,
3132        MODEL_TENSOR.ATTN_QKV,
3133        MODEL_TENSOR.ATTN_Q,
3134        MODEL_TENSOR.ATTN_K,
3135        MODEL_TENSOR.ATTN_V,
3136        MODEL_TENSOR.ATTN_OUT,
3137        MODEL_TENSOR.ATTN_ROT_EMBD,
3138        MODEL_TENSOR.FFN_GATE_INP,
3139        MODEL_TENSOR.FFN_NORM,
3140        MODEL_TENSOR.FFN_GATE,
3141        MODEL_TENSOR.FFN_DOWN,
3142        MODEL_TENSOR.FFN_UP,
3143        MODEL_TENSOR.FFN_GATE_EXP,
3144        MODEL_TENSOR.FFN_DOWN_EXP,
3145        MODEL_TENSOR.FFN_UP_EXP,
3146    ],
3147    MODEL_ARCH.MINICPM3: [
3148        MODEL_TENSOR.TOKEN_EMBD,
3149        MODEL_TENSOR.OUTPUT_NORM,
3150        MODEL_TENSOR.OUTPUT,
3151        MODEL_TENSOR.ROPE_FACTORS_LONG,
3152        MODEL_TENSOR.ROPE_FACTORS_SHORT,
3153        MODEL_TENSOR.ATTN_NORM,
3154        MODEL_TENSOR.ATTN_Q_A,
3155        MODEL_TENSOR.ATTN_Q_B,
3156        MODEL_TENSOR.ATTN_KV_A_MQA,
3157        MODEL_TENSOR.ATTN_KV_B,
3158        MODEL_TENSOR.ATTN_Q_A_NORM,
3159        MODEL_TENSOR.ATTN_KV_A_NORM,
3160        MODEL_TENSOR.ATTN_OUT,
3161        MODEL_TENSOR.FFN_NORM,
3162        MODEL_TENSOR.FFN_GATE,
3163        MODEL_TENSOR.FFN_DOWN,
3164        MODEL_TENSOR.FFN_UP,
3165    ],
3166    MODEL_ARCH.GEMMA: [
3167        MODEL_TENSOR.TOKEN_EMBD,
3168        MODEL_TENSOR.OUTPUT_NORM,
3169        MODEL_TENSOR.ATTN_NORM,
3170        MODEL_TENSOR.ATTN_QKV,
3171        MODEL_TENSOR.ATTN_Q,
3172        MODEL_TENSOR.ATTN_K,
3173        MODEL_TENSOR.ATTN_V,
3174        MODEL_TENSOR.ATTN_OUT,
3175        MODEL_TENSOR.FFN_GATE,
3176        MODEL_TENSOR.FFN_DOWN,
3177        MODEL_TENSOR.FFN_UP,
3178        MODEL_TENSOR.FFN_NORM,
3179    ],
3180    MODEL_ARCH.GEMMA2: [
3181        MODEL_TENSOR.TOKEN_EMBD,
3182        MODEL_TENSOR.OUTPUT_NORM,
3183        MODEL_TENSOR.ATTN_QKV,
3184        MODEL_TENSOR.ATTN_Q,
3185        MODEL_TENSOR.ATTN_K,
3186        MODEL_TENSOR.ATTN_V,
3187        MODEL_TENSOR.ATTN_OUT,
3188        MODEL_TENSOR.FFN_GATE,
3189        MODEL_TENSOR.FFN_DOWN,
3190        MODEL_TENSOR.FFN_UP,
3191        MODEL_TENSOR.ATTN_NORM,
3192        MODEL_TENSOR.ATTN_POST_NORM,
3193        MODEL_TENSOR.FFN_PRE_NORM,
3194        MODEL_TENSOR.FFN_POST_NORM,
3195    ],
3196    MODEL_ARCH.GEMMA3: [
3197        MODEL_TENSOR.TOKEN_EMBD,
3198        MODEL_TENSOR.OUTPUT,
3199        MODEL_TENSOR.OUTPUT_NORM,
3200        MODEL_TENSOR.ATTN_QKV,
3201        MODEL_TENSOR.ATTN_Q,
3202        MODEL_TENSOR.ATTN_Q_NORM,
3203        MODEL_TENSOR.ATTN_K,
3204        MODEL_TENSOR.ATTN_K_NORM,
3205        MODEL_TENSOR.ATTN_V,
3206        MODEL_TENSOR.ATTN_OUT,
3207        MODEL_TENSOR.FFN_GATE,
3208        MODEL_TENSOR.FFN_DOWN,
3209        MODEL_TENSOR.FFN_UP,
3210        MODEL_TENSOR.ATTN_NORM,
3211        MODEL_TENSOR.ATTN_POST_NORM,
3212        MODEL_TENSOR.FFN_PRE_NORM,
3213        MODEL_TENSOR.FFN_POST_NORM,
3214    ],
3215    MODEL_ARCH.GEMMA3N: [
3216        MODEL_TENSOR.TOKEN_EMBD,
3217        MODEL_TENSOR.OUTPUT,
3218        MODEL_TENSOR.OUTPUT_NORM,
3219        MODEL_TENSOR.ATTN_QKV,
3220        MODEL_TENSOR.ATTN_Q,
3221        MODEL_TENSOR.ATTN_Q_NORM,
3222        MODEL_TENSOR.ATTN_K,
3223        MODEL_TENSOR.ATTN_K_NORM,
3224        MODEL_TENSOR.ATTN_V,
3225        MODEL_TENSOR.ATTN_OUT,
3226        MODEL_TENSOR.FFN_GATE,
3227        MODEL_TENSOR.FFN_DOWN,
3228        MODEL_TENSOR.FFN_UP,
3229        MODEL_TENSOR.ATTN_NORM,
3230        MODEL_TENSOR.ATTN_POST_NORM,
3231        MODEL_TENSOR.FFN_PRE_NORM,
3232        MODEL_TENSOR.FFN_POST_NORM,
3233        # altup / laurel
3234        MODEL_TENSOR.PER_LAYER_TOKEN_EMBD,
3235        MODEL_TENSOR.PER_LAYER_MODEL_PROJ,
3236        MODEL_TENSOR.PER_LAYER_INP_GATE,
3237        MODEL_TENSOR.PER_LAYER_PROJ,
3238        MODEL_TENSOR.PER_LAYER_PROJ_NORM,
3239        MODEL_TENSOR.PER_LAYER_POST_NORM,
3240        MODEL_TENSOR.ALTUP_PROJ,
3241        MODEL_TENSOR.ALTUP_UNEMBD_PROJ,
3242        MODEL_TENSOR.ALTUP_CORRECT_COEF,
3243        MODEL_TENSOR.ALTUP_CORRECT_SCALE,
3244        MODEL_TENSOR.ALTUP_PREDICT_COEF,
3245        MODEL_TENSOR.ALTUP_ROUTER,
3246        MODEL_TENSOR.ALTUP_ROUTER_NORM,
3247        MODEL_TENSOR.LAUREL_L,
3248        MODEL_TENSOR.LAUREL_R,
3249        MODEL_TENSOR.LAUREL_POST_NORM,
3250    ],
3251    MODEL_ARCH.GEMMA4: [
3252        MODEL_TENSOR.ROPE_FREQS,
3253        MODEL_TENSOR.TOKEN_EMBD,
3254        MODEL_TENSOR.OUTPUT,
3255        MODEL_TENSOR.OUTPUT_NORM,
3256        MODEL_TENSOR.ATTN_QKV,
3257        MODEL_TENSOR.ATTN_Q,
3258        MODEL_TENSOR.ATTN_Q_NORM,
3259        MODEL_TENSOR.ATTN_K,
3260        MODEL_TENSOR.ATTN_K_NORM,
3261        MODEL_TENSOR.ATTN_V,
3262        MODEL_TENSOR.ATTN_OUT,
3263        MODEL_TENSOR.FFN_GATE,
3264        MODEL_TENSOR.FFN_DOWN,
3265        MODEL_TENSOR.FFN_UP,
3266        MODEL_TENSOR.FFN_GATE_UP_EXP,
3267        MODEL_TENSOR.FFN_GATE_EXP,
3268        MODEL_TENSOR.FFN_UP_EXP,
3269        MODEL_TENSOR.FFN_DOWN_EXP,
3270        MODEL_TENSOR.ATTN_NORM,
3271        MODEL_TENSOR.ATTN_POST_NORM,
3272        MODEL_TENSOR.FFN_GATE_INP,
3273        MODEL_TENSOR.FFN_PRE_NORM,
3274        MODEL_TENSOR.FFN_PRE_NORM_2,
3275        MODEL_TENSOR.FFN_POST_NORM,
3276        MODEL_TENSOR.FFN_POST_NORM_1,
3277        MODEL_TENSOR.FFN_POST_NORM_2,
3278        MODEL_TENSOR.LAYER_OUT_SCALE,
3279        MODEL_TENSOR.PER_LAYER_TOKEN_EMBD,
3280        MODEL_TENSOR.PER_LAYER_MODEL_PROJ,
3281        MODEL_TENSOR.PER_LAYER_INP_GATE,
3282        MODEL_TENSOR.PER_LAYER_PROJ,
3283        MODEL_TENSOR.PER_LAYER_PROJ_NORM,
3284        MODEL_TENSOR.PER_LAYER_POST_NORM,
3285    ],
3286    MODEL_ARCH.GEMMA4_ASSISTANT: [
3287        MODEL_TENSOR.ROPE_FREQS,
3288        MODEL_TENSOR.TOKEN_EMBD,
3289        MODEL_TENSOR.MASKED_EMBD_CENTROIDS,
3290        MODEL_TENSOR.MASKED_EMBD_ORDERING,
3291        MODEL_TENSOR.OUTPUT_NORM,
3292        MODEL_TENSOR.NEXTN_PROJ_PRE,
3293        MODEL_TENSOR.NEXTN_PROJ_POST,
3294        MODEL_TENSOR.ATTN_Q,
3295        MODEL_TENSOR.ATTN_Q_NORM,
3296        MODEL_TENSOR.ATTN_OUT,
3297        MODEL_TENSOR.FFN_GATE,
3298        MODEL_TENSOR.FFN_DOWN,
3299        MODEL_TENSOR.FFN_UP,
3300        MODEL_TENSOR.ATTN_NORM,
3301        MODEL_TENSOR.ATTN_POST_NORM,
3302        MODEL_TENSOR.FFN_PRE_NORM,
3303        MODEL_TENSOR.FFN_POST_NORM,
3304        MODEL_TENSOR.LAYER_OUT_SCALE,
3305    ],
3306    MODEL_ARCH.GEMMA_EMBEDDING: [
3307        MODEL_TENSOR.TOKEN_EMBD,
3308        MODEL_TENSOR.OUTPUT,
3309        MODEL_TENSOR.DENSE_2_OUT,
3310        MODEL_TENSOR.DENSE_3_OUT,
3311        MODEL_TENSOR.OUTPUT_NORM,
3312        MODEL_TENSOR.ATTN_QKV,
3313        MODEL_TENSOR.ATTN_Q,
3314        MODEL_TENSOR.ATTN_Q_NORM,
3315        MODEL_TENSOR.ATTN_K,
3316        MODEL_TENSOR.ATTN_K_NORM,
3317        MODEL_TENSOR.ATTN_V,
3318        MODEL_TENSOR.ATTN_OUT,
3319        MODEL_TENSOR.FFN_GATE,
3320        MODEL_TENSOR.FFN_DOWN,
3321        MODEL_TENSOR.FFN_UP,
3322        MODEL_TENSOR.ATTN_NORM,
3323        MODEL_TENSOR.ATTN_POST_NORM,
3324        MODEL_TENSOR.FFN_PRE_NORM,
3325        MODEL_TENSOR.FFN_POST_NORM,
3326    ],
3327    MODEL_ARCH.STARCODER2: [
3328        MODEL_TENSOR.TOKEN_EMBD,
3329        MODEL_TENSOR.OUTPUT_NORM,
3330        MODEL_TENSOR.OUTPUT,
3331        MODEL_TENSOR.ROPE_FREQS,
3332        MODEL_TENSOR.ATTN_NORM,
3333        MODEL_TENSOR.ATTN_QKV,
3334        MODEL_TENSOR.ATTN_Q,
3335        MODEL_TENSOR.ATTN_K,
3336        MODEL_TENSOR.ATTN_V,
3337        MODEL_TENSOR.ATTN_OUT,
3338        MODEL_TENSOR.ATTN_ROT_EMBD,
3339        MODEL_TENSOR.FFN_NORM,
3340        MODEL_TENSOR.FFN_DOWN,
3341        MODEL_TENSOR.FFN_UP,
3342    ],
3343    MODEL_ARCH.RWKV6: [
3344        MODEL_TENSOR.TOKEN_EMBD,
3345        MODEL_TENSOR.TOKEN_EMBD_NORM,
3346        MODEL_TENSOR.OUTPUT_NORM,
3347        MODEL_TENSOR.OUTPUT,
3348        MODEL_TENSOR.ATTN_NORM,
3349        MODEL_TENSOR.ATTN_NORM_2,
3350        MODEL_TENSOR.TIME_MIX_W1,
3351        MODEL_TENSOR.TIME_MIX_W2,
3352        MODEL_TENSOR.TIME_MIX_LERP_X,
3353        MODEL_TENSOR.TIME_MIX_LERP_K,
3354        MODEL_TENSOR.TIME_MIX_LERP_V,
3355        MODEL_TENSOR.TIME_MIX_LERP_R,
3356        MODEL_TENSOR.TIME_MIX_LERP_G,
3357        MODEL_TENSOR.TIME_MIX_LERP_W,
3358        MODEL_TENSOR.TIME_MIX_LERP_FUSED,
3359        MODEL_TENSOR.TIME_MIX_FIRST,
3360        MODEL_TENSOR.TIME_MIX_DECAY,
3361        MODEL_TENSOR.TIME_MIX_DECAY_W1,
3362        MODEL_TENSOR.TIME_MIX_DECAY_W2,
3363        MODEL_TENSOR.TIME_MIX_KEY,
3364        MODEL_TENSOR.TIME_MIX_VALUE,
3365        MODEL_TENSOR.TIME_MIX_RECEPTANCE,
3366        MODEL_TENSOR.TIME_MIX_GATE,
3367        MODEL_TENSOR.TIME_MIX_LN,
3368        MODEL_TENSOR.TIME_MIX_OUTPUT,
3369        MODEL_TENSOR.CHANNEL_MIX_LERP_K,
3370        MODEL_TENSOR.CHANNEL_MIX_LERP_R,
3371        MODEL_TENSOR.CHANNEL_MIX_KEY,
3372        MODEL_TENSOR.CHANNEL_MIX_RECEPTANCE,
3373        MODEL_TENSOR.CHANNEL_MIX_VALUE,
3374    ],
3375    MODEL_ARCH.RWKV6QWEN2: [
3376        MODEL_TENSOR.TOKEN_EMBD,
3377        MODEL_TENSOR.OUTPUT_NORM,
3378        MODEL_TENSOR.OUTPUT,
3379        MODEL_TENSOR.ATTN_NORM,
3380        MODEL_TENSOR.TIME_MIX_W1,
3381        MODEL_TENSOR.TIME_MIX_W2,
3382        MODEL_TENSOR.TIME_MIX_LERP_X,
3383        MODEL_TENSOR.TIME_MIX_LERP_K,
3384        MODEL_TENSOR.TIME_MIX_LERP_V,
3385        MODEL_TENSOR.TIME_MIX_LERP_R,
3386        MODEL_TENSOR.TIME_MIX_LERP_G,
3387        MODEL_TENSOR.TIME_MIX_LERP_W,
3388        MODEL_TENSOR.TIME_MIX_LERP_FUSED,
3389        MODEL_TENSOR.TIME_MIX_FIRST,
3390        MODEL_TENSOR.TIME_MIX_DECAY,
3391        MODEL_TENSOR.TIME_MIX_DECAY_W1,
3392        MODEL_TENSOR.TIME_MIX_DECAY_W2,
3393        MODEL_TENSOR.TIME_MIX_KEY,
3394        MODEL_TENSOR.TIME_MIX_VALUE,
3395        MODEL_TENSOR.TIME_MIX_RECEPTANCE,
3396        MODEL_TENSOR.TIME_MIX_GATE,
3397        MODEL_TENSOR.TIME_MIX_LN,
3398        MODEL_TENSOR.TIME_MIX_OUTPUT,
3399        MODEL_TENSOR.FFN_NORM,
3400        MODEL_TENSOR.FFN_GATE,
3401        MODEL_TENSOR.FFN_DOWN,
3402        MODEL_TENSOR.FFN_UP,
3403    ],
3404    MODEL_ARCH.RWKV7: [
3405        MODEL_TENSOR.TOKEN_EMBD,
3406        MODEL_TENSOR.TOKEN_EMBD_NORM,
3407        MODEL_TENSOR.OUTPUT_NORM,
3408        MODEL_TENSOR.OUTPUT,
3409        MODEL_TENSOR.ATTN_NORM,
3410        MODEL_TENSOR.ATTN_NORM_2,
3411        MODEL_TENSOR.TIME_MIX_LERP_FUSED,
3412        MODEL_TENSOR.TIME_MIX_W0,
3413        MODEL_TENSOR.TIME_MIX_W1,
3414        MODEL_TENSOR.TIME_MIX_W2,
3415        MODEL_TENSOR.TIME_MIX_A0,
3416        MODEL_TENSOR.TIME_MIX_A1,
3417        MODEL_TENSOR.TIME_MIX_A2,
3418        MODEL_TENSOR.TIME_MIX_V0,
3419        MODEL_TENSOR.TIME_MIX_V1,
3420        MODEL_TENSOR.TIME_MIX_V2,
3421        MODEL_TENSOR.TIME_MIX_G1,
3422        MODEL_TENSOR.TIME_MIX_G2,
3423        MODEL_TENSOR.TIME_MIX_K_K,
3424        MODEL_TENSOR.TIME_MIX_K_A,
3425        MODEL_TENSOR.TIME_MIX_R_K,
3426        MODEL_TENSOR.TIME_MIX_KEY,
3427        MODEL_TENSOR.TIME_MIX_VALUE,
3428        MODEL_TENSOR.TIME_MIX_RECEPTANCE,
3429        MODEL_TENSOR.TIME_MIX_LN,
3430        MODEL_TENSOR.TIME_MIX_OUTPUT,
3431        MODEL_TENSOR.CHANNEL_MIX_LERP_K,
3432        MODEL_TENSOR.CHANNEL_MIX_KEY,
3433        MODEL_TENSOR.CHANNEL_MIX_VALUE,
3434    ],
3435    MODEL_ARCH.ARWKV7: [
3436        MODEL_TENSOR.TOKEN_EMBD,
3437        MODEL_TENSOR.TOKEN_EMBD_NORM,
3438        MODEL_TENSOR.OUTPUT_NORM,
3439        MODEL_TENSOR.OUTPUT,
3440        MODEL_TENSOR.ATTN_NORM,
3441        MODEL_TENSOR.TIME_MIX_LERP_FUSED,
3442        MODEL_TENSOR.TIME_MIX_W0,
3443        MODEL_TENSOR.TIME_MIX_W1,
3444        MODEL_TENSOR.TIME_MIX_W2,
3445        MODEL_TENSOR.TIME_MIX_A0,
3446        MODEL_TENSOR.TIME_MIX_A1,
3447        MODEL_TENSOR.TIME_MIX_A2,
3448        MODEL_TENSOR.TIME_MIX_V0,
3449        MODEL_TENSOR.TIME_MIX_V1,
3450        MODEL_TENSOR.TIME_MIX_V2,
3451        MODEL_TENSOR.TIME_MIX_G1,
3452        MODEL_TENSOR.TIME_MIX_G2,
3453        MODEL_TENSOR.TIME_MIX_K_K,
3454        MODEL_TENSOR.TIME_MIX_K_A,
3455        MODEL_TENSOR.TIME_MIX_R_K,
3456        MODEL_TENSOR.TIME_MIX_KEY,
3457        MODEL_TENSOR.TIME_MIX_VALUE,
3458        MODEL_TENSOR.TIME_MIX_RECEPTANCE,
3459        MODEL_TENSOR.TIME_MIX_LN,
3460        MODEL_TENSOR.TIME_MIX_OUTPUT,
3461        MODEL_TENSOR.FFN_NORM,
3462        MODEL_TENSOR.FFN_GATE,
3463        MODEL_TENSOR.FFN_DOWN,
3464        MODEL_TENSOR.FFN_UP,
3465    ],
3466    MODEL_ARCH.MAMBA: [
3467        MODEL_TENSOR.TOKEN_EMBD,
3468        MODEL_TENSOR.OUTPUT_NORM,
3469        MODEL_TENSOR.OUTPUT,
3470        MODEL_TENSOR.ATTN_NORM,
3471        MODEL_TENSOR.SSM_IN,
3472        MODEL_TENSOR.SSM_CONV1D,
3473        MODEL_TENSOR.SSM_X,
3474        MODEL_TENSOR.SSM_DT,
3475        MODEL_TENSOR.SSM_A,
3476        MODEL_TENSOR.SSM_D,
3477        MODEL_TENSOR.SSM_OUT,
3478    ],
3479    MODEL_ARCH.MAMBA2: [
3480        MODEL_TENSOR.TOKEN_EMBD,
3481        MODEL_TENSOR.OUTPUT_NORM,
3482        MODEL_TENSOR.OUTPUT,
3483        MODEL_TENSOR.ATTN_NORM,
3484        MODEL_TENSOR.SSM_IN,
3485        MODEL_TENSOR.SSM_CONV1D,
3486        MODEL_TENSOR.SSM_DT,
3487        MODEL_TENSOR.SSM_A,
3488        MODEL_TENSOR.SSM_D,
3489        MODEL_TENSOR.SSM_NORM,
3490        MODEL_TENSOR.SSM_OUT,
3491    ],
3492    MODEL_ARCH.MAPLE: [
3493        MODEL_TENSOR.TOKEN_EMBD,
3494        MODEL_TENSOR.OUTPUT_NORM,
3495        MODEL_TENSOR.OUTPUT,
3496        MODEL_TENSOR.ATTN_NORM,
3497        MODEL_TENSOR.ATTN_Q,
3498        MODEL_TENSOR.ATTN_Q_NORM,
3499        MODEL_TENSOR.ATTN_K,
3500        MODEL_TENSOR.ATTN_K_NORM,
3501        MODEL_TENSOR.ATTN_V,
3502        MODEL_TENSOR.ATTN_OUT,
3503        MODEL_TENSOR.FFN_NORM,
3504        MODEL_TENSOR.FFN_GATE_INP,
3505        MODEL_TENSOR.FFN_GATE_EXP,
3506        MODEL_TENSOR.FFN_DOWN_EXP,
3507        MODEL_TENSOR.FFN_UP_EXP,
3508    ],
3509    MODEL_ARCH.JAMBA: [
3510        MODEL_TENSOR.TOKEN_EMBD,
3511        MODEL_TENSOR.OUTPUT_NORM,
3512        MODEL_TENSOR.OUTPUT,
3513        MODEL_TENSOR.ATTN_NORM,
3514        MODEL_TENSOR.ATTN_QKV,
3515        MODEL_TENSOR.ATTN_Q,
3516        MODEL_TENSOR.ATTN_K,
3517        MODEL_TENSOR.ATTN_V,
3518        MODEL_TENSOR.ATTN_OUT,
3519        MODEL_TENSOR.SSM_IN,
3520        MODEL_TENSOR.SSM_CONV1D,
3521        MODEL_TENSOR.SSM_X,
3522        MODEL_TENSOR.SSM_DT,
3523        MODEL_TENSOR.SSM_DT_NORM,
3524        MODEL_TENSOR.SSM_A,
3525        MODEL_TENSOR.SSM_B_NORM,
3526        MODEL_TENSOR.SSM_C_NORM,
3527        MODEL_TENSOR.SSM_D,
3528        MODEL_TENSOR.SSM_OUT,
3529        MODEL_TENSOR.FFN_GATE_INP,
3530        MODEL_TENSOR.FFN_NORM,
3531        MODEL_TENSOR.FFN_GATE,
3532        MODEL_TENSOR.FFN_DOWN,
3533        MODEL_TENSOR.FFN_UP,
3534        MODEL_TENSOR.FFN_GATE_EXP,
3535        MODEL_TENSOR.FFN_DOWN_EXP,
3536        MODEL_TENSOR.FFN_UP_EXP,
3537    ],
3538    MODEL_ARCH.XVERSE: [
3539        MODEL_TENSOR.TOKEN_EMBD,
3540        MODEL_TENSOR.OUTPUT_NORM,
3541        MODEL_TENSOR.OUTPUT,
3542        MODEL_TENSOR.ROPE_FREQS,
3543        MODEL_TENSOR.ATTN_NORM,
3544        MODEL_TENSOR.ATTN_QKV,
3545        MODEL_TENSOR.ATTN_Q,
3546        MODEL_TENSOR.ATTN_K,
3547        MODEL_TENSOR.ATTN_V,
3548        MODEL_TENSOR.ATTN_OUT,
3549        MODEL_TENSOR.ATTN_ROT_EMBD,
3550        MODEL_TENSOR.FFN_NORM,
3551        MODEL_TENSOR.FFN_GATE,
3552        MODEL_TENSOR.FFN_DOWN,
3553        MODEL_TENSOR.FFN_UP,
3554    ],
3555    MODEL_ARCH.COMMAND_R: [
3556        MODEL_TENSOR.TOKEN_EMBD,
3557        MODEL_TENSOR.OUTPUT_NORM,
3558        MODEL_TENSOR.ATTN_NORM,
3559        MODEL_TENSOR.ATTN_QKV,
3560        MODEL_TENSOR.ATTN_Q,
3561        MODEL_TENSOR.ATTN_K,
3562        MODEL_TENSOR.ATTN_V,
3563        MODEL_TENSOR.ATTN_OUT,
3564        MODEL_TENSOR.FFN_GATE,
3565        MODEL_TENSOR.FFN_DOWN,
3566        MODEL_TENSOR.FFN_UP,
3567        MODEL_TENSOR.ATTN_K_NORM,
3568        MODEL_TENSOR.ATTN_Q_NORM,
3569    ],
3570    MODEL_ARCH.COHERE2: [
3571        MODEL_TENSOR.TOKEN_EMBD,
3572        MODEL_TENSOR.OUTPUT_NORM,
3573        MODEL_TENSOR.ATTN_NORM,
3574        MODEL_TENSOR.ATTN_QKV,
3575        MODEL_TENSOR.ATTN_Q,
3576        MODEL_TENSOR.ATTN_K,
3577        MODEL_TENSOR.ATTN_V,
3578        MODEL_TENSOR.ATTN_OUT,
3579        MODEL_TENSOR.FFN_GATE,
3580        MODEL_TENSOR.FFN_DOWN,
3581        MODEL_TENSOR.FFN_UP,
3582    ],
3583    MODEL_ARCH.COHERE2MOE: [
3584        MODEL_TENSOR.TOKEN_EMBD,
3585        MODEL_TENSOR.OUTPUT_NORM,
3586        MODEL_TENSOR.OUTPUT,
3587        MODEL_TENSOR.ATTN_NORM,
3588        MODEL_TENSOR.ATTN_Q,
3589        MODEL_TENSOR.ATTN_K,
3590        MODEL_TENSOR.ATTN_V,
3591        MODEL_TENSOR.ATTN_OUT,
3592        MODEL_TENSOR.FFN_GATE,
3593        MODEL_TENSOR.FFN_DOWN,
3594        MODEL_TENSOR.FFN_UP,
3595        MODEL_TENSOR.FFN_GATE_INP,
3596        MODEL_TENSOR.FFN_GATE_EXP,
3597        MODEL_TENSOR.FFN_GATE_UP_EXP,
3598        MODEL_TENSOR.FFN_DOWN_EXP,
3599        MODEL_TENSOR.FFN_UP_EXP,
3600        MODEL_TENSOR.FFN_GATE_SHEXP,
3601        MODEL_TENSOR.FFN_DOWN_SHEXP,
3602        MODEL_TENSOR.FFN_UP_SHEXP,
3603        MODEL_TENSOR.NEXTN_EH_PROJ,
3604        MODEL_TENSOR.NEXTN_EMBED_TOKENS,
3605        MODEL_TENSOR.NEXTN_ENORM,
3606        MODEL_TENSOR.NEXTN_HNORM,
3607        MODEL_TENSOR.NEXTN_SHARED_HEAD_HEAD,
3608        MODEL_TENSOR.NEXTN_SHARED_HEAD_NORM,
3609    ],
3610    MODEL_ARCH.DBRX: [
3611        MODEL_TENSOR.TOKEN_EMBD,
3612        MODEL_TENSOR.OUTPUT_NORM,
3613        MODEL_TENSOR.OUTPUT,
3614        MODEL_TENSOR.ATTN_NORM,
3615        MODEL_TENSOR.ATTN_QKV,
3616        MODEL_TENSOR.ATTN_OUT,
3617        MODEL_TENSOR.ATTN_OUT_NORM,
3618        MODEL_TENSOR.FFN_GATE_INP,
3619        MODEL_TENSOR.FFN_GATE_EXP,
3620        MODEL_TENSOR.FFN_DOWN_EXP,
3621        MODEL_TENSOR.FFN_UP_EXP,
3622    ],
3623    MODEL_ARCH.OLMO: [
3624        MODEL_TENSOR.TOKEN_EMBD,
3625        MODEL_TENSOR.OUTPUT,
3626        MODEL_TENSOR.ATTN_QKV,
3627        MODEL_TENSOR.ATTN_Q,
3628        MODEL_TENSOR.ATTN_K,
3629        MODEL_TENSOR.ATTN_V,
3630        MODEL_TENSOR.ATTN_OUT,
3631        MODEL_TENSOR.FFN_GATE,
3632        MODEL_TENSOR.FFN_DOWN,
3633        MODEL_TENSOR.FFN_UP,
3634    ],
3635    MODEL_ARCH.OLMO2: [
3636        MODEL_TENSOR.TOKEN_EMBD,
3637        MODEL_TENSOR.OUTPUT_NORM,
3638        MODEL_TENSOR.OUTPUT,
3639        MODEL_TENSOR.ATTN_QKV,
3640        MODEL_TENSOR.ATTN_Q,
3641        MODEL_TENSOR.ATTN_K,
3642        MODEL_TENSOR.ATTN_V,
3643        MODEL_TENSOR.ATTN_OUT,
3644        MODEL_TENSOR.ATTN_POST_NORM,
3645        MODEL_TENSOR.ATTN_Q_NORM,
3646        MODEL_TENSOR.ATTN_K_NORM,
3647        MODEL_TENSOR.FFN_POST_NORM,
3648        MODEL_TENSOR.FFN_GATE,
3649        MODEL_TENSOR.FFN_DOWN,
3650        MODEL_TENSOR.FFN_UP,
3651    ],
3652    MODEL_ARCH.SEED_OSS: [
3653        MODEL_TENSOR.TOKEN_EMBD,
3654        MODEL_TENSOR.ATTN_NORM,
3655        MODEL_TENSOR.ATTN_QKV,
3656        MODEL_TENSOR.ATTN_Q,
3657        MODEL_TENSOR.ATTN_K,
3658        MODEL_TENSOR.ATTN_V,
3659        MODEL_TENSOR.ATTN_OUT,
3660        MODEL_TENSOR.ATTN_POST_NORM,
3661        MODEL_TENSOR.FFN_GATE,
3662        MODEL_TENSOR.FFN_DOWN,
3663        MODEL_TENSOR.FFN_UP,
3664        MODEL_TENSOR.OUTPUT_NORM,
3665        MODEL_TENSOR.OUTPUT,
3666    ],
3667    MODEL_ARCH.OLMOE: [
3668        MODEL_TENSOR.TOKEN_EMBD,
3669        MODEL_TENSOR.OUTPUT_NORM,
3670        MODEL_TENSOR.OUTPUT,
3671        MODEL_TENSOR.ATTN_OUT,
3672        MODEL_TENSOR.ATTN_QKV,
3673        MODEL_TENSOR.ATTN_Q,
3674        MODEL_TENSOR.ATTN_K,
3675        MODEL_TENSOR.ATTN_V,
3676        MODEL_TENSOR.ATTN_NORM,
3677        MODEL_TENSOR.ATTN_Q_NORM,
3678        MODEL_TENSOR.ATTN_K_NORM,
3679        MODEL_TENSOR.FFN_NORM,
3680        MODEL_TENSOR.FFN_GATE_INP,
3681        MODEL_TENSOR.FFN_GATE_EXP,
3682        MODEL_TENSOR.FFN_UP_EXP,
3683        MODEL_TENSOR.FFN_DOWN_EXP,
3684    ],
3685    MODEL_ARCH.MUSE_GLIMMER: [
3686        MODEL_TENSOR.TOKEN_EMBD,
3687        MODEL_TENSOR.OUTPUT,
3688        MODEL_TENSOR.OUTPUT_NORM,
3689        MODEL_TENSOR.ATTN_Q,
3690        MODEL_TENSOR.ATTN_Q_NORM,
3691        MODEL_TENSOR.ATTN_K,
3692        MODEL_TENSOR.ATTN_K_NORM,
3693        MODEL_TENSOR.ATTN_V,
3694        MODEL_TENSOR.ATTN_OUT,
3695        MODEL_TENSOR.ATTN_GATE,
3696        MODEL_TENSOR.FFN_GATE,
3697        MODEL_TENSOR.FFN_DOWN,
3698        MODEL_TENSOR.FFN_UP,
3699        MODEL_TENSOR.ATTN_NORM,
3700        MODEL_TENSOR.ATTN_POST_NORM,
3701        MODEL_TENSOR.FFN_PRE_NORM,
3702        MODEL_TENSOR.FFN_POST_NORM,
3703    ],
3704    MODEL_ARCH.OPENELM: [
3705        MODEL_TENSOR.TOKEN_EMBD,
3706        MODEL_TENSOR.OUTPUT_NORM,
3707        MODEL_TENSOR.ATTN_NORM,
3708        MODEL_TENSOR.ATTN_QKV,
3709        MODEL_TENSOR.ATTN_Q_NORM,
3710        MODEL_TENSOR.ATTN_K_NORM,
3711        MODEL_TENSOR.ATTN_OUT,
3712        MODEL_TENSOR.FFN_NORM,
3713        MODEL_TENSOR.FFN_GATE,
3714        MODEL_TENSOR.FFN_DOWN,
3715        MODEL_TENSOR.FFN_UP,
3716    ],
3717    MODEL_ARCH.ARCTIC: [
3718        MODEL_TENSOR.TOKEN_EMBD,
3719        MODEL_TENSOR.OUTPUT_NORM,
3720        MODEL_TENSOR.OUTPUT,
3721        MODEL_TENSOR.ROPE_FREQS,
3722        MODEL_TENSOR.ATTN_NORM,
3723        MODEL_TENSOR.ATTN_QKV,
3724        MODEL_TENSOR.ATTN_Q,
3725        MODEL_TENSOR.ATTN_K,
3726        MODEL_TENSOR.ATTN_V,
3727        MODEL_TENSOR.ATTN_OUT,
3728        MODEL_TENSOR.ATTN_ROT_EMBD,
3729        MODEL_TENSOR.FFN_GATE_INP,
3730        MODEL_TENSOR.FFN_NORM,
3731        MODEL_TENSOR.FFN_GATE,
3732        MODEL_TENSOR.FFN_DOWN,
3733        MODEL_TENSOR.FFN_UP,
3734        MODEL_TENSOR.FFN_NORM_EXP,
3735        MODEL_TENSOR.FFN_GATE_EXP,
3736        MODEL_TENSOR.FFN_DOWN_EXP,
3737        MODEL_TENSOR.FFN_UP_EXP,
3738    ],
3739    MODEL_ARCH.DEEPSEEK: [
3740        MODEL_TENSOR.TOKEN_EMBD,
3741        MODEL_TENSOR.OUTPUT_NORM,
3742        MODEL_TENSOR.OUTPUT,
3743        MODEL_TENSOR.ROPE_FREQS,
3744        MODEL_TENSOR.ATTN_NORM,
3745        MODEL_TENSOR.ATTN_QKV,
3746        MODEL_TENSOR.ATTN_Q,
3747        MODEL_TENSOR.ATTN_K,
3748        MODEL_TENSOR.ATTN_V,
3749        MODEL_TENSOR.ATTN_OUT,
3750        MODEL_TENSOR.ATTN_ROT_EMBD,
3751        MODEL_TENSOR.FFN_GATE_INP,
3752        MODEL_TENSOR.FFN_NORM,
3753        MODEL_TENSOR.FFN_GATE,
3754        MODEL_TENSOR.FFN_DOWN,
3755        MODEL_TENSOR.FFN_UP,
3756        MODEL_TENSOR.FFN_GATE_EXP,
3757        MODEL_TENSOR.FFN_DOWN_EXP,
3758        MODEL_TENSOR.FFN_UP_EXP,
3759        MODEL_TENSOR.FFN_GATE_SHEXP,
3760        MODEL_TENSOR.FFN_DOWN_SHEXP,
3761        MODEL_TENSOR.FFN_UP_SHEXP,
3762    ],
3763    MODEL_ARCH.DEEPSEEK2: [
3764        MODEL_TENSOR.TOKEN_EMBD,
3765        MODEL_TENSOR.OUTPUT_NORM,
3766        MODEL_TENSOR.OUTPUT,
3767        MODEL_TENSOR.ROPE_FREQS,
3768        MODEL_TENSOR.ATTN_NORM,
3769        MODEL_TENSOR.ATTN_Q,
3770        MODEL_TENSOR.ATTN_Q_A,
3771        MODEL_TENSOR.ATTN_Q_B,
3772        MODEL_TENSOR.ATTN_KV_A_MQA,
3773        MODEL_TENSOR.ATTN_KV_B,
3774        MODEL_TENSOR.ATTN_K,
3775        MODEL_TENSOR.ATTN_K_B,
3776        MODEL_TENSOR.ATTN_V,
3777        MODEL_TENSOR.ATTN_V_B,
3778        MODEL_TENSOR.ATTN_Q_A_NORM,
3779        MODEL_TENSOR.ATTN_KV_A_NORM,
3780        MODEL_TENSOR.ATTN_OUT,
3781        MODEL_TENSOR.ATTN_ROT_EMBD,
3782        MODEL_TENSOR.FFN_GATE_INP,
3783        MODEL_TENSOR.FFN_NORM,
3784        MODEL_TENSOR.FFN_GATE,
3785        MODEL_TENSOR.FFN_DOWN,
3786        MODEL_TENSOR.FFN_UP,
3787        MODEL_TENSOR.FFN_GATE_EXP,
3788        MODEL_TENSOR.FFN_DOWN_EXP,
3789        MODEL_TENSOR.FFN_UP_EXP,
3790        MODEL_TENSOR.FFN_GATE_SHEXP,
3791        MODEL_TENSOR.FFN_DOWN_SHEXP,
3792        MODEL_TENSOR.FFN_UP_SHEXP,
3793        MODEL_TENSOR.FFN_EXP_PROBS_B,
3794        # NextN/MTP tensors
3795        MODEL_TENSOR.NEXTN_EH_PROJ,
3796        MODEL_TENSOR.NEXTN_EMBED_TOKENS,
3797        MODEL_TENSOR.NEXTN_ENORM,
3798        MODEL_TENSOR.NEXTN_HNORM,
3799        MODEL_TENSOR.NEXTN_SHARED_HEAD_HEAD,
3800        MODEL_TENSOR.NEXTN_SHARED_HEAD_NORM,
3801    ],
3802    MODEL_ARCH.DEEPSEEK2OCR: [
3803        MODEL_TENSOR.TOKEN_EMBD,
3804        MODEL_TENSOR.OUTPUT_NORM,
3805        MODEL_TENSOR.OUTPUT,
3806        MODEL_TENSOR.ROPE_FREQS,
3807        MODEL_TENSOR.ATTN_NORM,
3808        MODEL_TENSOR.ATTN_QKV,
3809        MODEL_TENSOR.ATTN_Q,
3810        MODEL_TENSOR.ATTN_Q_A,
3811        MODEL_TENSOR.ATTN_Q_B,
3812        MODEL_TENSOR.ATTN_KV_A_MQA,
3813        MODEL_TENSOR.ATTN_KV_B,
3814        MODEL_TENSOR.ATTN_K,
3815        MODEL_TENSOR.ATTN_K_B,
3816        MODEL_TENSOR.ATTN_V,
3817        MODEL_TENSOR.ATTN_V_B,
3818        MODEL_TENSOR.ATTN_Q_A_NORM,
3819        MODEL_TENSOR.ATTN_KV_A_NORM,
3820        MODEL_TENSOR.ATTN_OUT,
3821        MODEL_TENSOR.ATTN_ROT_EMBD,
3822        MODEL_TENSOR.FFN_GATE_INP,
3823        MODEL_TENSOR.FFN_NORM,
3824        MODEL_TENSOR.FFN_GATE,
3825        MODEL_TENSOR.FFN_DOWN,
3826        MODEL_TENSOR.FFN_UP,
3827        MODEL_TENSOR.FFN_GATE_EXP,
3828        MODEL_TENSOR.FFN_DOWN_EXP,
3829        MODEL_TENSOR.FFN_UP_EXP,
3830        MODEL_TENSOR.FFN_GATE_UP_EXP,
3831        MODEL_TENSOR.FFN_GATE_SHEXP,
3832        MODEL_TENSOR.FFN_DOWN_SHEXP,
3833        MODEL_TENSOR.FFN_UP_SHEXP,
3834        MODEL_TENSOR.FFN_EXP_PROBS_B,
3835    ],
3836    MODEL_ARCH.DEEPSEEK32: [
3837        MODEL_TENSOR.TOKEN_EMBD,
3838        MODEL_TENSOR.OUTPUT_NORM,
3839        MODEL_TENSOR.OUTPUT,
3840        MODEL_TENSOR.ROPE_FREQS,
3841        MODEL_TENSOR.ATTN_NORM,
3842        MODEL_TENSOR.ATTN_Q,
3843        MODEL_TENSOR.ATTN_Q_A,
3844        MODEL_TENSOR.ATTN_Q_B,
3845        MODEL_TENSOR.ATTN_KV_A_MQA,
3846        MODEL_TENSOR.ATTN_K_B,
3847        MODEL_TENSOR.ATTN_V_B,
3848        MODEL_TENSOR.ATTN_Q_A_NORM,
3849        MODEL_TENSOR.ATTN_KV_A_NORM,
3850        MODEL_TENSOR.ATTN_OUT,
3851        MODEL_TENSOR.ATTN_ROT_EMBD,
3852        MODEL_TENSOR.FFN_GATE_INP,
3853        MODEL_TENSOR.FFN_NORM,
3854        MODEL_TENSOR.FFN_GATE,
3855        MODEL_TENSOR.FFN_DOWN,
3856        MODEL_TENSOR.FFN_UP,
3857        MODEL_TENSOR.FFN_GATE_EXP,
3858        MODEL_TENSOR.FFN_DOWN_EXP,
3859        MODEL_TENSOR.FFN_UP_EXP,
3860        MODEL_TENSOR.FFN_GATE_SHEXP,
3861        MODEL_TENSOR.FFN_DOWN_SHEXP,
3862        MODEL_TENSOR.FFN_UP_SHEXP,
3863        MODEL_TENSOR.FFN_EXP_PROBS_B,
3864        MODEL_TENSOR.INDEXER_K_NORM,
3865        MODEL_TENSOR.INDEXER_PROJ,
3866        MODEL_TENSOR.INDEXER_ATTN_K,
3867        MODEL_TENSOR.INDEXER_ATTN_Q_B,
3868        # NextN/MTP tensors - preserved but unused
3869        MODEL_TENSOR.NEXTN_EH_PROJ,
3870        MODEL_TENSOR.NEXTN_EMBED_TOKENS,
3871        MODEL_TENSOR.NEXTN_ENORM,
3872        MODEL_TENSOR.NEXTN_HNORM,
3873        MODEL_TENSOR.NEXTN_SHARED_HEAD_HEAD,
3874        MODEL_TENSOR.NEXTN_SHARED_HEAD_NORM,
3875    ],
3876    MODEL_ARCH.DEEPSEEK4: [
3877        MODEL_TENSOR.TOKEN_EMBD,
3878        MODEL_TENSOR.OUTPUT_NORM,
3879        MODEL_TENSOR.OUTPUT,
3880        MODEL_TENSOR.HC_HEAD_FN,
3881        MODEL_TENSOR.HC_HEAD_BASE,
3882        MODEL_TENSOR.HC_HEAD_SCALE,
3883        MODEL_TENSOR.ATTN_NORM,
3884        MODEL_TENSOR.ATTN_SINKS,
3885        MODEL_TENSOR.ATTN_Q_A,
3886        MODEL_TENSOR.ATTN_Q_B,
3887        MODEL_TENSOR.ATTN_Q_A_NORM,
3888        MODEL_TENSOR.ATTN_KV,
3889        MODEL_TENSOR.ATTN_KV_NORM,
3890        MODEL_TENSOR.ATTN_OUT_A,
3891        MODEL_TENSOR.ATTN_OUT_B,
3892        MODEL_TENSOR.HC_ATTN_FN,
3893        MODEL_TENSOR.HC_ATTN_BASE,
3894        MODEL_TENSOR.HC_ATTN_SCALE,
3895        MODEL_TENSOR.HC_FFN_FN,
3896        MODEL_TENSOR.HC_FFN_BASE,
3897        MODEL_TENSOR.HC_FFN_SCALE,
3898        MODEL_TENSOR.ATTN_COMPRESSOR_WKV,
3899        MODEL_TENSOR.ATTN_COMPRESSOR_WGATE,
3900        MODEL_TENSOR.ATTN_COMPRESSOR_APE,
3901        MODEL_TENSOR.ATTN_COMPRESSOR_NORM,
3902        MODEL_TENSOR.INDEXER_PROJ,
3903        MODEL_TENSOR.INDEXER_ATTN_Q_B,
3904        MODEL_TENSOR.INDEXER_COMPRESSOR_WKV,
3905        MODEL_TENSOR.INDEXER_COMPRESSOR_WGATE,
3906        MODEL_TENSOR.INDEXER_COMPRESSOR_APE,
3907        MODEL_TENSOR.INDEXER_COMPRESSOR_NORM,
3908        MODEL_TENSOR.FFN_GATE_INP,
3909        MODEL_TENSOR.FFN_GATE_TID2EID,
3910        MODEL_TENSOR.FFN_EXP_PROBS_B,
3911        MODEL_TENSOR.FFN_EXP_PROBS_B_VL,
3912        MODEL_TENSOR.FFN_NORM,
3913        MODEL_TENSOR.FFN_GATE_EXP,
3914        MODEL_TENSOR.FFN_DOWN_EXP,
3915        MODEL_TENSOR.FFN_UP_EXP,
3916        MODEL_TENSOR.FFN_GATE_SHEXP,
3917        MODEL_TENSOR.FFN_DOWN_SHEXP,
3918        MODEL_TENSOR.FFN_UP_SHEXP,
3919        MODEL_TENSOR.NEXTN_EH_PROJ,
3920        MODEL_TENSOR.NEXTN_EMBED_TOKENS,
3921        MODEL_TENSOR.NEXTN_ENORM,
3922        MODEL_TENSOR.NEXTN_HNORM,
3923        MODEL_TENSOR.NEXTN_SHARED_HEAD_HEAD,
3924        MODEL_TENSOR.NEXTN_SHARED_HEAD_NORM,
3925    ],
3926    MODEL_ARCH.ERNIE4_5_MOE: [
3927        MODEL_TENSOR.TOKEN_EMBD,
3928        MODEL_TENSOR.OUTPUT_NORM,
3929        MODEL_TENSOR.OUTPUT,
3930        MODEL_TENSOR.ATTN_NORM,
3931        MODEL_TENSOR.ATTN_QKV,
3932        MODEL_TENSOR.ATTN_Q,
3933        MODEL_TENSOR.ATTN_K,
3934        MODEL_TENSOR.ATTN_V,
3935        MODEL_TENSOR.ATTN_OUT,
3936        MODEL_TENSOR.FFN_NORM,
3937        MODEL_TENSOR.FFN_GATE,
3938        MODEL_TENSOR.FFN_DOWN,
3939        MODEL_TENSOR.FFN_UP,
3940        MODEL_TENSOR.FFN_GATE_INP,
3941        MODEL_TENSOR.FFN_GATE_EXP,
3942        MODEL_TENSOR.FFN_DOWN_EXP,
3943        MODEL_TENSOR.FFN_UP_EXP,
3944        MODEL_TENSOR.FFN_GATE_SHEXP,
3945        MODEL_TENSOR.FFN_DOWN_SHEXP,
3946        MODEL_TENSOR.FFN_UP_SHEXP,
3947        MODEL_TENSOR.FFN_EXP_PROBS_B,
3948    ],
3949    MODEL_ARCH.PLM: [
3950        MODEL_TENSOR.TOKEN_EMBD,
3951        MODEL_TENSOR.OUTPUT,
3952        MODEL_TENSOR.OUTPUT_NORM,
3953        MODEL_TENSOR.ATTN_NORM,
3954        MODEL_TENSOR.ATTN_Q,
3955        MODEL_TENSOR.ATTN_KV_A_MQA,
3956        MODEL_TENSOR.ATTN_KV_A_NORM,
3957        MODEL_TENSOR.ATTN_KV_B,
3958        MODEL_TENSOR.ATTN_OUT,
3959        MODEL_TENSOR.FFN_NORM,
3960        MODEL_TENSOR.FFN_UP,
3961        MODEL_TENSOR.FFN_DOWN,
3962    ],
3963    MODEL_ARCH.CHATGLM : [
3964        MODEL_TENSOR.TOKEN_EMBD,
3965        MODEL_TENSOR.ROPE_FREQS,
3966        MODEL_TENSOR.OUTPUT_NORM,
3967        MODEL_TENSOR.OUTPUT,
3968        MODEL_TENSOR.ATTN_NORM,
3969        MODEL_TENSOR.ATTN_QKV,
3970        MODEL_TENSOR.ATTN_Q,
3971        MODEL_TENSOR.ATTN_K,
3972        MODEL_TENSOR.ATTN_V,
3973        MODEL_TENSOR.ATTN_OUT,
3974        MODEL_TENSOR.FFN_NORM,
3975        MODEL_TENSOR.FFN_DOWN,
3976        MODEL_TENSOR.FFN_UP,
3977    ],
3978    MODEL_ARCH.GLM4 : [
3979        MODEL_TENSOR.TOKEN_EMBD,
3980        MODEL_TENSOR.ROPE_FREQS,
3981        MODEL_TENSOR.OUTPUT_NORM,
3982        MODEL_TENSOR.OUTPUT,
3983        MODEL_TENSOR.ATTN_NORM,
3984        MODEL_TENSOR.ATTN_QKV,
3985        MODEL_TENSOR.ATTN_Q,
3986        MODEL_TENSOR.ATTN_K,
3987        MODEL_TENSOR.ATTN_V,
3988        MODEL_TENSOR.ATTN_OUT,
3989        MODEL_TENSOR.FFN_NORM,
3990        MODEL_TENSOR.FFN_DOWN,
3991        MODEL_TENSOR.FFN_UP,
3992        MODEL_TENSOR.ATTN_POST_NORM,
3993        MODEL_TENSOR.FFN_POST_NORM,
3994        # NextN/MTP tensors - preserved but unused
3995        MODEL_TENSOR.NEXTN_EH_PROJ,
3996        MODEL_TENSOR.NEXTN_EMBED_TOKENS,
3997        MODEL_TENSOR.NEXTN_ENORM,
3998        MODEL_TENSOR.NEXTN_HNORM,
3999        MODEL_TENSOR.NEXTN_SHARED_HEAD_HEAD,
4000        MODEL_TENSOR.NEXTN_SHARED_HEAD_NORM,
4001    ],
4002    MODEL_ARCH.GLM4_MOE: [
4003        MODEL_TENSOR.TOKEN_EMBD,
4004        MODEL_TENSOR.OUTPUT_NORM,
4005        MODEL_TENSOR.OUTPUT,
4006        MODEL_TENSOR.ATTN_NORM,
4007        MODEL_TENSOR.ATTN_POST_NORM,
4008        MODEL_TENSOR.ATTN_QKV,
4009        MODEL_TENSOR.ATTN_Q,
4010        MODEL_TENSOR.ATTN_K,
4011        MODEL_TENSOR.ATTN_V,
4012        MODEL_TENSOR.ATTN_OUT,
4013        MODEL_TENSOR.ATTN_Q_NORM,
4014        MODEL_TENSOR.ATTN_K_NORM,
4015        MODEL_TENSOR.FFN_GATE,
4016        MODEL_TENSOR.FFN_DOWN,
4017        MODEL_TENSOR.FFN_UP,
4018        MODEL_TENSOR.FFN_GATE_INP,
4019        MODEL_TENSOR.FFN_GATE_EXP,
4020        MODEL_TENSOR.FFN_DOWN_EXP,
4021        MODEL_TENSOR.FFN_UP_EXP,
4022        MODEL_TENSOR.FFN_GATE_SHEXP,
4023        MODEL_TENSOR.FFN_DOWN_SHEXP,
4024        MODEL_TENSOR.FFN_UP_SHEXP,
4025        MODEL_TENSOR.FFN_EXP_PROBS_B,
4026        # NextN/MTP tensors
4027        MODEL_TENSOR.NEXTN_EH_PROJ,
4028        MODEL_TENSOR.NEXTN_EMBED_TOKENS,
4029        MODEL_TENSOR.NEXTN_ENORM,
4030        MODEL_TENSOR.NEXTN_HNORM,
4031        MODEL_TENSOR.NEXTN_SHARED_HEAD_HEAD,
4032        MODEL_TENSOR.NEXTN_SHARED_HEAD_NORM,
4033    ],
4034    MODEL_ARCH.GLM_DSA: [
4035        MODEL_TENSOR.TOKEN_EMBD,
4036        MODEL_TENSOR.OUTPUT_NORM,
4037        MODEL_TENSOR.OUTPUT,
4038        MODEL_TENSOR.ROPE_FREQS,
4039        MODEL_TENSOR.ATTN_NORM,
4040        MODEL_TENSOR.ATTN_Q,
4041        MODEL_TENSOR.ATTN_Q_A,
4042        MODEL_TENSOR.ATTN_Q_B,
4043        MODEL_TENSOR.ATTN_KV_A_MQA,
4044        MODEL_TENSOR.ATTN_KV_B,
4045        MODEL_TENSOR.ATTN_K_B,
4046        MODEL_TENSOR.ATTN_V_B,
4047        MODEL_TENSOR.ATTN_Q_A_NORM,
4048        MODEL_TENSOR.ATTN_KV_A_NORM,
4049        MODEL_TENSOR.ATTN_OUT,
4050        MODEL_TENSOR.ATTN_ROT_EMBD,
4051        MODEL_TENSOR.FFN_GATE_INP,
4052        MODEL_TENSOR.FFN_NORM,
4053        MODEL_TENSOR.FFN_GATE,
4054        MODEL_TENSOR.FFN_DOWN,
4055        MODEL_TENSOR.FFN_UP,
4056        MODEL_TENSOR.FFN_GATE_EXP,
4057        MODEL_TENSOR.FFN_DOWN_EXP,
4058        MODEL_TENSOR.FFN_UP_EXP,
4059        MODEL_TENSOR.FFN_GATE_SHEXP,
4060        MODEL_TENSOR.FFN_DOWN_SHEXP,
4061        MODEL_TENSOR.FFN_UP_SHEXP,
4062        MODEL_TENSOR.FFN_EXP_PROBS_B,
4063        MODEL_TENSOR.INDEXER_K_NORM,
4064        MODEL_TENSOR.INDEXER_PROJ,
4065        MODEL_TENSOR.INDEXER_ATTN_K,
4066        MODEL_TENSOR.INDEXER_ATTN_Q_B,
4067        # NextN/MTP tensors - preserved but unused
4068        MODEL_TENSOR.NEXTN_EH_PROJ,
4069        MODEL_TENSOR.NEXTN_EMBED_TOKENS,
4070        MODEL_TENSOR.NEXTN_ENORM,
4071        MODEL_TENSOR.NEXTN_HNORM,
4072        MODEL_TENSOR.NEXTN_SHARED_HEAD_HEAD,
4073        MODEL_TENSOR.NEXTN_SHARED_HEAD_NORM,
4074    ],
4075    MODEL_ARCH.BITNET: [
4076        MODEL_TENSOR.ATTN_Q,
4077        MODEL_TENSOR.ATTN_K,
4078        MODEL_TENSOR.ATTN_V,
4079        MODEL_TENSOR.TOKEN_EMBD,
4080        MODEL_TENSOR.OUTPUT_NORM,
4081        MODEL_TENSOR.ATTN_NORM,
4082        MODEL_TENSOR.ATTN_OUT,
4083        MODEL_TENSOR.FFN_NORM,
4084        MODEL_TENSOR.FFN_GATE,
4085        MODEL_TENSOR.FFN_DOWN,
4086        MODEL_TENSOR.FFN_UP,
4087        MODEL_TENSOR.ATTN_SUB_NORM,
4088        MODEL_TENSOR.FFN_SUB_NORM,
4089    ],
4090    MODEL_ARCH.T5: [
4091        MODEL_TENSOR.TOKEN_EMBD,
4092        MODEL_TENSOR.OUTPUT,
4093        MODEL_TENSOR.DEC_ATTN_NORM,
4094        MODEL_TENSOR.DEC_ATTN_Q,
4095        MODEL_TENSOR.DEC_ATTN_K,
4096        MODEL_TENSOR.DEC_ATTN_V,
4097        MODEL_TENSOR.DEC_ATTN_OUT,
4098        MODEL_TENSOR.DEC_ATTN_REL_B,
4099        MODEL_TENSOR.DEC_CROSS_ATTN_NORM,
4100        MODEL_TENSOR.DEC_CROSS_ATTN_Q,
4101        MODEL_TENSOR.DEC_CROSS_ATTN_K,
4102        MODEL_TENSOR.DEC_CROSS_ATTN_V,
4103        MODEL_TENSOR.DEC_CROSS_ATTN_OUT,
4104        MODEL_TENSOR.DEC_CROSS_ATTN_REL_B,
4105        MODEL_TENSOR.DEC_FFN_NORM,
4106        MODEL_TENSOR.DEC_FFN_GATE,
4107        MODEL_TENSOR.DEC_FFN_DOWN,
4108        MODEL_TENSOR.DEC_FFN_UP,
4109        MODEL_TENSOR.DEC_OUTPUT_NORM,
4110        MODEL_TENSOR.ENC_ATTN_NORM,
4111        MODEL_TENSOR.ENC_ATTN_Q,
4112        MODEL_TENSOR.ENC_ATTN_K,
4113        MODEL_TENSOR.ENC_ATTN_V,
4114        MODEL_TENSOR.ENC_ATTN_OUT,
4115        MODEL_TENSOR.ENC_ATTN_REL_B,
4116        MODEL_TENSOR.ENC_FFN_NORM,
4117        MODEL_TENSOR.ENC_FFN_GATE,
4118        MODEL_TENSOR.ENC_FFN_DOWN,
4119        MODEL_TENSOR.ENC_FFN_UP,
4120        MODEL_TENSOR.ENC_OUTPUT_NORM,
4121    ],
4122    MODEL_ARCH.T5ENCODER: [
4123        MODEL_TENSOR.TOKEN_EMBD,
4124        MODEL_TENSOR.OUTPUT,
4125        MODEL_TENSOR.ENC_ATTN_NORM,
4126        MODEL_TENSOR.ENC_ATTN_Q,
4127        MODEL_TENSOR.ENC_ATTN_K,
4128        MODEL_TENSOR.ENC_ATTN_V,
4129        MODEL_TENSOR.ENC_ATTN_OUT,
4130        MODEL_TENSOR.ENC_ATTN_REL_B,
4131        MODEL_TENSOR.ENC_FFN_NORM,
4132        MODEL_TENSOR.ENC_FFN_GATE,
4133        MODEL_TENSOR.ENC_FFN_DOWN,
4134        MODEL_TENSOR.ENC_FFN_UP,
4135        MODEL_TENSOR.ENC_OUTPUT_NORM,
4136    ],
4137    MODEL_ARCH.JAIS: [
4138        MODEL_TENSOR.TOKEN_EMBD,
4139        MODEL_TENSOR.OUTPUT_NORM,
4140        MODEL_TENSOR.OUTPUT,
4141        MODEL_TENSOR.ATTN_NORM,
4142        MODEL_TENSOR.ATTN_QKV,
4143        MODEL_TENSOR.ATTN_OUT,
4144        MODEL_TENSOR.FFN_NORM,
4145        MODEL_TENSOR.FFN_DOWN,
4146        MODEL_TENSOR.FFN_GATE,
4147        MODEL_TENSOR.FFN_UP,
4148    ],
4149    MODEL_ARCH.JAIS2: [
4150        MODEL_TENSOR.TOKEN_EMBD,
4151        MODEL_TENSOR.OUTPUT_NORM,
4152        MODEL_TENSOR.OUTPUT,
4153        MODEL_TENSOR.ATTN_NORM,
4154        MODEL_TENSOR.ATTN_QKV,
4155        MODEL_TENSOR.ATTN_Q,
4156        MODEL_TENSOR.ATTN_K,
4157        MODEL_TENSOR.ATTN_V,
4158        MODEL_TENSOR.ATTN_OUT,
4159        MODEL_TENSOR.FFN_NORM,
4160        MODEL_TENSOR.FFN_DOWN,
4161        MODEL_TENSOR.FFN_UP,
4162    ],
4163    MODEL_ARCH.NEMOTRON: [
4164        MODEL_TENSOR.TOKEN_EMBD,
4165        MODEL_TENSOR.OUTPUT_NORM,
4166        MODEL_TENSOR.OUTPUT,
4167        MODEL_TENSOR.ROPE_FREQS,
4168        MODEL_TENSOR.ATTN_NORM,
4169        MODEL_TENSOR.ATTN_QKV,
4170        MODEL_TENSOR.ATTN_Q,
4171        MODEL_TENSOR.ATTN_K,
4172        MODEL_TENSOR.ATTN_V,
4173        MODEL_TENSOR.ATTN_OUT,
4174        MODEL_TENSOR.ATTN_ROT_EMBD,
4175        MODEL_TENSOR.FFN_NORM,
4176        MODEL_TENSOR.FFN_DOWN,
4177        MODEL_TENSOR.FFN_UP,
4178    ],
4179    MODEL_ARCH.NEMOTRON_H: [
4180        MODEL_TENSOR.TOKEN_EMBD,
4181        MODEL_TENSOR.OUTPUT_NORM,
4182        MODEL_TENSOR.OUTPUT,
4183        MODEL_TENSOR.ATTN_NORM,
4184        MODEL_TENSOR.SSM_IN,
4185        MODEL_TENSOR.SSM_CONV1D,
4186        MODEL_TENSOR.SSM_DT,
4187        MODEL_TENSOR.SSM_A,
4188        MODEL_TENSOR.SSM_D,
4189        MODEL_TENSOR.SSM_NORM,
4190        MODEL_TENSOR.SSM_OUT,
4191        MODEL_TENSOR.ATTN_QKV,
4192        MODEL_TENSOR.ATTN_Q,
4193        MODEL_TENSOR.ATTN_K,
4194        MODEL_TENSOR.ATTN_V,
4195        MODEL_TENSOR.ATTN_OUT,
4196        MODEL_TENSOR.FFN_DOWN,
4197        MODEL_TENSOR.FFN_UP,
4198    ],
4199    MODEL_ARCH.NEMOTRON_H_MOE: [
4200        MODEL_TENSOR.TOKEN_EMBD,
4201        MODEL_TENSOR.OUTPUT_NORM,
4202        MODEL_TENSOR.OUTPUT,
4203        MODEL_TENSOR.ATTN_NORM,
4204        MODEL_TENSOR.SSM_IN,
4205        MODEL_TENSOR.SSM_CONV1D,
4206        MODEL_TENSOR.SSM_DT,
4207        MODEL_TENSOR.SSM_A,
4208        MODEL_TENSOR.SSM_D,
4209        MODEL_TENSOR.SSM_NORM,
4210        MODEL_TENSOR.SSM_OUT,
4211        MODEL_TENSOR.ATTN_QKV,
4212        MODEL_TENSOR.ATTN_Q,
4213        MODEL_TENSOR.ATTN_K,
4214        MODEL_TENSOR.ATTN_V,
4215        MODEL_TENSOR.ATTN_OUT,
4216        MODEL_TENSOR.FFN_DOWN,
4217        MODEL_TENSOR.FFN_UP,
4218        # experts
4219        MODEL_TENSOR.FFN_GATE_INP,
4220        MODEL_TENSOR.FFN_UP_EXP,
4221        MODEL_TENSOR.FFN_DOWN_EXP,
4222        # expert latent
4223        MODEL_TENSOR.MOE_LATENT_DOWN,
4224        MODEL_TENSOR.MOE_LATENT_UP,
4225        # shared expert
4226        MODEL_TENSOR.FFN_DOWN_SHEXP,
4227        MODEL_TENSOR.FFN_UP_SHEXP,
4228        MODEL_TENSOR.FFN_EXP_PROBS_B,
4229        # NextN/MTP (draft head)
4230        MODEL_TENSOR.ATTN_POST_NORM,
4231        MODEL_TENSOR.NEXTN_EH_PROJ,
4232        MODEL_TENSOR.NEXTN_ENORM,
4233        MODEL_TENSOR.NEXTN_HNORM,
4234        MODEL_TENSOR.NEXTN_SHARED_HEAD_NORM,
4235    ],
4236    MODEL_ARCH.EXAONE: [
4237        MODEL_TENSOR.TOKEN_EMBD,
4238        MODEL_TENSOR.OUTPUT_NORM,
4239        MODEL_TENSOR.OUTPUT,
4240        MODEL_TENSOR.ROPE_FREQS,
4241        MODEL_TENSOR.ATTN_NORM,
4242        MODEL_TENSOR.ATTN_QKV,
4243        MODEL_TENSOR.ATTN_Q,
4244        MODEL_TENSOR.ATTN_K,
4245        MODEL_TENSOR.ATTN_V,
4246        MODEL_TENSOR.ATTN_OUT,
4247        MODEL_TENSOR.ATTN_ROT_EMBD,
4248        MODEL_TENSOR.FFN_NORM,
4249        MODEL_TENSOR.FFN_GATE,
4250        MODEL_TENSOR.FFN_DOWN,
4251        MODEL_TENSOR.FFN_UP,
4252    ],
4253    MODEL_ARCH.EXAONE4: [
4254        MODEL_TENSOR.TOKEN_EMBD,
4255        MODEL_TENSOR.OUTPUT_NORM,
4256        MODEL_TENSOR.OUTPUT,
4257        MODEL_TENSOR.ROPE_FREQS,
4258        MODEL_TENSOR.ATTN_QKV,
4259        MODEL_TENSOR.ATTN_Q,
4260        MODEL_TENSOR.ATTN_Q_NORM,
4261        MODEL_TENSOR.ATTN_K,
4262        MODEL_TENSOR.ATTN_K_NORM,
4263        MODEL_TENSOR.ATTN_V,
4264        MODEL_TENSOR.ATTN_OUT,
4265        MODEL_TENSOR.ATTN_POST_NORM,
4266        MODEL_TENSOR.FFN_GATE,
4267        MODEL_TENSOR.FFN_DOWN,
4268        MODEL_TENSOR.FFN_UP,
4269        MODEL_TENSOR.FFN_POST_NORM,
4270        # NextN/MTP tensors - preserved but unused
4271        MODEL_TENSOR.NEXTN_EH_PROJ,
4272        MODEL_TENSOR.NEXTN_EMBED_TOKENS,
4273        MODEL_TENSOR.NEXTN_ENORM,
4274        MODEL_TENSOR.NEXTN_HNORM,
4275        MODEL_TENSOR.NEXTN_SHARED_HEAD_HEAD,
4276        MODEL_TENSOR.NEXTN_SHARED_HEAD_NORM,
4277    ],
4278    MODEL_ARCH.EXAONE_MOE: [
4279        MODEL_TENSOR.TOKEN_EMBD,
4280        MODEL_TENSOR.OUTPUT_NORM,
4281        MODEL_TENSOR.OUTPUT,
4282        MODEL_TENSOR.ROPE_FREQS,
4283        MODEL_TENSOR.ATTN_NORM,
4284        MODEL_TENSOR.ATTN_QKV,
4285        MODEL_TENSOR.ATTN_Q,
4286        MODEL_TENSOR.ATTN_Q_NORM,
4287        MODEL_TENSOR.ATTN_K,
4288        MODEL_TENSOR.ATTN_K_NORM,
4289        MODEL_TENSOR.ATTN_V,
4290        MODEL_TENSOR.ATTN_OUT,
4291        MODEL_TENSOR.FFN_NORM,
4292        MODEL_TENSOR.FFN_GATE,
4293        MODEL_TENSOR.FFN_DOWN,
4294        MODEL_TENSOR.FFN_UP,
4295        MODEL_TENSOR.FFN_GATE_INP,
4296        MODEL_TENSOR.FFN_GATE_EXP,
4297        MODEL_TENSOR.FFN_DOWN_EXP,
4298        MODEL_TENSOR.FFN_UP_EXP,
4299        MODEL_TENSOR.FFN_GATE_SHEXP,
4300        MODEL_TENSOR.FFN_DOWN_SHEXP,
4301        MODEL_TENSOR.FFN_UP_SHEXP,
4302        MODEL_TENSOR.FFN_EXP_PROBS_B,
4303        # NextN/MTP tensors - preserved but unused
4304        MODEL_TENSOR.NEXTN_EH_PROJ,
4305        MODEL_TENSOR.NEXTN_EMBED_TOKENS,
4306        MODEL_TENSOR.NEXTN_ENORM,
4307        MODEL_TENSOR.NEXTN_HNORM,
4308        MODEL_TENSOR.NEXTN_SHARED_HEAD_HEAD,
4309        MODEL_TENSOR.NEXTN_SHARED_HEAD_NORM,
4310    ],
4311    MODEL_ARCH.GRANITE: [
4312        MODEL_TENSOR.TOKEN_EMBD,
4313        MODEL_TENSOR.OUTPUT_NORM,
4314        MODEL_TENSOR.OUTPUT,
4315        MODEL_TENSOR.ATTN_NORM,
4316        MODEL_TENSOR.ATTN_QKV,
4317        MODEL_TENSOR.ATTN_Q,
4318        MODEL_TENSOR.ATTN_K,
4319        MODEL_TENSOR.ATTN_V,
4320        MODEL_TENSOR.ATTN_OUT,
4321        MODEL_TENSOR.FFN_NORM,
4322        MODEL_TENSOR.FFN_GATE,
4323        MODEL_TENSOR.FFN_DOWN,
4324        MODEL_TENSOR.FFN_UP,
4325    ],
4326    MODEL_ARCH.GRANITE_MOE: [
4327        MODEL_TENSOR.TOKEN_EMBD,
4328        MODEL_TENSOR.OUTPUT_NORM,
4329        MODEL_TENSOR.OUTPUT,
4330        MODEL_TENSOR.ATTN_NORM,
4331        MODEL_TENSOR.ATTN_QKV,
4332        MODEL_TENSOR.ATTN_Q,
4333        MODEL_TENSOR.ATTN_K,
4334        MODEL_TENSOR.ATTN_V,
4335        MODEL_TENSOR.ATTN_OUT,
4336        MODEL_TENSOR.FFN_NORM,
4337        MODEL_TENSOR.FFN_GATE_INP,
4338        MODEL_TENSOR.FFN_GATE_EXP,
4339        MODEL_TENSOR.FFN_DOWN_EXP,
4340        MODEL_TENSOR.FFN_UP_EXP,
4341        MODEL_TENSOR.FFN_GATE_SHEXP,
4342        MODEL_TENSOR.FFN_UP_SHEXP,
4343        MODEL_TENSOR.FFN_DOWN_SHEXP,
4344    ],
4345    MODEL_ARCH.GRANITE_HYBRID: [
4346        MODEL_TENSOR.TOKEN_EMBD,
4347        MODEL_TENSOR.OUTPUT_NORM,
4348        MODEL_TENSOR.OUTPUT,
4349        MODEL_TENSOR.ATTN_NORM,
4350        MODEL_TENSOR.SSM_IN,
4351        MODEL_TENSOR.SSM_CONV1D,
4352        MODEL_TENSOR.SSM_DT,
4353        MODEL_TENSOR.SSM_A,
4354        MODEL_TENSOR.SSM_D,
4355        MODEL_TENSOR.SSM_NORM,
4356        MODEL_TENSOR.SSM_OUT,
4357        MODEL_TENSOR.ATTN_QKV,
4358        MODEL_TENSOR.ATTN_Q,
4359        MODEL_TENSOR.ATTN_K,
4360        MODEL_TENSOR.ATTN_V,
4361        MODEL_TENSOR.ATTN_OUT,
4362        MODEL_TENSOR.FFN_NORM,
4363        # MoE
4364        MODEL_TENSOR.FFN_GATE_INP,
4365        MODEL_TENSOR.FFN_GATE_EXP,
4366        MODEL_TENSOR.FFN_DOWN_EXP,
4367        MODEL_TENSOR.FFN_UP_EXP,
4368        MODEL_TENSOR.FFN_GATE_SHEXP,
4369        MODEL_TENSOR.FFN_UP_SHEXP,
4370        MODEL_TENSOR.FFN_DOWN_SHEXP,
4371        # Dense
4372        MODEL_TENSOR.FFN_GATE,
4373        MODEL_TENSOR.FFN_DOWN,
4374        MODEL_TENSOR.FFN_UP,
4375    ],
4376    MODEL_ARCH.GRANITE_SWITCH: [
4377        MODEL_TENSOR.TOKEN_EMBD,
4378        MODEL_TENSOR.OUTPUT_NORM,
4379        MODEL_TENSOR.OUTPUT,
4380        MODEL_TENSOR.ATTN_NORM,
4381        MODEL_TENSOR.ATTN_QKV,
4382        MODEL_TENSOR.ATTN_Q,
4383        MODEL_TENSOR.ATTN_K,
4384        MODEL_TENSOR.ATTN_V,
4385        MODEL_TENSOR.ATTN_OUT,
4386        MODEL_TENSOR.FFN_NORM,
4387        MODEL_TENSOR.FFN_GATE,
4388        MODEL_TENSOR.FFN_DOWN,
4389        MODEL_TENSOR.FFN_UP,
4390    ],
4391    MODEL_ARCH.GRANITE_SWA: [
4392        MODEL_TENSOR.TOKEN_EMBD,
4393        MODEL_TENSOR.OUTPUT_NORM,
4394        MODEL_TENSOR.OUTPUT,
4395        MODEL_TENSOR.ATTN_NORM,
4396        MODEL_TENSOR.ATTN_Q,
4397        MODEL_TENSOR.ATTN_K,
4398        MODEL_TENSOR.ATTN_V,
4399        MODEL_TENSOR.ATTN_OUT,
4400        MODEL_TENSOR.ATTN_SINKS,
4401        MODEL_TENSOR.ROPE_FREQS,
4402        MODEL_TENSOR.FFN_NORM,
4403        MODEL_TENSOR.FFN_GATE,
4404        MODEL_TENSOR.FFN_DOWN,
4405        MODEL_TENSOR.FFN_UP,
4406        # MoE (GraniteMoeSWA)
4407        MODEL_TENSOR.FFN_GATE_INP,
4408        MODEL_TENSOR.FFN_GATE_EXP,
4409        MODEL_TENSOR.FFN_GATE_UP_EXP,
4410        MODEL_TENSOR.FFN_DOWN_EXP,
4411        MODEL_TENSOR.FFN_UP_EXP,
4412        # Shared expert - gate+up kept fused in FFN_UP_SHEXP (LLM_FFN_SWIGLU)
4413        MODEL_TENSOR.FFN_UP_SHEXP,
4414        MODEL_TENSOR.FFN_DOWN_SHEXP,
4415    ],
4416    MODEL_ARCH.CHAMELEON: [
4417        MODEL_TENSOR.TOKEN_EMBD,
4418        MODEL_TENSOR.OUTPUT_NORM,
4419        MODEL_TENSOR.OUTPUT,
4420        MODEL_TENSOR.ATTN_NORM,
4421        MODEL_TENSOR.ATTN_QKV,
4422        MODEL_TENSOR.ATTN_Q,
4423        MODEL_TENSOR.ATTN_Q_NORM,
4424        MODEL_TENSOR.ATTN_K,
4425        MODEL_TENSOR.ATTN_K_NORM,
4426        MODEL_TENSOR.ATTN_V,
4427        MODEL_TENSOR.ATTN_OUT,
4428        MODEL_TENSOR.FFN_NORM,
4429        MODEL_TENSOR.FFN_GATE,
4430        MODEL_TENSOR.FFN_DOWN,
4431        MODEL_TENSOR.FFN_UP,
4432    ],
4433    MODEL_ARCH.WAVTOKENIZER_DEC: [
4434        MODEL_TENSOR.TOKEN_EMBD,
4435        MODEL_TENSOR.TOKEN_EMBD_NORM,
4436        MODEL_TENSOR.CONV1D,
4437        MODEL_TENSOR.CONVNEXT_DW,
4438        MODEL_TENSOR.CONVNEXT_NORM,
4439        MODEL_TENSOR.CONVNEXT_PW1,
4440        MODEL_TENSOR.CONVNEXT_PW2,
4441        MODEL_TENSOR.CONVNEXT_GAMMA,
4442        MODEL_TENSOR.OUTPUT,
4443        MODEL_TENSOR.OUTPUT_NORM,
4444        MODEL_TENSOR.POSNET_CONV1,
4445        MODEL_TENSOR.POSNET_CONV2,
4446        MODEL_TENSOR.POSNET_NORM,
4447        MODEL_TENSOR.POSNET_NORM1,
4448        MODEL_TENSOR.POSNET_NORM2,
4449        MODEL_TENSOR.POSNET_ATTN_NORM,
4450        MODEL_TENSOR.POSNET_ATTN_Q,
4451        MODEL_TENSOR.POSNET_ATTN_K,
4452        MODEL_TENSOR.POSNET_ATTN_V,
4453        MODEL_TENSOR.POSNET_ATTN_OUT,
4454    ],
4455    MODEL_ARCH.BAILINGMOE: [
4456        MODEL_TENSOR.TOKEN_EMBD,
4457        MODEL_TENSOR.OUTPUT_NORM,
4458        MODEL_TENSOR.OUTPUT,
4459        MODEL_TENSOR.ROPE_FREQS,
4460        MODEL_TENSOR.ATTN_NORM,
4461        MODEL_TENSOR.ATTN_QKV,
4462        MODEL_TENSOR.ATTN_Q,
4463        MODEL_TENSOR.ATTN_K,
4464        MODEL_TENSOR.ATTN_V,
4465        MODEL_TENSOR.ATTN_OUT,
4466        MODEL_TENSOR.FFN_GATE_INP,
4467        MODEL_TENSOR.FFN_NORM,
4468        MODEL_TENSOR.FFN_GATE_EXP,
4469        MODEL_TENSOR.FFN_DOWN_EXP,
4470        MODEL_TENSOR.FFN_UP_EXP,
4471        MODEL_TENSOR.FFN_GATE_SHEXP,
4472        MODEL_TENSOR.FFN_DOWN_SHEXP,
4473        MODEL_TENSOR.FFN_UP_SHEXP,
4474    ],
4475    MODEL_ARCH.BAILINGMOE2: [
4476        MODEL_TENSOR.TOKEN_EMBD,
4477        MODEL_TENSOR.OUTPUT_NORM,
4478        MODEL_TENSOR.OUTPUT,
4479        MODEL_TENSOR.ATTN_NORM,
4480        MODEL_TENSOR.ATTN_Q_NORM,
4481        MODEL_TENSOR.ATTN_K_NORM,
4482        MODEL_TENSOR.ATTN_QKV,
4483        MODEL_TENSOR.ATTN_OUT,
4484        MODEL_TENSOR.FFN_GATE_INP,
4485        MODEL_TENSOR.FFN_EXP_PROBS_B,
4486        MODEL_TENSOR.FFN_NORM,
4487        MODEL_TENSOR.FFN_GATE,
4488        MODEL_TENSOR.FFN_DOWN,
4489        MODEL_TENSOR.FFN_UP,
4490        MODEL_TENSOR.FFN_GATE_EXP,
4491        MODEL_TENSOR.FFN_DOWN_EXP,
4492        MODEL_TENSOR.FFN_UP_EXP,
4493        MODEL_TENSOR.FFN_GATE_SHEXP,
4494        MODEL_TENSOR.FFN_DOWN_SHEXP,
4495        MODEL_TENSOR.FFN_UP_SHEXP,
4496        MODEL_TENSOR.NEXTN_EH_PROJ,
4497        MODEL_TENSOR.NEXTN_EMBED_TOKENS,
4498        MODEL_TENSOR.NEXTN_ENORM,
4499        MODEL_TENSOR.NEXTN_HNORM,
4500        MODEL_TENSOR.NEXTN_SHARED_HEAD_HEAD,
4501        MODEL_TENSOR.NEXTN_SHARED_HEAD_NORM,
4502        MODEL_TENSOR.LAYER_OUT_NORM,
4503    ],
4504    MODEL_ARCH.BAILINGMOE3: [
4505        MODEL_TENSOR.TOKEN_EMBD,
4506        MODEL_TENSOR.OUTPUT_NORM,
4507        MODEL_TENSOR.OUTPUT,
4508        MODEL_TENSOR.ATTN_NORM,
4509        MODEL_TENSOR.ATTN_Q,
4510        MODEL_TENSOR.ATTN_Q_A,
4511        MODEL_TENSOR.ATTN_Q_B,
4512        MODEL_TENSOR.ATTN_Q_A_NORM,
4513        MODEL_TENSOR.ATTN_K,
4514        MODEL_TENSOR.ATTN_V,
4515        MODEL_TENSOR.ATTN_OUT,
4516        MODEL_TENSOR.ATTN_GATE,
4517        MODEL_TENSOR.ATTN_KV_A_MQA,
4518        MODEL_TENSOR.ATTN_KV_B,
4519        MODEL_TENSOR.ATTN_K_B,
4520        MODEL_TENSOR.ATTN_V_B,
4521        MODEL_TENSOR.ATTN_KV_A_NORM,
4522        MODEL_TENSOR.FFN_NORM,
4523        MODEL_TENSOR.FFN_GATE,
4524        MODEL_TENSOR.FFN_DOWN,
4525        MODEL_TENSOR.FFN_UP,
4526        MODEL_TENSOR.FFN_GATE_INP,
4527        MODEL_TENSOR.FFN_GATE_EXP,
4528        MODEL_TENSOR.FFN_DOWN_EXP,
4529        MODEL_TENSOR.FFN_UP_EXP,
4530        MODEL_TENSOR.FFN_GATE_SHEXP,
4531        MODEL_TENSOR.FFN_DOWN_SHEXP,
4532        MODEL_TENSOR.FFN_UP_SHEXP,
4533        MODEL_TENSOR.FFN_EXP_PROBS_B,
4534        MODEL_TENSOR.SSM_CONV1D_Q,
4535        MODEL_TENSOR.SSM_CONV1D_K,
4536        MODEL_TENSOR.SSM_CONV1D_V,
4537        MODEL_TENSOR.SSM_F_A,
4538        MODEL_TENSOR.SSM_BETA,
4539        MODEL_TENSOR.SSM_A,
4540        MODEL_TENSOR.SSM_G_A,
4541        MODEL_TENSOR.SSM_DT,
4542        MODEL_TENSOR.SSM_NORM,
4543        MODEL_TENSOR.NEXTN_EH_PROJ,
4544        MODEL_TENSOR.NEXTN_ENORM,
4545        MODEL_TENSOR.NEXTN_HNORM,
4546        MODEL_TENSOR.LAYER_OUT_NORM,
4547    ],
4548    MODEL_ARCH.DOTS1: [
4549        MODEL_TENSOR.TOKEN_EMBD,
4550        MODEL_TENSOR.OUTPUT_NORM,
4551        MODEL_TENSOR.OUTPUT,
4552        MODEL_TENSOR.ATTN_NORM,
4553        MODEL_TENSOR.ATTN_QKV,
4554        MODEL_TENSOR.ATTN_Q,
4555        MODEL_TENSOR.ATTN_Q_NORM,
4556        MODEL_TENSOR.ATTN_K,
4557        MODEL_TENSOR.ATTN_K_NORM,
4558        MODEL_TENSOR.ATTN_V,
4559        MODEL_TENSOR.ATTN_OUT,
4560        MODEL_TENSOR.FFN_EXP_PROBS_B,
4561        MODEL_TENSOR.FFN_NORM,
4562        MODEL_TENSOR.FFN_GATE,
4563        MODEL_TENSOR.FFN_GATE_EXP,
4564        MODEL_TENSOR.FFN_GATE_INP,
4565        MODEL_TENSOR.FFN_GATE_SHEXP,
4566        MODEL_TENSOR.FFN_DOWN,
4567        MODEL_TENSOR.FFN_DOWN_EXP,
4568        MODEL_TENSOR.FFN_DOWN_SHEXP,
4569        MODEL_TENSOR.FFN_UP,
4570        MODEL_TENSOR.FFN_UP_EXP,
4571        MODEL_TENSOR.FFN_UP_SHEXP,
4572    ],
4573    MODEL_ARCH.DOTS3NOTE: [
4574        MODEL_TENSOR.TOKEN_EMBD,
4575        MODEL_TENSOR.OUTPUT_NORM,
4576        MODEL_TENSOR.OUTPUT,
4577        MODEL_TENSOR.ATTN_NORM,
4578        MODEL_TENSOR.ATTN_Q_A,
4579        MODEL_TENSOR.ATTN_Q_B,
4580        MODEL_TENSOR.ATTN_KV_A_MQA,
4581        MODEL_TENSOR.ATTN_K_B,
4582        MODEL_TENSOR.ATTN_V_B,
4583        MODEL_TENSOR.ATTN_Q_A_NORM,
4584        MODEL_TENSOR.ATTN_KV_A_NORM,
4585        MODEL_TENSOR.ATTN_K_NORM,
4586        MODEL_TENSOR.ATTN_GATE,
4587        MODEL_TENSOR.ATTN_OUT,
4588        MODEL_TENSOR.FFN_NORM,
4589        MODEL_TENSOR.FFN_GATE,
4590        MODEL_TENSOR.FFN_DOWN,
4591        MODEL_TENSOR.FFN_UP,
4592        MODEL_TENSOR.FFN_GATE_INP,
4593        MODEL_TENSOR.FFN_EXP_PROBS_B,
4594        MODEL_TENSOR.FFN_GATE_EXP,
4595        MODEL_TENSOR.FFN_DOWN_EXP,
4596        MODEL_TENSOR.FFN_UP_EXP,
4597        MODEL_TENSOR.FFN_GATE_SHEXP,
4598        MODEL_TENSOR.FFN_DOWN_SHEXP,
4599        MODEL_TENSOR.FFN_UP_SHEXP,
4600        MODEL_TENSOR.INDEXER_K_NORM,
4601        MODEL_TENSOR.INDEXER_PROJ,
4602        MODEL_TENSOR.INDEXER_ATTN_K,
4603        MODEL_TENSOR.INDEXER_ATTN_Q_B,
4604        # NextN/MTP tensors - preserved but unused
4605        MODEL_TENSOR.NEXTN_EH_PROJ,
4606        MODEL_TENSOR.NEXTN_EMBED_TOKENS,
4607        MODEL_TENSOR.NEXTN_ENORM,
4608        MODEL_TENSOR.NEXTN_HNORM,
4609        MODEL_TENSOR.NEXTN_SHARED_HEAD_NORM,
4610    ],
4611    MODEL_ARCH.ARCEE: [
4612        MODEL_TENSOR.TOKEN_EMBD,
4613        MODEL_TENSOR.OUTPUT_NORM,
4614        MODEL_TENSOR.OUTPUT,
4615        MODEL_TENSOR.ROPE_FREQS,
4616        MODEL_TENSOR.ATTN_NORM,
4617        MODEL_TENSOR.ATTN_QKV,
4618        MODEL_TENSOR.ATTN_Q,
4619        MODEL_TENSOR.ATTN_K,
4620        MODEL_TENSOR.ATTN_V,
4621        MODEL_TENSOR.ATTN_OUT,
4622        MODEL_TENSOR.ATTN_ROT_EMBD,
4623        MODEL_TENSOR.FFN_NORM,
4624        MODEL_TENSOR.FFN_DOWN,
4625        MODEL_TENSOR.FFN_UP,
4626    ],
4627    MODEL_ARCH.AFMOE: [
4628        MODEL_TENSOR.TOKEN_EMBD,
4629        MODEL_TENSOR.OUTPUT_NORM,
4630        MODEL_TENSOR.OUTPUT,
4631        MODEL_TENSOR.ATTN_NORM,
4632        MODEL_TENSOR.ATTN_POST_NORM,
4633        MODEL_TENSOR.ATTN_QKV,
4634        MODEL_TENSOR.ATTN_Q,
4635        MODEL_TENSOR.ATTN_K,
4636        MODEL_TENSOR.ATTN_V,
4637        MODEL_TENSOR.ATTN_OUT,
4638        MODEL_TENSOR.ATTN_Q_NORM,
4639        MODEL_TENSOR.ATTN_K_NORM,
4640        MODEL_TENSOR.ATTN_GATE,
4641        MODEL_TENSOR.FFN_GATE,
4642        MODEL_TENSOR.FFN_DOWN,
4643        MODEL_TENSOR.FFN_UP,
4644        MODEL_TENSOR.FFN_GATE_INP,
4645        MODEL_TENSOR.FFN_GATE_EXP,
4646        MODEL_TENSOR.FFN_DOWN_EXP,
4647        MODEL_TENSOR.FFN_UP_EXP,
4648        MODEL_TENSOR.FFN_GATE_SHEXP,
4649        MODEL_TENSOR.FFN_UP_SHEXP,
4650        MODEL_TENSOR.FFN_DOWN_SHEXP,
4651        MODEL_TENSOR.FFN_PRE_NORM,
4652        MODEL_TENSOR.FFN_POST_NORM,
4653        MODEL_TENSOR.FFN_EXP_PROBS_B,
4654    ],
4655    MODEL_ARCH.LAGUNA: [
4656        MODEL_TENSOR.TOKEN_EMBD,
4657        MODEL_TENSOR.OUTPUT_NORM,
4658        MODEL_TENSOR.OUTPUT,
4659        MODEL_TENSOR.ATTN_NORM,
4660        MODEL_TENSOR.ATTN_Q,
4661        MODEL_TENSOR.ATTN_K,
4662        MODEL_TENSOR.ATTN_V,
4663        MODEL_TENSOR.ATTN_OUT,
4664        MODEL_TENSOR.ATTN_Q_NORM,
4665        MODEL_TENSOR.ATTN_K_NORM,
4666        MODEL_TENSOR.ATTN_GATE,
4667        MODEL_TENSOR.FFN_NORM,
4668        MODEL_TENSOR.FFN_GATE,
4669        MODEL_TENSOR.FFN_DOWN,
4670        MODEL_TENSOR.FFN_UP,
4671        MODEL_TENSOR.FFN_GATE_INP,
4672        MODEL_TENSOR.FFN_EXP_PROBS_B,
4673        MODEL_TENSOR.FFN_GATE_EXP,
4674        MODEL_TENSOR.FFN_DOWN_EXP,
4675        MODEL_TENSOR.FFN_UP_EXP,
4676        MODEL_TENSOR.FFN_GATE_SHEXP,
4677        MODEL_TENSOR.FFN_UP_SHEXP,
4678        MODEL_TENSOR.FFN_DOWN_SHEXP,
4679    ],
4680    MODEL_ARCH.ERNIE4_5: [
4681        MODEL_TENSOR.TOKEN_EMBD,
4682        MODEL_TENSOR.OUTPUT_NORM,
4683        MODEL_TENSOR.OUTPUT,
4684        MODEL_TENSOR.ATTN_NORM,
4685        MODEL_TENSOR.ATTN_QKV,
4686        MODEL_TENSOR.ATTN_Q,
4687        MODEL_TENSOR.ATTN_K,
4688        MODEL_TENSOR.ATTN_V,
4689        MODEL_TENSOR.ATTN_OUT,
4690        MODEL_TENSOR.FFN_NORM,
4691        MODEL_TENSOR.FFN_GATE,
4692        MODEL_TENSOR.FFN_DOWN,
4693        MODEL_TENSOR.FFN_UP,
4694    ],
4695    MODEL_ARCH.PADDLEOCR: [
4696        MODEL_TENSOR.TOKEN_EMBD,
4697        MODEL_TENSOR.OUTPUT_NORM,
4698        MODEL_TENSOR.OUTPUT,
4699        MODEL_TENSOR.ATTN_NORM,
4700        MODEL_TENSOR.ATTN_QKV,
4701        MODEL_TENSOR.ATTN_Q,
4702        MODEL_TENSOR.ATTN_K,
4703        MODEL_TENSOR.ATTN_V,
4704        MODEL_TENSOR.ATTN_OUT,
4705        MODEL_TENSOR.FFN_NORM,
4706        MODEL_TENSOR.FFN_GATE,
4707        MODEL_TENSOR.FFN_DOWN,
4708        MODEL_TENSOR.FFN_UP,
4709    ],
4710    MODEL_ARCH.FALCON_H1: [
4711        # Token embedding
4712        MODEL_TENSOR.TOKEN_EMBD,
4713
4714        # Input layernorm
4715        MODEL_TENSOR.ATTN_NORM,
4716
4717        # Attention components
4718        MODEL_TENSOR.ATTN_QKV,
4719        MODEL_TENSOR.ATTN_Q,         # Query projection
4720        MODEL_TENSOR.ATTN_K,         # Key projection
4721        MODEL_TENSOR.ATTN_V,         # Value projection
4722        MODEL_TENSOR.ATTN_OUT,       # Output projection
4723
4724        # SSM components (Mamba2 specific)
4725        MODEL_TENSOR.SSM_IN,         # Input projection for SSM
4726        MODEL_TENSOR.SSM_CONV1D,     # Convolution layer
4727        MODEL_TENSOR.SSM_DT,         # Delta time projection
4728        MODEL_TENSOR.SSM_A,          # A parameter (log form)
4729        MODEL_TENSOR.SSM_D,          # D parameter
4730        MODEL_TENSOR.SSM_NORM,       # Normalization in SSM
4731        MODEL_TENSOR.SSM_OUT,        # Output projection
4732
4733        # Pre-feedforward layernorm
4734        MODEL_TENSOR.FFN_PRE_NORM,
4735
4736        # Feed-forward network components
4737        MODEL_TENSOR.FFN_GATE,       # Gate projection (SwiGLU)
4738        MODEL_TENSOR.FFN_DOWN,       # Down projection
4739        MODEL_TENSOR.FFN_UP,         # Up projection
4740
4741        # Post-feedforward layernorm
4742        MODEL_TENSOR.OUTPUT_NORM,    # Final layer norm
4743        MODEL_TENSOR.OUTPUT,         # Output projection (lm_head)
4744    ],
4745    MODEL_ARCH.HUNYUAN_MOE: [
4746        MODEL_TENSOR.TOKEN_EMBD,
4747        MODEL_TENSOR.OUTPUT_NORM,
4748        MODEL_TENSOR.OUTPUT,
4749        MODEL_TENSOR.ROPE_FREQS,
4750        MODEL_TENSOR.ATTN_NORM,
4751        MODEL_TENSOR.ATTN_QKV,
4752        MODEL_TENSOR.ATTN_Q,
4753        MODEL_TENSOR.ATTN_Q_NORM,
4754        MODEL_TENSOR.ATTN_K,
4755        MODEL_TENSOR.ATTN_K_NORM,
4756        MODEL_TENSOR.ATTN_V,
4757        MODEL_TENSOR.ATTN_OUT,
4758        MODEL_TENSOR.FFN_GATE_INP,
4759        MODEL_TENSOR.FFN_NORM,
4760        MODEL_TENSOR.FFN_GATE_EXP,
4761        MODEL_TENSOR.FFN_DOWN_EXP,
4762        MODEL_TENSOR.FFN_UP_EXP,
4763        MODEL_TENSOR.FFN_GATE_SHEXP,
4764        MODEL_TENSOR.FFN_DOWN_SHEXP,
4765        MODEL_TENSOR.FFN_UP_SHEXP,
4766    ],
4767    MODEL_ARCH.HUNYUAN_DENSE: [
4768        MODEL_TENSOR.TOKEN_EMBD,
4769        MODEL_TENSOR.OUTPUT_NORM,
4770        MODEL_TENSOR.OUTPUT,
4771        MODEL_TENSOR.ATTN_NORM,
4772        MODEL_TENSOR.ATTN_QKV,
4773        MODEL_TENSOR.ATTN_Q,
4774        MODEL_TENSOR.ATTN_Q_NORM,
4775        MODEL_TENSOR.ATTN_K,
4776        MODEL_TENSOR.ATTN_K_NORM,
4777        MODEL_TENSOR.ATTN_V,
4778        MODEL_TENSOR.ATTN_OUT,
4779        MODEL_TENSOR.FFN_NORM,
4780        MODEL_TENSOR.FFN_GATE,
4781        MODEL_TENSOR.FFN_DOWN,
4782        MODEL_TENSOR.FFN_UP,
4783    ],
4784    MODEL_ARCH.HUNYUAN_VL: [
4785        MODEL_TENSOR.TOKEN_EMBD,
4786        MODEL_TENSOR.OUTPUT_NORM,
4787        MODEL_TENSOR.OUTPUT,
4788        MODEL_TENSOR.ATTN_NORM,
4789        MODEL_TENSOR.ATTN_QKV,
4790        MODEL_TENSOR.ATTN_Q,
4791        MODEL_TENSOR.ATTN_Q_NORM,
4792        MODEL_TENSOR.ATTN_K,
4793        MODEL_TENSOR.ATTN_K_NORM,
4794        MODEL_TENSOR.ATTN_V,
4795        MODEL_TENSOR.ATTN_OUT,
4796        MODEL_TENSOR.FFN_NORM,
4797        MODEL_TENSOR.FFN_GATE,
4798        MODEL_TENSOR.FFN_DOWN,
4799        MODEL_TENSOR.FFN_UP,
4800    ],
4801    MODEL_ARCH.HY_V3: [
4802        MODEL_TENSOR.TOKEN_EMBD,
4803        MODEL_TENSOR.OUTPUT_NORM,
4804        MODEL_TENSOR.OUTPUT,
4805        MODEL_TENSOR.ATTN_NORM,
4806        MODEL_TENSOR.ATTN_Q,
4807        MODEL_TENSOR.ATTN_Q_NORM,
4808        MODEL_TENSOR.ATTN_K,
4809        MODEL_TENSOR.ATTN_K_NORM,
4810        MODEL_TENSOR.ATTN_V,
4811        MODEL_TENSOR.ATTN_OUT,
4812        MODEL_TENSOR.FFN_NORM,
4813        MODEL_TENSOR.FFN_GATE,
4814        MODEL_TENSOR.FFN_DOWN,
4815        MODEL_TENSOR.FFN_UP,
4816        MODEL_TENSOR.FFN_GATE_INP,
4817        MODEL_TENSOR.FFN_EXP_PROBS_B,
4818        MODEL_TENSOR.FFN_GATE_EXP,
4819        MODEL_TENSOR.FFN_DOWN_EXP,
4820        MODEL_TENSOR.FFN_UP_EXP,
4821        MODEL_TENSOR.FFN_GATE_SHEXP,
4822        MODEL_TENSOR.FFN_DOWN_SHEXP,
4823        MODEL_TENSOR.FFN_UP_SHEXP,
4824        # NextN/MTP tensors (draft head)
4825        MODEL_TENSOR.NEXTN_EH_PROJ,
4826        MODEL_TENSOR.NEXTN_EMBED_TOKENS,
4827        MODEL_TENSOR.NEXTN_ENORM,
4828        MODEL_TENSOR.NEXTN_HNORM,
4829        MODEL_TENSOR.NEXTN_SHARED_HEAD_HEAD,
4830        MODEL_TENSOR.NEXTN_SHARED_HEAD_NORM,
4831    ],
4832    MODEL_ARCH.HY_V4: [
4833        MODEL_TENSOR.TOKEN_EMBD,
4834        MODEL_TENSOR.OUTPUT_NORM,
4835        MODEL_TENSOR.OUTPUT,
4836        MODEL_TENSOR.ROPE_FREQS,
4837        MODEL_TENSOR.HC_HEAD_FN,
4838        MODEL_TENSOR.HC_HEAD_BASE,
4839        MODEL_TENSOR.HC_HEAD_SCALE,
4840        MODEL_TENSOR.ATTN_NORM,
4841        MODEL_TENSOR.ATTN_SINKS,
4842        MODEL_TENSOR.ATTN_Q_A,
4843        MODEL_TENSOR.ATTN_Q_A_NORM,
4844        MODEL_TENSOR.ATTN_Q_B,
4845        MODEL_TENSOR.ATTN_KV_A_MQA,
4846        MODEL_TENSOR.ATTN_KV_A_NORM,
4847        MODEL_TENSOR.ATTN_K_B,
4848        MODEL_TENSOR.ATTN_V_B,
4849        MODEL_TENSOR.ATTN_OUT,
4850        MODEL_TENSOR.ATTN_GATE,
4851        MODEL_TENSOR.INDEXER_K_NORM,
4852        MODEL_TENSOR.INDEXER_PROJ,
4853        MODEL_TENSOR.INDEXER_ATTN_K,
4854        MODEL_TENSOR.INDEXER_ATTN_Q_B,
4855        MODEL_TENSOR.HC_ATTN_FN,
4856        MODEL_TENSOR.HC_ATTN_BASE,
4857        MODEL_TENSOR.HC_ATTN_SCALE,
4858        MODEL_TENSOR.HC_FFN_FN,
4859        MODEL_TENSOR.HC_FFN_BASE,
4860        MODEL_TENSOR.HC_FFN_SCALE,
4861        MODEL_TENSOR.FFN_GATE_INP,
4862        MODEL_TENSOR.FFN_EXP_PROBS_B,
4863        MODEL_TENSOR.FFN_NORM,
4864        MODEL_TENSOR.FFN_GATE,
4865        MODEL_TENSOR.FFN_DOWN,
4866        MODEL_TENSOR.FFN_UP,
4867        MODEL_TENSOR.FFN_GATE_EXP,
4868        MODEL_TENSOR.FFN_DOWN_EXP,
4869        MODEL_TENSOR.FFN_UP_EXP,
4870        MODEL_TENSOR.FFN_GATE_SHEXP,
4871        MODEL_TENSOR.FFN_DOWN_SHEXP,
4872        MODEL_TENSOR.FFN_UP_SHEXP,
4873    ],
4874    MODEL_ARCH.SMOLLM3: [
4875        MODEL_TENSOR.TOKEN_EMBD,
4876        MODEL_TENSOR.OUTPUT_NORM,
4877        MODEL_TENSOR.OUTPUT,
4878        MODEL_TENSOR.ROPE_FREQS,
4879        MODEL_TENSOR.ATTN_NORM,
4880        MODEL_TENSOR.ATTN_QKV,
4881        MODEL_TENSOR.ATTN_Q,
4882        MODEL_TENSOR.ATTN_K,
4883        MODEL_TENSOR.ATTN_V,
4884        MODEL_TENSOR.ATTN_OUT,
4885        MODEL_TENSOR.ATTN_ROT_EMBD,
4886        MODEL_TENSOR.FFN_NORM,
4887        MODEL_TENSOR.FFN_GATE,
4888        MODEL_TENSOR.FFN_DOWN,
4889        MODEL_TENSOR.FFN_UP,
4890    ],
4891    MODEL_ARCH.GPT_OSS: [
4892        MODEL_TENSOR.TOKEN_EMBD,
4893        MODEL_TENSOR.OUTPUT_NORM,
4894        MODEL_TENSOR.OUTPUT,
4895        MODEL_TENSOR.ATTN_NORM,
4896        MODEL_TENSOR.ATTN_POST_NORM,
4897        MODEL_TENSOR.ATTN_QKV,
4898        MODEL_TENSOR.ATTN_Q,
4899        MODEL_TENSOR.ATTN_K,
4900        MODEL_TENSOR.ATTN_V,
4901        MODEL_TENSOR.ATTN_OUT,
4902        MODEL_TENSOR.ATTN_SINKS,
4903        MODEL_TENSOR.FFN_GATE_INP,
4904        MODEL_TENSOR.FFN_GATE_EXP,
4905        MODEL_TENSOR.FFN_DOWN_EXP,
4906        MODEL_TENSOR.FFN_UP_EXP,
4907    ],
4908    MODEL_ARCH.LFM2: [
4909        MODEL_TENSOR.TOKEN_EMBD,
4910        MODEL_TENSOR.TOKEN_EMBD_NORM,
4911        MODEL_TENSOR.SHORTCONV_CONV,
4912        MODEL_TENSOR.SHORTCONV_INPROJ,
4913        MODEL_TENSOR.SHORTCONV_OUTPROJ,
4914        MODEL_TENSOR.FFN_GATE,
4915        MODEL_TENSOR.FFN_DOWN,
4916        MODEL_TENSOR.FFN_UP,
4917        MODEL_TENSOR.FFN_NORM,
4918        MODEL_TENSOR.ATTN_NORM, # operator_norm
4919        MODEL_TENSOR.ATTN_Q_NORM,
4920        MODEL_TENSOR.ATTN_K_NORM,
4921        MODEL_TENSOR.ATTN_QKV,
4922        MODEL_TENSOR.ATTN_Q,
4923        MODEL_TENSOR.ATTN_K,
4924        MODEL_TENSOR.ATTN_V,
4925        MODEL_TENSOR.ATTN_OUT,
4926        MODEL_TENSOR.OUTPUT,
4927        MODEL_TENSOR.DENSE_2_OUT, # LFM2-ColBert-350M
4928    ],
4929    MODEL_ARCH.LFM2MOE: [
4930        MODEL_TENSOR.TOKEN_EMBD,
4931        MODEL_TENSOR.TOKEN_EMBD_NORM,
4932        MODEL_TENSOR.SHORTCONV_CONV,
4933        MODEL_TENSOR.SHORTCONV_INPROJ,
4934        MODEL_TENSOR.SHORTCONV_OUTPROJ,
4935        MODEL_TENSOR.FFN_GATE,
4936        MODEL_TENSOR.FFN_DOWN,
4937        MODEL_TENSOR.FFN_UP,
4938        MODEL_TENSOR.FFN_NORM,
4939        MODEL_TENSOR.ATTN_NORM, # operator_norm
4940        MODEL_TENSOR.ATTN_Q_NORM,
4941        MODEL_TENSOR.ATTN_K_NORM,
4942        MODEL_TENSOR.ATTN_QKV,
4943        MODEL_TENSOR.ATTN_Q,
4944        MODEL_TENSOR.ATTN_K,
4945        MODEL_TENSOR.ATTN_V,
4946        MODEL_TENSOR.ATTN_OUT,
4947        MODEL_TENSOR.FFN_GATE_INP,
4948        MODEL_TENSOR.FFN_GATE_EXP,
4949        MODEL_TENSOR.FFN_DOWN_EXP,
4950        MODEL_TENSOR.FFN_UP_EXP,
4951        MODEL_TENSOR.FFN_EXP_PROBS_B,
4952    ],
4953    MODEL_ARCH.SMALLTHINKER: [
4954        MODEL_TENSOR.TOKEN_EMBD,
4955        MODEL_TENSOR.OUTPUT_NORM,
4956        MODEL_TENSOR.OUTPUT,
4957        MODEL_TENSOR.ATTN_NORM,
4958        MODEL_TENSOR.ATTN_QKV,
4959        MODEL_TENSOR.ATTN_Q,
4960        MODEL_TENSOR.ATTN_K,
4961        MODEL_TENSOR.ATTN_V,
4962        MODEL_TENSOR.ATTN_OUT,
4963        MODEL_TENSOR.FFN_NORM,
4964        MODEL_TENSOR.FFN_GATE,
4965        MODEL_TENSOR.FFN_DOWN,
4966        MODEL_TENSOR.FFN_UP,
4967        MODEL_TENSOR.FFN_GATE_INP,
4968        MODEL_TENSOR.FFN_GATE_EXP,
4969        MODEL_TENSOR.FFN_DOWN_EXP,
4970        MODEL_TENSOR.FFN_UP_EXP,
4971    ],
4972    MODEL_ARCH.APERTUS: [
4973        MODEL_TENSOR.TOKEN_EMBD,
4974        MODEL_TENSOR.OUTPUT_NORM,
4975        MODEL_TENSOR.OUTPUT,
4976        MODEL_TENSOR.ROPE_FREQS,
4977        MODEL_TENSOR.ATTN_NORM,
4978        MODEL_TENSOR.ATTN_QKV,
4979        MODEL_TENSOR.ATTN_Q,
4980        MODEL_TENSOR.ATTN_K,
4981        MODEL_TENSOR.ATTN_V,
4982        MODEL_TENSOR.ATTN_OUT,
4983        MODEL_TENSOR.ATTN_ROT_EMBD,
4984        MODEL_TENSOR.ATTN_Q_NORM,
4985        MODEL_TENSOR.ATTN_K_NORM,
4986        MODEL_TENSOR.FFN_NORM,
4987        MODEL_TENSOR.FFN_GATE,
4988        MODEL_TENSOR.FFN_DOWN,
4989        MODEL_TENSOR.FFN_UP,
4990    ],
4991    MODEL_ARCH.LLADA_MOE: [
4992        MODEL_TENSOR.TOKEN_EMBD,
4993        MODEL_TENSOR.OUTPUT_NORM,
4994        MODEL_TENSOR.OUTPUT,
4995        MODEL_TENSOR.ATTN_OUT,
4996        MODEL_TENSOR.ATTN_QKV,
4997        MODEL_TENSOR.ATTN_Q,
4998        MODEL_TENSOR.ATTN_K,
4999        MODEL_TENSOR.ATTN_V,
5000        MODEL_TENSOR.ATTN_NORM,
5001        MODEL_TENSOR.ATTN_Q_NORM,
5002        MODEL_TENSOR.ATTN_K_NORM,
5003        MODEL_TENSOR.FFN_NORM,
5004        MODEL_TENSOR.FFN_GATE_INP,
5005        MODEL_TENSOR.FFN_GATE_EXP,
5006        MODEL_TENSOR.FFN_UP_EXP,
5007        MODEL_TENSOR.FFN_DOWN_EXP,
5008    ],
5009    MODEL_ARCH.GROVEMOE: [
5010        MODEL_TENSOR.TOKEN_EMBD,
5011        MODEL_TENSOR.OUTPUT_NORM,
5012        MODEL_TENSOR.OUTPUT,
5013        MODEL_TENSOR.ATTN_NORM,
5014        MODEL_TENSOR.ATTN_QKV,
5015        MODEL_TENSOR.ATTN_Q,
5016        MODEL_TENSOR.ATTN_Q_NORM,
5017        MODEL_TENSOR.ATTN_K,
5018        MODEL_TENSOR.ATTN_K_NORM,
5019        MODEL_TENSOR.ATTN_V,
5020        MODEL_TENSOR.ATTN_OUT,
5021        MODEL_TENSOR.FFN_NORM,
5022        MODEL_TENSOR.FFN_GATE_INP,
5023        MODEL_TENSOR.FFN_GATE_EXP,
5024        MODEL_TENSOR.FFN_DOWN_EXP,
5025        MODEL_TENSOR.FFN_UP_EXP,
5026        MODEL_TENSOR.FFN_GATE_CHEXP,
5027        MODEL_TENSOR.FFN_DOWN_CHEXP,
5028        MODEL_TENSOR.FFN_UP_CHEXP,
5029    ],
5030    MODEL_ARCH.MINIMAX01: [
5031        MODEL_TENSOR.TOKEN_EMBD,
5032        MODEL_TENSOR.OUTPUT_NORM,
5033        MODEL_TENSOR.OUTPUT,
5034        MODEL_TENSOR.ATTN_NORM,
5035        MODEL_TENSOR.ATTN_NORM_2,
5036        MODEL_TENSOR.ATTN_QKV,
5037        MODEL_TENSOR.ATTN_Q,
5038        MODEL_TENSOR.ATTN_K,
5039        MODEL_TENSOR.ATTN_V,
5040        MODEL_TENSOR.ATTN_OUT,
5041        MODEL_TENSOR.ATTN_GATE,
5042        MODEL_TENSOR.FFN_NORM,
5043        MODEL_TENSOR.FFN_GATE_INP,
5044        MODEL_TENSOR.FFN_GATE_EXP,
5045        MODEL_TENSOR.FFN_DOWN_EXP,
5046        MODEL_TENSOR.FFN_UP_EXP,
5047    ],
5048    MODEL_ARCH.MINIMAXM2: [
5049        MODEL_TENSOR.TOKEN_EMBD,
5050        MODEL_TENSOR.OUTPUT_NORM,
5051        MODEL_TENSOR.OUTPUT,
5052        MODEL_TENSOR.ATTN_NORM,
5053        MODEL_TENSOR.ATTN_QKV,
5054        MODEL_TENSOR.ATTN_Q,
5055        MODEL_TENSOR.ATTN_Q_NORM,
5056        MODEL_TENSOR.ATTN_K,
5057        MODEL_TENSOR.ATTN_K_NORM,
5058        MODEL_TENSOR.ATTN_V,
5059        MODEL_TENSOR.ATTN_OUT,
5060        MODEL_TENSOR.FFN_NORM,
5061        MODEL_TENSOR.FFN_GATE_INP,
5062        MODEL_TENSOR.FFN_GATE_EXP,
5063        MODEL_TENSOR.FFN_DOWN_EXP,
5064        MODEL_TENSOR.FFN_UP_EXP,
5065        MODEL_TENSOR.FFN_EXP_PROBS_B,
5066    ],
5067    MODEL_ARCH.MINIMAXM3: [
5068        MODEL_TENSOR.TOKEN_EMBD,
5069        MODEL_TENSOR.OUTPUT_NORM,
5070        MODEL_TENSOR.OUTPUT,
5071        MODEL_TENSOR.ATTN_NORM,
5072        MODEL_TENSOR.ATTN_Q,
5073        MODEL_TENSOR.ATTN_Q_NORM,
5074        MODEL_TENSOR.ATTN_K,
5075        MODEL_TENSOR.ATTN_K_NORM,
5076        MODEL_TENSOR.ATTN_V,
5077        MODEL_TENSOR.ATTN_OUT,
5078        MODEL_TENSOR.FFN_NORM,
5079        MODEL_TENSOR.FFN_GATE_INP,
5080        MODEL_TENSOR.FFN_EXP_PROBS_B,
5081        MODEL_TENSOR.FFN_GATE_EXP,
5082        MODEL_TENSOR.FFN_DOWN_EXP,
5083        MODEL_TENSOR.FFN_UP_EXP,
5084        MODEL_TENSOR.FFN_GATE_SHEXP,
5085        MODEL_TENSOR.FFN_DOWN_SHEXP,
5086        MODEL_TENSOR.FFN_UP_SHEXP,
5087        MODEL_TENSOR.FFN_GATE,
5088        MODEL_TENSOR.FFN_DOWN,
5089        MODEL_TENSOR.FFN_UP,
5090        MODEL_TENSOR.INDEXER_Q_PROJ,
5091        MODEL_TENSOR.INDEXER_K_PROJ,
5092        MODEL_TENSOR.INDEXER_Q_NORM,
5093        MODEL_TENSOR.INDEXER_K_NORM,
5094    ],
5095    MODEL_ARCH.COGVLM: [
5096        MODEL_TENSOR.TOKEN_EMBD,
5097        MODEL_TENSOR.OUTPUT_NORM,
5098        MODEL_TENSOR.OUTPUT,
5099        MODEL_TENSOR.ATTN_NORM,
5100        MODEL_TENSOR.ATTN_QKV,
5101        MODEL_TENSOR.ATTN_OUT,
5102        MODEL_TENSOR.FFN_NORM,
5103        MODEL_TENSOR.FFN_GATE,
5104        MODEL_TENSOR.FFN_DOWN,
5105        MODEL_TENSOR.FFN_UP,
5106        MODEL_TENSOR.VISEXP_ATTN_QKV,
5107        MODEL_TENSOR.VISEXP_ATTN_OUT,
5108        MODEL_TENSOR.VISEXP_GATE,
5109        MODEL_TENSOR.VISEXP_UP,
5110        MODEL_TENSOR.VISEXP_DOWN,
5111    ],
5112    MODEL_ARCH.RND1: [
5113        MODEL_TENSOR.TOKEN_EMBD,
5114        MODEL_TENSOR.OUTPUT_NORM,
5115        MODEL_TENSOR.OUTPUT,
5116        MODEL_TENSOR.ATTN_NORM,
5117        MODEL_TENSOR.ATTN_QKV,
5118        MODEL_TENSOR.ATTN_Q,
5119        MODEL_TENSOR.ATTN_Q_NORM,
5120        MODEL_TENSOR.ATTN_K,
5121        MODEL_TENSOR.ATTN_K_NORM,
5122        MODEL_TENSOR.ATTN_V,
5123        MODEL_TENSOR.ATTN_OUT,
5124        MODEL_TENSOR.FFN_NORM,
5125        MODEL_TENSOR.FFN_GATE_INP,
5126        MODEL_TENSOR.FFN_GATE_EXP,
5127        MODEL_TENSOR.FFN_DOWN_EXP,
5128        MODEL_TENSOR.FFN_UP_EXP,
5129    ],
5130    MODEL_ARCH.PANGU_EMBED: [
5131        MODEL_TENSOR.TOKEN_EMBD,
5132        MODEL_TENSOR.OUTPUT_NORM,
5133        MODEL_TENSOR.OUTPUT,
5134        MODEL_TENSOR.ATTN_NORM,
5135        MODEL_TENSOR.ATTN_QKV,
5136        MODEL_TENSOR.ATTN_Q,
5137        MODEL_TENSOR.ATTN_K,
5138        MODEL_TENSOR.ATTN_V,
5139        MODEL_TENSOR.ATTN_OUT,
5140        MODEL_TENSOR.FFN_NORM,
5141        MODEL_TENSOR.FFN_GATE,
5142        MODEL_TENSOR.FFN_DOWN,
5143        MODEL_TENSOR.FFN_UP,
5144    ],
5145    MODEL_ARCH.MISTRAL3: [
5146        MODEL_TENSOR.TOKEN_EMBD,
5147        MODEL_TENSOR.OUTPUT_NORM,
5148        MODEL_TENSOR.OUTPUT,
5149        MODEL_TENSOR.ROPE_FREQS,
5150        MODEL_TENSOR.ATTN_NORM,
5151        MODEL_TENSOR.ATTN_QKV,
5152        MODEL_TENSOR.ATTN_Q,
5153        MODEL_TENSOR.ATTN_K,
5154        MODEL_TENSOR.ATTN_V,
5155        MODEL_TENSOR.ATTN_OUT,
5156        MODEL_TENSOR.ATTN_ROT_EMBD,
5157        MODEL_TENSOR.FFN_GATE_INP,
5158        MODEL_TENSOR.FFN_NORM,
5159        MODEL_TENSOR.FFN_GATE,
5160        MODEL_TENSOR.FFN_DOWN,
5161        MODEL_TENSOR.FFN_UP,
5162        MODEL_TENSOR.FFN_GATE_EXP,
5163        MODEL_TENSOR.FFN_DOWN_EXP,
5164        MODEL_TENSOR.FFN_UP_EXP,
5165    ],
5166    MODEL_ARCH.EAGLE3: [
5167        MODEL_TENSOR.TOKEN_EMBD,
5168        MODEL_TENSOR.OUTPUT_NORM,
5169        MODEL_TENSOR.OUTPUT,
5170        MODEL_TENSOR.ROPE_FREQS,
5171        MODEL_TENSOR.ATTN_NORM,
5172        MODEL_TENSOR.ATTN_NORM_2,
5173        MODEL_TENSOR.ATTN_Q,
5174        MODEL_TENSOR.ATTN_K,
5175        MODEL_TENSOR.ATTN_V,
5176        MODEL_TENSOR.ATTN_OUT,
5177        MODEL_TENSOR.FFN_NORM,
5178        MODEL_TENSOR.FFN_GATE,
5179        MODEL_TENSOR.FFN_DOWN,
5180        MODEL_TENSOR.FFN_UP,
5181        MODEL_TENSOR.FC,
5182        MODEL_TENSOR.ENC_OUTPUT_NORM,
5183        MODEL_TENSOR.D2T,
5184    ],
5185    MODEL_ARCH.DFLASH: [
5186        MODEL_TENSOR.TOKEN_EMBD,
5187        MODEL_TENSOR.OUTPUT,
5188        MODEL_TENSOR.OUTPUT_NORM,
5189        MODEL_TENSOR.ATTN_NORM,
5190        MODEL_TENSOR.ATTN_Q,
5191        MODEL_TENSOR.ATTN_K,
5192        MODEL_TENSOR.ATTN_V,
5193        MODEL_TENSOR.ATTN_OUT,
5194        MODEL_TENSOR.ATTN_Q_NORM,
5195        MODEL_TENSOR.ATTN_K_NORM,
5196        MODEL_TENSOR.ATTN_SINKS,
5197        MODEL_TENSOR.ATTN_Q_A,
5198        MODEL_TENSOR.ATTN_Q_B,
5199        MODEL_TENSOR.ATTN_Q_A_NORM,
5200        MODEL_TENSOR.ATTN_KV,
5201        MODEL_TENSOR.ATTN_KV_NORM,
5202        MODEL_TENSOR.ATTN_OUT_A,
5203        MODEL_TENSOR.ATTN_OUT_B,
5204        MODEL_TENSOR.HC_ATTN_FN,
5205        MODEL_TENSOR.HC_ATTN_BASE,
5206        MODEL_TENSOR.HC_ATTN_SCALE,
5207        MODEL_TENSOR.HC_FFN_FN,
5208        MODEL_TENSOR.HC_FFN_BASE,
5209        MODEL_TENSOR.HC_FFN_SCALE,
5210        MODEL_TENSOR.HC_HEAD_FN,
5211        MODEL_TENSOR.HC_HEAD_BASE,
5212        MODEL_TENSOR.HC_HEAD_SCALE,
5213        MODEL_TENSOR.FFN_NORM,
5214        MODEL_TENSOR.FFN_GATE,
5215        MODEL_TENSOR.FFN_DOWN,
5216        MODEL_TENSOR.FFN_UP,
5217        MODEL_TENSOR.FFN_GATE_INP,
5218        MODEL_TENSOR.FFN_EXP_PROBS_B,
5219        MODEL_TENSOR.FFN_GATE_EXP,
5220        MODEL_TENSOR.FFN_DOWN_EXP,
5221        MODEL_TENSOR.FFN_UP_EXP,
5222        MODEL_TENSOR.FFN_GATE_SHEXP,
5223        MODEL_TENSOR.FFN_DOWN_SHEXP,
5224        MODEL_TENSOR.FFN_UP_SHEXP,
5225        MODEL_TENSOR.FC,
5226        MODEL_TENSOR.ENC_OUTPUT_NORM,
5227        MODEL_TENSOR.D2T,
5228        # optional DSpark heads
5229        MODEL_TENSOR.DSPARK_MARKOV_W1,
5230        MODEL_TENSOR.DSPARK_MARKOV_W2,
5231        MODEL_TENSOR.DSPARK_CONF_PROJ,
5232        MODEL_TENSOR.DFLASH_ATTN_CONV_BASE,
5233        MODEL_TENSOR.DFLASH_ATTN_CONV_PROJ,
5234        MODEL_TENSOR.DFLASH_FFN_CONV_BASE,
5235        MODEL_TENSOR.DFLASH_FFN_CONV_PROJ,
5236        MODEL_TENSOR.DFLASH_SELECTOR_PREV,
5237        MODEL_TENSOR.DFLASH_SELECTOR_NEXT,
5238        MODEL_TENSOR.DFLASH_SELECTOR_HIDDEN,
5239    ],
5240    MODEL_ARCH.MISTRAL4: [
5241        MODEL_TENSOR.TOKEN_EMBD,
5242        MODEL_TENSOR.OUTPUT_NORM,
5243        MODEL_TENSOR.OUTPUT,
5244        MODEL_TENSOR.ROPE_FREQS,
5245        MODEL_TENSOR.ATTN_NORM,
5246        MODEL_TENSOR.ATTN_Q,
5247        MODEL_TENSOR.ATTN_Q_A,
5248        MODEL_TENSOR.ATTN_Q_B,
5249        MODEL_TENSOR.ATTN_KV_A_MQA,
5250        MODEL_TENSOR.ATTN_KV_B,
5251        MODEL_TENSOR.ATTN_K_B,
5252        MODEL_TENSOR.ATTN_V_B,
5253        MODEL_TENSOR.ATTN_Q_A_NORM,
5254        MODEL_TENSOR.ATTN_KV_A_NORM,
5255        MODEL_TENSOR.ATTN_OUT,
5256        MODEL_TENSOR.ATTN_ROT_EMBD,
5257        MODEL_TENSOR.FFN_GATE_INP,
5258        MODEL_TENSOR.FFN_NORM,
5259        MODEL_TENSOR.FFN_GATE,
5260        MODEL_TENSOR.FFN_DOWN,
5261        MODEL_TENSOR.FFN_UP,
5262        MODEL_TENSOR.FFN_GATE_EXP,
5263        MODEL_TENSOR.FFN_DOWN_EXP,
5264        MODEL_TENSOR.FFN_UP_EXP,
5265        MODEL_TENSOR.FFN_GATE_UP_EXP,
5266        MODEL_TENSOR.FFN_GATE_SHEXP,
5267        MODEL_TENSOR.FFN_DOWN_SHEXP,
5268        MODEL_TENSOR.FFN_UP_SHEXP,
5269        MODEL_TENSOR.FFN_EXP_PROBS_B,
5270    ],
5271    MODEL_ARCH.MIMO2: [
5272        MODEL_TENSOR.TOKEN_EMBD,
5273        MODEL_TENSOR.OUTPUT_NORM,
5274        MODEL_TENSOR.OUTPUT,
5275        MODEL_TENSOR.ATTN_NORM,
5276        MODEL_TENSOR.ATTN_QKV,
5277        MODEL_TENSOR.ATTN_Q,
5278        MODEL_TENSOR.ATTN_K,
5279        MODEL_TENSOR.ATTN_V,
5280        MODEL_TENSOR.ATTN_SINKS,
5281        MODEL_TENSOR.ATTN_OUT,
5282        MODEL_TENSOR.FFN_NORM,
5283        MODEL_TENSOR.FFN_GATE,
5284        MODEL_TENSOR.FFN_DOWN,
5285        MODEL_TENSOR.FFN_UP,
5286        MODEL_TENSOR.FFN_GATE_INP,
5287        MODEL_TENSOR.FFN_GATE_EXP,
5288        MODEL_TENSOR.FFN_DOWN_EXP,
5289        MODEL_TENSOR.FFN_UP_EXP,
5290        MODEL_TENSOR.FFN_EXP_PROBS_B,
5291        MODEL_TENSOR.LAYER_OUT_NORM,
5292        MODEL_TENSOR.NEXTN_EH_PROJ,
5293        MODEL_TENSOR.NEXTN_EMBED_TOKENS,
5294        MODEL_TENSOR.NEXTN_ENORM,
5295        MODEL_TENSOR.NEXTN_HNORM,
5296        MODEL_TENSOR.NEXTN_SHARED_HEAD_HEAD,
5297        MODEL_TENSOR.NEXTN_SHARED_HEAD_NORM,
5298    ],
5299    MODEL_ARCH.STEP35: [
5300        MODEL_TENSOR.TOKEN_EMBD,
5301        MODEL_TENSOR.OUTPUT_NORM,
5302        MODEL_TENSOR.OUTPUT,
5303        MODEL_TENSOR.ROPE_FREQS,
5304        MODEL_TENSOR.ATTN_NORM,
5305        MODEL_TENSOR.ATTN_QKV,
5306        MODEL_TENSOR.ATTN_Q,
5307        MODEL_TENSOR.ATTN_Q_NORM,
5308        MODEL_TENSOR.ATTN_K,
5309        MODEL_TENSOR.ATTN_K_NORM,
5310        MODEL_TENSOR.ATTN_V,
5311        MODEL_TENSOR.ATTN_GATE,
5312        MODEL_TENSOR.ATTN_OUT,
5313        MODEL_TENSOR.FFN_NORM,
5314        MODEL_TENSOR.FFN_GATE,
5315        MODEL_TENSOR.FFN_DOWN,
5316        MODEL_TENSOR.FFN_UP,
5317        MODEL_TENSOR.FFN_GATE_INP,
5318        MODEL_TENSOR.FFN_GATE_EXP,
5319        MODEL_TENSOR.FFN_DOWN_EXP,
5320        MODEL_TENSOR.FFN_UP_EXP,
5321        MODEL_TENSOR.FFN_UP_SHEXP,
5322        MODEL_TENSOR.FFN_GATE_SHEXP,
5323        MODEL_TENSOR.FFN_DOWN_SHEXP,
5324        MODEL_TENSOR.FFN_EXP_PROBS_B,
5325        # NextN/MTP tensors (Step3p5 draft head)
5326        MODEL_TENSOR.NEXTN_EH_PROJ,
5327        MODEL_TENSOR.NEXTN_EMBED_TOKENS,
5328        MODEL_TENSOR.NEXTN_ENORM,
5329        MODEL_TENSOR.NEXTN_HNORM,
5330        MODEL_TENSOR.NEXTN_SHARED_HEAD_HEAD,
5331        MODEL_TENSOR.NEXTN_SHARED_HEAD_NORM,
5332    ],
5333    MODEL_ARCH.SPARK2_5: [
5334        MODEL_TENSOR.TOKEN_EMBD,
5335        MODEL_TENSOR.OUTPUT_NORM,
5336        MODEL_TENSOR.OUTPUT,
5337        MODEL_TENSOR.ATTN_NORM,
5338        MODEL_TENSOR.ATTN_QKV,
5339        MODEL_TENSOR.ATTN_GATE,
5340        MODEL_TENSOR.ATTN_OUT,
5341        MODEL_TENSOR.FFN_NORM,
5342        MODEL_TENSOR.FFN_GATE,
5343        MODEL_TENSOR.FFN_DOWN,
5344        MODEL_TENSOR.FFN_UP,
5345    ],
5346    MODEL_ARCH.LLAMA_EMBED: [
5347        MODEL_TENSOR.TOKEN_EMBD,
5348        MODEL_TENSOR.OUTPUT_NORM,
5349        MODEL_TENSOR.OUTPUT,
5350        MODEL_TENSOR.ROPE_FREQS,
5351        MODEL_TENSOR.ATTN_NORM,
5352        MODEL_TENSOR.ATTN_QKV,
5353        MODEL_TENSOR.ATTN_Q,
5354        MODEL_TENSOR.ATTN_K,
5355        MODEL_TENSOR.ATTN_V,
5356        MODEL_TENSOR.ATTN_OUT,
5357        MODEL_TENSOR.ATTN_ROT_EMBD,
5358        MODEL_TENSOR.FFN_GATE_INP,
5359        MODEL_TENSOR.FFN_NORM,
5360        MODEL_TENSOR.FFN_GATE,
5361        MODEL_TENSOR.FFN_DOWN,
5362        MODEL_TENSOR.FFN_UP,
5363        MODEL_TENSOR.FFN_GATE_EXP,
5364        MODEL_TENSOR.FFN_DOWN_EXP,
5365        MODEL_TENSOR.FFN_UP_EXP,
5366    ],
5367    MODEL_ARCH.MAINCODER: [
5368        MODEL_TENSOR.TOKEN_EMBD,
5369        MODEL_TENSOR.OUTPUT_NORM,
5370        MODEL_TENSOR.OUTPUT,
5371        MODEL_TENSOR.ATTN_NORM,
5372        MODEL_TENSOR.ATTN_QKV,
5373        MODEL_TENSOR.ATTN_Q,
5374        MODEL_TENSOR.ATTN_Q_NORM,
5375        MODEL_TENSOR.ATTN_K,
5376        MODEL_TENSOR.ATTN_K_NORM,
5377        MODEL_TENSOR.ATTN_V,
5378        MODEL_TENSOR.ATTN_OUT,
5379        MODEL_TENSOR.FFN_NORM,
5380        MODEL_TENSOR.FFN_GATE,
5381        MODEL_TENSOR.FFN_DOWN,
5382        MODEL_TENSOR.FFN_UP,
5383    ],
5384    MODEL_ARCH.KIMI_LINEAR: [
5385        MODEL_TENSOR.TOKEN_EMBD,
5386        MODEL_TENSOR.OUTPUT_NORM,
5387        MODEL_TENSOR.OUTPUT,
5388        MODEL_TENSOR.ATTN_NORM,
5389        MODEL_TENSOR.ATTN_QKV,
5390        MODEL_TENSOR.ATTN_Q,
5391        MODEL_TENSOR.ATTN_K,
5392        MODEL_TENSOR.ATTN_V,
5393        MODEL_TENSOR.ATTN_OUT,
5394        MODEL_TENSOR.ATTN_Q_A,
5395        MODEL_TENSOR.ATTN_Q_B,
5396        MODEL_TENSOR.ATTN_KV_A_MQA,
5397        MODEL_TENSOR.ATTN_KV_B,
5398        MODEL_TENSOR.ATTN_K_B,
5399        MODEL_TENSOR.ATTN_V_B,
5400        MODEL_TENSOR.ATTN_Q_A_NORM,
5401        MODEL_TENSOR.ATTN_KV_A_NORM,
5402        MODEL_TENSOR.FFN_NORM,
5403        MODEL_TENSOR.FFN_GATE,
5404        MODEL_TENSOR.FFN_DOWN,
5405        MODEL_TENSOR.FFN_UP,
5406        MODEL_TENSOR.FFN_GATE_INP,
5407        MODEL_TENSOR.FFN_GATE_EXP,
5408        MODEL_TENSOR.FFN_DOWN_EXP,
5409        MODEL_TENSOR.FFN_UP_EXP,
5410        MODEL_TENSOR.SSM_CONV1D_Q,
5411        MODEL_TENSOR.SSM_CONV1D_K,
5412        MODEL_TENSOR.SSM_CONV1D_V,
5413        MODEL_TENSOR.SSM_F_A,
5414        MODEL_TENSOR.SSM_F_B,
5415        MODEL_TENSOR.SSM_BETA,
5416        MODEL_TENSOR.SSM_A,
5417        MODEL_TENSOR.SSM_G_A,
5418        MODEL_TENSOR.SSM_G_B,
5419        MODEL_TENSOR.SSM_DT,
5420        MODEL_TENSOR.SSM_NORM,
5421        MODEL_TENSOR.FFN_EXP_PROBS_B,
5422        MODEL_TENSOR.FFN_GATE_SHEXP,
5423        MODEL_TENSOR.FFN_DOWN_SHEXP,
5424        MODEL_TENSOR.FFN_UP_SHEXP,
5425    ],
5426    MODEL_ARCH.KIMI_K3: [
5427        MODEL_TENSOR.TOKEN_EMBD,
5428        MODEL_TENSOR.OUTPUT_NORM,
5429        MODEL_TENSOR.OUTPUT,
5430        MODEL_TENSOR.OUTPUT_RES_SCORE,
5431        MODEL_TENSOR.ATTN_NORM,
5432        MODEL_TENSOR.ATTN_RES_SCORE,
5433        MODEL_TENSOR.FFN_RES_SCORE,
5434        # MLA (full-attention layers)
5435        MODEL_TENSOR.ATTN_Q,
5436        MODEL_TENSOR.ATTN_K,
5437        MODEL_TENSOR.ATTN_V,
5438        MODEL_TENSOR.ATTN_OUT,
5439        MODEL_TENSOR.ATTN_GATE,
5440        MODEL_TENSOR.ATTN_Q_A,
5441        MODEL_TENSOR.ATTN_Q_B,
5442        MODEL_TENSOR.ATTN_KV_A_MQA,
5443        MODEL_TENSOR.ATTN_KV_B,
5444        MODEL_TENSOR.ATTN_K_B,
5445        MODEL_TENSOR.ATTN_V_B,
5446        MODEL_TENSOR.ATTN_Q_A_NORM,
5447        MODEL_TENSOR.ATTN_KV_A_NORM,
5448        # KDA (linear-attention layers)
5449        MODEL_TENSOR.SSM_CONV1D_Q,
5450        MODEL_TENSOR.SSM_CONV1D_K,
5451        MODEL_TENSOR.SSM_CONV1D_V,
5452        MODEL_TENSOR.SSM_F_A,
5453        MODEL_TENSOR.SSM_F_B,
5454        MODEL_TENSOR.SSM_BETA,
5455        MODEL_TENSOR.SSM_A,
5456        MODEL_TENSOR.SSM_G,
5457        MODEL_TENSOR.SSM_DT,
5458        MODEL_TENSOR.SSM_NORM,
5459        # FFN
5460        MODEL_TENSOR.FFN_NORM,
5461        MODEL_TENSOR.FFN_GATE,
5462        MODEL_TENSOR.FFN_DOWN,
5463        MODEL_TENSOR.FFN_UP,
5464        MODEL_TENSOR.FFN_GATE_INP,
5465        MODEL_TENSOR.FFN_EXP_PROBS_B,
5466        MODEL_TENSOR.FFN_GATE_EXP,
5467        MODEL_TENSOR.FFN_DOWN_EXP,
5468        MODEL_TENSOR.FFN_UP_EXP,
5469        MODEL_TENSOR.FFN_GATE_SHEXP,
5470        MODEL_TENSOR.FFN_DOWN_SHEXP,
5471        MODEL_TENSOR.FFN_UP_SHEXP,
5472        MODEL_TENSOR.FFN_ROUTED_DOWN,
5473        MODEL_TENSOR.FFN_ROUTED_UP,
5474        MODEL_TENSOR.FFN_ROUTED_NORM,
5475    ],
5476    MODEL_ARCH.TALKIE: [
5477        MODEL_TENSOR.TOKEN_EMBD,
5478        MODEL_TENSOR.OUTPUT,
5479        MODEL_TENSOR.ATTN_Q,
5480        MODEL_TENSOR.ATTN_Q_NORM,
5481        MODEL_TENSOR.ATTN_K,
5482        MODEL_TENSOR.ATTN_V,
5483        MODEL_TENSOR.ATTN_OUT,
5484        MODEL_TENSOR.FFN_GATE,
5485        MODEL_TENSOR.FFN_DOWN,
5486        MODEL_TENSOR.FFN_UP,
5487        MODEL_TENSOR.LAYER_OUT_SCALE,
5488    ],
5489    MODEL_ARCH.MELLUM: [
5490        MODEL_TENSOR.TOKEN_EMBD,
5491        MODEL_TENSOR.OUTPUT_NORM,
5492        MODEL_TENSOR.OUTPUT,
5493        MODEL_TENSOR.ATTN_NORM,
5494        MODEL_TENSOR.ATTN_Q,
5495        MODEL_TENSOR.ATTN_Q_NORM,
5496        MODEL_TENSOR.ATTN_K,
5497        MODEL_TENSOR.ATTN_K_NORM,
5498        MODEL_TENSOR.ATTN_V,
5499        MODEL_TENSOR.ATTN_OUT,
5500        MODEL_TENSOR.FFN_NORM,
5501        MODEL_TENSOR.FFN_GATE_INP,
5502        MODEL_TENSOR.FFN_GATE_EXP,
5503        MODEL_TENSOR.FFN_DOWN_EXP,
5504        MODEL_TENSOR.FFN_UP_EXP,
5505    ],
5506    MODEL_ARCH.NANBEIGE: [
5507        MODEL_TENSOR.TOKEN_EMBD,
5508        MODEL_TENSOR.OUTPUT_NORM,
5509        MODEL_TENSOR.OUTPUT,
5510        MODEL_TENSOR.ROPE_FREQS,
5511        MODEL_TENSOR.ATTN_NORM,
5512        MODEL_TENSOR.ATTN_Q,
5513        MODEL_TENSOR.ATTN_K,
5514        MODEL_TENSOR.ATTN_V,
5515        MODEL_TENSOR.ATTN_OUT,
5516        MODEL_TENSOR.ATTN_ROT_EMBD,
5517        MODEL_TENSOR.FFN_NORM,
5518        MODEL_TENSOR.FFN_GATE,
5519        MODEL_TENSOR.FFN_DOWN,
5520        MODEL_TENSOR.FFN_UP,
5521    ],
5522    MODEL_ARCH.QWEN3TTS: [
5523        MODEL_TENSOR.TOKEN_EMBD,
5524        MODEL_TENSOR.OUTPUT_NORM,
5525        MODEL_TENSOR.OUTPUT,
5526        MODEL_TENSOR.ATTN_NORM,
5527        MODEL_TENSOR.ATTN_Q,
5528        MODEL_TENSOR.ATTN_Q_NORM,
5529        MODEL_TENSOR.ATTN_K,
5530        MODEL_TENSOR.ATTN_K_NORM,
5531        MODEL_TENSOR.ATTN_V,
5532        MODEL_TENSOR.ATTN_OUT,
5533        MODEL_TENSOR.FFN_NORM,
5534        MODEL_TENSOR.FFN_GATE,
5535        MODEL_TENSOR.FFN_DOWN,
5536        MODEL_TENSOR.FFN_UP,
5537    ],
5538    MODEL_ARCH.POCKETTTS: [
5539        MODEL_TENSOR.TOKEN_EMBD,
5540        MODEL_TENSOR.OUTPUT_NORM,
5541        MODEL_TENSOR.ATTN_NORM,
5542        MODEL_TENSOR.ATTN_Q,
5543        MODEL_TENSOR.ATTN_K,
5544        MODEL_TENSOR.ATTN_V,
5545        MODEL_TENSOR.ATTN_OUT,
5546        MODEL_TENSOR.FFN_NORM,
5547        MODEL_TENSOR.FFN_DOWN,
5548        MODEL_TENSOR.FFN_UP,
5549    ],
5550}
5551
5552# tensors that will not be serialized
5553MODEL_TENSOR_SKIP: dict[MODEL_ARCH, list[MODEL_TENSOR]] = {
5554    MODEL_ARCH.LLAMA: [
5555        MODEL_TENSOR.ROPE_FREQS,
5556        MODEL_TENSOR.ATTN_ROT_EMBD,
5557    ],
5558    MODEL_ARCH.DECI: [
5559        MODEL_TENSOR.ROPE_FREQS,
5560        MODEL_TENSOR.ATTN_ROT_EMBD,
5561    ],
5562    MODEL_ARCH.BAICHUAN: [
5563        MODEL_TENSOR.ROPE_FREQS,
5564        MODEL_TENSOR.ATTN_ROT_EMBD,
5565    ],
5566    MODEL_ARCH.QWEN: [
5567        MODEL_TENSOR.ROPE_FREQS,
5568        MODEL_TENSOR.ATTN_ROT_EMBD,
5569    ],
5570    MODEL_ARCH.CODESHELL: [
5571        MODEL_TENSOR.ROPE_FREQS,
5572        MODEL_TENSOR.ATTN_ROT_EMBD,
5573    ],
5574    MODEL_ARCH.ORION: [
5575        MODEL_TENSOR.ROPE_FREQS,
5576        MODEL_TENSOR.ATTN_ROT_EMBD,
5577    ],
5578    MODEL_ARCH.STARCODER2: [
5579        MODEL_TENSOR.ROPE_FREQS,
5580        MODEL_TENSOR.ATTN_ROT_EMBD,
5581    ],
5582    MODEL_ARCH.XVERSE: [
5583        MODEL_TENSOR.ROPE_FREQS,
5584        MODEL_TENSOR.ATTN_ROT_EMBD,
5585    ],
5586    MODEL_ARCH.DEEPSEEK: [
5587        MODEL_TENSOR.ROPE_FREQS,
5588        MODEL_TENSOR.ATTN_ROT_EMBD,
5589    ],
5590    MODEL_ARCH.DEEPSEEK2: [
5591        MODEL_TENSOR.ROPE_FREQS,
5592        MODEL_TENSOR.ATTN_ROT_EMBD,
5593    ],
5594    MODEL_ARCH.DEEPSEEK2OCR: [
5595        MODEL_TENSOR.ROPE_FREQS,
5596        MODEL_TENSOR.ATTN_ROT_EMBD,
5597    ],
5598    MODEL_ARCH.DEEPSEEK32: [
5599        MODEL_TENSOR.ROPE_FREQS,
5600        MODEL_TENSOR.ATTN_ROT_EMBD,
5601    ],
5602    MODEL_ARCH.HY_V4: [
5603        MODEL_TENSOR.ROPE_FREQS,
5604        MODEL_TENSOR.ATTN_ROT_EMBD,
5605    ],
5606    MODEL_ARCH.CHATGLM: [
5607        MODEL_TENSOR.ROPE_FREQS,
5608    ],
5609    MODEL_ARCH.NEMOTRON: [
5610        MODEL_TENSOR.ROPE_FREQS,
5611        MODEL_TENSOR.ATTN_ROT_EMBD,
5612    ],
5613    MODEL_ARCH.BAILINGMOE: [
5614        MODEL_TENSOR.ROPE_FREQS,
5615    ],
5616    MODEL_ARCH.PANGU_EMBED: [
5617        MODEL_TENSOR.ROPE_FREQS,
5618        MODEL_TENSOR.ATTN_ROT_EMBD,
5619    ],
5620    MODEL_ARCH.NANBEIGE: [
5621        MODEL_TENSOR.ROPE_FREQS,
5622        MODEL_TENSOR.ATTN_ROT_EMBD,
5623    ],
5624}
5625
5626#
5627# types
5628#
5629
5630
5631class TokenType(IntEnum):
5632    NORMAL       = 1
5633    UNKNOWN      = 2
5634    CONTROL      = 3
5635    USER_DEFINED = 4
5636    UNUSED       = 5
5637    BYTE         = 6
5638
5639
5640class RopeScalingType(Enum):
5641    NONE     = 'none'
5642    LINEAR   = 'linear'
5643    YARN     = 'yarn'
5644    LONGROPE = 'longrope'
5645
5646
5647class PoolingType(IntEnum):
5648    NONE = 0
5649    MEAN = 1
5650    CLS  = 2
5651    LAST = 3
5652    RANK = 4
5653
5654
5655class GGMLQuantizationType(IntEnum):
5656    F32     = 0
5657    F16     = 1
5658    Q4_0    = 2
5659    Q4_1    = 3
5660    Q5_0    = 6
5661    Q5_1    = 7
5662    Q8_0    = 8
5663    Q8_1    = 9
5664    Q2_K    = 10
5665    Q3_K    = 11
5666    Q4_K    = 12
5667    Q5_K    = 13
5668    Q6_K    = 14
5669    Q8_K    = 15
5670    IQ2_XXS = 16
5671    IQ2_XS  = 17
5672    IQ3_XXS = 18
5673    IQ1_S   = 19
5674    IQ4_NL  = 20
5675    IQ3_S   = 21
5676    IQ2_S   = 22
5677    IQ4_XS  = 23
5678    I8      = 24
5679    I16     = 25
5680    I32     = 26
5681    I64     = 27
5682    F64     = 28
5683    IQ1_M   = 29
5684    BF16    = 30
5685    TQ1_0   = 34
5686    TQ2_0   = 35
5687    MXFP4   = 39
5688    NVFP4   = 40
5689    Q1_0    = 41
5690    Q2_0    = 42
5691
5692
5693class ExpertGatingFuncType(IntEnum):
5694    SOFTMAX       = 1
5695    SIGMOID       = 2
5696    SQRTSOFTPLUS  = 4
5697
5698
5699# TODO: add GGMLFileType from ggml_ftype in ggml.h
5700
5701
5702# from llama_ftype in llama.h
5703# ALL VALUES SHOULD BE THE SAME HERE AS THEY ARE OVER THERE.
5704class LlamaFileType(IntEnum):
5705    ALL_F32              = 0
5706    MOSTLY_F16           = 1   # except 1d tensors
5707    MOSTLY_Q4_0          = 2   # except 1d tensors
5708    MOSTLY_Q4_1          = 3   # except 1d tensors
5709    # MOSTLY_Q4_1_SOME_F16 = 4   # tok_embeddings.weight and output.weight are F16
5710    # MOSTLY_Q4_2        = 5   # support has been removed
5711    # MOSTLY_Q4_3        = 6   # support has been removed
5712    MOSTLY_Q8_0          = 7   # except 1d tensors
5713    MOSTLY_Q5_0          = 8   # except 1d tensors
5714    MOSTLY_Q5_1          = 9   # except 1d tensors
5715    MOSTLY_Q2_K          = 10  # except 1d tensors
5716    MOSTLY_Q3_K_S        = 11  # except 1d tensors
5717    MOSTLY_Q3_K_M        = 12  # except 1d tensors
5718    MOSTLY_Q3_K_L        = 13  # except 1d tensors
5719    MOSTLY_Q4_K_S        = 14  # except 1d tensors
5720    MOSTLY_Q4_K_M        = 15  # except 1d tensors
5721    MOSTLY_Q5_K_S        = 16  # except 1d tensors
5722    MOSTLY_Q5_K_M        = 17  # except 1d tensors
5723    MOSTLY_Q6_K          = 18  # except 1d tensors
5724    MOSTLY_IQ2_XXS       = 19  # except 1d tensors
5725    MOSTLY_IQ2_XS        = 20  # except 1d tensors
5726    MOSTLY_Q2_K_S        = 21  # except 1d tensors
5727    MOSTLY_IQ3_XS        = 22  # except 1d tensors
5728    MOSTLY_IQ3_XXS       = 23  # except 1d tensors
5729    MOSTLY_IQ1_S         = 24  # except 1d tensors
5730    MOSTLY_IQ4_NL        = 25  # except 1d tensors
5731    MOSTLY_IQ3_S         = 26  # except 1d tensors
5732    MOSTLY_IQ3_M         = 27  # except 1d tensors
5733    MOSTLY_IQ2_S         = 28  # except 1d tensors
5734    MOSTLY_IQ2_M         = 29  # except 1d tensors
5735    MOSTLY_IQ4_XS        = 30  # except 1d tensors
5736    MOSTLY_IQ1_M         = 31  # except 1d tensors
5737    MOSTLY_BF16          = 32  # except 1d tensors
5738    # MOSTLY_Q4_0_4_4      = 33  # removed from gguf files, use Q4_0 and runtime repack
5739    # MOSTLY_Q4_0_4_8      = 34  # removed from gguf files, use Q4_0 and runtime repack
5740    # MOSTLY_Q4_0_8_8      = 35  # removed from gguf files, use Q4_0 and runtime repack
5741    MOSTLY_TQ1_0         = 36  # except 1d tensors
5742    MOSTLY_TQ2_0         = 37  # except 1d tensors
5743    MOSTLY_MXFP4_MOE     = 38  # except 1d tensors
5744    MOSTLY_NVFP4         = 39  # except 1d tensors
5745    MOSTLY_Q1_0          = 40  # except 1d tensors
5746    MOSTLY_Q2_0          = 41  # except 1d tensors
5747
5748    GUESSED              = 1024  # not specified in the model file
5749
5750
5751class GGUFEndian(IntEnum):
5752    LITTLE = 0
5753    BIG = 1
5754
5755
5756class GGUFValueType(IntEnum):
5757    UINT8   = 0
5758    INT8    = 1
5759    UINT16  = 2
5760    INT16   = 3
5761    UINT32  = 4
5762    INT32   = 5
5763    FLOAT32 = 6
5764    BOOL    = 7
5765    STRING  = 8
5766    ARRAY   = 9
5767    UINT64  = 10
5768    INT64   = 11
5769    FLOAT64 = 12
5770
5771    @staticmethod
5772    def get_type(val: Any) -> GGUFValueType:
5773        if isinstance(val, (str, bytes, bytearray)):
5774            return GGUFValueType.STRING
5775        elif isinstance(val, list):
5776            return GGUFValueType.ARRAY
5777        elif isinstance(val, float):
5778            return GGUFValueType.FLOAT32
5779        elif isinstance(val, bool):
5780            return GGUFValueType.BOOL
5781        elif isinstance(val, int):
5782            return GGUFValueType.INT32
5783        # TODO: need help with 64-bit types in Python
5784        else:
5785            raise ValueError(f"Unknown type: {type(val)}")
5786
5787
5788class VisionProjectorType:
5789    GEMMA3 = "gemma3"
5790    GEMMA3NV = "gemma3nv"
5791    GEMMA3NA = "gemma3na"
5792    GEMMA4V = "gemma4v"
5793    GEMMA4A = "gemma4a"
5794    GEMMA4UV = "gemma4uv" # "unified" variant
5795    GEMMA4UA = "gemma4ua" # "unified" variant
5796    PHI4 = "phi4"
5797    IDEFICS3 = "idefics3"
5798    PIXTRAL = "pixtral"
5799    LLAMA4 = "llama4"
5800    QWEN2VL = "qwen2vl_merger"
5801    QWEN25VL = "qwen2.5vl_merger"
5802    EXAONE4_5 = "exaone4_5"
5803    QWEN3VL = "qwen3vl_merger"
5804    STEP3VL = "step3vl"
5805    ULTRAVOX = "ultravox"
5806    INTERNVL = "internvl"
5807    QWEN2A = "qwen2a" # audio
5808    QWEN3A = "qwen3a" # audio
5809    GLMA = "glma" # audio
5810    QWEN25O = "qwen2.5o" # omni
5811    VOXTRAL = "voxtral"
5812    MERALION = "meralion"  # audio: Whisper + gated MLP adaptor
5813    LFM2 = "lfm2"
5814    KIMIVL = "kimivl"
5815    PADDLEOCR = "paddleocr"
5816    KIMIK25 = "kimik25"
5817    LIGHTONOCR = "lightonocr"
5818    COGVLM = "cogvlm"
5819    JANUS_PRO = "janus_pro"
5820    DOTSOCR = "dots_ocr"
5821    DOTS3NOTE_V = "dots3note_v"
5822    DOTS3NOTE_A = "dots3note_a" # audio
5823    DEEPSEEKOCR = "deepseekocr"
5824    DEEPSEEKOCR2 = "deepseekocr2"
5825    DEEPSEEK4V = "deepseek4v"
5826    LFM2A = "lfm2a" # audio
5827    MUSIC_FLAMINGO = "musicflamingo" # audio
5828    GLM4V = "glm4v"
5829    YOUTUVL = "youtuvl"
5830    NEMOTRON_V2_VL = "nemotron_v2_vl"
5831    QWEN3TTS_SPKENC = "qwen3tts_spkenc" # audio: ECAPA-TDNN speaker encoder
5832    QWEN3TTS_GEN = "qwen3tts_gen" # audio generation: code_predictor
5833    POCKETTTS_SPKENC = "pockettts_spkenc" # audio: mimi encoder as voice-prompt encoder
5834    POCKETTTS_GEN = "pockettts_gen" # audio generation: flow-matching decoder + mimi decoder
5835    HUNYUANVL      = "hunyuanvl"
5836    PARAKEET       = "parakeet"  # audio
5837    MINIMAXM3      = "minimax_m3"
5838    MINICPMV4_6    = "minicpmv4_6"
5839    GRANITE_SPEECH = "granite_speech"  # audio
5840    MIMOVL         = "mimovl"
5841    MIMO_AUDIO     = "mimo_audio"
5842    GRANITE4_VISION = "granite4_vision"
5843    MUSE_GLIMMER   = "muse-glimmer"
5844
5845
5846# Items here are (block size, type size)
5847QK_K = 256
5848GGML_QUANT_SIZES: dict[GGMLQuantizationType, tuple[int, int]] = {
5849    GGMLQuantizationType.F32:     (1, 4),
5850    GGMLQuantizationType.F16:     (1, 2),
5851    GGMLQuantizationType.Q4_0:    (32, 2 + 16),
5852    GGMLQuantizationType.Q4_1:    (32, 2 + 2 + 16),
5853    GGMLQuantizationType.Q5_0:    (32, 2 + 4 + 16),
5854    GGMLQuantizationType.Q5_1:    (32, 2 + 2 + 4 + 16),
5855    GGMLQuantizationType.Q8_0:    (32, 2 + 32),
5856    GGMLQuantizationType.Q8_1:    (32, 4 + 4 + 32),
5857    GGMLQuantizationType.Q2_K:    (256, 2 + 2 + QK_K // 16 + QK_K // 4),
5858    GGMLQuantizationType.Q3_K:    (256, 2 + QK_K // 4 + QK_K // 8 + 12),
5859    GGMLQuantizationType.Q4_K:    (256, 2 + 2 + QK_K // 2 + 12),
5860    GGMLQuantizationType.Q5_K:    (256, 2 + 2 + QK_K // 2 + QK_K // 8 + 12),
5861    GGMLQuantizationType.Q6_K:    (256, 2 + QK_K // 2 + QK_K // 4 + QK_K // 16),
5862    GGMLQuantizationType.Q8_K:    (256, 4 + QK_K + QK_K // 8),
5863    GGMLQuantizationType.IQ2_XXS: (256, 2 + QK_K // 4),
5864    GGMLQuantizationType.IQ2_XS:  (256, 2 + QK_K // 4 + QK_K // 32),
5865    GGMLQuantizationType.IQ3_XXS: (256, 2 + QK_K // 4 + QK_K // 8),
5866    GGMLQuantizationType.IQ1_S:   (256, 2 + QK_K // 8 + QK_K // 16),
5867    GGMLQuantizationType.IQ4_NL:  (32, 2 + 16),
5868    GGMLQuantizationType.IQ3_S:   (256, 2 + QK_K // 4 + QK_K // 8 + QK_K // 32 + 4),
5869    GGMLQuantizationType.IQ2_S:   (256, 2 + QK_K // 4 + QK_K // 16),
5870    GGMLQuantizationType.IQ4_XS:  (256, 2 + 2 + QK_K // 2 + QK_K // 64),
5871    GGMLQuantizationType.I8:      (1, 1),
5872    GGMLQuantizationType.I16:     (1, 2),
5873    GGMLQuantizationType.I32:     (1, 4),
5874    GGMLQuantizationType.I64:     (1, 8),
5875    GGMLQuantizationType.F64:     (1, 8),
5876    GGMLQuantizationType.IQ1_M:   (256, QK_K // 8 + QK_K // 16  + QK_K // 32),
5877    GGMLQuantizationType.BF16:    (1, 2),
5878    GGMLQuantizationType.TQ1_0:   (256, 2 + 4 * 13),
5879    GGMLQuantizationType.TQ2_0:   (256, 2 + 64),
5880    GGMLQuantizationType.MXFP4:   (32, 1 + 16),
5881    GGMLQuantizationType.NVFP4:   (64, 4 + 32),
5882    GGMLQuantizationType.Q1_0:    (128, 2 + 16),
5883    GGMLQuantizationType.Q2_0:    (64, 2 + 16),
5884}
5885
5886
5887# Aliases for backward compatibility.
5888
5889# general
5890KEY_GENERAL_ARCHITECTURE         = Keys.General.ARCHITECTURE
5891KEY_GENERAL_QUANTIZATION_VERSION = Keys.General.QUANTIZATION_VERSION
5892KEY_GENERAL_ALIGNMENT            = Keys.General.ALIGNMENT
5893KEY_GENERAL_NAME                 = Keys.General.NAME
5894KEY_GENERAL_AUTHOR               = Keys.General.AUTHOR
5895KEY_GENERAL_URL                  = Keys.General.URL
5896KEY_GENERAL_DESCRIPTION          = Keys.General.DESCRIPTION
5897KEY_GENERAL_LICENSE              = Keys.General.LICENSE
5898KEY_GENERAL_SOURCE_URL           = Keys.General.SOURCE_URL
5899KEY_GENERAL_FILE_TYPE            = Keys.General.FILE_TYPE
5900
5901# LLM
5902KEY_VOCAB_SIZE            = Keys.LLM.VOCAB_SIZE
5903KEY_CONTEXT_LENGTH        = Keys.LLM.CONTEXT_LENGTH
5904KEY_EMBEDDING_LENGTH      = Keys.LLM.EMBEDDING_LENGTH
5905KEY_BLOCK_COUNT           = Keys.LLM.BLOCK_COUNT
5906KEY_FEED_FORWARD_LENGTH   = Keys.LLM.FEED_FORWARD_LENGTH
5907KEY_USE_PARALLEL_RESIDUAL = Keys.LLM.USE_PARALLEL_RESIDUAL
5908KEY_TENSOR_DATA_LAYOUT    = Keys.LLM.TENSOR_DATA_LAYOUT
5909
5910# attention
5911KEY_ATTENTION_HEAD_COUNT        = Keys.Attention.HEAD_COUNT
5912KEY_ATTENTION_HEAD_COUNT_KV     = Keys.Attention.HEAD_COUNT_KV
5913KEY_ATTENTION_MAX_ALIBI_BIAS    = Keys.Attention.MAX_ALIBI_BIAS
5914KEY_ATTENTION_CLAMP_KQV         = Keys.Attention.CLAMP_KQV
5915KEY_ATTENTION_LAYERNORM_EPS     = Keys.Attention.LAYERNORM_EPS
5916KEY_ATTENTION_LAYERNORM_RMS_EPS = Keys.Attention.LAYERNORM_RMS_EPS
5917
5918# RoPE
5919KEY_ROPE_DIMENSION_COUNT           = Keys.Rope.DIMENSION_COUNT
5920KEY_ROPE_FREQ_BASE                 = Keys.Rope.FREQ_BASE
5921KEY_ROPE_SCALING_TYPE              = Keys.Rope.SCALING_TYPE
5922KEY_ROPE_SCALING_FACTOR            = Keys.Rope.SCALING_FACTOR
5923KEY_ROPE_SCALING_ORIG_CTX_LEN      = Keys.Rope.SCALING_ORIG_CTX_LEN
5924KEY_ROPE_SCALING_FINETUNED         = Keys.Rope.SCALING_FINETUNED
5925
5926# SSM
5927KEY_SSM_CONV_KERNEL    = Keys.SSM.CONV_KERNEL
5928KEY_SSM_INNER_SIZE     = Keys.SSM.INNER_SIZE
5929KEY_SSM_STATE_SIZE     = Keys.SSM.STATE_SIZE
5930KEY_SSM_TIME_STEP_RANK = Keys.SSM.TIME_STEP_RANK
5931KEY_SSM_GROUP_COUNT    = Keys.SSM.GROUP_COUNT
5932KEY_SSM_DT_B_C_RMS     = Keys.SSM.DT_B_C_RMS
5933
5934# KDA
5935KEY_KDA_HEAD_DIM         = Keys.KDA.HEAD_DIM
5936KEY_KDA_SAFE_GATE        = Keys.KDA.SAFE_GATE
5937KEY_KDA_GATE_LOWER_BOUND = Keys.KDA.GATE_LOWER_BOUND
5938
5939# tokenization
5940KEY_TOKENIZER_MODEL      = Keys.Tokenizer.MODEL
5941KEY_TOKENIZER_PRE        = Keys.Tokenizer.PRE
5942KEY_TOKENIZER_LIST       = Keys.Tokenizer.LIST
5943KEY_TOKENIZER_TOKEN_TYPE = Keys.Tokenizer.TOKEN_TYPE
5944KEY_TOKENIZER_SCORES     = Keys.Tokenizer.SCORES
5945KEY_TOKENIZER_MERGES     = Keys.Tokenizer.MERGES
5946KEY_TOKENIZER_BOS_ID     = Keys.Tokenizer.BOS_ID
5947KEY_TOKENIZER_EOS_ID     = Keys.Tokenizer.EOS_ID
5948KEY_TOKENIZER_EOT_ID     = Keys.Tokenizer.EOT_ID
5949KEY_TOKENIZER_EOM_ID     = Keys.Tokenizer.EOM_ID
5950KEY_TOKENIZER_UNK_ID     = Keys.Tokenizer.UNK_ID
5951KEY_TOKENIZER_SEP_ID     = Keys.Tokenizer.SEP_ID
5952KEY_TOKENIZER_PAD_ID     = Keys.Tokenizer.PAD_ID
5953KEY_TOKENIZER_MASK_ID    = Keys.Tokenizer.MASK_ID
5954KEY_TOKENIZER_HF_JSON    = Keys.Tokenizer.HF_JSON
5955KEY_TOKENIZER_RWKV       = Keys.Tokenizer.RWKV
5956
5957KEY_TOKENIZER_FIM_PRE_ID = Keys.Tokenizer.FIM_PRE_ID
5958KEY_TOKENIZER_FIM_SUF_ID = Keys.Tokenizer.FIM_SUF_ID
5959KEY_TOKENIZER_FIM_MID_ID = Keys.Tokenizer.FIM_MID_ID
5960KEY_TOKENIZER_FIM_PAD_ID = Keys.Tokenizer.FIM_PAD_ID
5961KEY_TOKENIZER_FIM_REP_ID = Keys.Tokenizer.FIM_REP_ID
5962KEY_TOKENIZER_FIM_SEP_ID = Keys.Tokenizer.FIM_SEP_ID
5963
5964# deprecated
5965KEY_TOKENIZER_PREFIX_ID  = Keys.Tokenizer.PREFIX_ID
5966KEY_TOKENIZER_SUFFIX_ID  = Keys.Tokenizer.SUFFIX_ID
5967KEY_TOKENIZER_MIDDLE_ID  = Keys.Tokenizer.MIDDLE_ID