From cb2dbe9e9a8107de542e571641b27c44cc737783 Mon Sep 17 00:00:00 2001 From: Concedo <39025047+LostRuins@users.noreply.github.com> Date: Wed, 24 Apr 2024 21:29:21 +0800 Subject: [PATCH] improved rep pen speed --- gpttype_adapter.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/gpttype_adapter.cpp b/gpttype_adapter.cpp index 1712ae114..87da30928 100644 --- a/gpttype_adapter.cpp +++ b/gpttype_adapter.cpp @@ -429,9 +429,15 @@ void sample_rep_pen(int n_ctx, int rep_pen_range, float rep_pen, float presence_ const int64_t t_start_sample_us = ggml_time_us(); + // Create a frequency map to count occurrences of each token in last_tokens + std::unordered_map token_count; + for (size_t i = 0; i < last_n_repeat; ++i) { + token_count[last_tokens[i]]++; + } + for (size_t i = 0; i < candidates->size; ++i) { - const auto * token_iter = std::find(last_tokens, last_tokens + last_tokens_size, candidates->data[i].id); - if (token_iter == last_tokens + last_tokens_size) { + const auto token_iter = token_count.find(candidates->data[i].id); + if (token_iter == token_count.end()) { continue; }