diff --git a/llama/patches/PR-22566.diff b/llama/patches/PR-22566.diff index 126a4532..e71e02ef 100644 --- a/llama/patches/PR-22566.diff +++ b/llama/patches/PR-22566.diff @@ -5,7 +5,7 @@ index 71bc9f7ef0aa..9e91dd492a11 100644 @@ -694,8 +694,13 @@ llama_model_loader::llama_model_loader( llm_kv = LLM_KV(llm_arch_from_string(arch_name)); } - + - n_kv = gguf_get_n_kv(metadata); - n_tensors = weights_map.size(); + n_kv = gguf_get_n_kv(metadata); @@ -15,12 +15,12 @@ index 71bc9f7ef0aa..9e91dd492a11 100644 + n_tensors = weights_map.size(); + GGML_ASSERT(files.size() != 1 || static_cast(n_tensors) == gguf_get_n_tensors(metadata)); + } - + fver = (enum llama_fver) gguf_get_version(metadata); - + @@ -1225,13 +1230,20 @@ struct ggml_tensor * llama_model_loader::create_tensor( }; - + if (files.empty()) { - if (flags & TENSOR_SKIP_IF_VIRTUAL) { - return nullptr; @@ -40,11 +40,11 @@ index 71bc9f7ef0aa..9e91dd492a11 100644 + throw std::runtime_error(format("missing tensor '%s'", tn.str().c_str())); + } } - + // for tensors that are not required some of the dimensions can be invalid: @@ -1261,8 +1273,20 @@ struct ggml_tensor * llama_model_loader::create_tensor( ggml_set_name(&t_meta, tn.str().c_str()); - + ggml_backend_buffer_type_t buft = buft_for_tensor(&t_meta); - GGML_ASSERT(buft != nullptr); + if (buft == nullptr) {