kobold integration of min_p sampler (+1 squashed commits)

Squashed commits:

[8ad2e349] kobold integration for min_p sampler
This commit is contained in:
Concedo 2023-11-01 19:07:26 +08:00
parent bcb397953f
commit ae2cd56de8
5 changed files with 38 additions and 7 deletions

View file

@ -470,7 +470,7 @@ void sample_grammar(FileFormat file_format, int32_t n_vocab, llama_token_data_ar
}
int SampleLogits(const float * logits, int n_ctx, int n_vocab, int rep_pen_range, float rep_pen, float top_k, float top_a, float top_p, float typical_p, float tfs, float temp, std::mt19937 & rng,
int SampleLogits(const float * logits, int n_ctx, int n_vocab, int rep_pen_range, float rep_pen, float top_k, float top_a, float top_p, float min_p, float typical_p, float tfs, float temp, std::mt19937 & rng,
int mirostat, float mirostat_tau, float mirostat_eta, const std::vector<samplers> & sampler_order, llama_grammar * grammar)
{
int id = 0;
@ -515,6 +515,7 @@ int mirostat, float mirostat_tau, float mirostat_eta, const std::vector<samplers
break;
case KCPP_SAMPLER_TOP_P:
llama_sample_top_p(nullptr, &candidates_p, top_p,1);
llama_sample_min_p(nullptr, &candidates_p, min_p,1);
break;
case KCPP_SAMPLER_TFS:
llama_sample_tail_free(nullptr, &candidates_p, tfs,1);
@ -1392,6 +1393,7 @@ generation_outputs gpttype_generate(const generation_inputs inputs, generation_o
params.n_predict = inputs.max_length;
params.top_k = inputs.top_k;
params.top_p = inputs.top_p;
params.min_p = inputs.min_p;
params.typical_p = inputs.typical_p;
params.tfs_z = inputs.tfs;
params.temp = inputs.temperature;
@ -1740,6 +1742,7 @@ generation_outputs gpttype_generate(const generation_inputs inputs, generation_o
// out of user input, sample next token
const float top_k = params.top_k;
const float top_p = params.top_p;
const float min_p = params.min_p;
const float temp = params.temp;
const float top_a = inputs.top_a;
const float repeat_penalty = params.repeat_penalty;
@ -1799,7 +1802,7 @@ generation_outputs gpttype_generate(const generation_inputs inputs, generation_o
}
id = SampleLogits(logitsPtr, nctx, n_vocab, last_n_size, repeat_penalty,
top_k, top_a, top_p, typical_p, tfs_z, temp, rng,
top_k, top_a, top_p, min_p, typical_p, tfs_z, temp, rng,
params.mirostat, params.mirostat_tau, params.mirostat_eta, sampler_order, grammar);
if (grammar != nullptr) {