removing any leading whitespace from infill suffix and removing leeading space token from suffix when params.escape

This commit is contained in:
vvhg1 2023-10-06 20:34:04 +02:00
parent 6796e7450c
commit 377be2f39d
2 changed files with 10 additions and 0 deletions

View File

@ -235,7 +235,12 @@ int main(int argc, char ** argv) {
std::vector<llama_token> embd_inp;
std::vector<llama_token> inp_pfx = ::llama_tokenize(ctx, params.input_prefix, false);
params.input_suffix.erase(0, params.input_suffix.find_first_not_of(" "));
std::vector<llama_token> inp_sfx = ::llama_tokenize(ctx, params.input_suffix, false);
const int space_token = 29871;
if (params.escape && inp_sfx.size() > 1 && inp_sfx[0] == space_token) {
inp_sfx.erase(inp_sfx.begin());
}
inp_pfx.insert(inp_pfx.begin(), llama_token_prefix(ctx));
if (add_bos) {
inp_pfx.insert(inp_pfx.begin(), llama_token_bos(ctx));

View File

@ -344,8 +344,13 @@ struct llama_server_context
void loadInfill()
{
params.input_suffix.erase(0, params.input_suffix.find_first_not_of(" "));
auto prefix_tokens = tokenize(params.input_prefix, false);
auto suffix_tokens = tokenize(params.input_suffix, false);
const int space_token = 29871;
if (params.escape && suffix_tokens.size() > 1 && suffix_tokens[0] == space_token) {
suffix_tokens.erase(suffix_tokens.begin());
}
prefix_tokens.insert(prefix_tokens.begin(), llama_token_prefix(ctx));
prefix_tokens.insert(prefix_tokens.begin(), llama_token_bos(ctx)); // always add BOS
prefix_tokens.insert(prefix_tokens.end(), llama_token_suffix(ctx));