diff --git a/common/sampling.cpp b/common/sampling.cpp index 1317024c2..ca4e6bbb7 100644 --- a/common/sampling.cpp +++ b/common/sampling.cpp @@ -187,13 +187,16 @@ llama_token llama_sampling_sample( } else { // temperature sampling size_t min_keep = std::max(1, params.n_probs); + float output_temp = 1.0; // WIP, this should be defined separately as its own parameter. + llama_sample_temp (ctx_main, &cur_p, temp); // "Initial temp", this is how it's traditionally implemented llama_sample_top_k (ctx_main, &cur_p, top_k, min_keep); llama_sample_tail_free(ctx_main, &cur_p, tfs_z, min_keep); llama_sample_typical (ctx_main, &cur_p, typical_p, min_keep); llama_sample_top_p (ctx_main, &cur_p, top_p, min_keep); llama_sample_min_p (ctx_main, &cur_p, min_p, min_keep); - llama_sample_temp (ctx_main, &cur_p, temp); + llama_sample_temp (ctx_main, &cur_p, temp_last); // "Output temp", this is how llama.cpp chose to implement it + id = llama_sample_token(ctx_main, &cur_p);