@@ -99,6 +99,7 @@ static const std::map<llm_arch, const char *> LLM_ARCH_NAMES = {
99
99
{ LLM_ARCH_LLADA_MOE, " llada-moe" },
100
100
{ LLM_ARCH_SEED_OSS, " seed_oss" },
101
101
{ LLM_ARCH_APERTUS, " apertus" },
102
+ { LLM_ARCH_GROVEMOE, " grovemoe" },
102
103
{ LLM_ARCH_UNKNOWN, " (unknown)" },
103
104
};
104
105
@@ -126,6 +127,7 @@ static const std::map<llm_kv, const char *> LLM_KV_NAMES = {
126
127
{ LLM_KV_FEED_FORWARD_LENGTH, " %s.feed_forward_length" },
127
128
{ LLM_KV_EXPERT_FEED_FORWARD_LENGTH, " %s.expert_feed_forward_length" },
128
129
{ LLM_KV_EXPERT_SHARED_FEED_FORWARD_LENGTH, " %s.expert_shared_feed_forward_length" },
130
+ { LLM_KV_EXPERT_CHUNK_FEED_FORWARD_LENGTH, " %s.expert_chunk_feed_forward_length" },
129
131
{ LLM_KV_USE_PARALLEL_RESIDUAL, " %s.use_parallel_residual" },
130
132
{ LLM_KV_TENSOR_DATA_LAYOUT, " %s.tensor_data_layout" },
131
133
{ LLM_KV_EXPERT_COUNT, " %s.expert_count" },
@@ -134,6 +136,8 @@ static const std::map<llm_kv, const char *> LLM_KV_NAMES = {
134
136
{ LLM_KV_EXPERT_WEIGHTS_SCALE, " %s.expert_weights_scale" },
135
137
{ LLM_KV_EXPERT_WEIGHTS_NORM, " %s.expert_weights_norm" },
136
138
{ LLM_KV_EXPERT_GATING_FUNC, " %s.expert_gating_func" },
139
+ { LLM_KV_EXPERT_GROUP_SCALE, " %s.expert_group_scale" },
140
+ { LLM_KV_EXPERTS_PER_GROUP, " %s.experts_per_group" },
137
141
{ LLM_KV_MOE_EVERY_N_LAYERS, " %s.moe_every_n_layers" },
138
142
{ LLM_KV_NEXTN_PREDICT_LAYERS, " %s.nextn_predict_layers" },
139
143
{ LLM_KV_POOLING_TYPE, " %s.pooling_type" },
@@ -2211,6 +2215,29 @@ static const std::map<llm_arch, std::map<llm_tensor, const char *>> LLM_TENSOR_N
2211
2215
{ LLM_TENSOR_FFN_UP, " blk.%d.ffn_up" },
2212
2216
},
2213
2217
},
2218
+ {
2219
+ LLM_ARCH_GROVEMOE,
2220
+ {
2221
+ { LLM_TENSOR_TOKEN_EMBD, " token_embd" },
2222
+ { LLM_TENSOR_OUTPUT_NORM, " output_norm" },
2223
+ { LLM_TENSOR_OUTPUT, " output" },
2224
+ { LLM_TENSOR_ATTN_NORM, " blk.%d.attn_norm" },
2225
+ { LLM_TENSOR_ATTN_Q, " blk.%d.attn_q" },
2226
+ { LLM_TENSOR_ATTN_Q_NORM, " blk.%d.attn_q_norm" },
2227
+ { LLM_TENSOR_ATTN_K, " blk.%d.attn_k" },
2228
+ { LLM_TENSOR_ATTN_K_NORM, " blk.%d.attn_k_norm" },
2229
+ { LLM_TENSOR_ATTN_V, " blk.%d.attn_v" },
2230
+ { LLM_TENSOR_ATTN_OUT, " blk.%d.attn_output" },
2231
+ { LLM_TENSOR_FFN_NORM, " blk.%d.ffn_norm" },
2232
+ { LLM_TENSOR_FFN_GATE_INP, " blk.%d.ffn_gate_inp" },
2233
+ { LLM_TENSOR_FFN_GATE_EXPS, " blk.%d.ffn_gate_exps" },
2234
+ { LLM_TENSOR_FFN_DOWN_EXPS, " blk.%d.ffn_down_exps" },
2235
+ { LLM_TENSOR_FFN_UP_EXPS, " blk.%d.ffn_up_exps" },
2236
+ { LLM_TENSOR_FFN_GATE_CHEXPS, " blk.%d.ffn_gate_chexps" },
2237
+ { LLM_TENSOR_FFN_DOWN_CHEXPS, " blk.%d.ffn_down_chexps" },
2238
+ { LLM_TENSOR_FFN_UP_CHEXPS, " blk.%d.ffn_up_chexps" },
2239
+ },
2240
+ },
2214
2241
{
2215
2242
LLM_ARCH_UNKNOWN,
2216
2243
{
@@ -2343,6 +2370,9 @@ static const std::map<llm_tensor, llm_tensor_info> LLM_TENSOR_INFOS = {
2343
2370
{LLM_TENSOR_FFN_DOWN_EXPS, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT_ID}},
2344
2371
{LLM_TENSOR_FFN_GATE_EXPS, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT_ID}},
2345
2372
{LLM_TENSOR_FFN_UP_EXPS, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT_ID}},
2373
+ {LLM_TENSOR_FFN_DOWN_CHEXPS, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT_ID}},
2374
+ {LLM_TENSOR_FFN_GATE_CHEXPS, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT_ID}},
2375
+ {LLM_TENSOR_FFN_UP_CHEXPS, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT_ID}},
2346
2376
{LLM_TENSOR_FFN_EXP_PROBS_B, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_ADD}},
2347
2377
// altup / laurel (gemma 3n)
2348
2378
{LLM_TENSOR_PER_LAYER_TOKEN_EMBD, {LLM_TENSOR_LAYER_OUTPUT, GGML_OP_GET_ROWS}},
0 commit comments