|
|
#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); |
|
|
|
|
|
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); |
|
|
}; |
|
|
|