diff --git a/examples/main/main.cpp b/examples/main/main.cpp index 0a5bbbbd1..47059e582 100644 --- a/examples/main/main.cpp +++ b/examples/main/main.cpp @@ -511,6 +511,14 @@ int main(int argc, char ** argv) { std::vector embd; std::vector embd_guidance; + // tokenized antiprompts + std::vector> antiprompt_ids; + + antiprompt_ids.reserve(params.antiprompt.size()); + for (const std::string & antiprompt : params.antiprompt) { + antiprompt_ids.emplace_back(::llama_tokenize(ctx, antiprompt, false, true)); + } + struct llama_sampling_context * ctx_sampling = llama_sampling_init(sparams); while ((n_remain != 0 && !is_antiprompt) || params.interactive) { @@ -769,14 +777,6 @@ int main(int argc, char ** argv) { } } - // tokenize reverse/antiprompt special tokens only once using static - static std::vector> antiprompt_ids; - if (antiprompt_ids.empty()) { - for (std::string& antiprompt : params.antiprompt) { - antiprompt_ids.push_back(::llama_tokenize(ctx, antiprompt, false, true)); - } - } - // check for reverse prompt using special tokens llama_token last_token = llama_sampling_last(ctx_sampling); for (std::vector ids : antiprompt_ids) {