Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 14 additions & 3 deletions src/llama-model.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -675,10 +675,21 @@ void llama_model::load_hparams(llama_model_loader & ml) {
} break;
case LLM_ARCH_MINICPM:
{
// Backward-compatible defaults for older MiniCPM GGUFs:
// historical MiniCPM graph constants:
// n_embd_base = 256, scale_embd = 12.0f, scale_depth = 1.4f

hparams.f_embedding_scale = 12.0f;
const float scale_depth = 1.4f;
hparams.f_residual_scale = scale_depth / sqrtf((float) hparams.n_layer);
const float n_embd_base = 256.0f;
hparams.f_logit_scale = hparams.n_embd ? (n_embd_base / float(hparams.n_embd)) : 1.0f;
ml.get_key(LLM_KV_ATTENTION_LAYERNORM_RMS_EPS, hparams.f_norm_rms_eps);
ml.get_key(LLM_KV_EMBEDDING_SCALE, hparams.f_embedding_scale);
ml.get_key(LLM_KV_RESIDUAL_SCALE, hparams.f_residual_scale);
ml.get_key(LLM_KV_LOGIT_SCALE, hparams.f_logit_scale);

// Optional KV reads, override defaults if present in newer GGUF exports
ml.get_key(LLM_KV_EMBEDDING_SCALE, hparams.f_embedding_scale, /*required=*/false);
ml.get_key(LLM_KV_RESIDUAL_SCALE, hparams.f_residual_scale, /*required=*/false);
ml.get_key(LLM_KV_LOGIT_SCALE, hparams.f_logit_scale, /*required=*/false);

// MiniCPM uses rope by default, unlike Granite which uses it as a switch
hparams.rope_finetuned = true;
Expand Down