char-fork/llama.cpp
git clone https://git.t4t.associates/char-fork/llama.cpp
98a01afd9
char/aliceai-t5-moe
1#pragma once 2 3#include "ggml.h" // ggml_op 4 5#include <string> 6#include <set> 7#include <vector> 8 9// 10// gguf constants (sync with gguf.py) 11// 12 13enum llm_arch { 14LLM_ARCH_CLIP , 15LLM_ARCH_LLAMA , 16LLM_ARCH_LLAMA4 , 17LLM_ARCH_DECI , 18LLM_ARCH_FALCON , 19LLM_ARCH_BAICHUAN , 20LLM_ARCH_GROK , 21LLM_ARCH_GPT2 , 22LLM_ARCH_GPTJ , 23LLM_ARCH_GPTNEOX , 24LLM_ARCH_MPT , 25LLM_ARCH_STARCODER , 26LLM_ARCH_REFACT , 27LLM_ARCH_BERT , 28LLM_ARCH_MODERN_BERT , 29LLM_ARCH_NOMIC_BERT , 30LLM_ARCH_NOMIC_BERT_MOE , 31LLM_ARCH_NEO_BERT , 32LLM_ARCH_JINA_BERT_V2 , 33LLM_ARCH_JINA_BERT_V3 , 34LLM_ARCH_EUROBERT , 35LLM_ARCH_BLOOM , 36LLM_ARCH_STABLELM , 37LLM_ARCH_QWEN , 38LLM_ARCH_QWEN2 , 39LLM_ARCH_QWEN2MOE , 40LLM_ARCH_QWEN2VL , 41LLM_ARCH_QWEN3 , 42LLM_ARCH_QWEN3MOE , 43LLM_ARCH_QWEN3NEXT , 44LLM_ARCH_QWEN3VL , 45LLM_ARCH_QWEN3VLMOE , 46LLM_ARCH_QWEN35 , 47LLM_ARCH_QWEN35MOE , 48LLM_ARCH_QWEN4EXP , 49LLM_ARCH_PHI2 , 50LLM_ARCH_PHI3 , 51LLM_ARCH_PHIMOE , 52LLM_ARCH_PLAMO , 53LLM_ARCH_PLAMO2 , 54LLM_ARCH_PLAMO3 , 55LLM_ARCH_CODESHELL , 56LLM_ARCH_ORION , 57LLM_ARCH_INTERNLM2 , 58LLM_ARCH_MINICPM , 59LLM_ARCH_MINICPM3 , 60LLM_ARCH_GEMMA , 61LLM_ARCH_GEMMA2 , 62LLM_ARCH_GEMMA3 , 63LLM_ARCH_GEMMA3N , 64LLM_ARCH_GEMMA4 , 65LLM_ARCH_GEMMA4_ASSISTANT , 66LLM_ARCH_GEMMA_EMBEDDING , 67LLM_ARCH_STARCODER2 , 68LLM_ARCH_MAMBA , 69LLM_ARCH_MAMBA2 , 70LLM_ARCH_MAPLE , 71LLM_ARCH_JAMBA , 72LLM_ARCH_FALCON_H1 , 73LLM_ARCH_XVERSE , 74LLM_ARCH_COMMAND_R , 75LLM_ARCH_COHERE2 , 76LLM_ARCH_COHERE2MOE , 77LLM_ARCH_DBRX , 78LLM_ARCH_OLMO , 79LLM_ARCH_OLMO2 , 80LLM_ARCH_OLMOE , 81LLM_ARCH_MUSE_GLIMMER , 82LLM_ARCH_OPENELM , 83LLM_ARCH_ARCTIC , 84LLM_ARCH_DEEPSEEK , 85LLM_ARCH_DEEPSEEK2 , 86LLM_ARCH_DEEPSEEK2OCR , 87LLM_ARCH_DEEPSEEK32 , 88LLM_ARCH_DEEPSEEK4 , 89LLM_ARCH_CHATGLM , 90LLM_ARCH_GLM4 , 91LLM_ARCH_GLM4_MOE , 92LLM_ARCH_GLM_DSA , 93LLM_ARCH_BITNET , 94LLM_ARCH_T5 , 95LLM_ARCH_T5ENCODER , 96LLM_ARCH_ALICEAI_T5_MOE , 97LLM_ARCH_JAIS , 98LLM_ARCH_JAIS2 , 99LLM_ARCH_NEMOTRON , 100LLM_ARCH_NEMOTRON_H , 101LLM_ARCH_NEMOTRON_H_MOE , 102LLM_ARCH_EXAONE , 103LLM_ARCH_EXAONE4 , 104LLM_ARCH_EXAONE_MOE , 105LLM_ARCH_RWKV6 , 106LLM_ARCH_RWKV6QWEN2 , 107LLM_ARCH_RWKV7 , 108LLM_ARCH_ARWKV7 , 109LLM_ARCH_GRANITE , 110LLM_ARCH_GRANITE_MOE , 111LLM_ARCH_GRANITE_HYBRID , 112LLM_ARCH_GRANITE_SWITCH , 113LLM_ARCH_GRANITE_SWA , 114LLM_ARCH_CHAMELEON , 115LLM_ARCH_WAVTOKENIZER_DEC , 116LLM_ARCH_PLM , 117LLM_ARCH_BAILINGMOE , 118LLM_ARCH_BAILINGMOE2 , 119LLM_ARCH_BAILINGMOE3 , 120LLM_ARCH_DOTS1 , 121LLM_ARCH_DOTS3NOTE , 122LLM_ARCH_ARCEE , 123LLM_ARCH_AFMOE , 124LLM_ARCH_LAGUNA , 125LLM_ARCH_ERNIE4_5 , 126LLM_ARCH_ERNIE4_5_MOE , 127LLM_ARCH_HUNYUAN_MOE , 128LLM_ARCH_HUNYUAN_DENSE , 129LLM_ARCH_HUNYUAN_VL , 130LLM_ARCH_HY_V3 , 131LLM_ARCH_HY_V4 , 132LLM_ARCH_SMOLLM3 , 133LLM_ARCH_OPENAI_MOE , 134LLM_ARCH_LFM2 , 135LLM_ARCH_LFM2MOE , 136LLM_ARCH_DREAM , 137LLM_ARCH_SMALLTHINKER , 138LLM_ARCH_LLADA , 139LLM_ARCH_LLADA_MOE , 140LLM_ARCH_SEED_OSS , 141LLM_ARCH_GROVEMOE , 142LLM_ARCH_APERTUS , 143LLM_ARCH_MINIMAX_M2 , 144LLM_ARCH_COGVLM , 145LLM_ARCH_RND1 , 146LLM_ARCH_PANGU_EMBED , 147LLM_ARCH_MISTRAL3 , 148LLM_ARCH_MISTRAL4 , 149LLM_ARCH_PADDLEOCR , 150LLM_ARCH_MIMO2 , 151LLM_ARCH_STEP35 , 152LLM_ARCH_SPARK2_5 , 153LLM_ARCH_LLAMA_EMBED , 154LLM_ARCH_MAINCODER , 155LLM_ARCH_KIMI_LINEAR , 156LLM_ARCH_KIMI_K3 , 157LLM_ARCH_TALKIE , 158LLM_ARCH_MELLUM , 159LLM_ARCH_EAGLE3 , 160LLM_ARCH_MINIMAX_M3 , 161LLM_ARCH_DFLASH , 162LLM_ARCH_NANBEIGE , 163LLM_ARCH_QWEN3TTS , 164LLM_ARCH_POCKETTTS , 165LLM_ARCH_MINIMAX_01 , 166LLM_ARCH_UNKNOWN , 167}; 168 169enum llm_kv { 170LLM_KV_GENERAL_TYPE , 171LLM_KV_GENERAL_ARCHITECTURE , 172LLM_KV_GENERAL_QUANTIZATION_VERSION , 173LLM_KV_GENERAL_ALIGNMENT , 174LLM_KV_GENERAL_FILE_TYPE , 175LLM_KV_GENERAL_SAMPLING_SEQUENCE , 176LLM_KV_GENERAL_SAMPLING_TOP_K , 177LLM_KV_GENERAL_SAMPLING_TOP_P , 178LLM_KV_GENERAL_SAMPLING_MIN_P , 179LLM_KV_GENERAL_SAMPLING_XTC_PROBABILITY , 180LLM_KV_GENERAL_SAMPLING_XTC_THRESHOLD , 181LLM_KV_GENERAL_SAMPLING_TEMP , 182LLM_KV_GENERAL_SAMPLING_PENALTY_LAST_N , 183LLM_KV_GENERAL_SAMPLING_PENALTY_REPEAT , 184LLM_KV_GENERAL_SAMPLING_MIROSTAT , 185LLM_KV_GENERAL_SAMPLING_MIROSTAT_TAU , 186LLM_KV_GENERAL_SAMPLING_MIROSTAT_ETA , 187LLM_KV_GENERAL_NAME , 188LLM_KV_GENERAL_AUTHOR , 189LLM_KV_GENERAL_VERSION , 190LLM_KV_GENERAL_URL , 191LLM_KV_GENERAL_DESCRIPTION , 192LLM_KV_GENERAL_LICENSE , 193LLM_KV_GENERAL_SOURCE_URL , 194LLM_KV_GENERAL_SOURCE_HF_REPO , 195 196LLM_KV_VOCAB_SIZE , 197LLM_KV_CONTEXT_LENGTH , 198LLM_KV_EMBEDDING_LENGTH , 199LLM_KV_EMBEDDING_LENGTH_OUT , 200LLM_KV_EMBEDDING_LENGTH_PER_LAYER , 201LLM_KV_FEATURES_LENGTH , 202LLM_KV_BLOCK_COUNT , 203LLM_KV_LEADING_DENSE_BLOCK_COUNT , 204LLM_KV_ATTN_RES_BLOCK_SIZE , 205LLM_KV_ACTIVATION_SITU_BETA , 206LLM_KV_ACTIVATION_SITU_LINEAR_BETA , 207LLM_KV_FEED_FORWARD_LENGTH , 208LLM_KV_EXPERT_FEED_FORWARD_LENGTH , 209LLM_KV_EXPERT_SHARED_FEED_FORWARD_LENGTH , 210LLM_KV_EXPERT_CHUNK_FEED_FORWARD_LENGTH , 211LLM_KV_SWIGLU_CLAMP_EXP , 212LLM_KV_SWIGLU_CLAMP_SHEXP , 213LLM_KV_USE_PARALLEL_RESIDUAL , 214LLM_KV_TENSOR_DATA_LAYOUT , 215LLM_KV_EXPERT_COUNT , 216LLM_KV_EXPERT_USED_COUNT , 217LLM_KV_EXPERT_SHARED_COUNT , 218LLM_KV_EXPERT_GROUP_COUNT , 219LLM_KV_EXPERT_GROUP_USED_COUNT , 220LLM_KV_EXPERT_WEIGHTS_SCALE , 221LLM_KV_EXPERT_WEIGHTS_NORM , 222LLM_KV_EXPERT_LATENT_LENGTH , 223LLM_KV_EXPERT_GATING_FUNC , 224LLM_KV_EXPERT_GROUP_SCALE , 225LLM_KV_EXPERTS_PER_GROUP , 226LLM_KV_MOE_EVERY_N_LAYERS , 227LLM_KV_MOE_LATENT_SIZE , 228LLM_KV_NEXTN_PREDICT_LAYERS , 229LLM_KV_NUM_DEEPSTACK_LAYERS , 230LLM_KV_DEEPSTACK_MAPPING , 231LLM_KV_HIDDEN_ACT , 232LLM_KV_POOLING_TYPE , 233LLM_KV_LOGIT_SCALE , 234LLM_KV_DECODER_START_TOKEN_ID , 235LLM_KV_DECODER_BLOCK_COUNT , 236LLM_KV_ENCODER_ATTENTION_HEAD_COUNT_KV , 237LLM_KV_ATTN_LOGIT_SOFTCAPPING , 238LLM_KV_ROUTER_LOGIT_SOFTCAPPING , 239LLM_KV_FINAL_LOGIT_SOFTCAPPING , 240LLM_KV_SWIN_NORM , 241LLM_KV_RESCALE_EVERY_N_LAYERS , 242LLM_KV_TIME_MIX_EXTRA_DIM , 243LLM_KV_TIME_DECAY_EXTRA_DIM , 244LLM_KV_RESIDUAL_SCALE , 245LLM_KV_EMBEDDING_SCALE , 246LLM_KV_ADAPTER_COUNT , 247LLM_KV_ADAPTER_TOKEN_IDS_ACTIVATE , 248LLM_KV_ADAPTER_TOKEN_IDS_SUBSTITUTE , 249LLM_KV_ADAPTER_LORA_RANK , 250LLM_KV_ADAPTER_ROUTER_GAIN , 251LLM_KV_TOKEN_SHIFT_COUNT , 252LLM_KV_INTERLEAVE_MOE_LAYER_STEP , 253LLM_KV_FULL_ATTENTION_INTERVAL , 254LLM_KV_NUM_LOOPS , 255LLM_KV_SKIP_LOOP_FINAL_NORM , 256 257LLM_KV_ATTENTION_HEAD_COUNT , 258LLM_KV_ATTENTION_HEAD_COUNT_KV , 259LLM_KV_ATTENTION_MAX_ALIBI_BIAS , 260LLM_KV_ATTENTION_CLAMP_KQV , 261LLM_KV_ATTENTION_KEY_LENGTH , 262LLM_KV_ATTENTION_VALUE_LENGTH , 263LLM_KV_ATTENTION_LAYERNORM_EPS , 264LLM_KV_ATTENTION_LAYERNORM_RMS_EPS , 265LLM_KV_ATTENTION_GROUPNORM_EPS , 266LLM_KV_ATTENTION_GROUPNORM_GROUPS , 267LLM_KV_ATTENTION_CAUSAL , 268LLM_KV_ATTENTION_Q_LORA_RANK , 269LLM_KV_ATTENTION_KV_LORA_RANK , 270LLM_KV_ATTENTION_DECAY_LORA_RANK , 271LLM_KV_ATTENTION_ICLR_LORA_RANK , 272LLM_KV_ATTENTION_VALUE_RESIDUAL_MIX_LORA_RANK , 273LLM_KV_ATTENTION_GATE_LORA_RANK , 274LLM_KV_ATTENTION_RELATIVE_BUCKETS_COUNT , 275LLM_KV_ATTENTION_SLIDING_WINDOW , 276LLM_KV_ATTENTION_SLIDING_WINDOW_PATTERN , 277LLM_KV_ATTENTION_SCALE , 278LLM_KV_ATTENTION_ROPE_PATTERN , 279 280LLM_KV_ATTENTION_OUTPUT_SCALE , 281LLM_KV_ATTENTION_VALUE_SCALE , 282LLM_KV_ATTENTION_TEMPERATURE_LENGTH , 283LLM_KV_ATTENTION_TEMPERATURE_SCALE , 284LLM_KV_ATTENTION_KEY_LENGTH_MLA , 285LLM_KV_ATTENTION_VALUE_LENGTH_MLA , 286LLM_KV_ATTENTION_KEY_LENGTH_SWA , 287LLM_KV_ATTENTION_VALUE_LENGTH_SWA , 288LLM_KV_ATTENTION_KEY_LENGTH_MLA_SWA , 289LLM_KV_ATTENTION_VALUE_LENGTH_MLA_SWA , 290LLM_KV_ATTENTION_KV_LORA_RANK_SWA , 291LLM_KV_ATTENTION_INDEXER_HEAD_COUNT , 292LLM_KV_ATTENTION_INDEXER_KEY_LENGTH , 293LLM_KV_ATTENTION_INDEXER_TOP_K , 294LLM_KV_ATTENTION_INDEXER_BLOCK_SIZE , 295LLM_KV_ATTENTION_INDEXER_LOCAL_BLOCKS , 296LLM_KV_ATTENTION_INDEXER_TYPES , 297LLM_KV_ATTENTION_OUTPUT_GROUP_COUNT , 298LLM_KV_ATTENTION_OUTPUT_LORA_RANK , 299LLM_KV_ATTENTION_COMPRESS_ROPE_FREQ_BASE , 300LLM_KV_ATTENTION_COMPRESS_RATIOS , 301LLM_KV_ATTENTION_SHARED_KV_LAYERS , 302LLM_KV_ATTENTION_RECURRENT_LAYERS , 303 304LLM_KV_HYPER_CONNECTION_COUNT , 305LLM_KV_HYPER_CONNECTION_SINKHORN_ITERATIONS , 306LLM_KV_HYPER_CONNECTION_EPSILON , 307LLM_KV_HYPER_CONNECTION_MAGNITUDE , 308LLM_KV_HYPER_CONNECTION_LOW_RANK , 309 310LLM_KV_PLE_LAYERS , 311LLM_KV_PLE_NGRAM_SIZE , 312LLM_KV_PLE_HEADS_PER_NGRAM , 313LLM_KV_PLE_CONV_KERNEL , 314LLM_KV_PLE_LAYER_MULTIPLIERS , 315LLM_KV_PLE_HEAD_OFFSETS , 316LLM_KV_PLE_HEAD_VOCAB_SIZES , 317LLM_KV_PLE_EOS_TOKEN_ID , 318LLM_KV_PLE_IMAGE_TOKEN_ID , 319 320LLM_KV_HASH_LAYER_COUNT , 321 322LLM_KV_ROPE_DIMENSION_COUNT , 323LLM_KV_ROPE_DIMENSION_COUNT_SWA , 324LLM_KV_ROPE_DIMENSION_SECTIONS , 325LLM_KV_ROPE_FREQ_BASE , 326LLM_KV_ROPE_FREQ_BASE_SWA , 327LLM_KV_ROPE_SCALE_LINEAR , 328LLM_KV_ROPE_SCALING_TYPE , 329LLM_KV_ROPE_SCALING_FACTOR , 330LLM_KV_ROPE_SCALING_ALPHA , 331LLM_KV_ROPE_SCALING_ATTN_FACTOR , 332LLM_KV_ROPE_SCALING_ORIG_CTX_LEN , 333LLM_KV_ROPE_SCALING_FINETUNED , 334LLM_KV_ROPE_SCALING_YARN_LOG_MUL , 335LLM_KV_ROPE_SCALING_YARN_EXT_FACTOR , 336LLM_KV_ROPE_SCALING_YARN_ATTN_FACTOR , 337LLM_KV_ROPE_SCALING_YARN_BETA_FAST , 338LLM_KV_ROPE_SCALING_YARN_BETA_SLOW , 339 340LLM_KV_SPLIT_NO , 341LLM_KV_SPLIT_COUNT , 342LLM_KV_SPLIT_TENSORS_COUNT , 343 344LLM_KV_SSM_INNER_SIZE , 345LLM_KV_SSM_CONV_KERNEL , 346LLM_KV_SSM_STATE_SIZE , 347LLM_KV_SSM_TIME_STEP_RANK , 348LLM_KV_SSM_GROUP_COUNT , 349LLM_KV_SSM_DT_B_C_RMS , 350 351LLM_KV_KDA_HEAD_DIM , 352LLM_KV_KDA_SAFE_GATE , 353LLM_KV_KDA_GATE_LOWER_BOUND , 354 355LLM_KV_WKV_HEAD_SIZE , 356 357LLM_KV_TOKENIZER_MODEL , 358LLM_KV_TOKENIZER_PRE , 359LLM_KV_TOKENIZER_LIST , 360LLM_KV_TOKENIZER_TOKEN_TYPE , 361LLM_KV_TOKENIZER_TOKEN_TYPE_COUNT , 362LLM_KV_TOKENIZER_SCORES , 363LLM_KV_TOKENIZER_MERGES , 364LLM_KV_TOKENIZER_BOS_ID , 365LLM_KV_TOKENIZER_EOS_ID , 366LLM_KV_TOKENIZER_EOT_ID , 367LLM_KV_TOKENIZER_EOM_ID , 368LLM_KV_TOKENIZER_UNK_ID , 369LLM_KV_TOKENIZER_SEP_ID , 370LLM_KV_TOKENIZER_PAD_ID , 371LLM_KV_TOKENIZER_CLS_ID , 372LLM_KV_TOKENIZER_MASK_ID , 373LLM_KV_TOKENIZER_ADD_BOS , 374LLM_KV_TOKENIZER_ADD_EOS , 375LLM_KV_TOKENIZER_ADD_SEP , 376LLM_KV_TOKENIZER_ADD_PREFIX , 377LLM_KV_TOKENIZER_REMOVE_EXTRA_WS , 378LLM_KV_TOKENIZER_PRECOMPILED_CHARSMAP , 379LLM_KV_TOKENIZER_HF_JSON , 380LLM_KV_TOKENIZER_RWKV , 381LLM_KV_TOKENIZER_CHAT_TEMPLATE , 382LLM_KV_TOKENIZER_NORMALIZER_LOWERCASE , 383LLM_KV_TOKENIZER_NORMALIZER_STRIP_ACCENTS , 384LLM_KV_TOKENIZER_FIM_PRE_ID , 385LLM_KV_TOKENIZER_FIM_SUF_ID , 386LLM_KV_TOKENIZER_FIM_MID_ID , 387LLM_KV_TOKENIZER_FIM_PAD_ID , 388LLM_KV_TOKENIZER_FIM_REP_ID , 389LLM_KV_TOKENIZER_FIM_SEP_ID , 390LLM_KV_TOKENIZER_SUPPRESS_TOKENS , 391 392LLM_KV_ADAPTER_TYPE , 393LLM_KV_ADAPTER_LORA_ALPHA , 394LLM_KV_ADAPTER_LORA_TASK_NAME , 395LLM_KV_ADAPTER_LORA_PROMPT_PREFIX , 396LLM_KV_ADAPTER_ALORA_INVOCATION_TOKENS , 397 398LLM_KV_POSNET_EMBEDDING_LENGTH , 399LLM_KV_POSNET_BLOCK_COUNT , 400 401LLM_KV_CONVNEXT_EMBEDDING_LENGTH , 402LLM_KV_CONVNEXT_BLOCK_COUNT , 403 404LLM_KV_CLASSIFIER_OUTPUT_LABELS , 405 406LLM_KV_TARGET_LAYERS , 407LLM_KV_TARGET_HIDDEN_SIZE , 408LLM_KV_DFLASH_BLOCK_SIZE , 409LLM_KV_DFLASH_CONV_KERNEL_SIZE , 410LLM_KV_DFLASH_CONV_GROUP_SIZE , 411LLM_KV_DFLASH_SELECTOR_RANK , 412LLM_KV_DFLASH_SELECTOR_TOP_K , 413LLM_KV_NORM_BEFORE_RESIDUAL , 414LLM_KV_NORM_BEFORE_FC , 415 416LLM_KV_SHORTCONV_L_CACHE , 417 418LLM_KV_XIELU_ALPHA_N , 419LLM_KV_XIELU_ALPHA_P , 420LLM_KV_XIELU_BETA , 421LLM_KV_XIELU_EPS , 422 423// deprecated: 424LLM_KV_TOKENIZER_PREFIX_ID , 425LLM_KV_TOKENIZER_SUFFIX_ID , 426LLM_KV_TOKENIZER_MIDDLE_ID , 427 428// sentence-transformers dense layers in and out features 429LLM_KV_DENSE_2_FEAT_IN , 430LLM_KV_DENSE_2_FEAT_OUT , 431LLM_KV_DENSE_3_FEAT_IN , 432LLM_KV_DENSE_3_FEAT_OUT , 433}; 434 435enum llm_tensor { 436LLM_TENSOR_TOKEN_EMBD , 437LLM_TENSOR_TOKEN_EMBD_NORM , 438LLM_TENSOR_TOKEN_TYPES , 439LLM_TENSOR_POS_EMBD , 440LLM_TENSOR_DENSE_2_OUT , 441LLM_TENSOR_DENSE_3_OUT , 442LLM_TENSOR_OUTPUT , 443LLM_TENSOR_OUTPUT_NORM , 444LLM_TENSOR_OUTPUT_NORM_LFM2 ,// fix for wrong tensor name 445LLM_TENSOR_ROPE_FREQS , 446LLM_TENSOR_ROPE_FACTORS_LONG , 447LLM_TENSOR_ROPE_FACTORS_SHORT , 448LLM_TENSOR_ATTN_Q , 449LLM_TENSOR_ATTN_K , 450LLM_TENSOR_ATTN_V , 451LLM_TENSOR_ATTN_QKV , 452LLM_TENSOR_ATTN_OUT , 453LLM_TENSOR_ATTN_NORM , 454LLM_TENSOR_ATTN_NORM_2 , 455LLM_TENSOR_ATTN_OUT_NORM , 456LLM_TENSOR_ATTN_POST_NORM , 457LLM_TENSOR_ATTN_ROT_EMBD , 458LLM_TENSOR_ATTN_SINKS , 459LLM_TENSOR_ATTN_GATE , 460LLM_TENSOR_FFN_GATE_INP , 461LLM_TENSOR_FFN_GATE_INP_SHEXP , 462LLM_TENSOR_FFN_NORM , 463LLM_TENSOR_FFN_POST_NORM , 464LLM_TENSOR_FFN_POST_NORM_1 , 465LLM_TENSOR_FFN_POST_NORM_2 , 466LLM_TENSOR_FFN_PRE_NORM_2 , 467LLM_TENSOR_FFN_GATE , 468LLM_TENSOR_FFN_DOWN , 469LLM_TENSOR_FFN_UP , 470LLM_TENSOR_FFN_ACT , 471LLM_TENSOR_FFN_DOWN_EXP ,// split experts for backward compatibility 472LLM_TENSOR_FFN_GATE_EXP , 473LLM_TENSOR_FFN_UP_EXP , 474LLM_TENSOR_FFN_NORM_EXPS , 475LLM_TENSOR_FFN_DOWN_EXPS ,// merged experts 476LLM_TENSOR_FFN_GATE_EXPS , 477LLM_TENSOR_FFN_UP_EXPS , 478LLM_TENSOR_FFN_GATE_UP_EXPS , 479LLM_TENSOR_FFN_DOWN_SHEXP , 480LLM_TENSOR_FFN_GATE_SHEXP , 481LLM_TENSOR_FFN_UP_SHEXP , 482LLM_TENSOR_FFN_DOWN_CHEXPS , 483LLM_TENSOR_FFN_GATE_CHEXPS , 484LLM_TENSOR_FFN_UP_CHEXPS , 485LLM_TENSOR_FFN_EXP_PROBS_B , 486LLM_TENSOR_FFN_EXP_PROBS_B_VL , 487LLM_TENSOR_FFN_LATENT_DOWN , 488LLM_TENSOR_FFN_LATENT_UP , 489LLM_TENSOR_ATTN_Q_NORM , 490LLM_TENSOR_ATTN_K_NORM , 491LLM_TENSOR_LAYER_OUT_NORM , 492LLM_TENSOR_LAYER_OUT_SCALE , 493LLM_TENSOR_POST_ATTN_NORM , 494LLM_TENSOR_POST_MLP_NORM , 495LLM_TENSOR_PER_LAYER_TOKEN_EMBD ,// gemma3n 496LLM_TENSOR_PER_LAYER_MODEL_PROJ ,// gemma3n 497LLM_TENSOR_PER_LAYER_INP_GATE ,// gemma3n 498LLM_TENSOR_PER_LAYER_PROJ ,// gemma3n 499LLM_TENSOR_PER_LAYER_PROJ_NORM ,// gemma3n 500LLM_TENSOR_PER_LAYER_POST_NORM ,// gemma3n 501LLM_TENSOR_ALTUP_PROJ ,// gemma3n 502LLM_TENSOR_ALTUP_UNEMBD_PROJ ,// gemma3n 503LLM_TENSOR_ALTUP_CORRECT_COEF ,// gemma3n 504LLM_TENSOR_ALTUP_CORRECT_SCALE ,// gemma3n 505LLM_TENSOR_ALTUP_PREDICT_COEF ,// gemma3n 506LLM_TENSOR_ALTUP_ROUTER ,// gemma3n 507LLM_TENSOR_ALTUP_ROUTER_NORM ,// gemma3n 508LLM_TENSOR_LAUREL_L ,// gemma3n 509LLM_TENSOR_LAUREL_R ,// gemma3n 510LLM_TENSOR_LAUREL_POST_NORM ,// gemma3n 511LLM_TENSOR_SSM_IN , 512LLM_TENSOR_SSM_CONV1D , 513LLM_TENSOR_SSM_X , 514LLM_TENSOR_SSM_DT , 515LLM_TENSOR_SSM_DT_NORM , 516LLM_TENSOR_SSM_A , 517LLM_TENSOR_SSM_A_NOSCAN ,// qwen3next special case with MUL instead of SSM_SCAN 518LLM_TENSOR_SSM_B_NORM , 519LLM_TENSOR_SSM_C_NORM , 520LLM_TENSOR_SSM_D , 521LLM_TENSOR_SSM_NORM , 522LLM_TENSOR_SSM_OUT , 523LLM_TENSOR_SSM_BETA_ALPHA ,// qwen3next 524LLM_TENSOR_SSM_ALPHA ,// qwen3.5 525// Kimi Linear KDA (using SSM_ prefix for consistency) 526LLM_TENSOR_SSM_CONV1D_Q ,// kimi: Q conv1d weight 527LLM_TENSOR_SSM_CONV1D_K ,// kimi: K conv1d weight 528LLM_TENSOR_SSM_CONV1D_V ,// kimi: V conv1d weight 529LLM_TENSOR_SSM_F_A ,// kimi: forget gate projection A 530LLM_TENSOR_SSM_F_B ,// kimi: forget gate projection B 531LLM_TENSOR_SSM_BETA ,// kimi: beta mixing coefficient and qwen3.5 532LLM_TENSOR_SSM_G_A ,// kimi: output gate projection A 533LLM_TENSOR_SSM_G_B ,// kimi: output gate projection B 534LLM_TENSOR_SSM_G ,// kimi-k3: full-rank KDA gate 535LLM_TENSOR_ATTN_RES_SCORE ,// kimi-k3: fused res_norm*res_proj (pre-attn) 536LLM_TENSOR_FFN_RES_SCORE ,// kimi-k3: fused res_norm*res_proj (pre-ffn) 537LLM_TENSOR_OUTPUT_RES_SCORE ,// kimi-k3: fused res_norm*res_proj (final) 538LLM_TENSOR_FFN_ROUTED_DOWN ,// kimi-k3: latent MoE down 539LLM_TENSOR_FFN_ROUTED_UP ,// kimi-k3: latent MoE up 540LLM_TENSOR_FFN_ROUTED_NORM ,// kimi-k3: latent MoE norm 541LLM_TENSOR_TIME_MIX_W0 , 542LLM_TENSOR_TIME_MIX_W1 , 543LLM_TENSOR_TIME_MIX_W2 , 544LLM_TENSOR_TIME_MIX_A0 , 545LLM_TENSOR_TIME_MIX_A1 , 546LLM_TENSOR_TIME_MIX_A2 , 547LLM_TENSOR_TIME_MIX_V0 , 548LLM_TENSOR_TIME_MIX_V1 , 549LLM_TENSOR_TIME_MIX_V2 , 550LLM_TENSOR_TIME_MIX_G1 , 551LLM_TENSOR_TIME_MIX_G2 , 552LLM_TENSOR_TIME_MIX_K_K , 553LLM_TENSOR_TIME_MIX_K_A , 554LLM_TENSOR_TIME_MIX_R_K , 555LLM_TENSOR_TIME_MIX_LERP_X , 556LLM_TENSOR_TIME_MIX_LERP_W , 557LLM_TENSOR_TIME_MIX_LERP_K , 558LLM_TENSOR_TIME_MIX_LERP_V , 559LLM_TENSOR_TIME_MIX_LERP_R , 560LLM_TENSOR_TIME_MIX_LERP_G , 561LLM_TENSOR_TIME_MIX_LERP_FUSED , 562LLM_TENSOR_TIME_MIX_FIRST , 563LLM_TENSOR_TIME_MIX_DECAY , 564LLM_TENSOR_TIME_MIX_DECAY_W1 , 565LLM_TENSOR_TIME_MIX_DECAY_W2 , 566LLM_TENSOR_TIME_MIX_KEY , 567LLM_TENSOR_TIME_MIX_VALUE , 568LLM_TENSOR_TIME_MIX_RECEPTANCE , 569LLM_TENSOR_TIME_MIX_GATE , 570LLM_TENSOR_TIME_MIX_LN , 571LLM_TENSOR_TIME_MIX_OUTPUT , 572LLM_TENSOR_CHANNEL_MIX_LERP_K , 573LLM_TENSOR_CHANNEL_MIX_LERP_R , 574LLM_TENSOR_CHANNEL_MIX_KEY , 575LLM_TENSOR_CHANNEL_MIX_RECEPTANCE , 576LLM_TENSOR_CHANNEL_MIX_VALUE , 577LLM_TENSOR_ATTN_Q_A , 578LLM_TENSOR_ATTN_Q_B , 579LLM_TENSOR_ATTN_KV_A_MQA , 580LLM_TENSOR_ATTN_KV_B , 581LLM_TENSOR_ATTN_KV , 582LLM_TENSOR_ATTN_KV_NORM , 583LLM_TENSOR_ATTN_OUT_A , 584LLM_TENSOR_ATTN_OUT_B , 585LLM_TENSOR_ATTN_K_B , 586LLM_TENSOR_ATTN_V_B , 587LLM_TENSOR_ATTN_Q_A_NORM , 588LLM_TENSOR_ATTN_KV_A_NORM , 589LLM_TENSOR_HC_HEAD_FN , 590LLM_TENSOR_HC_HEAD_BASE , 591LLM_TENSOR_HC_HEAD_SCALE , 592LLM_TENSOR_HC_HEAD_NORM ,// qwen4exp 593LLM_TENSOR_HC_HEAD_DOWN ,// qwen4exp 594LLM_TENSOR_HC_HEAD_UP ,// qwen4exp 595LLM_TENSOR_HC_ATTN_FN , 596LLM_TENSOR_HC_ATTN_BASE , 597LLM_TENSOR_HC_ATTN_SCALE , 598LLM_TENSOR_HC_FFN_FN , 599LLM_TENSOR_HC_FFN_BASE , 600LLM_TENSOR_HC_FFN_SCALE , 601LLM_TENSOR_HC_ATTN_NORM ,// qwen4exp 602LLM_TENSOR_HC_ATTN_DOWN ,// qwen4exp 603LLM_TENSOR_HC_ATTN_UP ,// qwen4exp 604LLM_TENSOR_HC_ATTN_INJECT ,// qwen4exp 605LLM_TENSOR_HC_FFN_NORM ,// qwen4exp 606LLM_TENSOR_HC_FFN_DOWN ,// qwen4exp 607LLM_TENSOR_HC_FFN_UP ,// qwen4exp 608LLM_TENSOR_HC_FFN_INJECT ,// qwen4exp 609LLM_TENSOR_PLE_KEY ,// qwen4exp 610LLM_TENSOR_PLE_VALUE ,// qwen4exp 611LLM_TENSOR_PLE_NORM_KEY ,// qwen4exp 612LLM_TENSOR_PLE_NORM_QUERY ,// qwen4exp 613LLM_TENSOR_PLE_NORM_CONV ,// qwen4exp 614LLM_TENSOR_PLE_CONV1D ,// qwen4exp 615LLM_TENSOR_ATTN_COMPRESSOR_WKV , 616LLM_TENSOR_ATTN_COMPRESSOR_WGATE , 617LLM_TENSOR_ATTN_COMPRESSOR_APE , 618LLM_TENSOR_ATTN_COMPRESSOR_NORM , 619LLM_TENSOR_ATTN_SUB_NORM , 620LLM_TENSOR_FFN_SUB_NORM , 621LLM_TENSOR_DEC_ATTN_NORM , 622LLM_TENSOR_DEC_ATTN_Q , 623LLM_TENSOR_DEC_ATTN_K , 624LLM_TENSOR_DEC_ATTN_V , 625LLM_TENSOR_DEC_ATTN_OUT , 626LLM_TENSOR_DEC_ATTN_REL_B , 627LLM_TENSOR_DEC_CROSS_ATTN_NORM , 628LLM_TENSOR_DEC_CROSS_ATTN_Q , 629LLM_TENSOR_DEC_CROSS_ATTN_K , 630LLM_TENSOR_DEC_CROSS_ATTN_V , 631LLM_TENSOR_DEC_CROSS_ATTN_OUT , 632LLM_TENSOR_DEC_CROSS_ATTN_REL_B , 633LLM_TENSOR_DEC_FFN_NORM , 634LLM_TENSOR_DEC_FFN_GATE , 635LLM_TENSOR_DEC_FFN_DOWN , 636LLM_TENSOR_DEC_FFN_UP , 637LLM_TENSOR_DEC_OUTPUT_NORM , 638LLM_TENSOR_ENC_ATTN_NORM , 639LLM_TENSOR_ENC_ATTN_Q , 640LLM_TENSOR_ENC_ATTN_K , 641LLM_TENSOR_ENC_ATTN_V , 642LLM_TENSOR_ENC_ATTN_OUT , 643LLM_TENSOR_ENC_ATTN_REL_B , 644LLM_TENSOR_ENC_FFN_NORM , 645LLM_TENSOR_ENC_FFN_GATE , 646LLM_TENSOR_ENC_FFN_DOWN , 647LLM_TENSOR_ENC_FFN_UP , 648LLM_TENSOR_ENC_OUTPUT_NORM , 649LLM_TENSOR_ENC_FFN_GATE_INP , 650LLM_TENSOR_ENC_FFN_GATE_EXPS , 651LLM_TENSOR_ENC_FFN_DOWN_EXPS , 652LLM_TENSOR_ENC_FFN_UP_EXPS , 653LLM_TENSOR_ENC_EXP_PROBS_B , 654LLM_TENSOR_ENC_FFN_OUTPUT_B , 655LLM_TENSOR_DEC_FFN_GATE_INP , 656LLM_TENSOR_DEC_FFN_GATE_EXPS , 657LLM_TENSOR_DEC_FFN_DOWN_EXPS , 658LLM_TENSOR_DEC_FFN_UP_EXPS , 659LLM_TENSOR_DEC_EXP_PROBS_B , 660LLM_TENSOR_DEC_FFN_OUTPUT_B , 661LLM_TENSOR_CLS , 662LLM_TENSOR_CLS_OUT , 663LLM_TENSOR_CLS_NORM , 664LLM_TENSOR_CONV1D , 665LLM_TENSOR_CONVNEXT_DW , 666LLM_TENSOR_CONVNEXT_NORM , 667LLM_TENSOR_CONVNEXT_PW1 , 668LLM_TENSOR_CONVNEXT_PW2 , 669LLM_TENSOR_CONVNEXT_GAMMA , 670LLM_TENSOR_POS_NET_CONV1 , 671LLM_TENSOR_POS_NET_CONV2 , 672LLM_TENSOR_POS_NET_NORM , 673LLM_TENSOR_POS_NET_NORM1 , 674LLM_TENSOR_POS_NET_NORM2 , 675LLM_TENSOR_POS_NET_ATTN_NORM , 676LLM_TENSOR_POS_NET_ATTN_Q , 677LLM_TENSOR_POS_NET_ATTN_K , 678LLM_TENSOR_POS_NET_ATTN_V , 679LLM_TENSOR_POS_NET_ATTN_OUT , 680LLM_TENSOR_SHORTCONV_CONV , 681LLM_TENSOR_SHORTCONV_INPROJ , 682LLM_TENSOR_SHORTCONV_OUTPROJ , 683LLM_TENSOR_VISEXP_ATTN_QKV , 684LLM_TENSOR_VISEXP_ATTN_OUT , 685LLM_TENSOR_VISEXP_FFN_GATE , 686LLM_TENSOR_VISEXP_FFN_DOWN , 687LLM_TENSOR_VISEXP_FFN_UP , 688LLM_TENSOR_INDEXER_K_NORM , 689LLM_TENSOR_INDEXER_PROJ , 690LLM_TENSOR_INDEXER_ATTN_K , 691LLM_TENSOR_INDEXER_ATTN_Q_B , 692LLM_TENSOR_INDEXER_Q_PROJ , 693LLM_TENSOR_INDEXER_K_PROJ , 694LLM_TENSOR_INDEXER_Q_NORM , 695LLM_TENSOR_INDEXER_COMPRESSOR_WKV , 696LLM_TENSOR_INDEXER_COMPRESSOR_WGATE , 697LLM_TENSOR_INDEXER_COMPRESSOR_APE , 698LLM_TENSOR_INDEXER_COMPRESSOR_NORM , 699LLM_TENSOR_FFN_GATE_TID2EID , 700LLM_TENSOR_NEXTN_PROJ_PRE , 701LLM_TENSOR_NEXTN_PROJ_POST , 702LLM_TENSOR_NEXTN_EH_PROJ , 703LLM_TENSOR_NEXTN_EMBED_TOKENS , 704LLM_TENSOR_NEXTN_ENORM , 705LLM_TENSOR_NEXTN_HNORM , 706LLM_TENSOR_NEXTN_SHARED_HEAD_HEAD , 707LLM_TENSOR_NEXTN_SHARED_HEAD_NORM , 708LLM_TENSOR_MASKED_EMBD_CENTROIDS , 709LLM_TENSOR_MASKED_EMBD_ORDERING , 710LLM_TENSOR_FC , 711LLM_TENSOR_D2T , 712LLM_TENSOR_DSPARK_MARKOV_W1 , 713LLM_TENSOR_DSPARK_MARKOV_W2 , 714LLM_TENSOR_DSPARK_CONF_PROJ , 715LLM_TENSOR_DFLASH_ATTN_CONV_BASE , 716LLM_TENSOR_DFLASH_ATTN_CONV_PROJ , 717LLM_TENSOR_DFLASH_FFN_CONV_BASE , 718LLM_TENSOR_DFLASH_FFN_CONV_PROJ , 719LLM_TENSOR_DFLASH_SELECTOR_PREV , 720LLM_TENSOR_DFLASH_SELECTOR_NEXT , 721LLM_TENSOR_DFLASH_SELECTOR_HIDDEN , 722}; 723 724 725enum llm_tensor_layer { 726LLM_TENSOR_LAYER_INPUT , 727LLM_TENSOR_LAYER_REPEATING , 728LLM_TENSOR_LAYER_OUTPUT , 729}; 730 731struct LLM_KV { 732LLM_KV (llm_arch arch ,const char * suffix = nullptr); 733 734llm_arch arch ; 735const char * suffix ; 736 737std ::string operator ()(llm_kv kv )const ; 738}; 739 740// helper to handle gguf constants 741// usage: 742// 743// const auto tn = LLM_TN(LLM_ARCH_LLAMA); 744// 745// std::string name = tn(LLM_TENSOR_OUTPUT); -> "output" 746// std::string name = tn(LLM_TENSOR_TOKEN_EMBD, "bias"); -> "token_embd.bias" 747// std::string name = tn(LLM_TENSOR_ATTN_NORM, "weight", 3); -> "blk.3.attn_norm.weight" 748// 749struct LLM_TN_IMPL { 750const llm_arch arch ; 751const llm_tensor tensor ; 752const char * const suffix ; 753const int bid ; 754const int xid ; 755 756LLM_TN_IMPL (llm_arch arch ,llm_tensor tensor ,const char * suffix ,int bid ,int xid ); 757 758std ::string str ()const ; 759 760operator std ::string ()const { 761return str (); 762 } 763 764friend bool operator == (const std ::string & str ,const LLM_TN_IMPL & tn ) { 765return str == tn .str (); 766 } 767 768friend bool operator != (const std ::string & str ,const LLM_TN_IMPL & tn ) { 769return str != tn .str (); 770 } 771}; 772 773struct LLM_TN { 774LLM_TN (llm_arch arch ) :arch (arch ) {} 775 776llm_arch arch ; 777 778LLM_TN_IMPL operator ()(llm_tensor tensor ,const char * suffix ,int bid = -1 ,int xid = -1 )const { 779return LLM_TN_IMPL (arch ,tensor ,suffix ,bid ,xid ); 780 } 781 782LLM_TN_IMPL operator ()(llm_tensor tensor ,int bid = -1 ,int xid = -1 )const { 783return LLM_TN_IMPL (arch ,tensor ,nullptr ,bid ,xid ); 784 } 785}; 786 787 788struct llm_tensor_info { 789llm_tensor_layer layer ; 790ggml_op op ; 791}; 792 793std ::vector < llm_arch > llm_arch_all (); 794 795const char * llm_arch_name (llm_arch arch ); 796 797llm_arch llm_arch_from_string (const std ::string & name ); 798 799const llm_tensor_info & llm_tensor_info_for (llm_tensor tensor ); 800 801bool llm_arch_is_recurrent (const llm_arch & arch ); 802bool llm_arch_is_hybrid (const llm_arch & arch ); 803bool llm_arch_is_diffusion (const llm_arch & arch ); 804bool llm_arch_supports_sm_tensor (const llm_arch & arch ); 805bool llm_arch_supports_rs_rollback (const llm_arch & arch );