KBaba7/llama.cpp
0
1#include "llama-arch.h"2 3#include "llama-impl.h"4 5#include <map>6 7static const std::map<llm_arch, const char *> LLM_ARCH_NAMES = {8 { LLM_ARCH_LLAMA, "llama" },9 { LLM_ARCH_DECI, "deci" },10 { LLM_ARCH_FALCON, "falcon" },11 { LLM_ARCH_GROK, "grok" },12 { LLM_ARCH_GPT2, "gpt2" },13 { LLM_ARCH_GPTJ, "gptj" },14 { LLM_ARCH_GPTNEOX, "gptneox" },15 { LLM_ARCH_MPT, "mpt" },16 { LLM_ARCH_BAICHUAN, "baichuan" },17 { LLM_ARCH_STARCODER, "starcoder" },18 { LLM_ARCH_REFACT, "refact" },19 { LLM_ARCH_BERT, "bert" },20 { LLM_ARCH_NOMIC_BERT, "nomic-bert" },21 { LLM_ARCH_JINA_BERT_V2, "jina-bert-v2" },22 { LLM_ARCH_BLOOM, "bloom" },23 { LLM_ARCH_STABLELM, "stablelm" },24 { LLM_ARCH_QWEN, "qwen" },25 { LLM_ARCH_QWEN2, "qwen2" },26 { LLM_ARCH_QWEN2MOE, "qwen2moe" },27 { LLM_ARCH_QWEN2VL, "qwen2vl" },28 { LLM_ARCH_PHI2, "phi2" },29 { LLM_ARCH_PHI3, "phi3" },30 { LLM_ARCH_PHIMOE, "phimoe" },31 { LLM_ARCH_PLAMO, "plamo" },32 { LLM_ARCH_CODESHELL, "codeshell" },33 { LLM_ARCH_ORION, "orion" },34 { LLM_ARCH_INTERNLM2, "internlm2" },35 { LLM_ARCH_MINICPM, "minicpm" },36 { LLM_ARCH_MINICPM3, "minicpm3" },37 { LLM_ARCH_GEMMA, "gemma" },38 { LLM_ARCH_GEMMA2, "gemma2" },39 { LLM_ARCH_STARCODER2, "starcoder2" },40 { LLM_ARCH_MAMBA, "mamba" },41 { LLM_ARCH_XVERSE, "xverse" },42 { LLM_ARCH_COMMAND_R, "command-r" },43 { LLM_ARCH_COHERE2, "cohere2" },44 { LLM_ARCH_DBRX, "dbrx" },45 { LLM_ARCH_OLMO, "olmo" },46 { LLM_ARCH_OLMO2, "olmo2" },47 { LLM_ARCH_OLMOE, "olmoe" },48 { LLM_ARCH_OPENELM, "openelm" },49 { LLM_ARCH_ARCTIC, "arctic" },50 { LLM_ARCH_DEEPSEEK, "deepseek" },51 { LLM_ARCH_DEEPSEEK2, "deepseek2" },52 { LLM_ARCH_CHATGLM, "chatglm" },53 { LLM_ARCH_BITNET, "bitnet" },54 { LLM_ARCH_T5, "t5" },55 { LLM_ARCH_T5ENCODER, "t5encoder" },56 { LLM_ARCH_JAIS, "jais" },57 { LLM_ARCH_NEMOTRON, "nemotron" },58 { LLM_ARCH_EXAONE, "exaone" },59 { LLM_ARCH_RWKV6, "rwkv6" },60 { LLM_ARCH_RWKV6QWEN2, "rwkv6qwen2" },61 { LLM_ARCH_GRANITE, "granite" },62 { LLM_ARCH_GRANITE_MOE, "granitemoe" },63 { LLM_ARCH_CHAMELEON, "chameleon" },64 { LLM_ARCH_WAVTOKENIZER_DEC, "wavtokenizer-dec" },65 { LLM_ARCH_UNKNOWN, "(unknown)" },66};67 68static const std::map<llm_kv, const char *> LLM_KV_NAMES = {69 { LLM_KV_GENERAL_TYPE, "general.type" },70 { LLM_KV_GENERAL_ARCHITECTURE, "general.architecture" },71 { LLM_KV_GENERAL_QUANTIZATION_VERSION, "general.quantization_version" },72 { LLM_KV_GENERAL_ALIGNMENT, "general.alignment" },73 { LLM_KV_GENERAL_NAME, "general.name" },74 { LLM_KV_GENERAL_AUTHOR, "general.author" },75 { LLM_KV_GENERAL_VERSION, "general.version" },76 { LLM_KV_GENERAL_URL, "general.url" },77 { LLM_KV_GENERAL_DESCRIPTION, "general.description" },78 { LLM_KV_GENERAL_LICENSE, "general.license" },79 { LLM_KV_GENERAL_SOURCE_URL, "general.source.url" },80 { LLM_KV_GENERAL_SOURCE_HF_REPO, "general.source.huggingface.repository" },81 82 { LLM_KV_VOCAB_SIZE, "%s.vocab_size" },83 { LLM_KV_CONTEXT_LENGTH, "%s.context_length" },84 { LLM_KV_EMBEDDING_LENGTH, "%s.embedding_length" },85 { LLM_KV_FEATURES_LENGTH, "%s.features_length" },86 { LLM_KV_BLOCK_COUNT, "%s.block_count" },87 { LLM_KV_LEADING_DENSE_BLOCK_COUNT, "%s.leading_dense_block_count" },88 { LLM_KV_FEED_FORWARD_LENGTH, "%s.feed_forward_length" },89 { LLM_KV_EXPERT_FEED_FORWARD_LENGTH, "%s.expert_feed_forward_length" },90 { LLM_KV_EXPERT_SHARED_FEED_FORWARD_LENGTH, "%s.expert_shared_feed_forward_length" },91 { LLM_KV_USE_PARALLEL_RESIDUAL, "%s.use_parallel_residual" },92 { LLM_KV_TENSOR_DATA_LAYOUT, "%s.tensor_data_layout" },93 { LLM_KV_EXPERT_COUNT, "%s.expert_count" },94 { LLM_KV_EXPERT_USED_COUNT, "%s.expert_used_count" },95 { LLM_KV_EXPERT_SHARED_COUNT, "%s.expert_shared_count" },96 { LLM_KV_EXPERT_WEIGHTS_SCALE, "%s.expert_weights_scale" },97 { LLM_KV_EXPERT_WEIGHTS_NORM, "%s.expert_weights_norm" },98 { LLM_KV_EXPERT_GATING_FUNC, "%s.expert_gating_func" },99 { LLM_KV_POOLING_TYPE, "%s.pooling_type" },100 { LLM_KV_LOGIT_SCALE, "%s.logit_scale" },101 { LLM_KV_DECODER_START_TOKEN_ID, "%s.decoder_start_token_id" },102 { LLM_KV_ATTN_LOGIT_SOFTCAPPING, "%s.attn_logit_softcapping" },103 { LLM_KV_FINAL_LOGIT_SOFTCAPPING, "%s.final_logit_softcapping" },104 { LLM_KV_SWIN_NORM, "%s.swin_norm" },105 { LLM_KV_RESCALE_EVERY_N_LAYERS, "%s.rescale_every_n_layers" },106 { LLM_KV_TIME_MIX_EXTRA_DIM, "%s.time_mix_extra_dim" },107 { LLM_KV_TIME_DECAY_EXTRA_DIM, "%s.time_decay_extra_dim" },108 { LLM_KV_RESIDUAL_SCALE, "%s.residual_scale" },109 { LLM_KV_EMBEDDING_SCALE, "%s.embedding_scale" },110 { LLM_KV_TOKEN_SHIFT_COUNT, "%s.token_shift_count" },111 112 { LLM_KV_ATTENTION_HEAD_COUNT, "%s.attention.head_count" },113 { LLM_KV_ATTENTION_HEAD_COUNT_KV, "%s.attention.head_count_kv" },114 { LLM_KV_ATTENTION_MAX_ALIBI_BIAS, "%s.attention.max_alibi_bias" },115 { LLM_KV_ATTENTION_CLAMP_KQV, "%s.attention.clamp_kqv" },116 { LLM_KV_ATTENTION_KEY_LENGTH, "%s.attention.key_length" },117 { LLM_KV_ATTENTION_VALUE_LENGTH, "%s.attention.value_length" },118 { LLM_KV_ATTENTION_LAYERNORM_EPS, "%s.attention.layer_norm_epsilon" },119 { LLM_KV_ATTENTION_LAYERNORM_RMS_EPS, "%s.attention.layer_norm_rms_epsilon" },120 { LLM_KV_ATTENTION_GROUPNORM_EPS, "%s.attention.group_norm_epsilon" },121 { LLM_KV_ATTENTION_GROUPNORM_GROUPS, "%s.attention.group_norm_groups" },122 { LLM_KV_ATTENTION_CAUSAL, "%s.attention.causal" },123 { LLM_KV_ATTENTION_Q_LORA_RANK, "%s.attention.q_lora_rank" },124 { LLM_KV_ATTENTION_KV_LORA_RANK, "%s.attention.kv_lora_rank" },125 { LLM_KV_ATTENTION_RELATIVE_BUCKETS_COUNT, "%s.attention.relative_buckets_count" },126 { LLM_KV_ATTENTION_SLIDING_WINDOW, "%s.attention.sliding_window" },127 { LLM_KV_ATTENTION_SCALE, "%s.attention.scale" },128 129 { LLM_KV_ROPE_DIMENSION_COUNT, "%s.rope.dimension_count" },130 { LLM_KV_ROPE_DIMENSION_SECTIONS, "%s.rope.dimension_sections" },131 { LLM_KV_ROPE_FREQ_BASE, "%s.rope.freq_base" },132 { LLM_KV_ROPE_SCALE_LINEAR, "%s.rope.scale_linear" },133 { LLM_KV_ROPE_SCALING_TYPE, "%s.rope.scaling.type" },134 { LLM_KV_ROPE_SCALING_FACTOR, "%s.rope.scaling.factor" },135 { LLM_KV_ROPE_SCALING_ATTN_FACTOR, "%s.rope.scaling.attn_factor" },136 { LLM_KV_ROPE_SCALING_ORIG_CTX_LEN, "%s.rope.scaling.original_context_length" },137 { LLM_KV_ROPE_SCALING_FINETUNED, "%s.rope.scaling.finetuned" },138 { LLM_KV_ROPE_SCALING_YARN_LOG_MUL, "%s.rope.scaling.yarn_log_multiplier" },139 140 { LLM_KV_SPLIT_NO, "split.no" },141 { LLM_KV_SPLIT_COUNT, "split.count" },142 { LLM_KV_SPLIT_TENSORS_COUNT, "split.tensors.count" },143 144 { LLM_KV_SSM_CONV_KERNEL, "%s.ssm.conv_kernel" },145 { LLM_KV_SSM_INNER_SIZE, "%s.ssm.inner_size" },146 { LLM_KV_SSM_STATE_SIZE, "%s.ssm.state_size" },147 { LLM_KV_SSM_TIME_STEP_RANK, "%s.ssm.time_step_rank" },148 { LLM_KV_SSM_DT_B_C_RMS, "%s.ssm.dt_b_c_rms" },149 150 { LLM_KV_WKV_HEAD_SIZE, "%s.wkv.head_size" },151 152 { LLM_KV_POSNET_EMBEDDING_LENGTH, "%s.posnet.embedding_length" },153 { LLM_KV_POSNET_BLOCK_COUNT, "%s.posnet.block_count" },154 155 { LLM_KV_CONVNEXT_EMBEDDING_LENGTH, "%s.convnext.embedding_length" },156 { LLM_KV_CONVNEXT_BLOCK_COUNT, "%s.convnext.block_count" },157 158 { LLM_KV_TOKENIZER_MODEL, "tokenizer.ggml.model" },159 { LLM_KV_TOKENIZER_PRE, "tokenizer.ggml.pre" },160 { LLM_KV_TOKENIZER_LIST, "tokenizer.ggml.tokens" },161 { LLM_KV_TOKENIZER_TOKEN_TYPE, "tokenizer.ggml.token_type" },162 { LLM_KV_TOKENIZER_TOKEN_TYPE_COUNT, "tokenizer.ggml.token_type_count" },163 { LLM_KV_TOKENIZER_SCORES, "tokenizer.ggml.scores" },164 { LLM_KV_TOKENIZER_MERGES, "tokenizer.ggml.merges" },165 { LLM_KV_TOKENIZER_BOS_ID, "tokenizer.ggml.bos_token_id" },166 { LLM_KV_TOKENIZER_EOS_ID, "tokenizer.ggml.eos_token_id" },167 { LLM_KV_TOKENIZER_EOT_ID, "tokenizer.ggml.eot_token_id" },168 { LLM_KV_TOKENIZER_EOM_ID, "tokenizer.ggml.eom_token_id" },169 { LLM_KV_TOKENIZER_UNK_ID, "tokenizer.ggml.unknown_token_id" },170 { LLM_KV_TOKENIZER_SEP_ID, "tokenizer.ggml.seperator_token_id" },171 { LLM_KV_TOKENIZER_PAD_ID, "tokenizer.ggml.padding_token_id" },172 { LLM_KV_TOKENIZER_CLS_ID, "tokenizer.ggml.cls_token_id" },173 { LLM_KV_TOKENIZER_MASK_ID, "tokenizer.ggml.mask_token_id" },174 { LLM_KV_TOKENIZER_ADD_BOS, "tokenizer.ggml.add_bos_token" },175 { LLM_KV_TOKENIZER_ADD_EOS, "tokenizer.ggml.add_eos_token" },176 { LLM_KV_TOKENIZER_ADD_PREFIX, "tokenizer.ggml.add_space_prefix" },177 { LLM_KV_TOKENIZER_REMOVE_EXTRA_WS, "tokenizer.ggml.remove_extra_whitespaces" },178 { LLM_KV_TOKENIZER_PRECOMPILED_CHARSMAP, "tokenizer.ggml.precompiled_charsmap" },179 { LLM_KV_TOKENIZER_HF_JSON, "tokenizer.huggingface.json" },180 { LLM_KV_TOKENIZER_RWKV, "tokenizer.rwkv.world" },181 { LLM_KV_TOKENIZER_CHAT_TEMPLATE, "tokenizer.chat_template" },182 { LLM_KV_TOKENIZER_CHAT_TEMPLATE_N, "tokenizer.chat_template.%s" },183 { LLM_KV_TOKENIZER_FIM_PRE_ID, "tokenizer.ggml.fim_pre_token_id" },184 { LLM_KV_TOKENIZER_FIM_SUF_ID, "tokenizer.ggml.fim_suf_token_id" },185 { LLM_KV_TOKENIZER_FIM_MID_ID, "tokenizer.ggml.fim_mid_token_id" },186 { LLM_KV_TOKENIZER_FIM_PAD_ID, "tokenizer.ggml.fim_pad_token_id" },187 { LLM_KV_TOKENIZER_FIM_REP_ID, "tokenizer.ggml.fim_rep_token_id" },188 { LLM_KV_TOKENIZER_FIM_SEP_ID, "tokenizer.ggml.fim_sep_token_id" },189 190 { LLM_KV_ADAPTER_TYPE, "adapter.type" },191 { LLM_KV_ADAPTER_LORA_ALPHA, "adapter.lora.alpha" },192 193 // deprecated194 { LLM_KV_TOKENIZER_PREFIX_ID, "tokenizer.ggml.prefix_token_id" },195 { LLM_KV_TOKENIZER_SUFFIX_ID, "tokenizer.ggml.suffix_token_id" },196 { LLM_KV_TOKENIZER_MIDDLE_ID, "tokenizer.ggml.middle_token_id" },197};198 199static const std::map<llm_arch, std::map<llm_tensor, const char *>> LLM_TENSOR_NAMES = {200 {201 LLM_ARCH_LLAMA,202 {203 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },204 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },205 { LLM_TENSOR_OUTPUT, "output" },206 { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },207 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },208 { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },209 { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },210 { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },211 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },212 { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },213 { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },214 { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },215 { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },216 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },217 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },218 { LLM_TENSOR_FFN_GATE_EXP, "blk.%d.ffn_gate.%d" },219 { LLM_TENSOR_FFN_DOWN_EXP, "blk.%d.ffn_down.%d" },220 { LLM_TENSOR_FFN_UP_EXP, "blk.%d.ffn_up.%d" },221 { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },222 { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },223 { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },224 },225 },226 {227 LLM_ARCH_DECI,228 {229 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },230 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },231 { LLM_TENSOR_OUTPUT, "output" },232 { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },233 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },234 { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },235 { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },236 { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },237 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },238 { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },239 { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },240 { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },241 { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },242 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },243 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },244 { LLM_TENSOR_FFN_GATE_EXP, "blk.%d.ffn_gate.%d" },245 { LLM_TENSOR_FFN_DOWN_EXP, "blk.%d.ffn_down.%d" },246 { LLM_TENSOR_FFN_UP_EXP, "blk.%d.ffn_up.%d" },247 { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },248 { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },249 { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },250 },251 },252 {253 LLM_ARCH_BAICHUAN,254 {255 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },256 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },257 { LLM_TENSOR_OUTPUT, "output" },258 { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },259 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },260 { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },261 { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },262 { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },263 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },264 { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },265 { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },266 { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },267 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },268 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },269 },270 },271 {272 LLM_ARCH_FALCON,273 {274 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },275 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },276 { LLM_TENSOR_OUTPUT, "output" },277 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },278 { LLM_TENSOR_ATTN_NORM_2, "blk.%d.attn_norm_2" },279 { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },280 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },281 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },282 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },283 },284 },285 {286 LLM_ARCH_GROK,287 {288 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },289 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },290 { LLM_TENSOR_OUTPUT, "output" },291 { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },292 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },293 { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },294 { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },295 { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },296 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },297 { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },298 { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },299 { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },300 { LLM_TENSOR_FFN_GATE_EXP, "blk.%d.ffn_gate.%d" },301 { LLM_TENSOR_FFN_DOWN_EXP, "blk.%d.ffn_down.%d" },302 { LLM_TENSOR_FFN_UP_EXP, "blk.%d.ffn_up.%d" },303 { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },304 { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },305 { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },306 { LLM_TENSOR_LAYER_OUT_NORM, "blk.%d.layer_output_norm" },307 { LLM_TENSOR_ATTN_OUT_NORM, "blk.%d.attn_output_norm" },308 },309 },310 {311 LLM_ARCH_GPT2,312 {313 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },314 { LLM_TENSOR_POS_EMBD, "position_embd" },315 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },316 { LLM_TENSOR_OUTPUT, "output" },317 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },318 { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },319 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },320 { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },321 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },322 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },323 },324 },325 {326 LLM_ARCH_GPTJ,327 {328 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },329 },330 },331 {332 LLM_ARCH_GPTNEOX,333 {334 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },335 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },336 { LLM_TENSOR_OUTPUT, "output" },337 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },338 { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },339 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },340 { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },341 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },342 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },343 },344 },345 {346 LLM_ARCH_MPT,347 {348 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },349 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },350 { LLM_TENSOR_OUTPUT, "output"},351 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },352 { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },353 { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },354 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },355 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },356 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },357 { LLM_TENSOR_FFN_ACT, "blk.%d.ffn.act" },358 { LLM_TENSOR_POS_EMBD, "position_embd" },359 { LLM_TENSOR_ATTN_Q_NORM, "blk.%d.attn_q_norm"},360 { LLM_TENSOR_ATTN_K_NORM, "blk.%d.attn_k_norm"},361 },362 },363 {364 LLM_ARCH_STARCODER,365 {366 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },367 { LLM_TENSOR_POS_EMBD, "position_embd" },368 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },369 { LLM_TENSOR_OUTPUT, "output" },370 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },371 { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },372 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },373 { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },374 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },375 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },376 },377 },378 {379 LLM_ARCH_REFACT,380 {381 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },382 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },383 { LLM_TENSOR_OUTPUT, "output" },384 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },385 { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },386 { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },387 { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },388 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },389 { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },390 { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },391 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },392 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },393 },394 },395 {396 LLM_ARCH_BERT,397 {398 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },399 { LLM_TENSOR_TOKEN_EMBD_NORM, "token_embd_norm" },400 { LLM_TENSOR_TOKEN_TYPES, "token_types" },401 { LLM_TENSOR_POS_EMBD, "position_embd" },402 { LLM_TENSOR_ATTN_OUT_NORM, "blk.%d.attn_output_norm" },403 { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },404 { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },405 { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },406 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },407 { LLM_TENSOR_LAYER_OUT_NORM, "blk.%d.layer_output_norm" },408 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },409 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },410 { LLM_TENSOR_CLS, "cls" },411 { LLM_TENSOR_CLS_OUT, "cls.output" },412 },413 },414 {415 LLM_ARCH_NOMIC_BERT,416 {417 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },418 { LLM_TENSOR_TOKEN_EMBD_NORM, "token_embd_norm" },419 { LLM_TENSOR_TOKEN_TYPES, "token_types" },420 { LLM_TENSOR_ATTN_OUT_NORM, "blk.%d.attn_output_norm" },421 { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },422 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },423 { LLM_TENSOR_LAYER_OUT_NORM, "blk.%d.layer_output_norm" },424 { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },425 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },426 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },427 },428 },429 {430 LLM_ARCH_JINA_BERT_V2,431 {432 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },433 { LLM_TENSOR_TOKEN_EMBD_NORM, "token_embd_norm" },434 { LLM_TENSOR_TOKEN_TYPES, "token_types" },435 { LLM_TENSOR_ATTN_NORM_2, "blk.%d.attn_norm_2" },436 { LLM_TENSOR_ATTN_OUT_NORM, "blk.%d.attn_output_norm" },437 { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },438 { LLM_TENSOR_ATTN_Q_NORM, "blk.%d.attn_q_norm" },439 { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },440 { LLM_TENSOR_ATTN_K_NORM, "blk.%d.attn_k_norm" },441 { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },442 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },443 { LLM_TENSOR_LAYER_OUT_NORM, "blk.%d.layer_output_norm" },444 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },445 { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },446 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },447 { LLM_TENSOR_CLS, "cls" },448 },449 },450 {451 LLM_ARCH_BLOOM,452 {453 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },454 { LLM_TENSOR_TOKEN_EMBD_NORM, "token_embd_norm" },455 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },456 { LLM_TENSOR_OUTPUT, "output" },457 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },458 { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },459 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },460 { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },461 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },462 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },463 },464 },465 {466 LLM_ARCH_STABLELM,467 {468 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },469 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },470 { LLM_TENSOR_OUTPUT, "output" },471 { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },472 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },473 { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },474 { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },475 { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },476 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },477 { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },478 { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },479 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },480 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },481 { LLM_TENSOR_ATTN_Q_NORM, "blk.%d.attn_q_norm" },482 { LLM_TENSOR_ATTN_K_NORM, "blk.%d.attn_k_norm" },483 },484 },485 {486 LLM_ARCH_QWEN,487 {488 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },489 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },490 { LLM_TENSOR_OUTPUT, "output" },491 { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },492 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },493 { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },494 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },495 { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },496 { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },497 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },498 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },499 },500 },501 {502 LLM_ARCH_QWEN2,503 {504 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },505 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },506 { LLM_TENSOR_OUTPUT, "output" },507 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },508 { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },509 { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },510 { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },511 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },512 { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },513 { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },514 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },515 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },516 },517 },518 {519 LLM_ARCH_QWEN2VL,520 {521 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },522 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },523 { LLM_TENSOR_OUTPUT, "output" },524 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },525 { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },526 { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },527 { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },528 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },529 { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },530 { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },531 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },532 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },533 },534 },535 {536 LLM_ARCH_QWEN2MOE,537 {538 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },539 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },540 { LLM_TENSOR_OUTPUT, "output" },541 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },542 { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },543 { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },544 { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },545 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },546 { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },547 { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },548 { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },549 { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },550 { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },551 { LLM_TENSOR_FFN_GATE_INP_SHEXP, "blk.%d.ffn_gate_inp_shexp" },552 { LLM_TENSOR_FFN_GATE_SHEXP, "blk.%d.ffn_gate_shexp" },553 { LLM_TENSOR_FFN_DOWN_SHEXP, "blk.%d.ffn_down_shexp" },554 { LLM_TENSOR_FFN_UP_SHEXP, "blk.%d.ffn_up_shexp" },555 },556 },557 {558 LLM_ARCH_PHI2,559 {560 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },561 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },562 { LLM_TENSOR_OUTPUT, "output" },563 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },564 { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },565 { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },566 { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },567 { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },568 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },569 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },570 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },571 },572 },573 {574 LLM_ARCH_PHI3,575 {576 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },577 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },578 { LLM_TENSOR_OUTPUT, "output" },579 { LLM_TENSOR_ROPE_FACTORS_LONG, "rope_factors_long" },580 { LLM_TENSOR_ROPE_FACTORS_SHORT, "rope_factors_short" },581 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },582 { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },583 { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },584 { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },585 { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },586 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },587 { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },588 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },589 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },590 },591 },592 {593 LLM_ARCH_PHIMOE,594 {595 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },596 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },597 { LLM_TENSOR_OUTPUT, "output" },598 { LLM_TENSOR_ROPE_FACTORS_LONG, "rope_factors_long" },599 { LLM_TENSOR_ROPE_FACTORS_SHORT, "rope_factors_short" },600 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },601 { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },602 { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },603 { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },604 { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },605 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },606 { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },607 { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },608 { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },609 { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },610 { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },611 },612 },613 {614 LLM_ARCH_PLAMO,615 {616 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },617 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },618 { LLM_TENSOR_OUTPUT, "output" },619 { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },620 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },621 { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },622 { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },623 { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },624 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },625 { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },626 { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },627 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },628 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },629 },630 },631 {632 LLM_ARCH_CODESHELL,633 {634 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },635 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },636 { LLM_TENSOR_OUTPUT, "output" },637 { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },638 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },639 { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },640 { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },641 { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },642 { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },643 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },644 { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },645 { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },646 { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },647 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },648 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },649 },650 },651 {652 LLM_ARCH_ORION,653 {654 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },655 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },656 { LLM_TENSOR_OUTPUT, "output" },657 { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },658 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },659 { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },660 { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },661 { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },662 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },663 { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },664 { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },665 { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },666 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },667 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },668 },669 },670 {671 LLM_ARCH_INTERNLM2,672 {673 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },674 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },675 { LLM_TENSOR_OUTPUT, "output" },676 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },677 { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },678 { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },679 { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },680 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },681 { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },682 { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },683 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },684 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },685 },686 },687 {688 LLM_ARCH_MINICPM,689 {690 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },691 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },692 { LLM_TENSOR_OUTPUT, "output" },693 { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },694 { LLM_TENSOR_ROPE_FACTORS_LONG, "rope_factors_long" },695 { LLM_TENSOR_ROPE_FACTORS_SHORT, "rope_factors_short" },696 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },697 { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },698 { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },699 { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },700 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },701 { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },702 { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },703 { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },704 { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },705 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },706 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },707 { LLM_TENSOR_FFN_GATE_EXP, "blk.%d.ffn_gate.%d" },708 { LLM_TENSOR_FFN_DOWN_EXP, "blk.%d.ffn_down.%d" },709 { LLM_TENSOR_FFN_UP_EXP, "blk.%d.ffn_up.%d" },710 },711 },712 {713 LLM_ARCH_MINICPM3,714 {715 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },716 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },717 { LLM_TENSOR_OUTPUT, "output" },718 { LLM_TENSOR_ROPE_FACTORS_LONG, "rope_factors_long" },719 { LLM_TENSOR_ROPE_FACTORS_SHORT, "rope_factors_short" },720 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },721 { LLM_TENSOR_ATTN_Q_A_NORM, "blk.%d.attn_q_a_norm" },722 { LLM_TENSOR_ATTN_KV_A_NORM, "blk.%d.attn_kv_a_norm" },723 { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },724 { LLM_TENSOR_ATTN_Q_A, "blk.%d.attn_q_a" },725 { LLM_TENSOR_ATTN_Q_B, "blk.%d.attn_q_b" },726 { LLM_TENSOR_ATTN_KV_A_MQA, "blk.%d.attn_kv_a_mqa" },727 { LLM_TENSOR_ATTN_KV_B, "blk.%d.attn_kv_b" },728 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },729 { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },730 { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },731 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },732 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },733 },734 },735 {736 LLM_ARCH_GEMMA,737 {738 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },739 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },740 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },741 { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },742 { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },743 { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },744 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },745 { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },746 { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },747 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },748 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },749 },750 },751 {752 LLM_ARCH_GEMMA2,753 {754 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },755 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },756 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },757 { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },758 { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },759 { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },760 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },761 { LLM_TENSOR_ATTN_POST_NORM, "blk.%d.post_attention_norm" },762 { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },763 { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },764 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },765 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },766 { LLM_TENSOR_FFN_POST_NORM, "blk.%d.post_ffw_norm" },767 },768 },769 {770 LLM_ARCH_STARCODER2,771 {772 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },773 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },774 { LLM_TENSOR_OUTPUT, "output" },775 { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },776 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },777 { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },778 { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },779 { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },780 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },781 { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },782 { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },783 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },784 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },785 },786 },787 {788 LLM_ARCH_MAMBA,789 {790 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },791 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },792 { LLM_TENSOR_OUTPUT, "output" },793 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },794 { LLM_TENSOR_SSM_IN, "blk.%d.ssm_in" },795 { LLM_TENSOR_SSM_CONV1D, "blk.%d.ssm_conv1d" },796 { LLM_TENSOR_SSM_X, "blk.%d.ssm_x" },797 { LLM_TENSOR_SSM_DT, "blk.%d.ssm_dt" },798 { LLM_TENSOR_SSM_A, "blk.%d.ssm_a" },799 { LLM_TENSOR_SSM_D, "blk.%d.ssm_d" },800 { LLM_TENSOR_SSM_OUT, "blk.%d.ssm_out" },801 },802 },803 {804 LLM_ARCH_XVERSE,805 {806 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },807 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },808 { LLM_TENSOR_OUTPUT, "output" },809 { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },810 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },811 { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },812 { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },813 { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },814 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },815 { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },816 { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },817 { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },818 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },819 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },820 },821 },822 {823 LLM_ARCH_COMMAND_R,824 {825 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },826 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },827 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },828 { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },829 { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },830 { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },831 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },832 { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },833 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },834 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },835 { LLM_TENSOR_ATTN_Q_NORM, "blk.%d.attn_q_norm" },836 { LLM_TENSOR_ATTN_K_NORM, "blk.%d.attn_k_norm" },837 },838 },839 {840 LLM_ARCH_COHERE2,841 {842 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },843 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },844 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },845 { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },846 { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },847 { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },848 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },849 { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },850 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },851 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },852 },853 },854 {855 LLM_ARCH_DBRX,856 {857 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },858 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },859 { LLM_TENSOR_OUTPUT, "output" },860 { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },861 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },862 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },863 { LLM_TENSOR_ATTN_OUT_NORM, "blk.%d.attn_output_norm" },864 { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },865 { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },866 { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },867 { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },868 },869 },870 {871 LLM_ARCH_OLMO,872 {873 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },874 { LLM_TENSOR_OUTPUT, "output" },875 { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },876 { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },877 { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },878 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },879 { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },880 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },881 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },882 },883 },884 {885 LLM_ARCH_OLMO2,886 {887 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },888 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },889 { LLM_TENSOR_OUTPUT, "output" },890 { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },891 { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },892 { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },893 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },894 { LLM_TENSOR_ATTN_POST_NORM, "blk.%d.post_attention_norm" },895 { LLM_TENSOR_ATTN_Q_NORM, "blk.%d.attn_q_norm" },896 { LLM_TENSOR_ATTN_K_NORM, "blk.%d.attn_k_norm" },897 { LLM_TENSOR_FFN_POST_NORM, "blk.%d.post_ffw_norm" },898 { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },899 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },900 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },901 },902 },903 {904 LLM_ARCH_OLMOE,905 {906 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },907 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },908 { LLM_TENSOR_OUTPUT, "output" },909 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },910 { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },911 { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },912 { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },913 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },914 { LLM_TENSOR_ATTN_Q_NORM, "blk.%d.attn_q_norm" },915 { LLM_TENSOR_ATTN_K_NORM, "blk.%d.attn_k_norm" },916 { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },917 { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },918 { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },919 { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },920 { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },921 },922 },923 {924 LLM_ARCH_OPENELM,925 {926 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },927 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },928 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },929 { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },930 { LLM_TENSOR_ATTN_Q_NORM, "blk.%d.attn_q_norm" },931 { LLM_TENSOR_ATTN_K_NORM, "blk.%d.attn_k_norm" },932 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },933 { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },934 { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },935 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },936 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },937 },938 },939 {940 LLM_ARCH_ARCTIC,941 {942 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },943 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },944 { LLM_TENSOR_OUTPUT, "output" },945 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },946 { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },947 { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },948 { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },949 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },950 { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },951 { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },952 { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },953 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },954 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },955 { LLM_TENSOR_FFN_NORM_EXPS, "blk.%d.ffn_norm_exps" },956 { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },957 { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },958 { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },959 },960 },961 {962 LLM_ARCH_DEEPSEEK,963 {964 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },965 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },966 { LLM_TENSOR_OUTPUT, "output" },967 { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },968 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },969 { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },970 { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },971 { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },972 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },973 { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },974 { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },975 { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },976 { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },977 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },978 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },979 { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },980 { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },981 { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },982 { LLM_TENSOR_FFN_GATE_INP_SHEXP, "blk.%d.ffn_gate_inp_shexp" },983 { LLM_TENSOR_FFN_GATE_SHEXP, "blk.%d.ffn_gate_shexp" },984 { LLM_TENSOR_FFN_DOWN_SHEXP, "blk.%d.ffn_down_shexp" },985 { LLM_TENSOR_FFN_UP_SHEXP, "blk.%d.ffn_up_shexp" },986 },987 },988 {989 LLM_ARCH_DEEPSEEK2,990 {991 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },992 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },993 { LLM_TENSOR_OUTPUT, "output" },994 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },995 { LLM_TENSOR_ATTN_Q_A_NORM, "blk.%d.attn_q_a_norm" },996 { LLM_TENSOR_ATTN_KV_A_NORM, "blk.%d.attn_kv_a_norm" },997 { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },998 { LLM_TENSOR_ATTN_Q_A, "blk.%d.attn_q_a" },999 { LLM_TENSOR_ATTN_Q_B, "blk.%d.attn_q_b" },1000 { LLM_TENSOR_ATTN_KV_A_MQA, "blk.%d.attn_kv_a_mqa" },1001 { LLM_TENSOR_ATTN_KV_B, "blk.%d.attn_kv_b" },1002 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },1003 { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },1004 { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },1005 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },1006 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },1007 { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },1008 { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },1009 { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },1010 { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },1011 { LLM_TENSOR_FFN_GATE_INP_SHEXP, "blk.%d.ffn_gate_inp_shexp" },1012 { LLM_TENSOR_FFN_GATE_SHEXP, "blk.%d.ffn_gate_shexp" },1013 { LLM_TENSOR_FFN_DOWN_SHEXP, "blk.%d.ffn_down_shexp" },1014 { LLM_TENSOR_FFN_UP_SHEXP, "blk.%d.ffn_up_shexp" },1015 { LLM_TENSOR_FFN_EXP_PROBS_B, "blk.%d.exp_probs_b" },1016 },1017 },1018 {1019 LLM_ARCH_CHATGLM,1020 {1021 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },1022 { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },1023 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },1024 { LLM_TENSOR_OUTPUT, "output" },1025 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },1026 { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },1027 { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },1028 { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },1029 { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },1030 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },1031 { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },1032 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },1033 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },1034 },1035 },1036 {1037 LLM_ARCH_BITNET,1038 {1039 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },1040 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },1041 { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },1042 { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },1043 { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },1044 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },1045 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },1046 { LLM_TENSOR_ATTN_SUB_NORM, "blk.%d.attn_sub_norm" },1047 { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },1048 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },1049 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },1050 { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },1051 { LLM_TENSOR_FFN_SUB_NORM, "blk.%d.ffn_sub_norm" },1052 },1053 },1054 {1055 LLM_ARCH_T5,1056 {1057 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },1058 { LLM_TENSOR_OUTPUT, "output" },1059 { LLM_TENSOR_DEC_OUTPUT_NORM, "dec.output_norm" },1060 { LLM_TENSOR_DEC_ATTN_NORM, "dec.blk.%d.attn_norm" },1061 { LLM_TENSOR_DEC_ATTN_Q, "dec.blk.%d.attn_q" },1062 { LLM_TENSOR_DEC_ATTN_K, "dec.blk.%d.attn_k" },1063 { LLM_TENSOR_DEC_ATTN_V, "dec.blk.%d.attn_v" },1064 { LLM_TENSOR_DEC_ATTN_OUT, "dec.blk.%d.attn_o" },1065 { LLM_TENSOR_DEC_ATTN_REL_B, "dec.blk.%d.attn_rel_b" },1066 { LLM_TENSOR_DEC_CROSS_ATTN_NORM, "dec.blk.%d.cross_attn_norm" },1067 { LLM_TENSOR_DEC_CROSS_ATTN_Q, "dec.blk.%d.cross_attn_q" },1068 { LLM_TENSOR_DEC_CROSS_ATTN_K, "dec.blk.%d.cross_attn_k" },1069 { LLM_TENSOR_DEC_CROSS_ATTN_V, "dec.blk.%d.cross_attn_v" },1070 { LLM_TENSOR_DEC_CROSS_ATTN_OUT, "dec.blk.%d.cross_attn_o" },1071 { LLM_TENSOR_DEC_CROSS_ATTN_REL_B, "dec.blk.%d.cross_attn_rel_b" },1072 { LLM_TENSOR_DEC_FFN_NORM, "dec.blk.%d.ffn_norm" },1073 { LLM_TENSOR_DEC_FFN_GATE, "dec.blk.%d.ffn_gate" },1074 { LLM_TENSOR_DEC_FFN_DOWN, "dec.blk.%d.ffn_down" },1075 { LLM_TENSOR_DEC_FFN_UP, "dec.blk.%d.ffn_up" },1076 { LLM_TENSOR_ENC_OUTPUT_NORM, "enc.output_norm" },1077 { LLM_TENSOR_ENC_ATTN_NORM, "enc.blk.%d.attn_norm" },1078 { LLM_TENSOR_ENC_ATTN_Q, "enc.blk.%d.attn_q" },1079 { LLM_TENSOR_ENC_ATTN_K, "enc.blk.%d.attn_k" },1080 { LLM_TENSOR_ENC_ATTN_V, "enc.blk.%d.attn_v" },1081 { LLM_TENSOR_ENC_ATTN_OUT, "enc.blk.%d.attn_o" },1082 { LLM_TENSOR_ENC_ATTN_REL_B, "enc.blk.%d.attn_rel_b" },1083 { LLM_TENSOR_ENC_FFN_NORM, "enc.blk.%d.ffn_norm" },1084 { LLM_TENSOR_ENC_FFN_GATE, "enc.blk.%d.ffn_gate" },1085 { LLM_TENSOR_ENC_FFN_DOWN, "enc.blk.%d.ffn_down" },1086 { LLM_TENSOR_ENC_FFN_UP, "enc.blk.%d.ffn_up" },1087 },1088 },1089 {1090 LLM_ARCH_T5ENCODER,1091 {1092 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },1093 { LLM_TENSOR_OUTPUT, "output" },1094 { LLM_TENSOR_ENC_OUTPUT_NORM, "enc.output_norm" },1095 { LLM_TENSOR_ENC_ATTN_NORM, "enc.blk.%d.attn_norm" },1096 { LLM_TENSOR_ENC_ATTN_Q, "enc.blk.%d.attn_q" },1097 { LLM_TENSOR_ENC_ATTN_K, "enc.blk.%d.attn_k" },1098 { LLM_TENSOR_ENC_ATTN_V, "enc.blk.%d.attn_v" },1099 { LLM_TENSOR_ENC_ATTN_OUT, "enc.blk.%d.attn_o" },1100 { LLM_TENSOR_ENC_ATTN_REL_B, "enc.blk.%d.attn_rel_b" },1101 { LLM_TENSOR_ENC_FFN_NORM, "enc.blk.%d.ffn_norm" },1102 { LLM_TENSOR_ENC_FFN_GATE, "enc.blk.%d.ffn_gate" },1103 { LLM_TENSOR_ENC_FFN_DOWN, "enc.blk.%d.ffn_down" },1104 { LLM_TENSOR_ENC_FFN_UP, "enc.blk.%d.ffn_up" },1105 },1106 },1107 {1108 LLM_ARCH_JAIS,1109 {1110 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },1111 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },1112 { LLM_TENSOR_OUTPUT, "output" },1113 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },1114 { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },1115 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },1116 { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },1117 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },1118 { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },1119 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },1120 },1121 },1122 {1123 LLM_ARCH_NEMOTRON,1124 {1125 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },1126 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },1127 { LLM_TENSOR_OUTPUT, "output" },1128 { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },1129 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },1130 { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },1131 { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },1132 { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },1133 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },1134 { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },1135 { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },1136 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },1137 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },1138 },1139 },1140 {1141 LLM_ARCH_EXAONE,1142 {1143 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },1144 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },1145 { LLM_TENSOR_OUTPUT, "output" },1146 { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },1147 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },1148 { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },1149 { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },1150 { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },1151 { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },1152 { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },1153 { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },1154 { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },1155 { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },1156 { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },1157 },1158 },1159 {1160 LLM_ARCH_RWKV6,1161 {1162 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },1163 { LLM_TENSOR_TOKEN_EMBD_NORM, "token_embd_norm" },1164 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },1165 { LLM_TENSOR_OUTPUT, "output" },1166 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },1167 { LLM_TENSOR_ATTN_NORM_2, "blk.%d.attn_norm_2" },1168 { LLM_TENSOR_TIME_MIX_W1, "blk.%d.time_mix_w1" },1169 { LLM_TENSOR_TIME_MIX_W2, "blk.%d.time_mix_w2" },1170 { LLM_TENSOR_TIME_MIX_LERP_X, "blk.%d.time_mix_lerp_x" },1171 { LLM_TENSOR_TIME_MIX_LERP_W, "blk.%d.time_mix_lerp_w" },1172 { LLM_TENSOR_TIME_MIX_LERP_K, "blk.%d.time_mix_lerp_k" },1173 { LLM_TENSOR_TIME_MIX_LERP_V, "blk.%d.time_mix_lerp_v" },1174 { LLM_TENSOR_TIME_MIX_LERP_R, "blk.%d.time_mix_lerp_r" },1175 { LLM_TENSOR_TIME_MIX_LERP_G, "blk.%d.time_mix_lerp_g" },1176 { LLM_TENSOR_TIME_MIX_LERP_FUSED, "blk.%d.time_mix_lerp_fused" },1177 { LLM_TENSOR_TIME_MIX_FIRST, "blk.%d.time_mix_first" },1178 { LLM_TENSOR_TIME_MIX_DECAY, "blk.%d.time_mix_decay" },1179 { LLM_TENSOR_TIME_MIX_DECAY_W1, "blk.%d.time_mix_decay_w1" },1180 { LLM_TENSOR_TIME_MIX_DECAY_W2, "blk.%d.time_mix_decay_w2" },1181 { LLM_TENSOR_TIME_MIX_KEY, "blk.%d.time_mix_key" },1182 { LLM_TENSOR_TIME_MIX_VALUE, "blk.%d.time_mix_value" },1183 { LLM_TENSOR_TIME_MIX_RECEPTANCE, "blk.%d.time_mix_receptance" },1184 { LLM_TENSOR_TIME_MIX_GATE, "blk.%d.time_mix_gate" },1185 { LLM_TENSOR_TIME_MIX_LN, "blk.%d.time_mix_ln" },1186 { LLM_TENSOR_TIME_MIX_OUTPUT, "blk.%d.time_mix_output" },1187 { LLM_TENSOR_CHANNEL_MIX_LERP_K, "blk.%d.channel_mix_lerp_k" },1188 { LLM_TENSOR_CHANNEL_MIX_LERP_R, "blk.%d.channel_mix_lerp_r" },1189 { LLM_TENSOR_CHANNEL_MIX_KEY, "blk.%d.channel_mix_key" },1190 { LLM_TENSOR_CHANNEL_MIX_VALUE, "blk.%d.channel_mix_value" },1191 { LLM_TENSOR_CHANNEL_MIX_RECEPTANCE, "blk.%d.channel_mix_receptance" },1192 },1193 },1194 {1195 LLM_ARCH_RWKV6QWEN2,1196 {1197 { LLM_TENSOR_TOKEN_EMBD, "token_embd" },1198 { LLM_TENSOR_OUTPUT_NORM, "output_norm" },1199 { LLM_TENSOR_OUTPUT, "output" },1200 { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },