runtime
ggml-org/llama.cpp · #27868
[Model] Support for Spark2_5ForCausalLM implementationC++ · 178 + / 0 −
Introduces 2 new declarations in src/models/spark2-5.cpp.
Adds new runtime rather than adjusting what was there. Tests changed with it, with code of their own.
@@ -0,0 +1,146 @@+#include "models.h"++void llama_model_spark2_5::load_arch_hparams(llama_model_loader & ml) {+ ml.get_key(LLM_KV_ATTENTION_LAYERNORM_RMS_EPS, hparams.f_norm_rms_eps);+ ml.get_key(LLM_KV_ATTENTION_SLIDING_WINDOW, hparams.n_swa);++ hparams.swa_type = LLAMA_SWA_TYPE_STANDARD;+ ml.get_arr(LLM_KV_ATTENTION_SLIDING_WINDOW_PATTERN, hparams.is_swa_impl);++ hparams.rope_freq_base_train_swa = hparams.rope_freq_base_train;+ hparams.rope_freq_scale_train_swa = hparams.rope_freq_scale_train;+ ml.get_key(LLM_KV_ROPE_FREQ_BASE_SWA, hparams.rope_freq_base_train_swa, false);++ switch (hparams.n_layer()) {+ case 28: type = LLM_TYPE_1_7B; break;+ default: type = LLM_TYPE_UNKNOWN;+ }+}++void llama_model_spark2_5::load_arch_tensors(llama_model_loader &) {+ LLAMA_LOAD_LOCALS;++ tok_embd = create_tensor(tn(LLM_TENSOR_TOKEN_EMBD, "weight"), {n_embd, n_vocab}, 0);++ output_norm = create_tensor(tn(LLM_TENSOR_OUTPUT_NORM, "weight"), {n_embd}, 0);+ output = create_tensor(tn(LLM_TENSOR_OUTPUT, "weight"), {n_embd, n_vocab}, TENSOR_NOT_REQUIRED);+ if (output == nullptr) {+ output = create_tensor(tn(LLM_TENSOR_TOKEN_EMBD, "weight"), {n_embd, n_vocab}, TENSOR_DUPLICATED);+ }++ for (int i = 0; i < n_layer; ++i) {+ auto & layer = layers[i];+