Fix access violation when using banned_phrases (#1154)

This commit is contained in:
Maya 2024-10-10 16:46:39 +03:00 committed by GitHub
parent fe5479f286
commit 5c9650d68e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -3236,7 +3236,10 @@ generation_outputs gpttype_generate(const generation_inputs inputs)
grammar_accept_token(file_format, n_vocab, grammar, id); grammar_accept_token(file_format, n_vocab, grammar, id);
} }
if (!last_n_tokens.empty())
{
last_n_tokens.erase(last_n_tokens.begin()); last_n_tokens.erase(last_n_tokens.begin());
}
last_n_tokens.push_back(id); last_n_tokens.push_back(id);
current_context_tokens.push_back(id); current_context_tokens.push_back(id);
@ -3415,8 +3418,11 @@ generation_outputs gpttype_generate(const generation_inputs inputs)
int llavatokensevaled = 0; int llavatokensevaled = 0;
int sepsize = llava_sep.size(); 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)) while(input_consumed < embd_inp.size() && (embd_inp[input_consumed]==LLAVA_TOKEN_IDENTIFIER_A || embd_inp[input_consumed]==LLAVA_TOKEN_IDENTIFIER_B))
{
if (!last_n_tokens.empty())
{ {
last_n_tokens.erase(last_n_tokens.begin()); last_n_tokens.erase(last_n_tokens.begin());
}
last_n_tokens.push_back(currtoken); last_n_tokens.push_back(currtoken);
current_context_tokens.push_back(currtoken); current_context_tokens.push_back(currtoken);
++input_consumed; ++input_consumed;
@ -3472,7 +3478,10 @@ generation_outputs gpttype_generate(const generation_inputs inputs)
else else
{ {
embd.push_back(currtoken); embd.push_back(currtoken);
if (!last_n_tokens.empty())
{
last_n_tokens.erase(last_n_tokens.begin()); last_n_tokens.erase(last_n_tokens.begin());
}
last_n_tokens.push_back(currtoken); last_n_tokens.push_back(currtoken);
current_context_tokens.push_back(currtoken); current_context_tokens.push_back(currtoken);
++input_consumed; ++input_consumed;