process escapes for neg prompt and interactive consec prompts

This commit is contained in:
vvhg1 2023-10-14 11:08:50 +02:00
parent 8eef958349
commit ee652b2ab4
2 changed files with 12 additions and 3 deletions

View file

@ -631,6 +631,7 @@ bool gpt_params_parse(int argc, char ** argv, gpt_params & params) {
process_escapes(params.prompt); process_escapes(params.prompt);
process_escapes(params.input_prefix); process_escapes(params.input_prefix);
process_escapes(params.input_suffix); process_escapes(params.input_suffix);
process_escapes(sparams.cfg_negative_prompt);
for (auto & antiprompt : params.antiprompt) { for (auto & antiprompt : params.antiprompt) {
process_escapes(antiprompt); process_escapes(antiprompt);
} }

View file

@ -320,8 +320,14 @@ int main(int argc, char ** argv) {
} }
// prefix & suffix for instruct mode // prefix & suffix for instruct mode
const auto inp_pfx = ::llama_tokenize(ctx, "\n\n### Instruction:\n\n", add_bos); std::string inp_pfx_str = "\n\n### Instruction:\n\n";
const auto inp_sfx = ::llama_tokenize(ctx, "\n\n### Response:\n\n", false); std::string inp_sfx_str = "\n\n### Response:\n\n";
if (params.escape) {
process_escapes(inp_pfx_str);
process_escapes(inp_sfx_str);
}
const auto inp_pfx = ::llama_tokenize(ctx, inp_pfx_str, add_bos);
const auto inp_sfx = ::llama_tokenize(ctx, inp_sfx_str, false);
LOG("inp_pfx: %s\n", LOG_TOKENS_TOSTR_PRETTY(ctx, inp_pfx)); LOG("inp_pfx: %s\n", LOG_TOKENS_TOSTR_PRETTY(ctx, inp_pfx));
LOG("inp_sfx: %s\n", LOG_TOKENS_TOSTR_PRETTY(ctx, inp_sfx)); LOG("inp_sfx: %s\n", LOG_TOKENS_TOSTR_PRETTY(ctx, inp_sfx));
@ -781,7 +787,9 @@ int main(int argc, char ** argv) {
n_consumed = embd_inp.size(); n_consumed = embd_inp.size();
embd_inp.insert(embd_inp.end(), inp_pfx.begin(), inp_pfx.end()); embd_inp.insert(embd_inp.end(), inp_pfx.begin(), inp_pfx.end());
} }
if (params.escape) {
process_escapes(buffer);
}
const auto line_inp = ::llama_tokenize(ctx, buffer, false); const auto line_inp = ::llama_tokenize(ctx, buffer, false);
LOG("input tokens: %s\n", LOG_TOKENS_TOSTR_PRETTY(ctx, line_inp)); LOG("input tokens: %s\n", LOG_TOKENS_TOSTR_PRETTY(ctx, line_inp));