control-vectors : minor code style updates
This commit is contained in:
parent
42abb46c1f
commit
0a9bc301ac
4 changed files with 113 additions and 99 deletions
|
@ -37,10 +37,13 @@ extern char const *LLAMA_COMMIT;
|
|||
extern char const *LLAMA_COMPILER;
|
||||
extern char const *LLAMA_BUILD_TARGET;
|
||||
|
||||
struct llama_control_vector_load_info;
|
||||
|
||||
int32_t get_num_physical_cores();
|
||||
|
||||
//
|
||||
// CLI argument parsing
|
||||
//
|
||||
int32_t get_num_physical_cores();
|
||||
|
||||
struct gpt_params {
|
||||
uint32_t seed = LLAMA_DEFAULT_SEED; // RNG seed
|
||||
|
@ -103,8 +106,10 @@ struct gpt_params {
|
|||
std::vector<std::tuple<std::string, float>> lora_adapter; // lora adapter path with user defined scale
|
||||
std::string lora_base = ""; // base model path for the lora adapter
|
||||
|
||||
std::vector<std::tuple<std::string, float>> control_vectors; // control vector with user defined scale
|
||||
std::tuple<int32_t, int32_t> control_vector_layer_range; // layer range for control vector
|
||||
std::vector<llama_control_vector_load_info> control_vectors; // control vector with user defined scale
|
||||
|
||||
int32_t control_vector_layer_start = -1; // layer range for control vector
|
||||
int32_t control_vector_layer_end = -1; // layer range for control vector
|
||||
|
||||
int ppl_stride = 0; // stride for perplexity calculations. If left at 0, the pre-existing approach will be used.
|
||||
int ppl_output_type = 0; // = 0 -> ppl output is as usual, = 1 -> ppl output is num_tokens, ppl, one per line
|
||||
|
@ -277,8 +282,19 @@ float llama_embd_similarity_cos(const float * embd1, const float * embd2, int n)
|
|||
// Control vector utils
|
||||
//
|
||||
|
||||
// Load control vectors from a tuple of {path, strength}, scale each by strength, and add them together.
|
||||
// Returns a tuple of {concatenated vector data (n_emnd x n_layer), n_embd}
|
||||
// On error, returns a tuple of {empty, -1}
|
||||
std::tuple<std::vector<float>, int> llama_control_vector_load(
|
||||
const std::vector<std::tuple<std::string, float>> & vectors);
|
||||
struct llama_control_vector_data {
|
||||
int n_embd;
|
||||
|
||||
// stores data for layers [1, n_layer] where n_layer = data.size() / n_embd
|
||||
std::vector<float> data;
|
||||
};
|
||||
|
||||
struct llama_control_vector_load_info {
|
||||
float strength;
|
||||
|
||||
std::string fname;
|
||||
};
|
||||
|
||||
// Load control vectors, scale each by strength, and add them together.
|
||||
// On error, returns {-1, empty}
|
||||
llama_control_vector_data llama_control_vector_load(const std::vector<llama_control_vector_load_info> & load_infos);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue