From 5c9650d68e1172eec54f0793243c87cdd48fd78a Mon Sep 17 00:00:00 2001 From: Maya <48323879+mayaeary@users.noreply.github.com> Date: Thu, 10 Oct 2024 16:46:39 +0300 Subject: [PATCH] Fix access violation when using banned_phrases (#1154) --- gpttype_adapter.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/gpttype_adapter.cpp b/gpttype_adapter.cpp index ecaa9dbab..074d63f91 100644 --- a/gpttype_adapter.cpp +++ b/gpttype_adapter.cpp @@ -3236,7 +3236,10 @@ generation_outputs gpttype_generate(const generation_inputs inputs) grammar_accept_token(file_format, n_vocab, grammar, id); } - last_n_tokens.erase(last_n_tokens.begin()); + if (!last_n_tokens.empty()) + { + last_n_tokens.erase(last_n_tokens.begin()); + } last_n_tokens.push_back(id); current_context_tokens.push_back(id); @@ -3416,7 +3419,10 @@ generation_outputs gpttype_generate(const generation_inputs inputs) int sepsize = llava_sep.size(); while(input_consumed < embd_inp.size() && (embd_inp[input_consumed]==LLAVA_TOKEN_IDENTIFIER_A || embd_inp[input_consumed]==LLAVA_TOKEN_IDENTIFIER_B)) { - last_n_tokens.erase(last_n_tokens.begin()); + if (!last_n_tokens.empty()) + { + last_n_tokens.erase(last_n_tokens.begin()); + } last_n_tokens.push_back(currtoken); current_context_tokens.push_back(currtoken); ++input_consumed; @@ -3472,7 +3478,10 @@ generation_outputs gpttype_generate(const generation_inputs inputs) else { embd.push_back(currtoken); - last_n_tokens.erase(last_n_tokens.begin()); + if (!last_n_tokens.empty()) + { + last_n_tokens.erase(last_n_tokens.begin()); + } last_n_tokens.push_back(currtoken); current_context_tokens.push_back(currtoken); ++input_consumed;