Commit e0f96a1a1 for llama.cpp
commit e0f96a1a12217d1fab1f281ebc34faca2550c6b9
Author: Xuan-Son Nguyen <son@huggingface.co>
Date: Thu Nov 5 15:41:03 2026 +0100
llama: refactoring: move model to class member of llm_graph_context (#31733)
diff --git a/src/llama-context.cpp b/src/llama-context.cpp
index 267908fa7..e878f6f6c 100644
--- a/src/llama-context.cpp
+++ b/src/llama-context.cpp
@@ -2910,6 +2910,7 @@ llm_graph_params llama_context::graph_params(
llm_graph_type gtype) const {
return {
/*.arch =*/ model.arch,
+ /*.model =*/ &model,
/*.hparams =*/ model.hparams,
/*.cparams =*/ cparams,
/*.ubatch =*/ ubatch,
diff --git a/src/llama-graph.cpp b/src/llama-graph.cpp
index 4488b880d..47007714a 100644
--- a/src/llama-graph.cpp
+++ b/src/llama-graph.cpp
@@ -1545,6 +1545,7 @@ void llm_graph_result::set_params(const llm_graph_params & params) {
//
llm_graph_context::llm_graph_context(const llm_graph_params & params) :
+ model (*params.model),
arch (params.arch),
hparams (params.hparams),
cparams (params.cparams),
diff --git a/src/llama-graph.h b/src/llama-graph.h
index 5305bdb96..d20343163 100644
--- a/src/llama-graph.h
+++ b/src/llama-graph.h
@@ -19,6 +19,7 @@ struct ggml_tensor;
struct llama_cparams;
struct llama_layer;
+struct llama_model;
struct llama_prec_policy;
struct llama_hadamard;
@@ -789,6 +790,8 @@ class llm_graph_result;
struct llm_graph_params {
llm_arch arch = LLM_ARCH_UNKNOWN;
+ const llama_model * model = nullptr;
+
llama_hparams hparams;
llama_cparams cparams;
@@ -1023,6 +1026,8 @@ struct llm_graph_amax_src1 {
};
struct llm_graph_context {
+ const llama_model & model;
+
const llm_arch arch;
const llama_hparams & hparams;
diff --git a/src/models/afmoe.cpp b/src/models/afmoe.cpp
index 266597a35..75da5e2eb 100644
--- a/src/models/afmoe.cpp
+++ b/src/models/afmoe.cpp
@@ -101,10 +101,10 @@ void llama_model_afmoe::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_afmoe::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_afmoe::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_afmoe::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/apertus.cpp b/src/models/apertus.cpp
index 130980e32..2b1ebc965 100644
--- a/src/models/apertus.cpp
+++ b/src/models/apertus.cpp
@@ -54,10 +54,10 @@ void llama_model_apertus::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_apertus::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_apertus::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_apertus::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/arcee.cpp b/src/models/arcee.cpp
index 81e3b828f..c58025ccd 100644
--- a/src/models/arcee.cpp
+++ b/src/models/arcee.cpp
@@ -42,10 +42,10 @@ void llama_model_arcee::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_arcee::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_arcee::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_arcee::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/arctic.cpp b/src/models/arctic.cpp
index 1a170f085..e9db89d99 100644
--- a/src/models/arctic.cpp
+++ b/src/models/arctic.cpp
@@ -50,10 +50,10 @@ void llama_model_arctic::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_arctic::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_arctic::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_arctic::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/arwkv7.cpp b/src/models/arwkv7.cpp
index 5f1ca4384..022a6738f 100644
--- a/src/models/arwkv7.cpp
+++ b/src/models/arwkv7.cpp
@@ -114,10 +114,10 @@ void llama_model_arwkv7::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_arwkv7::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_arwkv7::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_build_rwkv7_base(model, params) {
+llama_model_arwkv7::graph::graph(const llm_graph_params & params) : llm_build_rwkv7_base(params) {
GGML_ASSERT(n_embd == hparams.n_embd_r());
ggml_tensor * cur;
diff --git a/src/models/baichuan.cpp b/src/models/baichuan.cpp
index b7f5b05f8..e7315b304 100644
--- a/src/models/baichuan.cpp
+++ b/src/models/baichuan.cpp
@@ -40,10 +40,10 @@ void llama_model_baichuan::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_baichuan::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_baichuan::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_baichuan::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/bailingmoe.cpp b/src/models/bailingmoe.cpp
index 2da47f09f..b8e1791fc 100644
--- a/src/models/bailingmoe.cpp
+++ b/src/models/bailingmoe.cpp
@@ -56,10 +56,10 @@ void llama_model_bailingmoe::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_bailingmoe::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_bailingmoe::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_bailingmoe::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
ggml_tensor * cur;
ggml_tensor * inpL;
diff --git a/src/models/bailingmoe2.cpp b/src/models/bailingmoe2.cpp
index d7003ef7e..05f08c84f 100644
--- a/src/models/bailingmoe2.cpp
+++ b/src/models/bailingmoe2.cpp
@@ -84,10 +84,10 @@ void llama_model_bailingmoe2::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_bailingmoe2::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_bailingmoe2::graph::graph(const llama_model & model, const llm_graph_params & params) :
+llama_model_bailingmoe2::graph::graph(const llm_graph_params & params) :
llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
diff --git a/src/models/bailingmoe3.cpp b/src/models/bailingmoe3.cpp
index c93fae895..a904dca8a 100644
--- a/src/models/bailingmoe3.cpp
+++ b/src/models/bailingmoe3.cpp
@@ -155,9 +155,9 @@ void llama_model_bailingmoe3::load_arch_tensors(llama_model_loader & ml) {
std::unique_ptr<llm_graph_context> llama_model_bailingmoe3::build_arch_graph(const llm_graph_params & params) const {
if (params.gtype == LLM_GRAPH_TYPE_DECODER_MTP) {
- return std::make_unique<graph_mtp>(*this, params);
+ return std::make_unique<graph_mtp>(params);
}
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
ggml_tensor * llama_model_bailingmoe3::graph::build_causal_conv1d(
@@ -186,8 +186,8 @@ ggml_tensor * llama_model_bailingmoe3::graph::build_causal_conv1d(
return ggml_reshape_4d(ctx0, out, head_dim, n_head, n_seq_tokens, n_seqs);
}
-llama_model_bailingmoe3::graph::graph(const llama_model & model, const llm_graph_params & params) :
- llm_build_delta_net_base(params), model(model) {
+llama_model_bailingmoe3::graph::graph(const llm_graph_params & params) :
+ llm_build_delta_net_base(params) {
ggml_tensor * inpL = build_inp_embd(model.tok_embd);
cb(inpL, "model.input_embed", -1);
@@ -388,7 +388,7 @@ llama_model_bailingmoe3::graph::graph(const llama_model & model, const llm_graph
res->t_logits = cur;
}
-llama_model_bailingmoe3::graph_mtp::graph_mtp(const llama_model & model, const llm_graph_params & params) :
+llama_model_bailingmoe3::graph_mtp::graph_mtp(const llm_graph_params & params) :
llm_graph_context(params) {
GGML_ASSERT(hparams.n_layer_nextn == 1 && "BailingMoE3 MTP requires one NextN layer");
diff --git a/src/models/beam.cpp b/src/models/beam.cpp
index 55817dd48..ec4fc1436 100644
--- a/src/models/beam.cpp
+++ b/src/models/beam.cpp
@@ -103,7 +103,7 @@ void llama_model_beam::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_beam::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
static ggml_tensor * beam_residual_add(ggml_context * ctx, ggml_tensor * h, ggml_tensor * r, int i) {
@@ -112,7 +112,7 @@ static ggml_tensor * beam_residual_add(ggml_context * ctx, ggml_tensor * h, ggml
return ggml_add(ctx, ggml_scale(ctx, h, h_scale), ggml_scale(ctx, r, r_scale));
}
-llama_model_beam::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_beam::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/bert.cpp b/src/models/bert.cpp
index 8f3aa316c..2b2108dc4 100644
--- a/src/models/bert.cpp
+++ b/src/models/bert.cpp
@@ -62,10 +62,10 @@ void llama_model_bert::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_bert::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_bert::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_bert::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/bitnet.cpp b/src/models/bitnet.cpp
index a08881b9f..3c366e13f 100644
--- a/src/models/bitnet.cpp
+++ b/src/models/bitnet.cpp
@@ -45,10 +45,10 @@ void llama_model_bitnet::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_bitnet::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_bitnet::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_bitnet::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/bloom.cpp b/src/models/bloom.cpp
index 54ef3a037..076927e0d 100644
--- a/src/models/bloom.cpp
+++ b/src/models/bloom.cpp
@@ -59,10 +59,10 @@ void llama_model_bloom::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_bloom::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_bloom::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_bloom::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/chameleon.cpp b/src/models/chameleon.cpp
index bb597afef..496538506 100644
--- a/src/models/chameleon.cpp
+++ b/src/models/chameleon.cpp
@@ -47,10 +47,10 @@ void llama_model_chameleon::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_chameleon::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_chameleon::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_chameleon::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/chatglm.cpp b/src/models/chatglm.cpp
index 54e3913c4..33c6386b6 100644
--- a/src/models/chatglm.cpp
+++ b/src/models/chatglm.cpp
@@ -52,10 +52,10 @@ void llama_model_chatglm::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_chatglm::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_chatglm::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_chatglm::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/clef.cpp b/src/models/clef.cpp
index 89d9419b8..03d3e595d 100644
--- a/src/models/clef.cpp
+++ b/src/models/clef.cpp
@@ -99,7 +99,7 @@ void llama_model_clef::load_arch_tensors(llama_model_loader & ml) {
}
std::unique_ptr<llm_graph_context> llama_model_clef::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
// spans read by the head, [start, end) in ubatch token indices
@@ -243,8 +243,8 @@ public:
};
// the backbone is copied from llama_model_qwen35::graph, without the memory module
-llama_model_clef::graph::graph(const llama_model & model_base, const llm_graph_params & params) :
- llm_build_delta_net_base(params), model(static_cast<const llama_model_clef &>(model_base)) {
+llama_model_clef::graph::graph(const llm_graph_params & params) :
+ llm_build_delta_net_base(params), model(static_cast<const llama_model_clef &>(*params.model)) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/clover-moe.cpp b/src/models/clover-moe.cpp
index e7450790a..498ca275b 100644
--- a/src/models/clover-moe.cpp
+++ b/src/models/clover-moe.cpp
@@ -113,11 +113,11 @@ void llama_model_clover_moe::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_clover_moe::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_clover_moe::graph::graph(const llama_model & model, const llm_graph_params & params) :
- llm_build_delta_net_base(params), model(model) {
+llama_model_clover_moe::graph::graph(const llm_graph_params & params) :
+ llm_build_delta_net_base(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/codeshell.cpp b/src/models/codeshell.cpp
index be1e57619..1d499684c 100644
--- a/src/models/codeshell.cpp
+++ b/src/models/codeshell.cpp
@@ -47,10 +47,10 @@ void llama_model_codeshell::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_codeshell::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_codeshell::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_codeshell::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/cogvlm.cpp b/src/models/cogvlm.cpp
index 2e1416be8..c878a3bf0 100644
--- a/src/models/cogvlm.cpp
+++ b/src/models/cogvlm.cpp
@@ -47,10 +47,10 @@ void llama_model_cogvlm::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_cogvlm::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_cogvlm::graph::graph(const llama_model & model, const llm_graph_params & params) :
+llama_model_cogvlm::graph::graph(const llm_graph_params & params) :
llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
const float kq_scale = 1.0f / sqrtf(float(n_embd_head));
diff --git a/src/models/cohere2.cpp b/src/models/cohere2.cpp
index 969b4ef05..acde0fea6 100644
--- a/src/models/cohere2.cpp
+++ b/src/models/cohere2.cpp
@@ -44,10 +44,10 @@ void llama_model_cohere2::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_cohere2::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_cohere2::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_cohere2::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/cohere2moe.cpp b/src/models/cohere2moe.cpp
index 649682610..f673c99bc 100644
--- a/src/models/cohere2moe.cpp
+++ b/src/models/cohere2moe.cpp
@@ -135,12 +135,12 @@ void llama_model_cohere2moe::load_arch_tensors(llama_model_loader & ml) {
std::unique_ptr<llm_graph_context> llama_model_cohere2moe::build_arch_graph(const llm_graph_params & params) const {
if (params.gtype == LLM_GRAPH_TYPE_DECODER_MTP) {
- return std::make_unique<graph_mtp>(*this, params);
+ return std::make_unique<graph_mtp>(params);
}
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_cohere2moe::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_cohere2moe::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
@@ -277,7 +277,7 @@ llama_model_cohere2moe::graph::graph(const llama_model & model, const llm_graph_
res->t_logits = cur;
}
-llama_model_cohere2moe::graph_mtp::graph_mtp(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_cohere2moe::graph_mtp::graph_mtp(const llm_graph_params & params) : llm_graph_context(params) {
GGML_ASSERT(hparams.n_layer_nextn > 0 && "COHERE2MOE MTP requires n_layer_nextn > 0");
GGML_ASSERT(hparams.n_layer_nextn == 1 && "COHERE2MOE MTP currently only supports a single MTP block");
diff --git a/src/models/command-r.cpp b/src/models/command-r.cpp
index edf74c57b..dd1505186 100644
--- a/src/models/command-r.cpp
+++ b/src/models/command-r.cpp
@@ -40,10 +40,10 @@ void llama_model_command_r::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_command_r::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_command_r::graph::graph(const llama_model & model, const llm_graph_params & params) :
+llama_model_command_r::graph::graph(const llm_graph_params & params) :
llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
diff --git a/src/models/dbrx.cpp b/src/models/dbrx.cpp
index 8d4f783fb..5b4c87d0c 100644
--- a/src/models/dbrx.cpp
+++ b/src/models/dbrx.cpp
@@ -41,10 +41,10 @@ void llama_model_dbrx::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_dbrx::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_dbrx::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_dbrx::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/deci.cpp b/src/models/deci.cpp
index ce5de887c..9a5beecc1 100644
--- a/src/models/deci.cpp
+++ b/src/models/deci.cpp
@@ -74,10 +74,10 @@ void llama_model_deci::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_deci::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_deci::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_deci::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/deepseek.cpp b/src/models/deepseek.cpp
index a066d4fb6..76760a560 100644
--- a/src/models/deepseek.cpp
+++ b/src/models/deepseek.cpp
@@ -68,10 +68,10 @@ void llama_model_deepseek::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_deepseek::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_deepseek::graph::graph(const llama_model & model, const llm_graph_params & params) :
+llama_model_deepseek::graph::graph(const llm_graph_params & params) :
llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
diff --git a/src/models/deepseek2.cpp b/src/models/deepseek2.cpp
index 5fd24d105..36c8ea93c 100644
--- a/src/models/deepseek2.cpp
+++ b/src/models/deepseek2.cpp
@@ -156,12 +156,12 @@ void llama_model_deepseek2::load_arch_tensors(llama_model_loader & ml) {
std::unique_ptr<llm_graph_context> llama_model_deepseek2::build_arch_graph(const llm_graph_params & params) const {
if (params.gtype == LLM_GRAPH_TYPE_DECODER_MTP) {
- return std::make_unique<graph_mtp>(*this, params);
+ return std::make_unique<graph_mtp>(params);
}
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_deepseek2::graph_mtp::graph_mtp(const llama_model & model, const llm_graph_params & params) :
+llama_model_deepseek2::graph_mtp::graph_mtp(const llm_graph_params & params) :
llm_graph_context(params) {
GGML_ASSERT(hparams.n_layer_nextn > 0 && "GLM4 MTP requires n_layer_nextn > 0");
GGML_ASSERT(hparams.n_layer_nextn == 1 && "GLM4 MTP currently only supports a single MTP block");
@@ -408,7 +408,7 @@ llama_model_deepseek2::graph_mtp::graph_mtp(const llama_model & model, const llm
res->t_logits = cur;
}
-llama_model_deepseek2::graph::graph(const llama_model & model, const llm_graph_params & params) :
+llama_model_deepseek2::graph::graph(const llm_graph_params & params) :
llm_graph_context(params) {
// lite variants include DeepSeek-V2-Lite, GigaChat3-10B-A1.8B
bool is_ocr = model.arch == LLM_ARCH_DEEPSEEK2OCR;
diff --git a/src/models/deepseek2ocr.cpp b/src/models/deepseek2ocr.cpp
index 3d630699e..88026c3f8 100644
--- a/src/models/deepseek2ocr.cpp
+++ b/src/models/deepseek2ocr.cpp
@@ -75,6 +75,6 @@ void llama_model_deepseek2ocr::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_deepseek2ocr::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
diff --git a/src/models/deepseek32.cpp b/src/models/deepseek32.cpp
index 450022016..d208c524d 100644
--- a/src/models/deepseek32.cpp
+++ b/src/models/deepseek32.cpp
@@ -148,12 +148,12 @@ void llama_model_deepseek32::load_arch_tensors(llama_model_loader & ml) {
std::unique_ptr<llm_graph_context> llama_model_deepseek32::build_arch_graph(const llm_graph_params & params) const {
if (params.gtype == LLM_GRAPH_TYPE_DECODER_MTP) {
- return std::make_unique<graph_mtp>(*this, params);
+ return std::make_unique<graph_mtp>(params);
}
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_deepseek32::graph::graph(const llama_model & model, const llm_graph_params & params) :
+llama_model_deepseek32::graph::graph(const llm_graph_params & params) :
llm_graph_context(params) {
const bool is_mla = hparams.is_mla();
GGML_ASSERT(is_mla);
@@ -484,7 +484,7 @@ llama_model_deepseek32::graph::graph(const llama_model & model, const llm_graph_
// with shared expert, exactly as the trunk deepseek2 graph builds it) ->
// shared_head_norm (fallback output_norm) -> shared LM head.
// The DSA indexer is not used at runtime.
-llama_model_deepseek32::graph_mtp::graph_mtp(const llama_model & model, const llm_graph_params & params)
+llama_model_deepseek32::graph_mtp::graph_mtp(const llm_graph_params & params)
: llm_graph_context(params) {
GGML_ASSERT(hparams.n_layer_nextn > 0 && "DEEPSEEK32 MTP requires n_layer_nextn > 0");
GGML_ASSERT(hparams.n_layer_nextn == 1 && "DEEPSEEK32 MTP currently only supports a single MTP block");
diff --git a/src/models/deepseek4.cpp b/src/models/deepseek4.cpp
index 1207c3bb7..9345fa833 100644
--- a/src/models/deepseek4.cpp
+++ b/src/models/deepseek4.cpp
@@ -176,9 +176,9 @@ void llama_model_deepseek4::load_arch_tensors(llama_model_loader & ml) {
std::unique_ptr<llm_graph_context> llama_model_deepseek4::build_arch_graph(const llm_graph_params & params) const {
if (params.gtype == LLM_GRAPH_TYPE_DECODER_MTP) {
- return std::make_unique<graph_mtp>(*this, params);
+ return std::make_unique<graph_mtp>(params);
}
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
static size_t dsv4_elem_offset(const ggml_tensor * t, int64_t i) {
@@ -590,7 +590,6 @@ ggml_tensor * llama_model_deepseek4::graph::build_overlap_compressed_kv_from_sta
}
ggml_tensor * llama_model_deepseek4::graph::build_lid_top_k(
- const llama_model & model,
llm_graph_input_dsv4 * inp_dsv4,
ggml_tensor * qr,
ggml_tensor * cur,
@@ -714,7 +713,6 @@ ggml_tensor * llama_model_deepseek4::graph::build_top_k_mask(
}
ggml_tensor * llama_model_deepseek4::graph::build_csa_lid_attention(
- const llama_model & model,
llm_graph_input_dsv4 * inp_dsv4,
llm_graph_input_dsv4_raw * inp_attn,
ggml_tensor * q,
@@ -728,7 +726,7 @@ ggml_tensor * llama_model_deepseek4::graph::build_csa_lid_attention(
const auto & inp_csa = inp_dsv4->get_csa();
GGML_ASSERT(inp_csa.kq_mask);
- ggml_tensor * top_k = build_lid_top_k(model, inp_dsv4, qr, cur, inp_pos, il);
+ ggml_tensor * top_k = build_lid_top_k(inp_dsv4, qr, cur, inp_pos, il);
ggml_tensor * k_rot = inp_attn->self_k_rot[il];
if (k_rot) {
@@ -867,25 +865,22 @@ ggml_tensor * llama_model_deepseek4::graph::build_raw_attention(
}
ggml_tensor * llama_model_deepseek4::graph::build_attention(
- const llama_model & model,
llm_graph_input_dsv4 * inp_dsv4,
ggml_tensor * cur,
ggml_tensor * inp_pos,
int il) const {
- return build_attention_impl(model, inp_dsv4, nullptr, cur, inp_pos, il);
+ return build_attention_impl(inp_dsv4, nullptr, cur, inp_pos, il);
}
ggml_tensor * llama_model_deepseek4::graph::build_attention(
- const llama_model & model,
llm_graph_input_attn_k_iswa * inp_mtp,
ggml_tensor * cur,
ggml_tensor * inp_pos,
int il) const {
- return build_attention_impl(model, nullptr, inp_mtp, cur, inp_pos, il);
+ return build_attention_impl(nullptr, inp_mtp, cur, inp_pos, il);
}
ggml_tensor * llama_model_deepseek4::graph::build_attention_impl(
- const llama_model & model,
llm_graph_input_dsv4 * inp_dsv4,
llm_graph_input_attn_k_iswa * inp_mtp,
ggml_tensor * cur,
@@ -1198,7 +1193,7 @@ ggml_tensor * llama_model_deepseek4::graph::build_attention_impl(
inp_dsv4->get_csa().kq_mask &&
inp_dsv4->get_lid().kq_mask &&
inp_dsv4->get_lid().k_rot[il]) {
- out = build_csa_lid_attention(model, inp_dsv4, inp_attn, q, kv, qr, cur, inp_pos, layer.attn_sinks,
+ out = build_csa_lid_attention(inp_dsv4, inp_attn, q, kv, qr, cur, inp_pos, layer.attn_sinks,
1.0f/sqrtf(float(n_embd_head)), il);
} else if (ratio == DSV4_HCA_RATIO &&
inp_dsv4->get_hca().kq_mask) {
@@ -1228,7 +1223,7 @@ ggml_tensor * llama_model_deepseek4::graph::build_attention_impl(
return out;
}
-llama_model_deepseek4::graph::graph(const llama_model & model, const llm_graph_params & params) :
+llama_model_deepseek4::graph::graph(const llm_graph_params & params) :
llm_graph_context(params) {
ggml_tensor * cur;
@@ -1263,7 +1258,7 @@ llama_model_deepseek4::graph::graph(const llama_model & model, const llm_graph_p
cur = build_norm(cur, model.layers[il].attn_norm, nullptr, LLM_NORM_RMS, il);
cb(cur, "attn_norm", il);
- cur = build_attention(model, inp_dsv4, cur, inp_pos, il);
+ cur = build_attention(inp_dsv4, cur, inp_pos, il);
inpL = build_hc_post(cur, residual, attn_hc.post, attn_hc.comb, il);
cb(inpL, "hc_attn_post", il);
@@ -1364,8 +1359,8 @@ llama_model_deepseek4::graph::graph(const llama_model & model, const llm_graph_p
}
-llama_model_deepseek4::graph_mtp::graph_mtp(const llama_model & model, const llm_graph_params & params) :
- graph(params) {
+llama_model_deepseek4::graph_mtp::graph_mtp(const llm_graph_params & params) :
+ graph(params, no_build{}) {
GGML_ASSERT(hparams.n_layer_nextn > 0 && "DEEPSEEK4 MTP requires n_layer_nextn > 0");
GGML_ASSERT(hparams.n_layer_nextn == 1 && "DEEPSEEK4 MTP currently only supports a single MTP block");
GGML_ASSERT(cparams.nextn_layer_offset >= 0 &&
@@ -1440,7 +1435,7 @@ llama_model_deepseek4::graph_mtp::graph_mtp(const llama_model & model, const llm
cur = build_norm(cur, layer.attn_norm, nullptr, LLM_NORM_RMS, il);
cb(cur, "mtp_attn_norm", il);
- cur = build_attention(model, inp_attn, cur, inp_pos, il);
+ cur = build_attention(inp_attn, cur, inp_pos, il);
inpL = build_hc_post(cur, residual, attn_hc.post, attn_hc.comb, il);
cb(inpL, "mtp_hc_attn_post", il);
diff --git a/src/models/deepseek41.cpp b/src/models/deepseek41.cpp
index c4ca567e7..ea24f6a7a 100644
--- a/src/models/deepseek41.cpp
+++ b/src/models/deepseek41.cpp
@@ -222,7 +222,7 @@ std::unique_ptr<llm_graph_context> llama_model_deepseek41::build_arch_graph(cons
throw std::runtime_error("DeepSeek-V4.1 has no MTP graph: its DSpark draft is a separate DFLASH GGUF "
"(convert_hf_to_gguf.py --dspark), used with --spec-type draft-dspark");
}
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
// Engram n-gram hash (engram.py NgramHashState.forward)
@@ -765,9 +765,9 @@ ggml_tensor * llama_model_deepseek41::graph::build_attention41(
return out;
}
-llama_model_deepseek41::graph::graph(const llama_model & model_base, const llm_graph_params & params) :
- llama_model_deepseek4::graph(params) {
- const auto & model = static_cast<const llama_model_deepseek41 &>(model_base);
+llama_model_deepseek41::graph::graph(const llm_graph_params & params) :
+ llama_model_deepseek4::graph(params, no_build{}) {
+ const auto & model = static_cast<const llama_model_deepseek41 &>(this->model);
static const bool sparse_env = dsv41_env_on("LLAMA_DSV41_SPARSE");
sparse = sparse_env;
diff --git a/src/models/dflash.cpp b/src/models/dflash.cpp
index 0de2f38ec..13020bb32 100644
--- a/src/models/dflash.cpp
+++ b/src/models/dflash.cpp
@@ -419,7 +419,7 @@ ggml_tensor * llama_model_dflash::graph<true>::build_inp_embd_enc() const {
// DFlash Encoder: processes target model features through feature fusion layer
template <>
-llama_model_dflash::graph<true>::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_dflash::graph<true>::graph(const llm_graph_params & params) : llm_graph_context(params) {
ggml_tensor * cur = build_inp_embd_enc();
cur = build_lora_mm(model.fc, cur, model.fc_s);
@@ -919,7 +919,7 @@ static void build_lilicorr_scores(llm_graph_context & g, const llama_model & mod
// * embd batch -> fused target features: project + inject K/V into the cache.
// * token batch -> noise-block diffusion: attend over [committed, MASK...] to generate draft tokens
template <>
-llama_model_dflash::graph<false>::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_dflash::graph<false>::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_inp = hparams.n_embd_inp_enc();
const int64_t n_embd_head = hparams.n_embd_head_v();
@@ -1220,8 +1220,8 @@ llama_model_dflash::graph<false>::graph(const llama_model & model, const llm_gra
// DSV4 DSpark decoder, dual-mode by batch type (see the DFlash decoder above):
// * embd batch -> project main_x through each stage's wkv and inject K into the ring cache
// * token batch -> noise block through 3 full DSV4 stages (hc + MLA + MoE), markov + confidence heads
-llama_model_dflash::graph_dsv4::graph_dsv4(const llama_model & model, const llm_graph_params & params) :
- llama_model_deepseek4::graph(params) {
+llama_model_dflash::graph_dsv4::graph_dsv4(const llm_graph_params & params) :
+ llama_model_deepseek4::graph(params, no_build{}) {
const int64_t n_embd_inp = hparams.n_embd_inp_enc();
const int64_t n_embd_head = hparams.n_embd_head_k();
const int64_t n_embd_head_rope = hparams.n_rot();
@@ -1314,7 +1314,7 @@ llama_model_dflash::graph_dsv4::graph_dsv4(const llama_model & model, const llm_
cur = build_norm(cur, layer.attn_norm, nullptr, LLM_NORM_RMS, il);
cb(cur, "attn_norm", il);
- cur = build_attention(model, inp_attn, cur, inp_pos, il);
+ cur = build_attention(inp_attn, cur, inp_pos, il);
inpL = build_hc_post(cur, residual, attn_hc.post, attn_hc.comb, il);
cb(inpL, "hc_attn_post", il);
@@ -1392,8 +1392,8 @@ llama_model_dflash::graph_dsv4::graph_dsv4(const llama_model & model, const llm_
// * token batch -> [anchor, noise...] block through the stages, single-pass mHC, no per-head q norm
// window of a block = window of its first query, see n_swa
-llama_model_dflash::graph_dsv41::graph_dsv41(const llama_model & model, const llm_graph_params & params) :
- llama_model_deepseek41::graph(params) {
+llama_model_dflash::graph_dsv41::graph_dsv41(const llm_graph_params & params) :
+ llama_model_deepseek41::graph(params, no_build{}) {
const int64_t n_embd_inp = hparams.n_embd_inp_enc();
const int64_t n_embd_head = hparams.n_embd_head_k();
const int64_t n_embd_head_rope = hparams.n_rot();
@@ -1619,7 +1619,7 @@ llama_model_dflash::graph_dsv41::graph_dsv41(const llama_model & model, const ll
// Mistral Large 4 DSpark, dual-mode like graph_dsv41:
// - embd batch: write latent K of target_norm(fc(features)) to the cache, no attn norm
// - token batch: decode [anchor, mask_1, ...] block, non-causal
-llama_model_dflash::graph_mistral_large4::graph_mistral_large4(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_dflash::graph_mistral_large4::graph_mistral_large4(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_inp = hparams.n_embd_inp_enc();
const int64_t kv_lora_rank = hparams.n_lora_kv;
const int64_t n_embd_head_k_mla = hparams.n_embd_head_k_mla();
@@ -1832,19 +1832,19 @@ llama_model_dflash::graph_mistral_large4::graph_mistral_large4(const llama_model
std::unique_ptr<llm_graph_context> llama_model_dflash::build_arch_graph(const llm_graph_params & params) const {
switch (params.gtype) {
case LLM_GRAPH_TYPE_ENCODER:
- return std::make_unique<graph<true>>(*this, params);
+ return std::make_unique<graph<true>>(params);
case LLM_GRAPH_TYPE_DEFAULT:
case LLM_GRAPH_TYPE_DECODER:
if (hparams.n_lora_kv > 0) {
- return std::make_unique<graph_mistral_large4>(*this, params);
+ return std::make_unique<graph_mistral_large4>(params);
}
if (hparams.dsv4_hc_mult > 0 && hparams.dsv4_hc_single_pass) {
- return std::make_unique<graph_dsv41>(*this, params);
+ return std::make_unique<graph_dsv41>(params);
}
if (hparams.dsv4_hc_mult > 0) {
- return std::make_unique<graph_dsv4>(*this, params);
+ return std::make_unique<graph_dsv4>(params);
}
- return std::make_unique<graph<false>>(*this, params);
+ return std::make_unique<graph<false>>(params);
default:
GGML_ABORT("invalid graph type");
};
diff --git a/src/models/dots1.cpp b/src/models/dots1.cpp
index f29f669c2..41ffd7101 100644
--- a/src/models/dots1.cpp
+++ b/src/models/dots1.cpp
@@ -68,10 +68,10 @@ void llama_model_dots1::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_dots1::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_dots1::graph::graph(const llama_model & model, const llm_graph_params & params) :
+llama_model_dots1::graph::graph(const llm_graph_params & params) :
llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
diff --git a/src/models/dots3note.cpp b/src/models/dots3note.cpp
index c848b0fe2..c05337494 100644
--- a/src/models/dots3note.cpp
+++ b/src/models/dots3note.cpp
@@ -146,10 +146,10 @@ void llama_model_dots3note::load_arch_tensors(llama_model_loader & ml) {
}
std::unique_ptr<llm_graph_context> llama_model_dots3note::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_dots3note::graph::graph(const llama_model & model, const llm_graph_params & params) :
+llama_model_dots3note::graph::graph(const llm_graph_params & params) :
llm_graph_context(params) {
GGML_ASSERT(hparams.is_mla());
diff --git a/src/models/dream.cpp b/src/models/dream.cpp
index 7d5ffa56a..173794f57 100644
--- a/src/models/dream.cpp
+++ b/src/models/dream.cpp
@@ -46,10 +46,10 @@ void llama_model_dream::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_dream::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_dream::graph::graph(const llama_model & model, const llm_graph_params & params) :
+llama_model_dream::graph::graph(const llm_graph_params & params) :
llm_graph_context(params) {
//copied from qwen2
const int64_t n_embd_head = hparams.n_embd_head_v();
diff --git a/src/models/eagle3.cpp b/src/models/eagle3.cpp
index d47340759..580f44e59 100644
--- a/src/models/eagle3.cpp
+++ b/src/models/eagle3.cpp
@@ -122,7 +122,7 @@ ggml_tensor * llama_model_eagle3::graph<true>::build_inp_embd_enc() const {
// Input: target_features e.g. [12288, n_tokens] from target model layers low, middle, high
// Output: g_embeddings e.g. [4096, n_tokens] stored in context
template <>
-llama_model_eagle3::graph<true>::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_eagle3::graph<true>::graph(const llm_graph_params & params) : llm_graph_context(params) {
ggml_tensor * cur = nullptr;
cur = build_inp_embd_enc();
@@ -149,7 +149,7 @@ llama_model_eagle3::graph<true>::graph(const llama_model & model, const llm_grap
// Input: draft tokens + g_embeddings from encoder
// Output: draft logits
template <>
-llama_model_eagle3::graph<false>::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_eagle3::graph<false>::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
@@ -326,10 +326,10 @@ llama_model_eagle3::graph<false>::graph(const llama_model & model, const llm_gra
std::unique_ptr<llm_graph_context> llama_model_eagle3::build_arch_graph(const llm_graph_params & params) const {
switch (params.gtype) {
case LLM_GRAPH_TYPE_ENCODER:
- return std::make_unique<graph<true>>(*this, params);
+ return std::make_unique<graph<true>>(params);
case LLM_GRAPH_TYPE_DEFAULT:
case LLM_GRAPH_TYPE_DECODER:
- return std::make_unique<graph<false>>(*this, params);
+ return std::make_unique<graph<false>>(params);
default:
GGML_ABORT("invalid graph type");
};
diff --git a/src/models/ernie4-5-moe.cpp b/src/models/ernie4-5-moe.cpp
index 6bf539d21..e5ebe3955 100644
--- a/src/models/ernie4-5-moe.cpp
+++ b/src/models/ernie4-5-moe.cpp
@@ -1,10 +1,10 @@
#include "models.h"
std::unique_ptr<llm_graph_context> llama_model_ernie4_5_moe::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_ernie4_5_moe::graph::graph(const llama_model & model, const llm_graph_params & params) :
+llama_model_ernie4_5_moe::graph::graph(const llm_graph_params & params) :
llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
diff --git a/src/models/ernie4-5.cpp b/src/models/ernie4-5.cpp
index b7a6e9629..28197fb0a 100644
--- a/src/models/ernie4-5.cpp
+++ b/src/models/ernie4-5.cpp
@@ -70,10 +70,10 @@ void llama_model_ernie4_5::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_ernie4_5::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_ernie4_5::graph::graph(const llama_model & model, const llm_graph_params & params) :
+llama_model_ernie4_5::graph::graph(const llm_graph_params & params) :
llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
diff --git a/src/models/eurobert.cpp b/src/models/eurobert.cpp
index 13bae8b71..3e0d0902d 100644
--- a/src/models/eurobert.cpp
+++ b/src/models/eurobert.cpp
@@ -32,10 +32,10 @@ void llama_model_eurobert::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_eurobert::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_eurobert::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_eurobert::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/exaone-moe.cpp b/src/models/exaone-moe.cpp
index 1a09d544d..c7cd77da2 100644
--- a/src/models/exaone-moe.cpp
+++ b/src/models/exaone-moe.cpp
@@ -102,10 +102,10 @@ void llama_model_exaone_moe::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_exaone_moe::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_exaone_moe::graph::graph(const llama_model & model, const llm_graph_params & params) :
+llama_model_exaone_moe::graph::graph(const llm_graph_params & params) :
llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_k();
diff --git a/src/models/exaone.cpp b/src/models/exaone.cpp
index 070bfd568..cd6611aee 100644
--- a/src/models/exaone.cpp
+++ b/src/models/exaone.cpp
@@ -40,10 +40,10 @@ void llama_model_exaone::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_exaone::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_exaone::graph::graph(const llama_model & model, const llm_graph_params & params) :
+llama_model_exaone::graph::graph(const llm_graph_params & params) :
llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
diff --git a/src/models/exaone4.cpp b/src/models/exaone4.cpp
index 80447908e..de141b173 100644
--- a/src/models/exaone4.cpp
+++ b/src/models/exaone4.cpp
@@ -72,14 +72,14 @@ void llama_model_exaone4::load_arch_tensors(llama_model_loader &) {
std::unique_ptr<llm_graph_context> llama_model_exaone4::build_arch_graph(const llm_graph_params & params) const {
if (hparams.swa_type == LLAMA_SWA_TYPE_STANDARD) {
- return std::make_unique<graph<true>>(*this, params);
+ return std::make_unique<graph<true>>(params);
} else {
- return std::make_unique<graph<false>>(*this, params);
+ return std::make_unique<graph<false>>(params);
}
}
template <bool iswa>
-llama_model_exaone4::graph<iswa>::graph(const llama_model & model, const llm_graph_params & params) :
+llama_model_exaone4::graph<iswa>::graph(const llm_graph_params & params) :
llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_k();
diff --git a/src/models/falcon-h1.cpp b/src/models/falcon-h1.cpp
index a7f9e5576..08bd20240 100644
--- a/src/models/falcon-h1.cpp
+++ b/src/models/falcon-h1.cpp
@@ -106,10 +106,10 @@ void llama_model_falcon_h1::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_falcon_h1::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_falcon_h1::graph::graph(const llama_model & model, const llm_graph_params & params) :
+llama_model_falcon_h1::graph::graph(const llm_graph_params & params) :
llm_build_mamba_base(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
@@ -158,7 +158,7 @@ llama_model_falcon_h1::graph::graph(const llama_model & model, const llm_graph_p
// Mamba2 layer
cb(cur, "ssm_in", il);
- ggml_tensor * ssm_out = build_mamba2_layer(inp->get_recr(), cur, model, ubatch, il);
+ ggml_tensor * ssm_out = build_mamba2_layer(inp->get_recr(), cur, ubatch, il);
cb(ssm_out, "ssm_out", il);
// // Aggregation
diff --git a/src/models/falcon.cpp b/src/models/falcon.cpp
index 555468a47..5eaecfd8f 100644
--- a/src/models/falcon.cpp
+++ b/src/models/falcon.cpp
@@ -44,10 +44,10 @@ void llama_model_falcon::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_falcon::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_falcon::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_falcon::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/flint.cpp b/src/models/flint.cpp
index e7e6f6b79..a2995ff4d 100644
--- a/src/models/flint.cpp
+++ b/src/models/flint.cpp
@@ -71,10 +71,10 @@ void llama_model_flint::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_flint::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_flint::graph::graph(const llama_model & model, const llm_graph_params & params) :
+llama_model_flint::graph::graph(const llm_graph_params & params) :
llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
diff --git a/src/models/gemma-embedding.cpp b/src/models/gemma-embedding.cpp
index bb4e964e8..9c5dc9825 100644
--- a/src/models/gemma-embedding.cpp
+++ b/src/models/gemma-embedding.cpp
@@ -67,10 +67,10 @@ void llama_model_gemma_embedding::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_gemma_embedding::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_gemma_embedding::graph::graph(const llama_model & model, const llm_graph_params & params) :
+llama_model_gemma_embedding::graph::graph(const llm_graph_params & params) :
llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_k();
diff --git a/src/models/gemma-embedding2.cpp b/src/models/gemma-embedding2.cpp
index 2c7fa6750..d81903b63 100644
--- a/src/models/gemma-embedding2.cpp
+++ b/src/models/gemma-embedding2.cpp
@@ -73,12 +73,11 @@ void llama_model_gemma_embedding2::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_gemma_embedding2::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_gemma_embedding2::graph::graph(const llama_model & model, const llm_graph_params & params) :
- llm_graph_context(params),
- model(model) {
+llama_model_gemma_embedding2::graph::graph(const llm_graph_params & params) :
+ llm_graph_context(params) {
ggml_tensor * cur;
ggml_tensor * inpL;
diff --git a/src/models/gemma.cpp b/src/models/gemma.cpp
index 1da4ad815..03f917923 100644
--- a/src/models/gemma.cpp
+++ b/src/models/gemma.cpp
@@ -35,10 +35,10 @@ void llama_model_gemma::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_gemma::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_gemma::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_gemma::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
ggml_tensor * cur;
diff --git a/src/models/gemma2.cpp b/src/models/gemma2.cpp
index c405e6400..0a6a6f42a 100644
--- a/src/models/gemma2.cpp
+++ b/src/models/gemma2.cpp
@@ -54,10 +54,10 @@ void llama_model_gemma2::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_gemma2::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_gemma2::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_gemma2::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_k();
ggml_tensor * cur;
diff --git a/src/models/gemma3.cpp b/src/models/gemma3.cpp
index 4c8183cce..907d35fb1 100644
--- a/src/models/gemma3.cpp
+++ b/src/models/gemma3.cpp
@@ -72,14 +72,14 @@ void llama_model_gemma3::load_arch_tensors(llama_model_loader &) {
std::unique_ptr<llm_graph_context> llama_model_gemma3::build_arch_graph(const llm_graph_params & params) const {
if (hparams.swa_type == LLAMA_SWA_TYPE_STANDARD) {
- return std::make_unique<graph<true>>(*this, params);
+ return std::make_unique<graph<true>>(params);
} else {
- return std::make_unique<graph<false>>(*this, params);
+ return std::make_unique<graph<false>>(params);
}
}
template <bool iswa>
-llama_model_gemma3::graph<iswa>::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_gemma3::graph<iswa>::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_k();
ggml_tensor * cur;
diff --git a/src/models/gemma3n.cpp b/src/models/gemma3n.cpp
index 7f12b1747..90c062aff 100644
--- a/src/models/gemma3n.cpp
+++ b/src/models/gemma3n.cpp
@@ -81,7 +81,7 @@ void llama_model_gemma3n::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_gemma3n::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
// get 2D slice view from a 3D tensor, the idx corresponds to the 3rd dim
@@ -91,9 +91,8 @@ static ggml_tensor * gemma3n_view_2d_slice(ggml_context * ctx0, ggml_tensor * x,
idx * x->ne[0] * x->ne[1] * ggml_element_size(x));
}
-llama_model_gemma3n::graph::graph(const llama_model & model, const llm_graph_params & params) :
+llama_model_gemma3n::graph::graph(const llm_graph_params & params) :
llm_graph_context(params),
- model(model),
n_embd_head(model.hparams.n_embd_head_k()),
n_embd_altup(model.hparams.n_embd_altup),
n_altup(model.hparams.n_altup),
diff --git a/src/models/gemma4-assistant.cpp b/src/models/gemma4-assistant.cpp
index 6ebc3c3e8..b6e2d5af1 100644
--- a/src/models/gemma4-assistant.cpp
+++ b/src/models/gemma4-assistant.cpp
@@ -78,10 +78,10 @@ void llama_model_gemma4_assistant::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_gemma4_assistant::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_gemma4_assistant::graph::graph(const llama_model & model, const llm_graph_params & params) :
+llama_model_gemma4_assistant::graph::graph(const llm_graph_params & params) :
llm_graph_context(params) {
const int64_t n_embd_backbone = hparams.n_embd_inp();
diff --git a/src/models/gemma4.cpp b/src/models/gemma4.cpp
index df245f811..b937fc1fd 100644
--- a/src/models/gemma4.cpp
+++ b/src/models/gemma4.cpp
@@ -148,7 +148,7 @@ void llama_model_gemma4::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_gemma4::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
// get 2D slice view from a 3D tensor, the idx corresponds to the 3rd dim
@@ -157,9 +157,8 @@ static ggml_tensor * gemma4_view_2d_slice(ggml_context * ctx0, ggml_tensor * x,
return ggml_view_2d(ctx0, x, x->ne[0], x->ne[1], x->nb[1], idx * x->nb[2]);
}
-llama_model_gemma4::graph::graph(const llama_model & model, const llm_graph_params & params) :
+llama_model_gemma4::graph::graph(const llm_graph_params & params) :
llm_graph_context(params),
- model(model),
n_embd_per_layer(model.hparams.n_embd_per_layer) {
ggml_tensor * cur;
ggml_tensor * inpL;
diff --git a/src/models/glm-dsa.cpp b/src/models/glm-dsa.cpp
index 146112d36..f8d6956b3 100644
--- a/src/models/glm-dsa.cpp
+++ b/src/models/glm-dsa.cpp
@@ -178,12 +178,12 @@ void llama_model_glm_dsa::load_arch_tensors(llama_model_loader & ml) {
std::unique_ptr<llm_graph_context> llama_model_glm_dsa::build_arch_graph(const llm_graph_params & params) const {
if (params.gtype == LLM_GRAPH_TYPE_DECODER_MTP) {
- return std::make_unique<graph_mtp>(*this, params);
+ return std::make_unique<graph_mtp>(params);
}
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_glm_dsa::graph::graph(const llama_model & model, const llm_graph_params & params) :
+llama_model_glm_dsa::graph::graph(const llm_graph_params & params) :
llm_graph_context(params) {
const bool is_mla = hparams.is_mla();
GGML_ASSERT(is_mla);
@@ -524,7 +524,7 @@ llama_model_glm_dsa::graph::graph(const llama_model & model, const llm_graph_par
// with shared expert, exactly as the trunk deepseek2 graph builds it) ->
// shared_head_norm (fallback output_norm) -> shared LM head.
// The DSA indexer is not used at runtime (same as the trunk graph).
-llama_model_glm_dsa::graph_mtp::graph_mtp(const llama_model & model, const llm_graph_params & params)
+llama_model_glm_dsa::graph_mtp::graph_mtp(const llm_graph_params & params)
: llm_graph_context(params) {
GGML_ASSERT(hparams.n_layer_nextn > 0 && "GLM_DSA MTP requires n_layer_nextn > 0");
GGML_ASSERT(hparams.n_layer_nextn == 1 && "GLM_DSA MTP currently only supports a single MTP block");
diff --git a/src/models/glm4-moe.cpp b/src/models/glm4-moe.cpp
index d19eb553f..7bf186c5d 100644
--- a/src/models/glm4-moe.cpp
+++ b/src/models/glm4-moe.cpp
@@ -118,12 +118,12 @@ void llama_model_glm4_moe::load_arch_tensors(llama_model_loader & ml) {
std::unique_ptr<llm_graph_context> llama_model_glm4_moe::build_arch_graph(const llm_graph_params & params) const {
if (params.gtype == LLM_GRAPH_TYPE_DECODER_MTP) {
- return std::make_unique<graph_mtp>(*this, params);
+ return std::make_unique<graph_mtp>(params);
}
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_glm4_moe::graph_mtp::graph_mtp(const llama_model & model, const llm_graph_params & params)
+llama_model_glm4_moe::graph_mtp::graph_mtp(const llm_graph_params & params)
: llm_graph_context(params) {
GGML_ASSERT(hparams.n_layer_nextn > 0 && "GLM4_MOE MTP requires n_layer_nextn > 0");
GGML_ASSERT(hparams.n_layer_nextn == 1 && "GLM4_MOE MTP currently only supports a single MTP block");
@@ -282,7 +282,7 @@ llama_model_glm4_moe::graph_mtp::graph_mtp(const llama_model & model, const llm_
res->t_logits = cur;
}
-llama_model_glm4_moe::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_glm4_moe::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/glm4.cpp b/src/models/glm4.cpp
index a6cb0889b..b7cd2b434 100644
--- a/src/models/glm4.cpp
+++ b/src/models/glm4.cpp
@@ -62,10 +62,10 @@ void llama_model_glm4::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_glm4::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_glm4::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_glm4::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/glm5-next.cpp b/src/models/glm5-next.cpp
index c37792339..5789b3013 100644
--- a/src/models/glm5-next.cpp
+++ b/src/models/glm5-next.cpp
@@ -185,9 +185,9 @@ void llama_model_glm5_next::load_arch_tensors(llama_model_loader & ml) {
std::unique_ptr<llm_graph_context> llama_model_glm5_next::build_arch_graph(const llm_graph_params & params) const {
if (params.gtype == LLM_GRAPH_TYPE_DECODER_MTP) {
- return std::make_unique<graph_mtp>(*this, params);
+ return std::make_unique<graph_mtp>(params);
}
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
// Causal conv1d over one of Q/K/V
@@ -524,12 +524,12 @@ ggml_tensor * llama_model_glm5_next::graph::build_hc_post(
}
// construct the graph helpers without building the trunk, so graph_mtp can reuse them
-llama_model_glm5_next::graph::graph(const llama_model & model, const llm_graph_params & params, no_build) :
- llm_build_delta_net_base(params), model(model) {
+llama_model_glm5_next::graph::graph(const llm_graph_params & params, no_build) :
+ llm_build_delta_net_base(params) {
}
-llama_model_glm5_next::graph_mtp::graph_mtp(const llama_model & model, const llm_graph_params & params) :
- graph(model, params, no_build{}) {
+llama_model_glm5_next::graph_mtp::graph_mtp(const llm_graph_params & params) :
+ graph(params, no_build{}) {
GGML_ASSERT(hparams.n_layer_nextn > 0 && "GLM5-Next MTP requires n_layer_nextn > 0");
GGML_ASSERT(hparams.n_layer_nextn == 1 && "GLM5-Next MTP currently supports a single NextN block");
@@ -658,8 +658,8 @@ llama_model_glm5_next::graph_mtp::graph_mtp(const llama_model & model, const llm
res->t_logits = cur;
}
-llama_model_glm5_next::graph::graph(const llama_model & model, const llm_graph_params & params) :
- llm_build_delta_net_base(params), model(model) {
+llama_model_glm5_next::graph::graph(const llm_graph_params & params) :
+ llm_build_delta_net_base(params) {
ggml_tensor * cur;
diff --git a/src/models/gpt2.cpp b/src/models/gpt2.cpp
index 102dad97e..711a148a2 100644
--- a/src/models/gpt2.cpp
+++ b/src/models/gpt2.cpp
@@ -53,10 +53,10 @@ void llama_model_gpt2::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_gpt2::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_gpt2::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_gpt2::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/gptneox.cpp b/src/models/gptneox.cpp
index bc8a9fd4a..ce211b18f 100644
--- a/src/models/gptneox.cpp
+++ b/src/models/gptneox.cpp
@@ -81,10 +81,10 @@ void llama_model_gptneox::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_gptneox::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_gptneox::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_gptneox::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/granite-hybrid.cpp b/src/models/granite-hybrid.cpp
index a752a365c..6d363f4cf 100644
--- a/src/models/granite-hybrid.cpp
+++ b/src/models/granite-hybrid.cpp
@@ -129,10 +129,10 @@ void llama_model_granite_hybrid::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_granite_hybrid::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_granite_hybrid::graph::graph(const llama_model & model, const llm_graph_params & params) :
+llama_model_granite_hybrid::graph::graph(const llm_graph_params & params) :
llm_build_mamba_base(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
@@ -163,10 +163,10 @@ llama_model_granite_hybrid::graph::graph(const llama_model & model, const llm_gr
if (hparams.is_recr(il)) {
// ssm layer //
- cur = build_mamba2_layer(inp->get_recr(), cur, model, ubatch, il);
+ cur = build_mamba2_layer(inp->get_recr(), cur, ubatch, il);
} else {
// attention layer //
- cur = build_attention_layer(cur, inp_pos, inp->get_attn(), model, n_embd_head, il);
+ cur = build_attention_layer(cur, inp_pos, inp->get_attn(), n_embd_head, il);
}
if (il == n_layer - 1 && inp_out_ids) {
@@ -175,7 +175,7 @@ llama_model_granite_hybrid::graph::graph(const llama_model & model, const llm_gr
}
// ffn
- cur = build_layer_ffn(cur, inpSA, model, il);
+ cur = build_layer_ffn(cur, inpSA, il);
// input for next layer
inpL = cur;
@@ -202,7 +202,6 @@ llama_model_granite_hybrid::graph::graph(const llama_model & model, const llm_gr
ggml_tensor * llama_model_granite_hybrid::graph::build_attention_layer(ggml_tensor * cur,
ggml_tensor * inp_pos,
llm_graph_input_attn_kv * inp_attn,
- const llama_model & model,
const int64_t n_embd_head,
const int il) {
auto [Qcur, Kcur, Vcur] = build_qkv(model.layers[il], cur, n_embd_head, hparams.n_head(il), hparams.n_head_kv(il), il);
@@ -231,7 +230,6 @@ ggml_tensor * llama_model_granite_hybrid::graph::build_attention_layer(ggml_tens
ggml_tensor * llama_model_granite_hybrid::graph::build_layer_ffn(ggml_tensor * cur,
ggml_tensor * inpSA,
- const llama_model & model,
const int il) {
// For Granite architectures - scale residual
if (hparams.f_residual_scale) {
diff --git a/src/models/granite-moe.cpp b/src/models/granite-moe.cpp
index febe1bfa7..108b68166 100644
--- a/src/models/granite-moe.cpp
+++ b/src/models/granite-moe.cpp
@@ -79,6 +79,6 @@ void llama_model_granite_moe::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_granite_moe::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
diff --git a/src/models/granite-swa.cpp b/src/models/granite-swa.cpp
index 60c1eb8ba..4ca4efed8 100644
--- a/src/models/granite-swa.cpp
+++ b/src/models/granite-swa.cpp
@@ -115,13 +115,10 @@ void llama_model_granite_swa::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_granite_swa::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_granite_swa::graph::graph(
- const llama_model & model,
- const llm_graph_params & params)
- : llm_graph_context(params) {
+llama_model_granite_swa::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
@@ -167,14 +164,14 @@ llama_model_granite_swa::graph::graph(
// self-attention
cur = build_attention_layer(
cur, inp_pos, inp_attn,
- model, n_embd_head, il);
+ n_embd_head, il);
if (il == n_layer - 1 && inp_out_ids) {
cur = ggml_get_rows(ctx0, cur, inp_out_ids);
inpSA = ggml_get_rows(ctx0, inpSA, inp_out_ids);
}
// ffn
- cur = build_layer_ffn(cur, inpSA, model, il);
+ cur = build_layer_ffn(cur, inpSA, il);
// input for next layer
inpL = cur;
@@ -201,7 +198,6 @@ ggml_tensor * llama_model_granite_swa::graph::build_attention_layer(
ggml_tensor * cur,
ggml_tensor * inp_pos,
llm_graph_input_attn_kv_iswa * inp_attn,
- const llama_model & model,
const int64_t n_embd_head,
const int il) {
@@ -241,7 +237,6 @@ ggml_tensor * llama_model_granite_swa::graph::build_attention_layer(
ggml_tensor * llama_model_granite_swa::graph::build_layer_ffn(
ggml_tensor * cur,
ggml_tensor * inpSA,
- const llama_model & model,
const int il) {
// For Granite architectures - scale residual
diff --git a/src/models/granite-switch.cpp b/src/models/granite-switch.cpp
index f67bf6055..a972bc0e6 100644
--- a/src/models/granite-switch.cpp
+++ b/src/models/granite-switch.cpp
@@ -186,7 +186,7 @@ void llm_graph_input_switch::set_input(const llama_ubatch * ubatch) {
}
std::unique_ptr<llm_graph_context> llama_model_granite_switch::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
// per-token switched LoRA delta: B_a*(A_a*x), adapter selected per token via ids.
@@ -219,10 +219,7 @@ ggml_tensor * llama_model_granite_switch::graph::build_switched_lora_mm(
return ggml_add(ctx0, base, delta);
}
-llama_model_granite_switch::graph::graph(
- const llama_model & model,
- const llm_graph_params & params)
- : llm_graph_context(params) {
+llama_model_granite_switch::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const auto & smodel = static_cast<const llama_model_granite_switch &>(model);
@@ -300,7 +297,7 @@ llama_model_granite_switch::graph::graph(
cur = build_norm(inpL, model.layers[il].attn_norm, NULL, LLM_NORM_RMS, il);
cb(cur, "attn_norm", il);
- cur = build_attention_layer(cur, inp_pos, adapter_ids, inp_attn, model, n_embd_head, il);
+ cur = build_attention_layer(cur, inp_pos, adapter_ids, inp_attn, n_embd_head, il);
if (il == n_layer - 1 && inp_out_ids) {
cur = ggml_get_rows(ctx0, cur, inp_out_ids);
@@ -312,7 +309,7 @@ llama_model_granite_switch::graph::graph(
adapter_ids = ggml_reshape_1d(ctx0, adapter_ids, n_out);
}
- cur = build_layer_ffn(cur, inpSA, adapter_ids, model, il);
+ cur = build_layer_ffn(cur, inpSA, adapter_ids, il);
inpL = cur;
}
@@ -335,7 +332,6 @@ ggml_tensor * llama_model_granite_switch::graph::build_attention_layer(
ggml_tensor * inp_pos,
ggml_tensor * adapter_ids,
llm_graph_input_attn_kv * inp_attn,
- const llama_model & model,
const int64_t n_embd_head,
const int il) {
@@ -395,7 +391,6 @@ ggml_tensor * llama_model_granite_switch::graph::build_layer_ffn(
ggml_tensor * cur,
ggml_tensor * inpSA,
ggml_tensor * adapter_ids,
- const llama_model & model,
const int il) {
const auto & layer = model.layers[il];
diff --git a/src/models/granite.cpp b/src/models/granite.cpp
index aa4d01095..0c89c6949 100644
--- a/src/models/granite.cpp
+++ b/src/models/granite.cpp
@@ -117,13 +117,10 @@ void llama_model_granite::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_granite::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_granite::graph::graph(
- const llama_model & model,
- const llm_graph_params & params)
- : llm_graph_context(params) {
+llama_model_granite::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
@@ -172,14 +169,14 @@ llama_model_granite::graph::graph(
// self-attention
cur = build_attention_layer(
cur, inp_pos, inp_attn,
- model, n_embd_head, il);
+ n_embd_head, il);
if (il == n_layer - 1 && inp_out_ids) {
cur = ggml_get_rows(ctx0, cur, inp_out_ids);
inpSA = ggml_get_rows(ctx0, inpSA, inp_out_ids);
}
// ffn
- cur = build_layer_ffn(cur, inpSA, model, il);
+ cur = build_layer_ffn(cur, inpSA, il);
// input for next layer
inpL = cur;
@@ -206,7 +203,6 @@ ggml_tensor * llama_model_granite::graph::build_attention_layer(
ggml_tensor * cur,
ggml_tensor * inp_pos,
llm_graph_input_attn_kv * inp_attn,
- const llama_model & model,
const int64_t n_embd_head,
const int il) {
@@ -243,7 +239,6 @@ ggml_tensor * llama_model_granite::graph::build_attention_layer(
ggml_tensor * llama_model_granite::graph::build_layer_ffn(
ggml_tensor * cur,
ggml_tensor * inpSA,
- const llama_model & model,
const int il) {
// For Granite architectures - scale residual
diff --git a/src/models/grok.cpp b/src/models/grok.cpp
index 1a125d94e..e82c23f75 100644
--- a/src/models/grok.cpp
+++ b/src/models/grok.cpp
@@ -80,10 +80,10 @@ void llama_model_grok::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_grok::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_grok::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_grok::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/grovemoe.cpp b/src/models/grovemoe.cpp
index b2648a13a..44f44cecb 100644
--- a/src/models/grovemoe.cpp
+++ b/src/models/grovemoe.cpp
@@ -61,10 +61,10 @@ void llama_model_grovemoe::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_grovemoe::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_grovemoe::graph::graph(const llama_model & model, const llm_graph_params & params) :
+llama_model_grovemoe::graph::graph(const llm_graph_params & params) :
llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
const int64_t n_chunk_expert = n_expert / hparams.n_group_experts;
diff --git a/src/models/hrm-text.cpp b/src/models/hrm-text.cpp
index 912a430f4..5fe7e1542 100644
--- a/src/models/hrm-text.cpp
+++ b/src/models/hrm-text.cpp
@@ -86,7 +86,7 @@ void llama_model_hrm_text::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_hrm_text::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
// one stack invocation: lps pre-norm decoder layers, then the parameterless final norm
@@ -165,9 +165,8 @@ ggml_tensor * llama_model_hrm_text::graph::build_stack(llm_graph_input_attn_kv *
return cur;
}
-llama_model_hrm_text::graph::graph(const llama_model & model, const llm_graph_params & params) :
- llm_graph_context(params),
- model(model) {
+llama_model_hrm_text::graph::graph(const llm_graph_params & params) :
+ llm_graph_context(params) {
ggml_tensor * cur;
// {n_embd, n_tokens}, scaled by hparams.f_embedding_scale inside build_inp_embd
diff --git a/src/models/hunyuan-dense.cpp b/src/models/hunyuan-dense.cpp
index c137bd37c..3f9a75ba4 100644
--- a/src/models/hunyuan-dense.cpp
+++ b/src/models/hunyuan-dense.cpp
@@ -1,6 +1,6 @@
#include "models.h"
std::unique_ptr<llm_graph_context> llama_model_hunyuan_dense::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
diff --git a/src/models/hunyuan-moe.cpp b/src/models/hunyuan-moe.cpp
index 779575eee..2cfc17f8f 100644
--- a/src/models/hunyuan-moe.cpp
+++ b/src/models/hunyuan-moe.cpp
@@ -50,10 +50,10 @@ void llama_model_hunyuan_moe::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_hunyuan_moe::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_hunyuan_moe::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_hunyuan_moe::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/hunyuan-vl.cpp b/src/models/hunyuan-vl.cpp
index fa7183190..52fc75ddf 100644
--- a/src/models/hunyuan-vl.cpp
+++ b/src/models/hunyuan-vl.cpp
@@ -54,10 +54,10 @@ void llama_model_hunyuan_vl::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_hunyuan_vl::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_hunyuan_vl::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_hunyuan_vl::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/hy-v3.cpp b/src/models/hy-v3.cpp
index 080b30c1a..37150ef12 100644
--- a/src/models/hy-v3.cpp
+++ b/src/models/hy-v3.cpp
@@ -89,12 +89,12 @@ void llama_model_hy_v3::load_arch_tensors(llama_model_loader & ml) {
std::unique_ptr<llm_graph_context> llama_model_hy_v3::build_arch_graph(const llm_graph_params & params) const {
if (params.gtype == LLM_GRAPH_TYPE_DECODER_MTP) {
- return std::make_unique<graph_mtp>(*this, params);
+ return std::make_unique<graph_mtp>(params);
}
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_hy_v3::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_hy_v3::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
@@ -225,7 +225,7 @@ llama_model_hy_v3::graph::graph(const llama_model & model, const llm_graph_param
// hy_v3 decoder block -> final_layernorm (stored as nextn.shared_head_norm) ->
// shared LM head (the main model's lm_head; the checkpoint has no separate
// MTP head or MTP embeddings).
-llama_model_hy_v3::graph_mtp::graph_mtp(const llama_model & model, const llm_graph_params & params)
+llama_model_hy_v3::graph_mtp::graph_mtp(const llm_graph_params & params)
: llm_graph_context(params) {
GGML_ASSERT(hparams.n_layer_nextn > 0 && "HY_V3 MTP requires n_layer_nextn > 0");
diff --git a/src/models/hy-v4.cpp b/src/models/hy-v4.cpp
index 945e0cc37..4e226bafd 100644
--- a/src/models/hy-v4.cpp
+++ b/src/models/hy-v4.cpp
@@ -155,7 +155,7 @@ void llama_model_hy_v4::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_hy_v4::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
// reduce hc streams x[:,i,:] weighted by w[i,:] -> [n_embd, n_tokens]
@@ -267,7 +267,6 @@ ggml_tensor * llama_model_hy_v4::graph::build_hc_head(
}
ggml_tensor * llama_model_hy_v4::graph::build_attention(
- const llama_model & model,
llm_graph_input_attn_k * inp_attn,
ggml_tensor * cur,
ggml_tensor * inp_pos,
@@ -339,7 +338,6 @@ ggml_tensor * llama_model_hy_v4::graph::build_attention(
}
ggml_tensor * llama_model_hy_v4::graph::build_indexer_top_k(
- const llama_model & model,
llm_graph_input_attn_k_dsa * inp_attn_dsa,
ggml_tensor * cur,
ggml_tensor * qr,
@@ -419,7 +417,6 @@ ggml_tensor * llama_model_hy_v4::graph::build_indexer_top_k(
llama_model_hy_v4::graph::attn_dsa
llama_model_hy_v4::graph::build_attention_dsa(
- const llama_model & model,
llm_graph_input_attn_k_dsa * inp_attn_dsa,
ggml_tensor * cur,
ggml_tensor * inp_pos,
@@ -438,7 +435,7 @@ llama_model_hy_v4::graph::build_attention_dsa(
ggml_tensor * top_k = last_top_k;
if (hparams.is_indexer_full(il)) {
- top_k = build_indexer_top_k(model, inp_attn_dsa, cur, qr, inp_pos, il);
+ top_k = build_indexer_top_k(inp_attn_dsa, cur, qr, inp_pos, il);
cb(top_k, "top_k", il);
}
GGML_ASSERT(top_k != nullptr);
@@ -495,7 +492,7 @@ llama_model_hy_v4::graph::build_attention_dsa(
return { out, top_k };
}
-llama_model_hy_v4::graph::graph(const llama_model & model, const llm_graph_params & params) :
+llama_model_hy_v4::graph::graph(const llm_graph_params & params) :
llm_graph_context(params) {
const int64_t hc = hparams.dsv4_hc_mult;
const int64_t n_embd_head_k = hparams.n_embd_head_k_mla();
@@ -528,11 +525,11 @@ llama_model_hy_v4::graph::graph(const llama_model & model, const llm_graph_param
cb(cur, "attn_norm", il);
if (is_dsa) {
- attn_dsa attn = build_attention_dsa(model, inp_attn_dsa, cur, inp_pos, last_top_k, kq_scale, il);
+ attn_dsa attn = build_attention_dsa(inp_attn_dsa, cur, inp_pos, last_top_k, kq_scale, il);
cur = attn.cur;
last_top_k = attn.top_k;
} else {
- cur = build_attention(model, inp_attn, cur, inp_pos, kq_scale, il);
+ cur = build_attention(inp_attn, cur, inp_pos, kq_scale, il);
}
inpL = build_hc_post(cur, residual, attn_hc.post, il);
diff --git a/src/models/internlm2.cpp b/src/models/internlm2.cpp
index 8fc99856a..4f7fb4346 100644
--- a/src/models/internlm2.cpp
+++ b/src/models/internlm2.cpp
@@ -35,10 +35,10 @@ void llama_model_internlm2::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_internlm2::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_internlm2::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_internlm2::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/jais.cpp b/src/models/jais.cpp
index 446b56617..daa3315bf 100644
--- a/src/models/jais.cpp
+++ b/src/models/jais.cpp
@@ -49,10 +49,10 @@ void llama_model_jais::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_jais::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_jais::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_jais::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/jais2.cpp b/src/models/jais2.cpp
index 4b24e697f..8cbdcaff4 100644
--- a/src/models/jais2.cpp
+++ b/src/models/jais2.cpp
@@ -46,12 +46,12 @@ void llama_model_jais2::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_jais2::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
// JAIS-2 model graph builder
// Uses: LayerNorm (not RMSNorm), relu2 activation, separate Q/K/V, RoPE embeddings
-llama_model_jais2::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_jais2::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/jamba.cpp b/src/models/jamba.cpp
index ed4c9f13e..842df63b6 100644
--- a/src/models/jamba.cpp
+++ b/src/models/jamba.cpp
@@ -102,10 +102,10 @@ void llama_model_jamba::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_jamba::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_jamba::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_build_mamba_base(params) {
+llama_model_jamba::graph::graph(const llm_graph_params & params) : llm_build_mamba_base(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
ggml_tensor * cur;
@@ -125,7 +125,7 @@ llama_model_jamba::graph::graph(const llama_model & model, const llm_graph_param
cb(cur, "attn_norm", il);
if (n_head_kv == 0) {
- cur = build_mamba_layer(inp_hybrid->get_recr(), cur, model, ubatch, il);
+ cur = build_mamba_layer(inp_hybrid->get_recr(), cur, ubatch, il);
} else {
// Attention
diff --git a/src/models/jina-bert-v2.cpp b/src/models/jina-bert-v2.cpp
index 86ff1c84d..e036018d2 100644
--- a/src/models/jina-bert-v2.cpp
+++ b/src/models/jina-bert-v2.cpp
@@ -61,6 +61,6 @@ void llama_model_jina_bert_v2::load_arch_tensors(llama_model_loader & ml) {
}
std::unique_ptr<llm_graph_context> llama_model_jina_bert_v2::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
diff --git a/src/models/jina-bert-v3.cpp b/src/models/jina-bert-v3.cpp
index 78cf9d835..a4b7ef428 100644
--- a/src/models/jina-bert-v3.cpp
+++ b/src/models/jina-bert-v3.cpp
@@ -44,6 +44,6 @@ void llama_model_jina_bert_v3::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_jina_bert_v3::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
diff --git a/src/models/k2-horizon.cpp b/src/models/k2-horizon.cpp
index 845940913..487e7fc3a 100644
--- a/src/models/k2-horizon.cpp
+++ b/src/models/k2-horizon.cpp
@@ -117,7 +117,7 @@ void llama_model_k2_horizon::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_k2_horizon::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
// RMS norm over n_groups equal slices of ne[0], then one full-width weight
@@ -210,7 +210,7 @@ ggml_tensor * llama_model_k2_horizon::graph::build_routed_value(const llama_laye
return value_out;
}
-llama_model_k2_horizon::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_k2_horizon::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/kimi-k3.cpp b/src/models/kimi-k3.cpp
index 3644fe77a..2e91c5243 100644
--- a/src/models/kimi-k3.cpp
+++ b/src/models/kimi-k3.cpp
@@ -166,7 +166,7 @@ void llama_model_kimi_k3::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_kimi_k3::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
// situ(gate, up) = beta*tanh(gate/beta)*sigmoid(gate) * linear_beta*tanh(up/linear_beta)
@@ -232,8 +232,8 @@ ggml_tensor * llama_model_kimi_k3::graph::res_mix(ggml_tensor * cur, ggml_tensor
return out;
}
-llama_model_kimi_k3::graph::graph(const llama_model & model, const llm_graph_params & params) :
- llm_build_delta_net_base(params), model(model) {
+llama_model_kimi_k3::graph::graph(const llm_graph_params & params) :
+ llm_build_delta_net_base(params) {
ggml_tensor * cur;
ggml_tensor * inpL;
diff --git a/src/models/kimi-linear.cpp b/src/models/kimi-linear.cpp
index 7ce088ef6..54d30ad47 100644
--- a/src/models/kimi-linear.cpp
+++ b/src/models/kimi-linear.cpp
@@ -167,7 +167,7 @@ void llama_model_kimi_linear::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_kimi_linear::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
// Causal Conv1d function for Q,K,V
@@ -231,8 +231,8 @@ static ggml_tensor * causal_conv1d(ggml_cgraph * gf, ggml_context * ctx0, ggml_t
return ggml_reshape_4d(ctx0, Xcur, head_dim, n_head, n_seq_tokens, n_seqs);
}
-llama_model_kimi_linear::graph::graph(const llama_model & model, const llm_graph_params & params) :
- llm_build_delta_net_base(params), model(model) {
+llama_model_kimi_linear::graph::graph(const llm_graph_params & params) :
+ llm_build_delta_net_base(params) {
ggml_tensor * cur;
ggml_tensor * inpL;
diff --git a/src/models/kolibri1.cpp b/src/models/kolibri1.cpp
index 2301ef272..bf11fba3c 100644
--- a/src/models/kolibri1.cpp
+++ b/src/models/kolibri1.cpp
@@ -64,7 +64,7 @@ void llama_model_kolibri1::load_arch_tensors(llama_model_loader &) {
}
}
-llama_model_kolibri1::graph::graph(const llama_model & model, const llm_graph_params & params)
+llama_model_kolibri1::graph::graph(const llm_graph_params & params)
: llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
@@ -180,5 +180,5 @@ llama_model_kolibri1::graph::graph(const llama_model & model, const llm_graph_pa
}
std::unique_ptr<llm_graph_context> llama_model_kolibri1::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
diff --git a/src/models/laguna.cpp b/src/models/laguna.cpp
index cbc7b26d7..bc399670b 100644
--- a/src/models/laguna.cpp
+++ b/src/models/laguna.cpp
@@ -149,10 +149,10 @@ void llama_model_laguna::load_arch_tensors(llama_model_loader & ml) {
}
std::unique_ptr<llm_graph_context> llama_model_laguna::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_laguna::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_laguna::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/lfm-base.cpp b/src/models/lfm-base.cpp
index f2a6ee461..3627c527d 100644
--- a/src/models/lfm-base.cpp
+++ b/src/models/lfm-base.cpp
@@ -4,8 +4,7 @@
llm_build_lfm_base::llm_build_lfm_base(const llm_graph_params & params) : llm_graph_context(params) {}
-ggml_tensor * llm_build_lfm_base::build_lfm_shortconv(const llama_model & model,
- const llama_memory_recurrent_context * mctx_recr,
+ggml_tensor * llm_build_lfm_base::build_lfm_shortconv(const llama_memory_recurrent_context * mctx_recr,
llm_graph_input_rs * inp_recr,
ggml_tensor * cur,
int il) {
@@ -67,8 +66,7 @@ ggml_tensor * llm_build_lfm_base::build_lfm_shortconv(const llama_model & model,
return y;
}
-ggml_tensor * llm_build_lfm_base::build_lfm_shortconv(const llama_model & model,
- ggml_tensor * cur,
+ggml_tensor * llm_build_lfm_base::build_lfm_shortconv(ggml_tensor * cur,
int il) {
const int64_t d_conv = hparams.n_shortconv_l_cache - 1;
@@ -94,8 +92,7 @@ ggml_tensor * llm_build_lfm_base::build_lfm_shortconv(const llama_model & model,
return y;
}
-ggml_tensor * llm_build_lfm_base::build_lfm_dense_ffn(const llama_model & model,
- ggml_tensor * cur,
+ggml_tensor * llm_build_lfm_base::build_lfm_dense_ffn(ggml_tensor * cur,
int il) {
GGML_ASSERT(!model.layers[il].ffn_up_b);
GGML_ASSERT(!model.layers[il].ffn_gate_b);
@@ -107,8 +104,7 @@ ggml_tensor * llm_build_lfm_base::build_lfm_dense_ffn(const llama_model & model,
NULL, LLM_FFN_SILU, LLM_FFN_PAR, il);
}
-ggml_tensor * llm_build_lfm_base::build_lfm_moe_ffn(const llama_model & model,
- ggml_tensor * cur,
+ggml_tensor * llm_build_lfm_base::build_lfm_moe_ffn(ggml_tensor * cur,
int il) {
return build_moe_ffn(cur,
model.layers[il].ffn_gate_inp,
diff --git a/src/models/lfm2.cpp b/src/models/lfm2.cpp
index f7d4f95b0..9d83b3dc1 100644
--- a/src/models/lfm2.cpp
+++ b/src/models/lfm2.cpp
@@ -136,26 +136,26 @@ void llama_model_lfm2::load_arch_tensors(llama_model_loader &) {
std::unique_ptr<llm_graph_context> llama_model_lfm2::build_arch_graph(const llm_graph_params & params) const {
if (hparams.n_layer_decision > 0) {
- return std::make_unique<graph_decision>(*this, params);
+ return std::make_unique<graph_decision>(params);
}
if (hparams.swa_type == LLAMA_SWA_TYPE_STANDARD) {
- return std::make_unique<graph<true>>(*this, params);
+ return std::make_unique<graph<true>>(params);
} else {
- return std::make_unique<graph<false>>(*this, params);
+ return std::make_unique<graph<false>>(params);
}
}
template <bool iswa>
-llama_model_lfm2::graph<iswa>::graph(const llama_model & model, const llm_graph_params & params) :
+llama_model_lfm2::graph<iswa>::graph(const llm_graph_params & params) :
llm_build_lfm_base(params) {
using inp_hybrid_type = std::conditional_t<iswa, llm_graph_input_mem_hybrid_iswa, llm_graph_input_mem_hybrid>;
using inp_attn_type = std::conditional_t<iswa, llm_graph_input_attn_kv_iswa, llm_graph_input_attn_kv>;
using mem_hybrid_ctx = std::conditional_t<iswa, llama_memory_hybrid_iswa_context, llama_memory_hybrid_context>;
- auto build_attn_block = [&model, this](ggml_tensor * cur,
- ggml_tensor * inp_pos,
- inp_attn_type * inp_attn,
- int il) -> ggml_tensor * {
+ auto build_attn_block = [this](ggml_tensor * cur,
+ ggml_tensor * inp_pos,
+ inp_attn_type * inp_attn,
+ int il) -> ggml_tensor * {
GGML_ASSERT(hparams.n_embd_v_gqa(il) == hparams.n_embd_k_gqa(il));
const auto n_embd_head = hparams.n_embd_head_v();
const auto n_head_kv = hparams.n_head_kv(il);
@@ -210,7 +210,7 @@ llama_model_lfm2::graph<iswa>::graph(const llama_model & model, const llm_graph_
if (hparams.is_recr(il)) {
const auto * mctx_recr = static_cast<const mem_hybrid_ctx *>(mctx)->get_recr();
- cur = build_lfm_shortconv(model, mctx_recr, inp_hybrid->get_recr(), cur, il);
+ cur = build_lfm_shortconv(mctx_recr, inp_hybrid->get_recr(), cur, il);
} else {
cur = build_attn_block(cur, inp_pos, inp_hybrid->get_attn(), il);
}
@@ -226,7 +226,7 @@ llama_model_lfm2::graph<iswa>::graph(const llama_model & model, const llm_graph_
cb(ffn_norm_out, "model.layers.{}.ffn_norm", il);
ggml_tensor * ffn_out =
- is_moe_layer ? build_lfm_moe_ffn(model, ffn_norm_out, il) : build_lfm_dense_ffn(model, ffn_norm_out, il);
+ is_moe_layer ? build_lfm_moe_ffn(ffn_norm_out, il) : build_lfm_dense_ffn(ffn_norm_out, il);
cb(ffn_norm_out, "model.layers.{}.ffn_out", il);
cur = ggml_add(ctx0, cur, ffn_out);
@@ -314,7 +314,7 @@ public:
ggml_tensor * right = nullptr; // F32 [1, n_tokens]
};
-llama_model_lfm2::graph_decision::graph_decision(const llama_model & model, const llm_graph_params & params) :
+llama_model_lfm2::graph_decision::graph_decision(const llm_graph_params & params) :
llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
const int n_layer_enc = n_layer - hparams.n_layer_decision;
@@ -411,7 +411,7 @@ llama_model_lfm2::graph_decision::graph_decision(const llama_model & model, cons
cur = build_norm(cur, model.output_norm, NULL, LLM_NORM_RMS, -1);
cb(cur, "result_norm", -1);
- cur = build_decision_head(model, cur, inp_attn[1], inp_out_ids);
+ cur = build_decision_head(cur, inp_attn[1], inp_out_ids);
res->t_embd = cur;
ggml_build_forward_expand(gf, cur);
@@ -419,7 +419,6 @@ llama_model_lfm2::graph_decision::graph_decision(const llama_model & model, cons
// same as llama_model_modern_bert::graph::build_decision_head(), with the head counts of the head layers
ggml_tensor * llama_model_lfm2::graph_decision::build_decision_head(
- const llama_model & model,
ggml_tensor * inp,
llm_graph_input_attn_no_cache * inp_attn,
ggml_tensor * inp_out_ids) {
diff --git a/src/models/lfm2moe.cpp b/src/models/lfm2moe.cpp
index f8d47f9b8..642fe8899 100644
--- a/src/models/lfm2moe.cpp
+++ b/src/models/lfm2moe.cpp
@@ -77,9 +77,9 @@ void llama_model_lfm2moe::load_arch_tensors(llama_model_loader &) {
std::unique_ptr<llm_graph_context> llama_model_lfm2moe::build_arch_graph(const llm_graph_params & params) const {
if (hparams.swa_type == LLAMA_SWA_TYPE_STANDARD) {
- return std::make_unique<graph<true>>(*this, params);
+ return std::make_unique<graph<true>>(params);
} else {
- return std::make_unique<graph<false>>(*this, params);
+ return std::make_unique<graph<false>>(params);
}
}
diff --git a/src/models/lfm3.cpp b/src/models/lfm3.cpp
index 20838f87f..9c5399c2f 100644
--- a/src/models/lfm3.cpp
+++ b/src/models/lfm3.cpp
@@ -90,18 +90,18 @@ void llama_model_lfm3::load_arch_tensors(llama_model_loader &) {
std::unique_ptr<llm_graph_context> llama_model_lfm3::build_arch_graph(const llm_graph_params & params) const {
if (!hparams.causal_attn) {
- return std::make_unique<graph<true>>(*this, params);
+ return std::make_unique<graph<true>>(params);
}
- return std::make_unique<graph<false>>(*this, params);
+ return std::make_unique<graph<false>>(params);
}
template <bool decision>
-llama_model_lfm3::graph<decision>::graph(const llama_model & model, const llm_graph_params & params) :
+llama_model_lfm3::graph<decision>::graph(const llm_graph_params & params) :
llm_build_lfm_base(params) {
- auto build_attn_block = [&model, this](ggml_tensor * cur_in,
- ggml_tensor * inp_pos,
- auto * inp_attn,
- int il) -> ggml_tensor * {
+ auto build_attn_block = [this](ggml_tensor * cur_in,
+ ggml_tensor * inp_pos,
+ auto * inp_attn,
+ int il) -> ggml_tensor * {
const int64_t n_embd_head = hparams.n_embd_head_k(il);
const int64_t n_head_il = hparams.n_head(il);
const int64_t n_head_kv = hparams.n_head_kv(il);
@@ -166,10 +166,10 @@ llama_model_lfm3::graph<decision>::graph(const llama_model & model, const llm_gr
if (hparams.is_recr(il)) {
if constexpr (decision) {
- cur = build_lfm_shortconv(model, cur, il);
+ cur = build_lfm_shortconv(cur, il);
} else {
const auto * mctx_recr = static_cast<const llama_memory_hybrid_iswa_context *>(mctx)->get_recr();
- cur = build_lfm_shortconv(model, mctx_recr, inp_hybrid->get_recr(), cur, il);
+ cur = build_lfm_shortconv(mctx_recr, inp_hybrid->get_recr(), cur, il);
}
} else if constexpr (decision) {
cur = build_attn_block(cur, inp_pos, inp_attn, il);
@@ -192,7 +192,7 @@ llama_model_lfm3::graph<decision>::graph(const llama_model & model, const llm_gr
auto * ffn_norm_out = build_norm(cur, model.layers[il].ffn_norm, NULL, LLM_NORM_RMS, il);
cb(ffn_norm_out, "model.layers.{}.ffn_norm", il);
- ggml_tensor * ffn_out = build_lfm_dense_ffn(model, ffn_norm_out, il);
+ ggml_tensor * ffn_out = build_lfm_dense_ffn(ffn_norm_out, il);
if (model.layers[il].ffn_post_norm) {
ffn_out = build_norm(ffn_out, model.layers[il].ffn_post_norm, NULL, LLM_NORM_RMS, il);
diff --git a/src/models/limite.cpp b/src/models/limite.cpp
index 63f7c8288..67b368cfd 100644
--- a/src/models/limite.cpp
+++ b/src/models/limite.cpp
@@ -69,10 +69,10 @@ void llama_model_limite::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_limite::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_limite::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_limite::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_k();
const int64_t n_taps = hparams.n_mudd_taps;
diff --git a/src/models/llada-moe.cpp b/src/models/llada-moe.cpp
index 0930cfb3c..d7baf7a4b 100644
--- a/src/models/llada-moe.cpp
+++ b/src/models/llada-moe.cpp
@@ -48,10 +48,10 @@ void llama_model_llada_moe::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_llada_moe::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_llada_moe::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_llada_moe::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/llada.cpp b/src/models/llada.cpp
index 1277e9dd7..019966a37 100644
--- a/src/models/llada.cpp
+++ b/src/models/llada.cpp
@@ -60,10 +60,10 @@ void llama_model_llada::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_llada::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_llada::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_llada::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
// LLaDA is similar to LLaMA but uses non-causal attention for diffusion
const int64_t n_embd_head = hparams.n_embd_head_v();
diff --git a/src/models/llama-embed.cpp b/src/models/llama-embed.cpp
index 0699e7444..691eb8956 100644
--- a/src/models/llama-embed.cpp
+++ b/src/models/llama-embed.cpp
@@ -1,6 +1,6 @@
#include "models.h"
std::unique_ptr<llm_graph_context> llama_model_llama_embed::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph<true>>(*this, params);
+ return std::make_unique<graph<true>>(params);
}
diff --git a/src/models/llama.cpp b/src/models/llama.cpp
index f9c125113..87174c6bc 100644
--- a/src/models/llama.cpp
+++ b/src/models/llama.cpp
@@ -92,11 +92,11 @@ void llama_model_llama::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_llama::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph<false>>(*this, params);
+ return std::make_unique<graph<false>>(params);
}
template <bool embed>
-llama_model_llama::graph<embed>::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_llama::graph<embed>::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/llama4.cpp b/src/models/llama4.cpp
index 9a365394c..433d1ef58 100644
--- a/src/models/llama4.cpp
+++ b/src/models/llama4.cpp
@@ -95,14 +95,14 @@ void llama_model_llama4::load_arch_tensors(llama_model_loader &) {
std::unique_ptr<llm_graph_context> llama_model_llama4::build_arch_graph(const llm_graph_params & params) const {
if (hparams.swa_type == LLAMA_SWA_TYPE_NONE) {
- return std::make_unique<graph<false>>(*this, params);
+ return std::make_unique<graph<false>>(params);
} else {
- return std::make_unique<graph<true>>(*this, params);
+ return std::make_unique<graph<true>>(params);
}
}
template <bool iswa>
-llama_model_llama4::graph<iswa>::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_llama4::graph<iswa>::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/maincoder.cpp b/src/models/maincoder.cpp
index 1eeab45a1..c9bf837c1 100644
--- a/src/models/maincoder.cpp
+++ b/src/models/maincoder.cpp
@@ -41,10 +41,10 @@ void llama_model_maincoder::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_maincoder::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_maincoder::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_maincoder::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/maion-coder.cpp b/src/models/maion-coder.cpp
index bb3ebabc7..1c778e06a 100644
--- a/src/models/maion-coder.cpp
+++ b/src/models/maion-coder.cpp
@@ -65,10 +65,10 @@ void llama_model_maion_coder::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_maion_coder::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_maion_coder::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_maion_coder::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_k();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_v());
diff --git a/src/models/mamba-base.cpp b/src/models/mamba-base.cpp
index 8d67d39e4..4e16f18aa 100644
--- a/src/models/mamba-base.cpp
+++ b/src/models/mamba-base.cpp
@@ -8,7 +8,6 @@ llm_build_mamba_base::llm_build_mamba_base(const llm_graph_params & params) : ll
ggml_tensor * llm_build_mamba_base::build_mamba_layer(llm_graph_input_rs * inp,
ggml_tensor * cur,
- const llama_model & model,
const llama_ubatch & ubatch,
int il) {
const auto * mctx_cur = inp->mctx;
@@ -152,7 +151,6 @@ ggml_tensor * llm_build_mamba_base::build_mamba_layer(llm_graph_input_rs * inp,
ggml_tensor * llm_build_mamba_base::build_mamba2_layer(llm_graph_input_rs * inp,
ggml_tensor * cur,
- const llama_model & model,
const llama_ubatch & ubatch,
int il) const {
const auto * mctx_cur = inp->mctx;
diff --git a/src/models/mamba.cpp b/src/models/mamba.cpp
index d47e8e5e1..13a9de6b0 100644
--- a/src/models/mamba.cpp
+++ b/src/models/mamba.cpp
@@ -81,10 +81,10 @@ void llama_model_mamba::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_mamba::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_mamba::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_build_mamba_base(params) {
+llama_model_mamba::graph::graph(const llm_graph_params & params) : llm_build_mamba_base(params) {
ggml_tensor * cur;
ggml_tensor * inpL;
@@ -101,9 +101,9 @@ llama_model_mamba::graph::graph(const llama_model & model, const llm_graph_param
cb(cur, "attn_norm", il);
if (model.arch == LLM_ARCH_MAMBA2) {
- cur = build_mamba2_layer(rs_inp, cur, model, ubatch, il);
+ cur = build_mamba2_layer(rs_inp, cur, ubatch, il);
} else {
- cur = build_mamba_layer(rs_inp, cur, model, ubatch, il);
+ cur = build_mamba_layer(rs_inp, cur, ubatch, il);
}
if (il == n_layer - 1 && inp_out_ids) {
diff --git a/src/models/mamba2.cpp b/src/models/mamba2.cpp
index d5c167cf0..9088d941e 100644
--- a/src/models/mamba2.cpp
+++ b/src/models/mamba2.cpp
@@ -83,6 +83,6 @@ void llama_model_mamba2::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_mamba2::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
diff --git a/src/models/maple.cpp b/src/models/maple.cpp
index 9568c6475..d853d601c 100644
--- a/src/models/maple.cpp
+++ b/src/models/maple.cpp
@@ -59,10 +59,10 @@ void llama_model_maple::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_maple::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_maple::graph::graph(const llama_model & model, const llm_graph_params & params) :
+llama_model_maple::graph::graph(const llm_graph_params & params) :
llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_k();
diff --git a/src/models/mellum.cpp b/src/models/mellum.cpp
index eaa540310..e25711b2c 100644
--- a/src/models/mellum.cpp
+++ b/src/models/mellum.cpp
@@ -93,19 +93,19 @@ std::unique_ptr<llm_graph_context> llama_model_mellum::build_arch_graph(const ll
if (params.gtype == LLM_GRAPH_TYPE_DECODER_MTP) {
if (iswa) {
- return std::make_unique<graph_mtp<true>>(*this, params);
+ return std::make_unique<graph_mtp<true>>(params);
}
- return std::make_unique<graph_mtp<false>>(*this, params);
+ return std::make_unique<graph_mtp<false>>(params);
}
if (iswa) {
- return std::make_unique<graph<true>>(*this, params);
+ return std::make_unique<graph<true>>(params);
}
- return std::make_unique<graph<false>>(*this, params);
+ return std::make_unique<graph<false>>(params);
}
template <bool iswa>
-llama_model_mellum::graph<iswa>::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_mellum::graph<iswa>::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
@@ -246,7 +246,7 @@ llama_model_mellum::graph<iswa>::graph(const llama_model & model, const llm_grap
}
template <bool iswa>
-llama_model_mellum::graph_mtp<iswa>::graph_mtp(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_mellum::graph_mtp<iswa>::graph_mtp(const llm_graph_params & params) : llm_graph_context(params) {
GGML_ASSERT(hparams.n_layer_nextn == 1 && "MELLUM MTP currently only supports a single MTP block");
const int64_t n_embd_head = hparams.n_embd_head_v();
diff --git a/src/models/metis16.cpp b/src/models/metis16.cpp
index 4e4b032b9..8a433f3cc 100644
--- a/src/models/metis16.cpp
+++ b/src/models/metis16.cpp
@@ -166,7 +166,7 @@ void llama_model_metis16::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_metis16::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
// streams are kept stream-innermost: [n_stream, n_embd, n_tokens]
@@ -258,8 +258,10 @@ ggml_tensor * llama_model_metis16::graph::route_features(const llama_model_metis
return ggml_tanh(ctx0, ggml_add(ctx0, f, model.depth_mem_route_b));
}
-llama_model_metis16::graph::graph(const llama_model_metis16 & model, const llm_graph_params & params) :
+llama_model_metis16::graph::graph(const llm_graph_params & params) :
llm_build_mamba_base(params) {
+ const auto & model = static_cast<const llama_model_metis16 &>(this->model);
+
const int64_t n_s = model.n_stream;
const int n_p = model.n_pass;
const int n_phys = model.n_layer_phys;
@@ -311,7 +313,7 @@ llama_model_metis16::graph::graph(const llama_model_metis16 & model, const llm_g
cur = build_attn(inp->get_attn(), layer.wo, nullptr, nullptr, Q, K, V, nullptr, nullptr, nullptr, 1.0f/sqrtf(float(n_hd)), il);
} else {
- cur = build_mamba2_layer(inp->get_recr(), cur, model, ubatch, il);
+ cur = build_mamba2_layer(inp->get_recr(), cur, ubatch, il);
}
cb(cur, "mixer_out", il);
x = hc_write(mixed, layer.hc_attn_write, cur, p);
diff --git a/src/models/mimo2.cpp b/src/models/mimo2.cpp
index fdf5d00af..a86b0f96d 100644
--- a/src/models/mimo2.cpp
+++ b/src/models/mimo2.cpp
@@ -79,12 +79,12 @@ void llama_model_mimo2::load_arch_tensors(llama_model_loader & ml) {
std::unique_ptr<llm_graph_context> llama_model_mimo2::build_arch_graph(const llm_graph_params & params) const {
if (params.gtype == LLM_GRAPH_TYPE_DECODER_MTP) {
- return std::make_unique<graph_mtp>(*this, params);
+ return std::make_unique<graph_mtp>(params);
}
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_mimo2::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_mimo2::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
ggml_tensor * cur;
ggml_tensor * inpL;
@@ -258,7 +258,7 @@ llama_model_mimo2::graph::graph(const llama_model & model, const llm_graph_param
// Mirrors MiMo's appended NextN block: normalize and fuse token and hidden inputs, run the decoder block,
// expose its pre-head-norm state to the next draft step, then apply the shared output norm and LM head.
// Converted checkpoints may store that shared norm as layer_out_norm, so it remains in the fallback chain.
-llama_model_mimo2::graph_mtp::graph_mtp(const llama_model & model, const llm_graph_params & params)
+llama_model_mimo2::graph_mtp::graph_mtp(const llm_graph_params & params)
: llm_graph_context(params) {
GGML_ASSERT(hparams.n_layer_nextn > 0 && "MIMO2 MTP requires n_layer_nextn > 0");
diff --git a/src/models/minicpm.cpp b/src/models/minicpm.cpp
index fc3e5b171..56ab9249f 100644
--- a/src/models/minicpm.cpp
+++ b/src/models/minicpm.cpp
@@ -84,6 +84,6 @@ void llama_model_minicpm::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_minicpm::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
diff --git a/src/models/minicpm3.cpp b/src/models/minicpm3.cpp
index 7136921dc..e816c66ee 100644
--- a/src/models/minicpm3.cpp
+++ b/src/models/minicpm3.cpp
@@ -57,10 +57,10 @@ void llama_model_minicpm3::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_minicpm3::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_minicpm3::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_minicpm3::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
//TODO: if the model varies, these parameters need to be read from the model
const int64_t n_embd_base = 256;
const float scale_embd = 12.0f;
diff --git a/src/models/minimax-01.cpp b/src/models/minimax-01.cpp
index 27fe5291b..7a2e55431 100644
--- a/src/models/minimax-01.cpp
+++ b/src/models/minimax-01.cpp
@@ -61,7 +61,7 @@ void llama_model_minimax_01::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_minimax_01::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
class llm_graph_input_la : public llm_graph_input_i {
@@ -189,7 +189,7 @@ public:
ggml_tensor * inp_diag_decay = nullptr; // F32 [n_batch, n_batch, n_head]
};
-llama_model_minimax_01::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_minimax_01::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/minimax-m2.cpp b/src/models/minimax-m2.cpp
index 8b80eab2d..46fffb101 100644
--- a/src/models/minimax-m2.cpp
+++ b/src/models/minimax-m2.cpp
@@ -41,10 +41,10 @@ void llama_model_minimax_m2::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_minimax_m2::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_minimax_m2::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_minimax_m2::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/minimax-m3.cpp b/src/models/minimax-m3.cpp
index 6d1528096..4b326896f 100644
--- a/src/models/minimax-m3.cpp
+++ b/src/models/minimax-m3.cpp
@@ -90,7 +90,7 @@ void llama_model_minimax_m3::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_minimax_m3::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
class llm_graph_input_msa : public llm_graph_input_i {
@@ -207,7 +207,7 @@ ggml_tensor * llama_model_minimax_m3::graph::build_attn_msa_fa(
return ggml_reshape_2d(ctx0, o, D*HQ, T);
}
-llama_model_minimax_m3::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_minimax_m3::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
const auto & mm = static_cast<const llama_model_minimax_m3 &>(model);
diff --git a/src/models/mistral-large4.cpp b/src/models/mistral-large4.cpp
index a196e6d5b..b7a6c4279 100644
--- a/src/models/mistral-large4.cpp
+++ b/src/models/mistral-large4.cpp
@@ -149,10 +149,10 @@ void llama_model_mistral_large4::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_mistral_large4::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_mistral_large4::graph::graph(const llama_model & model, const llm_graph_params & params) :
+llama_model_mistral_large4::graph::graph(const llm_graph_params & params) :
llm_graph_context(params) {
GGML_ASSERT(hparams.is_mla());
diff --git a/src/models/mistral3.cpp b/src/models/mistral3.cpp
index af058d558..3686d9c21 100644
--- a/src/models/mistral3.cpp
+++ b/src/models/mistral3.cpp
@@ -124,10 +124,10 @@ public:
};
std::unique_ptr<llm_graph_context> llama_model_mistral3::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_mistral3::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_mistral3::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/mistral4.cpp b/src/models/mistral4.cpp
index 3d9190650..a25041b44 100644
--- a/src/models/mistral4.cpp
+++ b/src/models/mistral4.cpp
@@ -1,6 +1,6 @@
#include "models.h"
std::unique_ptr<llm_graph_context> llama_model_mistral4::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
diff --git a/src/models/models.h b/src/models/models.h
index bc980dd4d..aa0d14650 100644
--- a/src/models/models.h
+++ b/src/models/models.h
@@ -26,8 +26,8 @@ struct llm_build_mamba_base : public llm_graph_context {
virtual ~llm_build_mamba_base() = default;
- ggml_tensor * build_mamba_layer(llm_graph_input_rs * inp, ggml_tensor * cur, const llama_model & model, const llama_ubatch & ubatch, int il);
- ggml_tensor * build_mamba2_layer(llm_graph_input_rs * inp, ggml_tensor * cur, const llama_model & model, const llama_ubatch & ubatch, int il) const;
+ ggml_tensor * build_mamba_layer(llm_graph_input_rs * inp, ggml_tensor * cur, const llama_ubatch & ubatch, int il);
+ ggml_tensor * build_mamba2_layer(llm_graph_input_rs * inp, ggml_tensor * cur, const llama_ubatch & ubatch, int il) const;
};
@@ -105,30 +105,24 @@ struct llm_build_lfm_base : public llm_graph_context {
virtual ~llm_build_lfm_base() = default;
- ggml_tensor * build_lfm_shortconv(const llama_model & model,
- const llama_memory_recurrent_context * mctx_recr,
+ ggml_tensor * build_lfm_shortconv(const llama_memory_recurrent_context * mctx_recr,
llm_graph_input_rs * inp_recr,
ggml_tensor * cur,
int il);
// no recurrent state (decision graphs): causal over the ubatch from a zero state
- ggml_tensor * build_lfm_shortconv(const llama_model & model,
- ggml_tensor * cur,
+ ggml_tensor * build_lfm_shortconv(ggml_tensor * cur,
int il);
- ggml_tensor * build_lfm_dense_ffn(const llama_model & model,
- ggml_tensor * cur,
+ ggml_tensor * build_lfm_dense_ffn(ggml_tensor * cur,
int il);
- ggml_tensor * build_lfm_moe_ffn(const llama_model & model,
- ggml_tensor * cur,
+ ggml_tensor * build_lfm_moe_ffn(ggml_tensor * cur,
int il);
};
struct llm_build_rwkv6_base : public llm_graph_context {
- const llama_model & model;
-
- llm_build_rwkv6_base(const llama_model & model, const llm_graph_params & params);
+ llm_build_rwkv6_base(const llm_graph_params & params);
virtual ~llm_build_rwkv6_base() = default;
@@ -146,9 +140,7 @@ struct llm_build_rwkv6_base : public llm_graph_context {
// Base class for RWKV7-related models
struct llm_build_rwkv7_base : public llm_graph_context {
- const llama_model & model;
-
- llm_build_rwkv7_base(const llama_model & model, const llm_graph_params & params);
+ llm_build_rwkv7_base(const llm_graph_params & params);
virtual ~llm_build_rwkv7_base() = default;
@@ -176,7 +168,7 @@ struct llama_model_llama : public llama_model_base {
template <bool embed>
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -190,7 +182,7 @@ struct llama_model_llama4 : public llama_model_base {
template <bool iswa>
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -214,7 +206,7 @@ struct llama_model_maincoder : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -227,7 +219,7 @@ struct llama_model_maion_coder : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -240,7 +232,7 @@ struct llama_model_talkie : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -253,7 +245,7 @@ struct llama_model_deci : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -266,7 +258,7 @@ struct llama_model_baichuan : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -279,7 +271,7 @@ struct llama_model_falcon : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -292,7 +284,7 @@ struct llama_model_grok : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -305,7 +297,7 @@ struct llama_model_starcoder : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -318,7 +310,7 @@ struct llama_model_refact : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -331,7 +323,7 @@ struct llama_model_bert : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -388,10 +380,9 @@ struct llama_model_modern_bert : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
ggml_tensor * build_decision_head(
- const llama_model & model,
ggml_tensor * inp,
llm_graph_input_attn_no_cache * inp_attn,
ggml_tensor * inp_out_ids);
@@ -407,7 +398,7 @@ struct llama_model_neo_bert : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -420,7 +411,7 @@ struct llama_model_eurobert : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -433,7 +424,7 @@ struct llama_model_bloom : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -462,7 +453,7 @@ struct llama_model_mpt : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -475,7 +466,7 @@ struct llama_model_stablelm : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -488,12 +479,12 @@ struct llama_model_mellum : public llama_model_base {
template <bool iswa>
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
template <bool iswa>
struct graph_mtp : public llm_graph_context {
- graph_mtp(const llama_model & model, const llm_graph_params & params);
+ graph_mtp(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -509,7 +500,7 @@ struct llama_model_nanbeige : public llama_model_base {
bool skip_loop_final_norm = false;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -521,7 +512,7 @@ struct llama_model_qwen : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -534,7 +525,7 @@ struct llama_model_qwen2 : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -547,7 +538,7 @@ struct llama_model_dream : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -560,7 +551,7 @@ struct llama_model_llada : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -573,7 +564,7 @@ struct llama_model_llada_moe : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -586,7 +577,7 @@ struct llama_model_rnd1 : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -599,7 +590,7 @@ struct llama_model_qwen2vl : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -612,7 +603,7 @@ struct llama_model_qwen2moe : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -627,7 +618,7 @@ struct llama_model_sensenova_u1 : public llama_model_base {
float rope_freq_base_spatial = 10000.0f;
struct graph : public llm_graph_context {
- graph(const llama_model_sensenova_u1 & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -640,14 +631,14 @@ struct llama_model_qwen3 : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
protected:
// the helpers alone, a derived graph builds its own body
struct no_build {};
graph(const llm_graph_params & params, no_build) : llm_graph_context(params) {}
// the layers and the final norm: [n_embd, n_outputs]
- ggml_tensor * build_backbone(const llama_model & model);
+ ggml_tensor * build_backbone();
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -673,7 +664,7 @@ struct llama_model_vllm_decision2 : public llama_model_qwen3 {
class input_decision;
struct graph : public llama_model_qwen3::graph {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
private:
// hidden: [n_embd, n_outputs], returns one score per option: [1, n_options]
ggml_tensor * build_head(ggml_tensor * hidden, input_decision * inp);
@@ -691,7 +682,7 @@ struct llama_model_qwen3moe : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -704,7 +695,7 @@ struct llama_model_flint : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -717,7 +708,7 @@ struct llama_model_qwen3vl : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -730,7 +721,7 @@ struct llama_model_qwen3vlmoe : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -748,7 +739,7 @@ struct llama_model_phi2 : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -762,7 +753,7 @@ struct llama_model_phi3 : public llama_model_base {
template <bool iswa>
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -787,7 +778,7 @@ struct llama_model_plamo : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -800,11 +791,11 @@ struct llama_model_plamo2 : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_build_mamba_base {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
private:
- ggml_tensor * build_plamo2_mamba_layer(llm_graph_input_rs * inp, ggml_tensor * cur, const llama_model & model, const llama_ubatch & ubatch, int il);
+ ggml_tensor * build_plamo2_mamba_layer(llm_graph_input_rs * inp, ggml_tensor * cur, const llama_ubatch & ubatch, int il);
ggml_tensor * build_plamo2_attn_layer(llm_graph_input_attn_kv * inp, ggml_tensor * inp_pos, ggml_tensor * cur,
- const llama_model & model, int il);
+ int il);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -818,7 +809,7 @@ struct llama_model_plamo3 : public llama_model_base {
template <bool iswa>
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -831,7 +822,7 @@ struct llama_model_gpt2 : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -844,7 +835,7 @@ struct llama_model_pockettts : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -857,7 +848,7 @@ struct llama_model_codeshell : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -870,7 +861,7 @@ struct llama_model_orion : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -883,7 +874,7 @@ struct llama_model_internlm2 : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -896,7 +887,7 @@ struct llama_model_minicpm3 : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -909,7 +900,7 @@ struct llama_model_gemma : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -922,7 +913,7 @@ struct llama_model_gemma2 : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -936,7 +927,7 @@ struct llama_model_gemma3 : public llama_model_base {
template <bool iswa>
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -949,8 +940,6 @@ struct llama_model_gemma3n : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- const llama_model & model;
-
const int64_t n_embd_head;
const int64_t n_embd_altup;
const int64_t n_altup;
@@ -958,7 +947,7 @@ struct llama_model_gemma3n : public llama_model_base {
const int n_layer_sparsity = 10; // number of layers using activation sparsity
const float f_sparsity_std_mul = 1.6448533535003662f; // std_multiplier = normal_dist.icdf(0.95)
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
ggml_tensor * calc_magnitude(ggml_tensor * x);
// TODO: refactor in common "per-layer" functionality [TAG_PER_LAYER]
@@ -982,11 +971,9 @@ struct llama_model_gemma4 : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- const llama_model & model;
-
const int64_t n_embd_per_layer;
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
// TODO: refactor in common "per-layer" functionality [TAG_PER_LAYER]
ggml_tensor * build_inp_per_layer();
@@ -1003,7 +990,7 @@ struct llama_model_gemma4_assistant : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1016,7 +1003,7 @@ struct llama_model_gemma_embedding : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1029,9 +1016,7 @@ struct llama_model_gemma_embedding2 : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- const llama_model & model;
-
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
ggml_tensor * build_inp_per_layer(ggml_tensor * inpL);
};
@@ -1046,7 +1031,7 @@ struct llama_model_starcoder2 : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1059,7 +1044,7 @@ struct llama_model_mamba : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_build_mamba_base {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1083,7 +1068,7 @@ struct llama_model_maple : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1096,7 +1081,7 @@ struct llama_model_jamba : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_build_mamba_base {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1109,7 +1094,7 @@ struct llama_model_xverse : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1122,7 +1107,7 @@ struct llama_model_command_r : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1135,7 +1120,7 @@ struct llama_model_cohere2 : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1148,11 +1133,11 @@ struct llama_model_cohere2moe : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
struct graph_mtp : public llm_graph_context {
- graph_mtp(const llama_model & model, const llm_graph_params & params);
+ graph_mtp(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1165,7 +1150,7 @@ struct llama_model_dbrx : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1178,7 +1163,7 @@ struct llama_model_olmo : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1192,7 +1177,7 @@ struct llama_model_olmo2 : public llama_model_base {
template <bool iswa>
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1205,7 +1190,7 @@ struct llama_model_olmoe : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1218,7 +1203,7 @@ struct llama_model_muse_spark : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1231,7 +1216,7 @@ struct llama_model_muse_glimmer : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1244,7 +1229,7 @@ struct llama_model_openelm : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1257,7 +1242,7 @@ struct llama_model_gptneox : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1270,7 +1255,7 @@ struct llama_model_arctic : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1283,7 +1268,7 @@ struct llama_model_deepseek : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1296,11 +1281,11 @@ struct llama_model_deepseek2 : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
struct graph_mtp : public llm_graph_context {
- graph_mtp(const llama_model & model, const llm_graph_params & params);
+ graph_mtp(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1313,11 +1298,11 @@ struct llama_model_deepseek32 : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
struct graph_mtp : public llm_graph_context {
- graph_mtp(const llama_model & model, const llm_graph_params & params);
+ graph_mtp(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1330,7 +1315,7 @@ struct llama_model_dots3note : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1351,8 +1336,9 @@ struct llama_model_deepseek4 : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llm_graph_params & params) : llm_graph_context(params) {}
- graph(const llama_model & model, const llm_graph_params & params);
+ struct no_build {};
+ graph(const llm_graph_params & params, no_build) : llm_graph_context(params) {}
+ graph(const llm_graph_params & params);
// collapse the hc streams with per-stream weights
ggml_tensor * build_hc_pre(
@@ -1410,21 +1396,18 @@ struct llama_model_deepseek4 : public llama_model_base {
ggml_tensor * hc_base) const;
ggml_tensor * build_attention(
- const llama_model & model,
llm_graph_input_dsv4 * inp_dsv4,
ggml_tensor * cur,
ggml_tensor * inp_pos,
int il) const;
ggml_tensor * build_attention(
- const llama_model & model,
llm_graph_input_attn_k_iswa * inp_mtp,
ggml_tensor * cur,
ggml_tensor * inp_pos,
int il) const;
ggml_tensor * build_attention_impl(
- const llama_model & model,
llm_graph_input_dsv4 * inp_dsv4,
llm_graph_input_attn_k_iswa * inp_mtp,
ggml_tensor * cur,
@@ -1453,7 +1436,6 @@ struct llama_model_deepseek4 : public llama_model_base {
int il) const;
ggml_tensor * build_lid_top_k(
- const llama_model & model,
llm_graph_input_dsv4 * inp_dsv4,
ggml_tensor * qr,
ggml_tensor * cur,
@@ -1467,7 +1449,6 @@ struct llama_model_deepseek4 : public llama_model_base {
int il) const;
ggml_tensor * build_csa_lid_attention(
- const llama_model & model,
llm_graph_input_dsv4 * inp_dsv4,
llm_graph_input_dsv4_raw * inp_attn,
ggml_tensor * q,
@@ -1499,7 +1480,7 @@ struct llama_model_deepseek4 : public llama_model_base {
};
struct graph_mtp : public graph {
- graph_mtp(const llama_model & model, const llm_graph_params & params);
+ graph_mtp(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1517,9 +1498,9 @@ struct llama_model_deepseek41 : public llama_model_deepseek4 {
void engram_hash(int e, const llama_ubatch & ubatch, const std::vector<llama_token> & prev, std::vector<int32_t> & out) const;
struct graph : public llama_model_deepseek4::graph {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
// helpers only (no graph built): base of graph_dsv41
- explicit graph(const llm_graph_params & params) : llama_model_deepseek4::graph(params) {}
+ graph(const llm_graph_params & params, no_build) : llama_model_deepseek4::graph(params, no_build{}) {}
ggml_tensor * build_engram(
const llama_model_deepseek41 & model,
@@ -1570,11 +1551,11 @@ struct llama_model_glm_dsa : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
struct graph_mtp : public llm_graph_context {
- graph_mtp(const llama_model & model, const llm_graph_params & params);
+ graph_mtp(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1587,7 +1568,7 @@ struct llama_model_eagle3 : public llama_model_base {
template <bool is_enc>
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
ggml_tensor * build_inp_embd_enc() const;
};
@@ -1603,23 +1584,23 @@ struct llama_model_dflash : public llama_model_base {
template <bool is_enc>
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
ggml_tensor * build_inp_embd_enc() const;
};
struct graph_dsv4 : public llama_model_deepseek4::graph {
- graph_dsv4(const llama_model & model, const llm_graph_params & params);
+ graph_dsv4(const llm_graph_params & params);
};
// DeepSeek-V4.1 DSpark: single-pass mHC (lagged pre-mix, no hc_head), no per-head q norm
struct graph_dsv41 : public llama_model_deepseek41::graph {
- graph_dsv41(const llama_model & model, const llm_graph_params & params);
+ graph_dsv41(const llm_graph_params & params);
};
// Mistral Large 4 DSpark: dense MLA stages, non-causal, rnn markov head
struct graph_mistral_large4 : public llm_graph_context {
- graph_mistral_large4(const llama_model & model, const llm_graph_params & params);
+ graph_mistral_large4(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1632,7 +1613,7 @@ struct llama_model_mistral_large4 : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1655,7 +1636,7 @@ struct llama_model_chatglm : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1668,7 +1649,7 @@ struct llama_model_glm4 : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1681,11 +1662,11 @@ struct llama_model_glm4_moe : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
struct graph_mtp : public llm_graph_context {
- graph_mtp(const llama_model & model, const llm_graph_params & params);
+ graph_mtp(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1698,7 +1679,7 @@ struct llama_model_bitnet : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1712,7 +1693,7 @@ struct llama_model_t5 : public llama_model_base {
template <bool is_enc>
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1736,7 +1717,7 @@ struct llama_model_jais : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1749,7 +1730,7 @@ struct llama_model_jais2 : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1762,7 +1743,7 @@ struct llama_model_nemotron : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1775,10 +1756,10 @@ struct llama_model_nemotron_h : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_build_mamba_base {
- graph(const llama_model & model, const llm_graph_params & params);
- ggml_tensor * build_ffn_layer(ggml_tensor * cur, const llama_model & model, int il);
+ graph(const llm_graph_params & params);
+ ggml_tensor * build_ffn_layer(ggml_tensor * cur, int il);
ggml_tensor * build_attention_layer(ggml_tensor * cur, llm_graph_input_attn_kv * inp_attn,
- const llama_model & model, int64_t n_embd_head, int il);
+ int64_t n_embd_head, int il);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1792,7 +1773,7 @@ struct llama_model_nemotron_h_moe : public llama_model_nemotron_h {
using graph = llama_model_nemotron_h::graph;
struct graph_mtp : public llm_graph_context {
- graph_mtp(const llama_model & model, const llm_graph_params & params);
+ graph_mtp(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1812,7 +1793,7 @@ struct llama_model_metis16 : public llama_model_base {
float cont_limit = 0.0f;
struct graph : public llm_build_mamba_base {
- graph(const llama_model_metis16 & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
// memory bank of the current forward: keys [n_mem, n_entry, n_tokens], values [n_entry, n_mem, n_tokens]
ggml_tensor * bank_k = nullptr;
@@ -1838,7 +1819,7 @@ struct llama_model_exaone : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1852,7 +1833,7 @@ struct llama_model_exaone4 : public llama_model_base {
template <bool iswa>
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1865,7 +1846,7 @@ struct llama_model_exaone_moe : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1878,7 +1859,7 @@ struct llama_model_rwkv6 : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_build_rwkv6_base {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1891,7 +1872,7 @@ struct llama_model_rwkv6qwen2 : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_build_rwkv6_base {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1904,7 +1885,7 @@ struct llama_model_rwkv7 : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_build_rwkv7_base {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1917,7 +1898,7 @@ struct llama_model_arwkv7 : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_build_rwkv7_base {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -1930,21 +1911,19 @@ struct llama_model_granite : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
private:
ggml_tensor * build_attention_layer(
ggml_tensor * cur,
ggml_tensor * inp_pos,
llm_graph_input_attn_kv * inp_attn,
- const llama_model & model,
const int64_t n_embd_head,
const int il);
ggml_tensor * build_layer_ffn(
ggml_tensor * cur,
ggml_tensor * inpSA,
- const llama_model & model,
const int il);
};
@@ -1976,7 +1955,7 @@ struct llama_model_granite_switch : public llama_model_base {
std::unordered_map<llama_token, llama_token> adapter_token_to_substitute;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
private:
ggml_tensor * build_switched_lora_delta(
@@ -1997,7 +1976,6 @@ struct llama_model_granite_switch : public llama_model_base {
ggml_tensor * inp_pos,
ggml_tensor * adapter_ids,
llm_graph_input_attn_kv * inp_attn,
- const llama_model & model,
const int64_t n_embd_head,
const int il);
@@ -2005,7 +1983,6 @@ struct llama_model_granite_switch : public llama_model_base {
ggml_tensor * cur,
ggml_tensor * inpSA,
ggml_tensor * adapter_ids,
- const llama_model & model,
const int il);
};
@@ -2030,10 +2007,10 @@ struct llama_model_granite_hybrid : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_build_mamba_base {
- graph(const llama_model & model, const llm_graph_params & params);
- ggml_tensor * build_layer_ffn(ggml_tensor * cur, ggml_tensor * inpSA, const llama_model & model, const int il);
+ graph(const llm_graph_params & params);
+ ggml_tensor * build_layer_ffn(ggml_tensor * cur, ggml_tensor * inpSA, const int il);
ggml_tensor * build_attention_layer(ggml_tensor * cur, ggml_tensor * inp_pos, llm_graph_input_attn_kv * inp_attn,
- const llama_model & model,const int64_t n_embd_head, const int il);
+ const int64_t n_embd_head, const int il);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -2046,21 +2023,19 @@ struct llama_model_granite_swa : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
private:
ggml_tensor * build_attention_layer(
ggml_tensor * cur,
ggml_tensor * inp_pos,
llm_graph_input_attn_kv_iswa * inp_attn,
- const llama_model & model,
const int64_t n_embd_head,
const int il);
ggml_tensor * build_layer_ffn(
ggml_tensor * cur,
ggml_tensor * inpSA,
- const llama_model & model,
const int il);
};
@@ -2074,7 +2049,7 @@ struct llama_model_chameleon : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -2087,7 +2062,7 @@ struct llama_model_wavtokenizer_dec : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -2100,7 +2075,7 @@ struct llama_model_plm : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -2113,7 +2088,7 @@ struct llama_model_limite : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -2126,9 +2101,7 @@ struct llama_model_hrm_text : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
-
- const llama_model & model;
+ graph(const llm_graph_params & params);
ggml_tensor * build_stack(
llm_graph_input_attn_kv * inp_attn,
@@ -2147,7 +2120,7 @@ struct llama_model_bailingmoe : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -2160,7 +2133,7 @@ struct llama_model_bailingmoe2 : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -2173,9 +2146,7 @@ struct llama_model_bailingmoe3 : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_build_delta_net_base {
- graph(const llama_model & model, const llm_graph_params & params);
-
- const llama_model & model;
+ graph(const llm_graph_params & params);
// causal conv1d over one of Q/K/V, qkv selects which third of the conv state row is used
ggml_tensor * build_causal_conv1d(llm_graph_input_rs * inp_rs, ggml_tensor * conv_states_all, ggml_tensor * conv_state_all,
@@ -2184,7 +2155,7 @@ struct llama_model_bailingmoe3 : public llama_model_base {
};
struct graph_mtp : public llm_graph_context {
- graph_mtp(const llama_model & model, const llm_graph_params & params);
+ graph_mtp(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -2197,7 +2168,7 @@ struct llama_model_seed_oss : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -2210,7 +2181,7 @@ struct llama_model_dots1 : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -2223,7 +2194,7 @@ struct llama_model_arcee : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -2236,7 +2207,7 @@ struct llama_model_afmoe : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -2249,7 +2220,7 @@ struct llama_model_beam : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -2262,7 +2233,7 @@ struct llama_model_laguna : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -2275,7 +2246,7 @@ struct llama_model_ernie4_5 : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -2287,7 +2258,7 @@ struct llama_model_ernie4_5_moe : public llama_model_ernie4_5 {
// reuse load_arch_hparams and load_arch_tensors from llama_model_ernie4_5
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -2299,7 +2270,7 @@ struct llama_model_paddleocr : public llama_model_ernie4_5 {
// reuse load_arch_hparams and load_arch_tensors from llama_model_ernie4_5
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -2312,7 +2283,7 @@ struct llama_model_hunyuan_moe : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -2324,11 +2295,11 @@ struct llama_model_hy_v3 : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
struct graph_mtp : public llm_graph_context {
- graph_mtp(const llama_model & model, const llm_graph_params & params);
+ graph_mtp(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -2341,7 +2312,7 @@ struct llama_model_hy_v4 : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
// iHC (independent Hyper-Connections): pre reduces the hc streams to one and returns the
// per-stream post gates, post writes the sublayer output back into the streams, head
@@ -2371,7 +2342,6 @@ struct llama_model_hy_v4 : public llama_model_base {
ggml_tensor * hc_base) const;
ggml_tensor * build_attention(
- const llama_model & model,
llm_graph_input_attn_k * inp_attn,
ggml_tensor * cur,
ggml_tensor * inp_pos,
@@ -2381,7 +2351,6 @@ struct llama_model_hy_v4 : public llama_model_base {
// DSA lightning indexer: top-k KV positions for this layer. Only "full" layers compute
// it, "shared" layers reuse the last preceding full layer result through last_top_k.
ggml_tensor * build_indexer_top_k(
- const llama_model & model,
llm_graph_input_attn_k_dsa * inp_attn_dsa,
ggml_tensor * cur,
ggml_tensor * qr,
@@ -2395,7 +2364,6 @@ struct llama_model_hy_v4 : public llama_model_base {
};
attn_dsa build_attention_dsa(
- const llama_model & model,
llm_graph_input_attn_k_dsa * inp_attn_dsa,
ggml_tensor * cur,
ggml_tensor * inp_pos,
@@ -2414,7 +2382,7 @@ struct llama_model_hunyuan_vl : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -2437,7 +2405,7 @@ struct llama_model_smollm3 : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -2450,7 +2418,7 @@ struct llama_model_openai_moe : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -2463,7 +2431,7 @@ struct llama_model_falcon_h1 : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_build_mamba_base {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -2477,15 +2445,14 @@ struct llama_model_lfm2 : public llama_model_base {
template <bool iswa>
struct graph : public llm_build_lfm_base {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
// non-causal trunk without memory, then the decision head
struct graph_decision : public llm_graph_context {
- graph_decision(const llama_model & model, const llm_graph_params & params);
+ graph_decision(const llm_graph_params & params);
ggml_tensor * build_decision_head(
- const llama_model & model,
ggml_tensor * inp,
llm_graph_input_attn_no_cache * inp_attn,
ggml_tensor * inp_out_ids);
@@ -2515,7 +2482,7 @@ struct llama_model_lfm3 : public llama_model_base {
// decision: d1, the prompt read in one batch, no memory
template <bool decision>
struct graph : public llm_build_lfm_base {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -2529,7 +2496,7 @@ struct llama_model_smallthinker : public llama_model_base {
template <bool iswa>
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -2542,7 +2509,7 @@ struct llama_model_grovemoe : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -2555,7 +2522,7 @@ struct llama_model_apertus : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -2568,7 +2535,7 @@ struct llama_model_minimax_01 : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -2581,7 +2548,7 @@ struct llama_model_minimax_m2 : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -2599,7 +2566,7 @@ struct llama_model_minimax_m3 : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
msa_params msa_p;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
ggml_tensor * build_attn_msa_fa(
ggml_tensor * q_cur, // [D, HQ, S] f32
@@ -2617,7 +2584,7 @@ struct llama_model_cogvlm : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -2630,7 +2597,7 @@ struct llama_model_pangu_embed : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -2643,7 +2610,7 @@ struct llama_model_qwen3next : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_build_delta_net_base {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
private:
ggml_tensor * build_layer_attn(
llm_graph_input_attn_kv * inp_attn,
@@ -2670,12 +2637,10 @@ struct llama_model_qwen3next : public llama_model_base {
std::pair<ggml_tensor *, ggml_tensor *> build_qkvz(
ggml_tensor * input,
int il);
-
- const llama_model & model;
};
struct graph_mtp : public llm_graph_context {
- graph_mtp(const llama_model & model, const llm_graph_params & params);
+ graph_mtp(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -2688,7 +2653,7 @@ struct llama_model_qwen35 : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_build_delta_net_base {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
private:
ggml_tensor * build_layer_attn(
llm_graph_input_attn_kv * inp_attn,
@@ -2716,12 +2681,10 @@ struct llama_model_qwen35 : public llama_model_base {
std::pair<ggml_tensor *, ggml_tensor *> build_qkvz(
ggml_tensor * input,
int il);
-
- const llama_model & model;
};
struct graph_mtp : public llm_graph_context {
- graph_mtp(const llama_model & model, const llm_graph_params & params);
+ graph_mtp(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -2790,7 +2753,7 @@ struct llama_model_clef : public llama_model_qwen35 {
class input_decision;
struct graph : public llm_build_delta_net_base {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
private:
llm_graph_input_attn_no_cache * build_attn_inp_causal();
@@ -2830,12 +2793,12 @@ struct llama_model_qwen4exp : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_build_delta_net_base {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
protected:
// the helpers alone, graph_mtp builds its own body
struct no_build {};
- graph(const llama_model & model, const llm_graph_params & params, no_build) :
- llm_build_delta_net_base(params), model(model) {}
+ graph(const llm_graph_params & params, no_build) :
+ llm_build_delta_net_base(params) {}
// HC replaces every layer norm: residual is [n_embd, hc, n_tokens]
struct hc_mix {
@@ -2930,13 +2893,11 @@ struct llama_model_qwen4exp : public llama_model_base {
std::pair<ggml_tensor *, ggml_tensor *> build_qkvz(
ggml_tensor * input,
int il);
-
- const llama_model & model;
};
// MTP draft head: one QSA block after the trunk, fed by the trunk's hc-wide residual
struct graph_mtp : public graph {
- graph_mtp(const llama_model & model, const llm_graph_params & params);
+ graph_mtp(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -2948,7 +2909,7 @@ struct llama_model_qwen35moe : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_build_delta_net_base {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
private:
ggml_tensor * build_layer_attn(
llm_graph_input_attn_kv * inp_attn,
@@ -2976,12 +2937,10 @@ struct llama_model_qwen35moe : public llama_model_base {
std::pair<ggml_tensor *, ggml_tensor *> build_qkvz(
ggml_tensor * input,
int il);
-
- const llama_model & model;
};
struct graph_mtp : public llm_graph_context {
- graph_mtp(const llama_model & model, const llm_graph_params & params);
+ graph_mtp(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -2994,15 +2953,13 @@ struct llama_model_clover_moe : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_build_delta_net_base {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
private:
ggml_tensor * build_layer_attn(llm_graph_input_attn_kv * inp_attn, ggml_tensor * cur, ggml_tensor * inp_pos, int il);
ggml_tensor * build_layer_attn_linear(llm_graph_input_rs * inp, ggml_tensor * cur, int il);
ggml_tensor * build_layer_ffn(ggml_tensor * cur, int il);
ggml_tensor * build_norm_gated(ggml_tensor * input, ggml_tensor * weights, ggml_tensor * gate, int il);
std::pair<ggml_tensor *, ggml_tensor *> build_qkvz(ggml_tensor * input, int il);
-
- const llama_model & model;
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -3016,7 +2973,7 @@ struct llama_model_mistral3 : public llama_model_base {
class input_t_cond; // voxtral realtime: time conditioning of the ada rms norm
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -3029,11 +2986,11 @@ struct llama_model_mimo2 : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
struct graph_mtp : public llm_graph_context {
- graph_mtp(const llama_model & model, const llm_graph_params & params);
+ graph_mtp(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -3046,9 +3003,7 @@ struct llama_model_kimi_k3 : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_build_delta_net_base {
- graph(const llama_model & model, const llm_graph_params & params);
-
- const llama_model & model;
+ graph(const llm_graph_params & params);
// Cross-layer residual attention (K3's `_apply_attn_res`).
ggml_tensor * resi_stack = nullptr;
@@ -3090,11 +3045,11 @@ struct llama_model_glm5_next : public llama_model_base {
class llm_graph_input_kpool;
struct graph : public llm_build_delta_net_base {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
// build the helpers without the trunk, so graph_mtp can reuse them
struct no_build {};
- graph(const llama_model & model, const llm_graph_params & params, no_build);
+ graph(const llm_graph_params & params, no_build);
// collapse the hc streams with per-stream weights
ggml_tensor * build_hc_pre(
@@ -3130,8 +3085,6 @@ struct llama_model_glm5_next : public llama_model_base {
ggml_tensor * comb,
int il) const;
- const llama_model & model;
-
llm_graph_input_kpool * build_inp_kpool(const llama_memory_hybrid_idx_context * mctx_hyb);
ggml_tensor * build_kda_layer(ggml_tensor * cur, const llama_layer & layer,
@@ -3161,7 +3114,7 @@ struct llama_model_glm5_next : public llama_model_base {
// the NextN / MTP draft head: one DSA block appended after the trunk
struct graph_mtp : public graph {
- graph_mtp(const llama_model & model, const llm_graph_params & params);
+ graph_mtp(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -3173,7 +3126,7 @@ struct llama_model_kimi_linear : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_build_delta_net_base {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
std::pair<ggml_tensor *, ggml_tensor *> build_kda_autoregressive(
ggml_tensor * q,
@@ -3195,8 +3148,6 @@ struct llama_model_kimi_linear : public llama_model_base {
ggml_tensor * identity,
ggml_tensor * diag_mask,
int il);
-
- const llama_model & model;
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -3209,11 +3160,11 @@ struct llama_model_step35 : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
struct graph_mtp : public llm_graph_context {
- graph_mtp(const llama_model & model, const llm_graph_params & params);
+ graph_mtp(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -3226,7 +3177,7 @@ struct llama_model_spark2_5 : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
@@ -3238,7 +3189,7 @@ struct llama_model_k2_horizon : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
ggml_tensor * build_routed_value(const llama_layer & layer, ggml_tensor * cur, int il) const;
};
@@ -3253,7 +3204,7 @@ struct llama_model_kolibri1 : public llama_model_base {
void load_arch_tensors(llama_model_loader & ml) override;
struct graph : public llm_graph_context {
- graph(const llama_model & model, const llm_graph_params & params);
+ graph(const llm_graph_params & params);
};
std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
diff --git a/src/models/modern-bert.cpp b/src/models/modern-bert.cpp
index 84c85f869..5c6718897 100644
--- a/src/models/modern-bert.cpp
+++ b/src/models/modern-bert.cpp
@@ -132,10 +132,10 @@ void llama_model_modern_bert::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_modern_bert::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_modern_bert::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_modern_bert::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
@@ -237,7 +237,7 @@ llama_model_modern_bert::graph::graph(const llama_model & model, const llm_graph
cb(cur, "final_norm_out", -1);
if (n_layer_dec > 0) {
- cur = build_decision_head(model, cur, inp_attn, inp_out_ids);
+ cur = build_decision_head(cur, inp_attn, inp_out_ids);
}
res->t_embd = cur;
@@ -246,7 +246,6 @@ llama_model_modern_bert::graph::graph(const llama_model & model, const llm_graph
// returns one score per question type for each output token, the caller reads them at the option markers
ggml_tensor * llama_model_modern_bert::graph::build_decision_head(
- const llama_model & model,
ggml_tensor * inp,
llm_graph_input_attn_no_cache * inp_attn,
ggml_tensor * inp_out_ids) {
diff --git a/src/models/mpt.cpp b/src/models/mpt.cpp
index 69d8b8c66..774907b4d 100644
--- a/src/models/mpt.cpp
+++ b/src/models/mpt.cpp
@@ -61,10 +61,10 @@ void llama_model_mpt::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_mpt::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_mpt::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_mpt::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/muse-glimmer.cpp b/src/models/muse-glimmer.cpp
index 2f84d6f98..768010c87 100644
--- a/src/models/muse-glimmer.cpp
+++ b/src/models/muse-glimmer.cpp
@@ -54,7 +54,7 @@ void llama_model_muse_glimmer::load_arch_tensors(llama_model_loader &) {
}
}
-llama_model_muse_glimmer::graph::graph(const llama_model & model, const llm_graph_params & params)
+llama_model_muse_glimmer::graph::graph(const llm_graph_params & params)
: llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
@@ -197,5 +197,5 @@ llama_model_muse_glimmer::graph::graph(const llama_model & model, const llm_grap
}
std::unique_ptr<llm_graph_context> llama_model_muse_glimmer::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
diff --git a/src/models/muse-spark.cpp b/src/models/muse-spark.cpp
index 5842ecb98..30dd2d1ca 100644
--- a/src/models/muse-spark.cpp
+++ b/src/models/muse-spark.cpp
@@ -75,7 +75,7 @@ void llama_model_muse_spark::load_arch_tensors(llama_model_loader &) {
}
}
-llama_model_muse_spark::graph::graph(const llama_model & model, const llm_graph_params & params)
+llama_model_muse_spark::graph::graph(const llm_graph_params & params)
: llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
@@ -234,5 +234,5 @@ llama_model_muse_spark::graph::graph(const llama_model & model, const llm_graph_
}
std::unique_ptr<llm_graph_context> llama_model_muse_spark::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
diff --git a/src/models/nanbeige.cpp b/src/models/nanbeige.cpp
index e2d0a7b13..43235b86f 100644
--- a/src/models/nanbeige.cpp
+++ b/src/models/nanbeige.cpp
@@ -74,10 +74,10 @@ void llama_model_nanbeige::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_nanbeige::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_nanbeige::graph::graph(const llama_model & model, const llm_graph_params & params) :
+llama_model_nanbeige::graph::graph(const llm_graph_params & params) :
llm_graph_context(params) {
const auto & nb = static_cast<const llama_model_nanbeige &>(model);
diff --git a/src/models/nemotron-h-moe.cpp b/src/models/nemotron-h-moe.cpp
index c6ce58a7a..871b2d961 100644
--- a/src/models/nemotron-h-moe.cpp
+++ b/src/models/nemotron-h-moe.cpp
@@ -2,13 +2,13 @@
std::unique_ptr<llm_graph_context> llama_model_nemotron_h_moe::build_arch_graph(const llm_graph_params & params) const {
if (params.gtype == LLM_GRAPH_TYPE_DECODER_MTP) {
- return std::make_unique<graph_mtp>(*this, params);
+ return std::make_unique<graph_mtp>(params);
}
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
// MTP draft head for Nemotron-H MoE
-llama_model_nemotron_h_moe::graph_mtp::graph_mtp(const llama_model & model, const llm_graph_params & params)
+llama_model_nemotron_h_moe::graph_mtp::graph_mtp(const llm_graph_params & params)
: llm_graph_context(params) {
GGML_ASSERT(hparams.n_layer_nextn == 1 && "NEMOTRON_H_MOE MTP currently supports a single MTP block");
diff --git a/src/models/nemotron-h.cpp b/src/models/nemotron-h.cpp
index e9c61308f..313f42f1c 100644
--- a/src/models/nemotron-h.cpp
+++ b/src/models/nemotron-h.cpp
@@ -196,10 +196,10 @@ void llama_model_nemotron_h::load_arch_tensors(llama_model_loader & ml) {
}
std::unique_ptr<llm_graph_context> llama_model_nemotron_h::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_nemotron_h::graph::graph(const llama_model & model, const llm_graph_params & params) :
+llama_model_nemotron_h::graph::graph(const llm_graph_params & params) :
llm_build_mamba_base(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
@@ -226,12 +226,12 @@ llama_model_nemotron_h::graph::graph(const llama_model & model, const llm_graph_
if (hparams.is_recr(il)) {
// ssm layer //
- cur = build_mamba2_layer(inp->get_recr(), cur, model, ubatch, il);
+ cur = build_mamba2_layer(inp->get_recr(), cur, ubatch, il);
} else if (hparams.n_ff(il) == 0) {
// attention layer //
- cur = build_attention_layer(cur, inp->get_attn(), model, n_embd_head, il);
+ cur = build_attention_layer(cur, inp->get_attn(), n_embd_head, il);
} else {
- cur = build_ffn_layer(cur, model, il);
+ cur = build_ffn_layer(cur, il);
}
if (il == n_layer - 1 && crop_before_nextn(inp_out_ids) && !extract_final_inp) {
@@ -277,8 +277,7 @@ llama_model_nemotron_h::graph::graph(const llama_model & model, const llm_graph_
ggml_tensor * llama_model_nemotron_h::graph::build_attention_layer(ggml_tensor * cur,
llm_graph_input_attn_kv * inp_attn,
- const llama_model & model,
- int64_t n_embd_head,
+ int64_t n_embd_head,
int il) {
auto [Qcur, Kcur, Vcur] = build_qkv(model.layers[il], cur, n_embd_head, hparams.n_head(il), hparams.n_head_kv(il), il);
@@ -291,7 +290,7 @@ ggml_tensor * llama_model_nemotron_h::graph::build_attention_layer(ggml_tensor *
return cur;
}
-ggml_tensor * llama_model_nemotron_h::graph::build_ffn_layer(ggml_tensor * cur, const llama_model & model, int il) {
+ggml_tensor * llama_model_nemotron_h::graph::build_ffn_layer(ggml_tensor * cur, int il) {
if (model.layers[il].ffn_gate_inp == nullptr) {
cur = build_ffn(cur,
model.layers[il].ffn_up, model.layers[il].ffn_up_b, model.layers[il].ffn_up_s,
diff --git a/src/models/nemotron.cpp b/src/models/nemotron.cpp
index 6b5b77107..a6126c652 100644
--- a/src/models/nemotron.cpp
+++ b/src/models/nemotron.cpp
@@ -47,10 +47,10 @@ void llama_model_nemotron::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_nemotron::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_nemotron::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_nemotron::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/neo-bert.cpp b/src/models/neo-bert.cpp
index 9b141c3b7..21bd380ee 100644
--- a/src/models/neo-bert.cpp
+++ b/src/models/neo-bert.cpp
@@ -37,10 +37,10 @@ void llama_model_neo_bert::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_neo_bert::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_neo_bert::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_neo_bert::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/nomic-bert-moe.cpp b/src/models/nomic-bert-moe.cpp
index 924af5e0b..afecce745 100644
--- a/src/models/nomic-bert-moe.cpp
+++ b/src/models/nomic-bert-moe.cpp
@@ -51,6 +51,6 @@ void llama_model_nomic_bert_moe::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_nomic_bert_moe::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
diff --git a/src/models/nomic-bert.cpp b/src/models/nomic-bert.cpp
index 509787286..2dc40567f 100644
--- a/src/models/nomic-bert.cpp
+++ b/src/models/nomic-bert.cpp
@@ -46,6 +46,6 @@ void llama_model_nomic_bert::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_nomic_bert::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
diff --git a/src/models/olmo.cpp b/src/models/olmo.cpp
index 261aa98f7..710cef98e 100644
--- a/src/models/olmo.cpp
+++ b/src/models/olmo.cpp
@@ -37,10 +37,10 @@ void llama_model_olmo::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_olmo::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_olmo::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_olmo::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/olmo2.cpp b/src/models/olmo2.cpp
index db2de3afd..ff09b07dd 100644
--- a/src/models/olmo2.cpp
+++ b/src/models/olmo2.cpp
@@ -53,14 +53,14 @@ void llama_model_olmo2::load_arch_tensors(llama_model_loader &) {
std::unique_ptr<llm_graph_context> llama_model_olmo2::build_arch_graph(const llm_graph_params & params) const {
if (hparams.swa_type == LLAMA_SWA_TYPE_STANDARD) {
- return std::make_unique<graph<true>>(*this, params);
+ return std::make_unique<graph<true>>(params);
} else {
- return std::make_unique<graph<false>>(*this, params);
+ return std::make_unique<graph<false>>(params);
}
}
template <bool iswa>
-llama_model_olmo2::graph<iswa>::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_olmo2::graph<iswa>::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/olmoe.cpp b/src/models/olmoe.cpp
index f44783821..88c5d2115 100644
--- a/src/models/olmoe.cpp
+++ b/src/models/olmoe.cpp
@@ -47,10 +47,10 @@ void llama_model_olmoe::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_olmoe::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_olmoe::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_olmoe::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/openai-moe.cpp b/src/models/openai-moe.cpp
index 8e4227803..a05ad1cb5 100644
--- a/src/models/openai-moe.cpp
+++ b/src/models/openai-moe.cpp
@@ -56,10 +56,10 @@ void llama_model_openai_moe::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_openai_moe::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_openai_moe::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_openai_moe::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
ggml_tensor * cur;
ggml_tensor * inpL;
diff --git a/src/models/openelm.cpp b/src/models/openelm.cpp
index 1d7d4e5ec..e9b43c749 100644
--- a/src/models/openelm.cpp
+++ b/src/models/openelm.cpp
@@ -44,10 +44,10 @@ void llama_model_openelm::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_openelm::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_openelm::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_openelm::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/orion.cpp b/src/models/orion.cpp
index 06ed3bd31..2c6e361ff 100644
--- a/src/models/orion.cpp
+++ b/src/models/orion.cpp
@@ -37,10 +37,10 @@ void llama_model_orion::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_orion::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_orion::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_orion::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/paddleocr.cpp b/src/models/paddleocr.cpp
index 68030b9af..084536784 100644
--- a/src/models/paddleocr.cpp
+++ b/src/models/paddleocr.cpp
@@ -1,10 +1,10 @@
#include "models.h"
std::unique_ptr<llm_graph_context> llama_model_paddleocr::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_paddleocr::graph::graph(const llama_model & model, const llm_graph_params & params) :
+llama_model_paddleocr::graph::graph(const llm_graph_params & params) :
llm_graph_context(params) {
// NOTE: same with qwen2vl.cpp, but bias tensors are optional
diff --git a/src/models/pangu-embed.cpp b/src/models/pangu-embed.cpp
index cf34cd16a..d8d0a146d 100644
--- a/src/models/pangu-embed.cpp
+++ b/src/models/pangu-embed.cpp
@@ -52,10 +52,10 @@ void llama_model_pangu_embed::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_pangu_embed::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_pangu_embed::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_pangu_embed::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/phi2.cpp b/src/models/phi2.cpp
index de14cfe37..d92dfc6e0 100644
--- a/src/models/phi2.cpp
+++ b/src/models/phi2.cpp
@@ -41,10 +41,10 @@ void llama_model_phi2::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_phi2::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_phi2::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_phi2::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/phi3.cpp b/src/models/phi3.cpp
index fc8084840..c7a1d2131 100644
--- a/src/models/phi3.cpp
+++ b/src/models/phi3.cpp
@@ -58,14 +58,14 @@ void llama_model_phi3::load_arch_tensors(llama_model_loader &) {
std::unique_ptr<llm_graph_context> llama_model_phi3::build_arch_graph(const llm_graph_params & params) const {
if (hparams.swa_type != LLAMA_SWA_TYPE_NONE) {
- return std::make_unique<graph<true>> (*this, params);
+ return std::make_unique<graph<true>> (params);
} else {
- return std::make_unique<graph<false>>(*this, params);
+ return std::make_unique<graph<false>>(params);
}
}
template<bool iswa>
-llama_model_phi3::graph<iswa>::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_phi3::graph<iswa>::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/phimoe.cpp b/src/models/phimoe.cpp
index c332553bc..ce27a9299 100644
--- a/src/models/phimoe.cpp
+++ b/src/models/phimoe.cpp
@@ -47,9 +47,9 @@ void llama_model_phimoe::load_arch_tensors(llama_model_loader &) {
std::unique_ptr<llm_graph_context> llama_model_phimoe::build_arch_graph(const llm_graph_params & params) const {
if (hparams.swa_type != LLAMA_SWA_TYPE_NONE) {
- return std::make_unique<graph<true>> (*this, params);
+ return std::make_unique<graph<true>> (params);
} else {
- return std::make_unique<graph<false>>(*this, params);
+ return std::make_unique<graph<false>>(params);
}
}
diff --git a/src/models/plamo.cpp b/src/models/plamo.cpp
index 401ffe48a..e48ff2bb0 100644
--- a/src/models/plamo.cpp
+++ b/src/models/plamo.cpp
@@ -33,10 +33,10 @@ void llama_model_plamo::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_plamo::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_plamo::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_plamo::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/plamo2.cpp b/src/models/plamo2.cpp
index 9ce229b19..d392c3fb4 100644
--- a/src/models/plamo2.cpp
+++ b/src/models/plamo2.cpp
@@ -104,10 +104,10 @@ void llama_model_plamo2::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_plamo2::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_plamo2::graph::graph(const llama_model & model, const llm_graph_params & params) :
+llama_model_plamo2::graph::graph(const llm_graph_params & params) :
llm_build_mamba_base(params) {
ggml_tensor * cur;
ggml_tensor * inpL;
@@ -136,10 +136,10 @@ llama_model_plamo2::graph::graph(const llama_model & model, const llm_graph_para
if (is_mamba_layer) {
// PLaMo-2 Mamba layer
- cur = build_plamo2_mamba_layer(inp_hybrid->get_recr(), cur, model, ubatch, il);
+ cur = build_plamo2_mamba_layer(inp_hybrid->get_recr(), cur, ubatch, il);
} else {
// PLaMo-2 Attention layer
- cur = build_plamo2_attn_layer(inp_hybrid->get_attn(), inp_pos, cur, model, il);
+ cur = build_plamo2_attn_layer(inp_hybrid->get_attn(), inp_pos, cur, il);
}
if (il == n_layer - 1 && inp_out_ids) {
@@ -201,7 +201,6 @@ llama_model_plamo2::graph::graph(const llama_model & model, const llm_graph_para
ggml_tensor * llama_model_plamo2::graph::build_plamo2_attn_layer(llm_graph_input_attn_kv * inp,
ggml_tensor * inp_pos,
ggml_tensor * cur,
- const llama_model & model,
int il) {
// self-attention
{
@@ -255,7 +254,6 @@ ggml_tensor * llama_model_plamo2::graph::build_plamo2_attn_layer(llm_graph_input
ggml_tensor * llama_model_plamo2::graph::build_plamo2_mamba_layer(llm_graph_input_rs * inp,
ggml_tensor * cur,
- const llama_model & model,
const llama_ubatch & ubatch,
int il) {
const auto * mctx_cur = inp->mctx;
diff --git a/src/models/plamo3.cpp b/src/models/plamo3.cpp
index 4dcbcad81..ab07450a3 100644
--- a/src/models/plamo3.cpp
+++ b/src/models/plamo3.cpp
@@ -59,14 +59,14 @@ void llama_model_plamo3::load_arch_tensors(llama_model_loader &) {
std::unique_ptr<llm_graph_context> llama_model_plamo3::build_arch_graph(const llm_graph_params & params) const {
if (hparams.swa_type != LLAMA_SWA_TYPE_NONE) {
- return std::make_unique<graph<true>> (*this, params);
+ return std::make_unique<graph<true>> (params);
} else {
- return std::make_unique<graph<false>>(*this, params);
+ return std::make_unique<graph<false>>(params);
}
}
template <bool iswa>
-llama_model_plamo3::graph<iswa>::graph(const llama_model & model, const llm_graph_params & params) :
+llama_model_plamo3::graph<iswa>::graph(const llm_graph_params & params) :
llm_graph_context(params) {
const int64_t head_dim_q = hparams.n_embd_head_k();
const int64_t head_dim_v = hparams.n_embd_head_v();
diff --git a/src/models/plm.cpp b/src/models/plm.cpp
index 64528c372..61b530e8b 100644
--- a/src/models/plm.cpp
+++ b/src/models/plm.cpp
@@ -42,10 +42,10 @@ void llama_model_plm::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_plm::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_plm::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_plm::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const float kq_scale = 1.0f/sqrtf(float(hparams.n_embd_head_k()));
const uint32_t n_embd_head_qk_rope = hparams.n_rot();
diff --git a/src/models/pockettts.cpp b/src/models/pockettts.cpp
index ad1835893..a55fe138f 100644
--- a/src/models/pockettts.cpp
+++ b/src/models/pockettts.cpp
@@ -42,10 +42,10 @@ void llama_model_pockettts::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_pockettts::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_pockettts::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_pockettts::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/qwen.cpp b/src/models/qwen.cpp
index 3c42cad3c..e009069db 100644
--- a/src/models/qwen.cpp
+++ b/src/models/qwen.cpp
@@ -37,10 +37,10 @@ void llama_model_qwen::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_qwen::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_qwen::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_qwen::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/qwen2.cpp b/src/models/qwen2.cpp
index 8602c7831..f38e7a0a3 100644
--- a/src/models/qwen2.cpp
+++ b/src/models/qwen2.cpp
@@ -47,10 +47,10 @@ void llama_model_qwen2::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_qwen2::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_qwen2::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_qwen2::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/qwen2moe.cpp b/src/models/qwen2moe.cpp
index 5f9222f1c..6d898eefd 100644
--- a/src/models/qwen2moe.cpp
+++ b/src/models/qwen2moe.cpp
@@ -59,10 +59,10 @@ void llama_model_qwen2moe::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_qwen2moe::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_qwen2moe::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_qwen2moe::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/qwen2vl.cpp b/src/models/qwen2vl.cpp
index 778d1c80a..d87c14ba4 100644
--- a/src/models/qwen2vl.cpp
+++ b/src/models/qwen2vl.cpp
@@ -36,10 +36,10 @@ void llama_model_qwen2vl::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_qwen2vl::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_qwen2vl::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_qwen2vl::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/qwen3.cpp b/src/models/qwen3.cpp
index c01f83829..28d01db54 100644
--- a/src/models/qwen3.cpp
+++ b/src/models/qwen3.cpp
@@ -51,11 +51,11 @@ void llama_model_qwen3::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_qwen3::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_qwen3::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
- ggml_tensor * cur = build_backbone(model);
+llama_model_qwen3::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
+ ggml_tensor * cur = build_backbone();
// lm_head
cur = build_lora_mm(model.output, cur, model.output_s);
@@ -64,7 +64,7 @@ llama_model_qwen3::graph::graph(const llama_model & model, const llm_graph_param
res->t_logits = cur;
}
-ggml_tensor * llama_model_qwen3::graph::build_backbone(const llama_model & model) {
+ggml_tensor * llama_model_qwen3::graph::build_backbone() {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/qwen35.cpp b/src/models/qwen35.cpp
index 8a4e43411..5601d2052 100644
--- a/src/models/qwen35.cpp
+++ b/src/models/qwen35.cpp
@@ -129,13 +129,13 @@ void llama_model_qwen35::load_arch_tensors(llama_model_loader & ml) {
std::unique_ptr<llm_graph_context> llama_model_qwen35::build_arch_graph(const llm_graph_params & params) const {
if (params.gtype == LLM_GRAPH_TYPE_DECODER_MTP) {
- return std::make_unique<graph_mtp>(*this, params);
+ return std::make_unique<graph_mtp>(params);
}
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_qwen35::graph::graph(const llama_model & model, const llm_graph_params & params) :
- llm_build_delta_net_base(params), model(model) {
+llama_model_qwen35::graph::graph(const llm_graph_params & params) :
+ llm_build_delta_net_base(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
@@ -492,7 +492,7 @@ ggml_tensor * llama_model_qwen35::graph::build_layer_ffn(ggml_tensor * cur, cons
}
// LLM_GRAPH_TYPE_DECODER_MTP draft head for Qwen3.5/3.6 dense series
-llama_model_qwen35::graph_mtp::graph_mtp(const llama_model & model, const llm_graph_params & params)
+llama_model_qwen35::graph_mtp::graph_mtp(const llm_graph_params & params)
: llm_graph_context(params) {
GGML_ASSERT(hparams.n_layer_nextn > 0 && "QWEN35 MTP requires n_layer_nextn > 0");
GGML_ASSERT(hparams.n_layer_nextn == 1 && "QWEN35 MTP currently only supports a single MTP block");
diff --git a/src/models/qwen35moe.cpp b/src/models/qwen35moe.cpp
index 939f10f7f..eb23efdd3 100644
--- a/src/models/qwen35moe.cpp
+++ b/src/models/qwen35moe.cpp
@@ -148,13 +148,13 @@ void llama_model_qwen35moe::load_arch_tensors(llama_model_loader & ml) {
std::unique_ptr<llm_graph_context> llama_model_qwen35moe::build_arch_graph(const llm_graph_params & params) const {
if (params.gtype == LLM_GRAPH_TYPE_DECODER_MTP) {
- return std::make_unique<graph_mtp>(*this, params);
+ return std::make_unique<graph_mtp>(params);
}
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_qwen35moe::graph::graph(const llama_model & model, const llm_graph_params & params) :
- llm_build_delta_net_base(params), model(model) {
+llama_model_qwen35moe::graph::graph(const llm_graph_params & params) :
+ llm_build_delta_net_base(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
@@ -542,7 +542,7 @@ ggml_tensor * llama_model_qwen35moe::graph::build_layer_ffn(ggml_tensor * cur, c
}
// LLM_GRAPH_TYPE_DECODER_MTP draft head for Qwen3.5/3.6 MoE
-llama_model_qwen35moe::graph_mtp::graph_mtp(const llama_model & model, const llm_graph_params & params)
+llama_model_qwen35moe::graph_mtp::graph_mtp(const llm_graph_params & params)
: llm_graph_context(params) {
GGML_ASSERT(hparams.n_layer_nextn > 0 && "QWEN35MOE MTP requires n_layer_nextn > 0");
GGML_ASSERT(hparams.n_layer_nextn == 1 && "QWEN35MOE MTP currently only supports a single MTP block");
diff --git a/src/models/qwen3moe.cpp b/src/models/qwen3moe.cpp
index 2198fcfb5..99263096b 100644
--- a/src/models/qwen3moe.cpp
+++ b/src/models/qwen3moe.cpp
@@ -56,10 +56,10 @@ void llama_model_qwen3moe::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_qwen3moe::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_qwen3moe::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_qwen3moe::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/qwen3next.cpp b/src/models/qwen3next.cpp
index fd082cc7f..864cb0343 100644
--- a/src/models/qwen3next.cpp
+++ b/src/models/qwen3next.cpp
@@ -130,13 +130,13 @@ void llama_model_qwen3next::load_arch_tensors(llama_model_loader & ml) {
std::unique_ptr<llm_graph_context> llama_model_qwen3next::build_arch_graph(const llm_graph_params & params) const {
if (params.gtype == LLM_GRAPH_TYPE_DECODER_MTP) {
- return std::make_unique<graph_mtp>(*this, params);
+ return std::make_unique<graph_mtp>(params);
}
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_qwen3next::graph::graph(const llama_model & model, const llm_graph_params & params) :
- llm_build_delta_net_base(params), model(model) {
+llama_model_qwen3next::graph::graph(const llm_graph_params & params) :
+ llm_build_delta_net_base(params) {
ggml_tensor * cur;
ggml_tensor * inpL;
@@ -616,7 +616,7 @@ ggml_tensor * llama_model_qwen3next::graph::build_layer_ffn(ggml_tensor * cur, c
}
// LLM_GRAPH_TYPE_DECODER_MTP draft head for Qwen3-Next
-llama_model_qwen3next::graph_mtp::graph_mtp(const llama_model & model, const llm_graph_params & params)
+llama_model_qwen3next::graph_mtp::graph_mtp(const llm_graph_params & params)
: llm_graph_context(params) {
GGML_ASSERT(hparams.n_layer_nextn > 0 && "QWEN3NEXT MTP requires n_layer_nextn > 0");
GGML_ASSERT(hparams.n_layer_nextn == 1 && "QWEN3NEXT MTP currently only supports a single MTP block");
diff --git a/src/models/qwen3vl.cpp b/src/models/qwen3vl.cpp
index 8c06dccca..7c07e6c94 100644
--- a/src/models/qwen3vl.cpp
+++ b/src/models/qwen3vl.cpp
@@ -54,10 +54,10 @@ void llama_model_qwen3vl::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_qwen3vl::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_qwen3vl::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_qwen3vl::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const size_t n_deepstack_layers = hparams.n_deepstack_layers;
const int64_t n_embd = hparams.n_embd;
diff --git a/src/models/qwen3vlmoe.cpp b/src/models/qwen3vlmoe.cpp
index 94974d8e8..20835cb84 100644
--- a/src/models/qwen3vlmoe.cpp
+++ b/src/models/qwen3vlmoe.cpp
@@ -58,10 +58,10 @@ void llama_model_qwen3vlmoe::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_qwen3vlmoe::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_qwen3vlmoe::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_qwen3vlmoe::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const size_t n_deepstack_layers = hparams.n_deepstack_layers;
const int64_t n_embd = hparams.n_embd;
diff --git a/src/models/qwen4exp.cpp b/src/models/qwen4exp.cpp
index de6d21fb3..a81d62662 100644
--- a/src/models/qwen4exp.cpp
+++ b/src/models/qwen4exp.cpp
@@ -323,9 +323,9 @@ void llama_model_qwen4exp::load_arch_tensors(llama_model_loader & ml) {
std::unique_ptr<llm_graph_context> llama_model_qwen4exp::build_arch_graph(const llm_graph_params & params) const {
if (params.gtype == LLM_GRAPH_TYPE_DECODER_MTP) {
- return std::make_unique<graph_mtp>(*this, params);
+ return std::make_unique<graph_mtp>(params);
}
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
// DFlash drafters read the layer inputs as [n_embd, T] rows, so collapse the streams
@@ -444,8 +444,8 @@ ggml_tensor * llama_model_qwen4exp::graph::build_hc_combine(
return cur;
}
-llama_model_qwen4exp::graph::graph(const llama_model & model, const llm_graph_params & params) :
- llm_build_delta_net_base(params), model(model) {
+llama_model_qwen4exp::graph::graph(const llm_graph_params & params) :
+ llm_build_delta_net_base(params) {
const int64_t hc = hparams.dsv4_hc_mult;
GGML_ASSERT(hparams.n_embd_head_v() == hparams.n_embd_head_k());
@@ -577,8 +577,8 @@ llama_model_qwen4exp::graph::graph(const llama_model & model, const llm_graph_pa
res->t_logits = cur;
}
-llama_model_qwen4exp::graph_mtp::graph_mtp(const llama_model & model, const llm_graph_params & params) :
- graph(model, params, no_build{}) {
+llama_model_qwen4exp::graph_mtp::graph_mtp(const llm_graph_params & params) :
+ graph(params, no_build{}) {
GGML_ASSERT(hparams.n_layer_nextn == 1 && "qwen4exp MTP has a single block");
ASSERT_EMBD_OR_TOKEN(ubatch);
diff --git a/src/models/refact.cpp b/src/models/refact.cpp
index 5336608a7..51bb0bad6 100644
--- a/src/models/refact.cpp
+++ b/src/models/refact.cpp
@@ -73,10 +73,10 @@ void llama_model_refact::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_refact::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_refact::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_refact::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/rnd1.cpp b/src/models/rnd1.cpp
index 2b0b3e97e..f55448433 100644
--- a/src/models/rnd1.cpp
+++ b/src/models/rnd1.cpp
@@ -58,11 +58,11 @@ void llama_model_rnd1::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_rnd1::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
// RND1 is a Qwen3Moe AR model converted to diffusion model.
-llama_model_rnd1::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_rnd1::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/rwkv6-base.cpp b/src/models/rwkv6-base.cpp
index 83aeab728..68efec666 100644
--- a/src/models/rwkv6-base.cpp
+++ b/src/models/rwkv6-base.cpp
@@ -2,9 +2,8 @@
#include "llama-memory-recurrent.h"
-llm_build_rwkv6_base::llm_build_rwkv6_base(const llama_model & model, const llm_graph_params & params) :
- llm_graph_context(params),
- model(model) {}
+llm_build_rwkv6_base::llm_build_rwkv6_base(const llm_graph_params & params) :
+ llm_graph_context(params) {}
ggml_tensor * llm_build_rwkv6_base::build_rwkv6_channel_mix(const llama_layer * layer,
ggml_tensor * cur,
diff --git a/src/models/rwkv6.cpp b/src/models/rwkv6.cpp
index 84a18180b..4cb5bce64 100644
--- a/src/models/rwkv6.cpp
+++ b/src/models/rwkv6.cpp
@@ -88,11 +88,11 @@ void llama_model_rwkv6::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_rwkv6::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_rwkv6::graph::graph(const llama_model & model, const llm_graph_params & params) :
- llm_build_rwkv6_base(model, params) {
+llama_model_rwkv6::graph::graph(const llm_graph_params & params) :
+ llm_build_rwkv6_base(params) {
GGML_ASSERT(hparams.token_shift_count == 2);
ggml_tensor * cur;
diff --git a/src/models/rwkv6qwen2.cpp b/src/models/rwkv6qwen2.cpp
index 0e5561c19..e81c0132f 100644
--- a/src/models/rwkv6qwen2.cpp
+++ b/src/models/rwkv6qwen2.cpp
@@ -78,10 +78,10 @@ void llama_model_rwkv6qwen2::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_rwkv6qwen2::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_rwkv6qwen2::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_build_rwkv6_base(model, params) {
+llama_model_rwkv6qwen2::graph::graph(const llm_graph_params & params) : llm_build_rwkv6_base(params) {
GGML_ASSERT(n_embd == hparams.n_embd_r());
ggml_tensor * cur;
diff --git a/src/models/rwkv7-base.cpp b/src/models/rwkv7-base.cpp
index 7fcab7774..3300822d2 100644
--- a/src/models/rwkv7-base.cpp
+++ b/src/models/rwkv7-base.cpp
@@ -2,9 +2,8 @@
#include "llama-memory-recurrent.h"
-llm_build_rwkv7_base::llm_build_rwkv7_base(const llama_model & model, const llm_graph_params & params) :
- llm_graph_context(params),
- model(model) {}
+llm_build_rwkv7_base::llm_build_rwkv7_base(const llm_graph_params & params) :
+ llm_graph_context(params) {}
ggml_tensor * llm_build_rwkv7_base::build_rwkv7_channel_mix(const llama_layer * layer,
ggml_tensor * cur,
diff --git a/src/models/rwkv7.cpp b/src/models/rwkv7.cpp
index 6577a25f9..77c97f953 100644
--- a/src/models/rwkv7.cpp
+++ b/src/models/rwkv7.cpp
@@ -118,11 +118,11 @@ void llama_model_rwkv7::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_rwkv7::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_rwkv7::graph::graph(const llama_model & model, const llm_graph_params & params) :
- llm_build_rwkv7_base(model, params) {
+llama_model_rwkv7::graph::graph(const llm_graph_params & params) :
+ llm_build_rwkv7_base(params) {
GGML_ASSERT(hparams.token_shift_count == 2);
ggml_tensor * cur;
diff --git a/src/models/seed-oss.cpp b/src/models/seed-oss.cpp
index 871f06cc5..fcf66290b 100644
--- a/src/models/seed-oss.cpp
+++ b/src/models/seed-oss.cpp
@@ -43,10 +43,10 @@ void llama_model_seed_oss::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_seed_oss::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_seed_oss::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_seed_oss::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/sensenova-u1.cpp b/src/models/sensenova-u1.cpp
index c42c604e8..7c8025703 100644
--- a/src/models/sensenova-u1.cpp
+++ b/src/models/sensenova-u1.cpp
@@ -70,10 +70,12 @@ void llama_model_sensenova_u1::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_sensenova_u1::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_sensenova_u1::graph::graph(const llama_model_sensenova_u1 & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_sensenova_u1::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
+ const auto & model = static_cast<const llama_model_sensenova_u1 &>(this->model);
+
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/smallthinker.cpp b/src/models/smallthinker.cpp
index 60803cb4f..0e9e36ee1 100644
--- a/src/models/smallthinker.cpp
+++ b/src/models/smallthinker.cpp
@@ -65,14 +65,14 @@ void llama_model_smallthinker::load_arch_tensors(llama_model_loader &) {
std::unique_ptr<llm_graph_context> llama_model_smallthinker::build_arch_graph(const llm_graph_params & params) const {
if (hparams.swa_type == LLAMA_SWA_TYPE_STANDARD) {
- return std::make_unique<graph<true>> (*this, params);
+ return std::make_unique<graph<true>> (params);
} else {
- return std::make_unique<graph<false>>(*this, params);
+ return std::make_unique<graph<false>>(params);
}
}
template <bool iswa>
-llama_model_smallthinker::graph<iswa>::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params){
+llama_model_smallthinker::graph<iswa>::graph(const llm_graph_params & params) : llm_graph_context(params){
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/smollm3.cpp b/src/models/smollm3.cpp
index 474093b68..438e5d334 100644
--- a/src/models/smollm3.cpp
+++ b/src/models/smollm3.cpp
@@ -40,10 +40,10 @@ void llama_model_smollm3::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_smollm3::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_smollm3::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_smollm3::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/spark2-5.cpp b/src/models/spark2-5.cpp
index 970b32ba6..1c6543a2c 100644
--- a/src/models/spark2-5.cpp
+++ b/src/models/spark2-5.cpp
@@ -50,10 +50,10 @@ void llama_model_spark2_5::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_spark2_5::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_spark2_5::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_spark2_5::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/stablelm.cpp b/src/models/stablelm.cpp
index 5189a4606..84e9b8c76 100644
--- a/src/models/stablelm.cpp
+++ b/src/models/stablelm.cpp
@@ -45,10 +45,10 @@ void llama_model_stablelm::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_stablelm::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_stablelm::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_stablelm::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/starcoder.cpp b/src/models/starcoder.cpp
index e68e24ffb..7d73aa01b 100644
--- a/src/models/starcoder.cpp
+++ b/src/models/starcoder.cpp
@@ -54,10 +54,10 @@ void llama_model_starcoder::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_starcoder::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_starcoder::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_starcoder::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/starcoder2.cpp b/src/models/starcoder2.cpp
index dcf6ed371..54f9cb8b1 100644
--- a/src/models/starcoder2.cpp
+++ b/src/models/starcoder2.cpp
@@ -53,10 +53,10 @@ void llama_model_starcoder2::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_starcoder2::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_starcoder2::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_starcoder2::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
diff --git a/src/models/step35.cpp b/src/models/step35.cpp
index 3e225a11e..bd06ce0db 100644
--- a/src/models/step35.cpp
+++ b/src/models/step35.cpp
@@ -174,12 +174,12 @@ void llama_model_step35::load_arch_tensors(llama_model_loader & ml) {
std::unique_ptr<llm_graph_context> llama_model_step35::build_arch_graph(const llm_graph_params & params) const {
if (params.gtype == LLM_GRAPH_TYPE_DECODER_MTP) {
- return std::make_unique<graph_mtp>(*this, params);
+ return std::make_unique<graph_mtp>(params);
}
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_step35::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_step35::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
ggml_tensor * cur;
ggml_tensor * inpL;
@@ -354,7 +354,7 @@ llama_model_step35::graph::graph(const llama_model & model, const llm_graph_para
}
// LLM_GRAPH_TYPE_DECODER_MTP draft head for Step3p5 (MoE)
-llama_model_step35::graph_mtp::graph_mtp(const llama_model & model, const llm_graph_params & params)
+llama_model_step35::graph_mtp::graph_mtp(const llm_graph_params & params)
: llm_graph_context(params) {
GGML_ASSERT(hparams.n_layer_nextn > 0 && "STEP35 MTP requires n_layer_nextn > 0");
diff --git a/src/models/t5.cpp b/src/models/t5.cpp
index a5ddbebf9..8a0aac1c8 100644
--- a/src/models/t5.cpp
+++ b/src/models/t5.cpp
@@ -107,7 +107,7 @@ void llama_model_t5::load_arch_tensors(llama_model_loader &) {
}
template <>
-llama_model_t5::graph<false>::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_t5::graph<false>::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
//const int64_t n_embd_gqa = hparams.n_embd_v_gqa();
@@ -260,7 +260,7 @@ llama_model_t5::graph<false>::graph(const llama_model & model, const llm_graph_p
}
template <>
-llama_model_t5::graph<true>::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_t5::graph<true>::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());
@@ -358,10 +358,10 @@ llama_model_t5::graph<true>::graph(const llama_model & model, const llm_graph_pa
std::unique_ptr<llm_graph_context> llama_model_t5::build_arch_graph(const llm_graph_params & params) const {
switch (params.gtype) {
case LLM_GRAPH_TYPE_ENCODER:
- return std::make_unique<graph<true>>(*this, params);
+ return std::make_unique<graph<true>>(params);
case LLM_GRAPH_TYPE_DEFAULT:
case LLM_GRAPH_TYPE_DECODER:
- return std::make_unique<graph<false>>(*this, params);
+ return std::make_unique<graph<false>>(params);
default:
GGML_ABORT("invalid graph type");
};
diff --git a/src/models/t5encoder.cpp b/src/models/t5encoder.cpp
index 23c5f9b6a..ccaa89e32 100644
--- a/src/models/t5encoder.cpp
+++ b/src/models/t5encoder.cpp
@@ -40,5 +40,5 @@ void llama_model_t5encoder::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_t5encoder::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
diff --git a/src/models/talkie.cpp b/src/models/talkie.cpp
index c6a6b5abe..b1e4b7c87 100644
--- a/src/models/talkie.cpp
+++ b/src/models/talkie.cpp
@@ -34,10 +34,10 @@ void llama_model_talkie::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_talkie::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_talkie::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_talkie::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_k();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_v());
diff --git a/src/models/vllm-decision2.cpp b/src/models/vllm-decision2.cpp
index bbac808de..2a3b9595c 100644
--- a/src/models/vllm-decision2.cpp
+++ b/src/models/vllm-decision2.cpp
@@ -39,7 +39,7 @@ void llama_model_vllm_decision2::load_arch_tensors(llama_model_loader & ml) {
}
std::unique_ptr<llm_graph_context> llama_model_vllm_decision2::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
// output rows read by the head: the last token of each option span and the last token of the question span
@@ -127,13 +127,13 @@ public:
const size_t n_options;
};
-llama_model_vllm_decision2::graph::graph(const llama_model & model_base, const llm_graph_params & params) :
- llama_model_qwen3::graph(params, no_build()), model(static_cast<const llama_model_vllm_decision2 &>(model_base)) {
+llama_model_vllm_decision2::graph::graph(const llm_graph_params & params) :
+ llama_model_qwen3::graph(params, no_build()), model(static_cast<const llama_model_vllm_decision2 &>(*params.model)) {
auto inp_decision_ptr = std::make_unique<input_decision>(ubatch);
auto * inp_decision = inp_decision_ptr.get();
res->add_input(std::move(inp_decision_ptr));
- ggml_tensor * cur = build_backbone(model);
+ ggml_tensor * cur = build_backbone();
// the head is always evaluated, so that the graph has the same nodes for every batch
cur = build_head(cur, inp_decision);
diff --git a/src/models/wavtokenizer-dec.cpp b/src/models/wavtokenizer-dec.cpp
index 881d2c383..ac3094f9c 100644
--- a/src/models/wavtokenizer-dec.cpp
+++ b/src/models/wavtokenizer-dec.cpp
@@ -112,10 +112,10 @@ void llama_model_wavtokenizer_dec::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_wavtokenizer_dec::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_wavtokenizer_dec::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_wavtokenizer_dec::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
ggml_tensor * cur;
ggml_tensor * inpL;
diff --git a/src/models/xverse.cpp b/src/models/xverse.cpp
index bfc539e8d..14e12518b 100644
--- a/src/models/xverse.cpp
+++ b/src/models/xverse.cpp
@@ -35,10 +35,10 @@ void llama_model_xverse::load_arch_tensors(llama_model_loader &) {
}
std::unique_ptr<llm_graph_context> llama_model_xverse::build_arch_graph(const llm_graph_params & params) const {
- return std::make_unique<graph>(*this, params);
+ return std::make_unique<graph>(params);
}
-llama_model_xverse::graph::graph(const llama_model & model, const llm_graph_params & params) : llm_graph_context(params) {
+llama_model_xverse::graph::graph(const llm_graph_params & params) : llm_graph_context(params) {
const int64_t n_embd_head = hparams.n_embd_head_v();
GGML_ASSERT(n_embd_head == hparams.n_embd_head_k());