llama : add option for greedy sampling with probs

This commit is contained in:
Georgi Gerganov 2023-10-27 16:12:01 +03:00
parent 34b2a5e1ee
commit 4aa1fb0d38
No known key found for this signature in database
GPG Key ID: 449E073F9DC10735
2 changed files with 7 additions and 3 deletions

View File

@ -167,9 +167,13 @@ llama_token llama_sampling_sample(
llama_sample_grammar(ctx_main, &cur_p, ctx_sampling->grammar);
}
if (temp <= 0) {
// greedy sampling
if (temp < 0.0) {
// greedy sampling, no probs
id = llama_sample_token_greedy(ctx_main, &cur_p);
} else if (temp == 0.0) {
// greedy sampling, with probs
llama_sample_softmax(ctx_main, &cur_p);
id = cur_p.data[0].id;
} else {
if (mirostat == 1) {
const int mirostat_m = 100;

View File

@ -118,7 +118,7 @@ int main(int argc, char ** argv) {
std::vector<seq_draft> drafts(n_seq_dft);
params.sparams.grammar.clear(); // the draft samplers will copy the target sampler's grammar
params.sparams.temp = std::max(0.01f, params.sparams.temp);
params.sparams.temp = 0.0f;
for (int s = 0; s < n_seq_dft; ++s) {
drafts[s].ctx_sampling = llama_sampling_init(params.sparams);