mirror of
https://github.com/ollama/ollama.git
synced 2026-07-10 17:54:12 +00:00
Bump llama.cpp to b9493 and refresh the Laguna compat patch for upstream enum/tokenizer movement and the renamed SWA layer bitmap field.
93 lines
4.7 KiB
Diff
93 lines
4.7 KiB
Diff
diff --git a/src/llama-arch.cpp b/src/llama-arch.cpp
|
||
--- a/src/llama-arch.cpp
|
||
+++ b/src/llama-arch.cpp
|
||
@@ -136,2 +136,3 @@ static const std::map<llm_arch, const char *> LLM_ARCH_NAMES = {
|
||
{ LLM_ARCH_MELLUM, "mellum" },
|
||
+ { LLM_ARCH_LAGUNA, "laguna" },
|
||
{ LLM_ARCH_UNKNOWN, "(unknown)" },
|
||
@@ -380,2 +381,3 @@ static const std::map<llm_tensor, const char *> LLM_TENSOR_NAMES = {
|
||
{ LLM_TENSOR_ATTN_GATE, "blk.%d.attn_gate" },
|
||
+ { LLM_TENSOR_ATTN_GATE_LAGUNA, "blk.%d.attn_g" },
|
||
{ LLM_TENSOR_FFN_POST_NORM, "blk.%d.post_ffw_norm" },
|
||
@@ -596,2 +598,3 @@ static const std::map<llm_tensor, llm_tensor_info> LLM_TENSOR_INFOS = {
|
||
{LLM_TENSOR_ATTN_GATE, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
|
||
+ {LLM_TENSOR_ATTN_GATE_LAGUNA, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
|
||
{LLM_TENSOR_FFN_GATE, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
|
||
diff --git a/src/llama-arch.h b/src/llama-arch.h
|
||
--- a/src/llama-arch.h
|
||
+++ b/src/llama-arch.h
|
||
@@ -140,2 +140,3 @@ enum llm_arch {
|
||
LLM_ARCH_MELLUM,
|
||
+ LLM_ARCH_LAGUNA,
|
||
LLM_ARCH_UNKNOWN,
|
||
@@ -382,2 +383,3 @@ enum llm_tensor {
|
||
LLM_TENSOR_ATTN_GATE,
|
||
+ LLM_TENSOR_ATTN_GATE_LAGUNA,
|
||
LLM_TENSOR_FFN_GATE_INP,
|
||
diff --git a/src/llama-model.cpp b/src/llama-model.cpp
|
||
--- a/src/llama-model.cpp
|
||
+++ b/src/llama-model.cpp
|
||
@@ -48,4 +48,6 @@ static llama_model * llama_model_mapping(llm_arch arch, const llama_model_params
|
||
case LLM_ARCH_TALKIE:
|
||
return new llama_model_talkie(params);
|
||
+ case LLM_ARCH_LAGUNA:
|
||
+ return new llama_model_laguna(params);
|
||
case LLM_ARCH_DECI:
|
||
return new llama_model_deci(params);
|
||
@@ -2409,2 +2411,3 @@ llama_rope_type llama_model_rope_type(const llama_model * model) {
|
||
case LLM_ARCH_TALKIE:
|
||
+ case LLM_ARCH_LAGUNA:
|
||
case LLM_ARCH_MELLUM:
|
||
diff --git a/src/llama-model-loader.cpp b/src/llama-model-loader.cpp
|
||
--- a/src/llama-model-loader.cpp
|
||
+++ b/src/llama-model-loader.cpp
|
||
@@ -505,2 +505,3 @@ namespace GGUFMeta {
|
||
template bool llama_model_loader::get_key_or_arr<std::array<uint32_t, 512>>(enum llm_kv kid, std::array<uint32_t, 512> & result, uint32_t n, bool required);
|
||
+ template bool llama_model_loader::get_key_or_arr<uint32_t, 512>(const std::string & key, std::array<uint32_t, 512> & result, uint32_t n, bool required);
|
||
template bool llama_model_loader::get_key_or_arr<std::array<float, 512>>(enum llm_kv kid, std::array<float, 512> & result, uint32_t n, bool required);
|
||
diff --git a/src/llama-vocab.cpp b/src/llama-vocab.cpp
|
||
--- a/src/llama-vocab.cpp
|
||
+++ b/src/llama-vocab.cpp
|
||
@@ -359,2 +359,8 @@ struct llm_tokenizer_bpe : llm_tokenizer {
|
||
break;
|
||
+ case LLAMA_VOCAB_PRE_TYPE_LAGUNA:
|
||
+ regex_exprs = {
|
||
+ "(?:\\r?\\n)+(?!\\r?\\n)",
|
||
+ "(?:'[sS]|'[tT]|'[rR][eE]|'[vV][eE]|'[mM]|'[lL][lL]|'[dD])|[^\\r\\n\\p{L}\\p{N}]?\\p{L}+|\\p{N}| ?[^\\s\\p{L}\\p{N}]+[\\r\\n]*|\\s*[\\r\\n]+|\\s+(?!\\S)|\\s+",
|
||
+ };
|
||
+ break;
|
||
case LLAMA_VOCAB_PRE_TYPE_GPT2:
|
||
@@ -2100,2 +2106,4 @@ void llama_vocab::impl::load(llama_model_loader & ml, const LLM_KV & kv) {
|
||
ignore_merges = true;
|
||
+ } else if (tokenizer_pre == "laguna") {
|
||
+ pre_type = LLAMA_VOCAB_PRE_TYPE_LAGUNA;
|
||
} else if (
|
||
@@ -2773,2 +2781,3 @@ void llama_vocab::impl::load(llama_model_loader & ml, const LLM_KV & kv) {
|
||
|| t.first == "<|end▁of▁sentence|>" // deepseek-ocr
|
||
+ || t.first == "</assistant>" // poolside Laguna (eos_token_ids)
|
||
) {
|
||
diff --git a/src/llama-vocab.h b/src/llama-vocab.h
|
||
--- a/src/llama-vocab.h
|
||
+++ b/src/llama-vocab.h
|
||
@@ -65,2 +65,3 @@ enum llama_vocab_pre_type {
|
||
LLAMA_VOCAB_PRE_TYPE_MELLUM2 = 55,
|
||
+ LLAMA_VOCAB_PRE_TYPE_LAGUNA = 56,
|
||
};
|
||
diff --git a/src/models/models.h b/src/models/models.h
|
||
--- a/src/models/models.h
|
||
+++ b/src/models/models.h
|
||
@@ -1481,1 +1481,14 @@ struct llama_model_dots1 : public llama_model_base {
|
||
+struct llama_model_laguna : public llama_model_base {
|
||
+ llama_model_laguna(const struct llama_model_params & params) : llama_model_base(params) {}
|
||
+ void load_arch_hparams(llama_model_loader & ml) override;
|
||
+ 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);
|
||
+ };
|
||
+
|
||
+ std::unique_ptr<llm_graph_context> build_arch_graph(const llm_graph_params & params) const override;
|
||
+};
|
||
+
|
||
+
|
||
struct llama_model_arcee : public llama_model_base {
|