diff options
Diffstat (limited to 'llama.cpp/src/llama-model-saver.h')
| -rw-r--r-- | llama.cpp/src/llama-model-saver.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/llama.cpp/src/llama-model-saver.h b/llama.cpp/src/llama-model-saver.h new file mode 100644 index 0000000..a5a434c --- /dev/null +++ b/llama.cpp/src/llama-model-saver.h @@ -0,0 +1,37 @@ +#pragma once + +#include "llama.h" +#include "llama-arch.h" + +#include <vector> + +struct llama_model_saver { + struct gguf_context * gguf_ctx = nullptr; + const struct llama_model & model; + const struct LLM_KV llm_kv; + + llama_model_saver(const struct llama_model & model); + ~llama_model_saver(); + + void add_kv(enum llm_kv key, uint32_t value); + void add_kv(enum llm_kv key, int32_t value); + void add_kv(enum llm_kv key, float value); + void add_kv(enum llm_kv key, bool value); + void add_kv(enum llm_kv key, const char * value); + + [[noreturn]] + void add_kv(enum llm_kv key, char value); // needed to make the template below compile + + template <typename Container> + void add_kv(enum llm_kv key, const Container & value, bool per_layer = false); + + void add_kv(enum llm_kv key, const std::vector<std::string> & value); + + void add_tensor(const struct ggml_tensor * tensor); + + void add_kv_from_model(); + + void add_tensors_from_model(); + + void save(const std::string & path_model); +}; |
