mirror of
https://github.com/ggerganov/llama.cpp.git
synced 2024-12-24 13:28:50 +01:00
llava-cli : always tokenize special tokens (#5382)
* llava-cli: tokenize special tokens in prompt * llava-cli: use the escape CLI argument, remove incomplete separate escaping process
This commit is contained in:
parent
ee1628bdfe
commit
0ef46da632
@ -34,7 +34,7 @@ static bool eval_id(struct llama_context * ctx_llama, int id, int * n_past) {
|
|||||||
|
|
||||||
static bool eval_string(struct llama_context * ctx_llama, const char* str, int n_batch, int * n_past, bool add_bos){
|
static bool eval_string(struct llama_context * ctx_llama, const char* str, int n_batch, int * n_past, bool add_bos){
|
||||||
std::string str2 = str;
|
std::string str2 = str;
|
||||||
std::vector<llama_token> embd_inp = ::llama_tokenize(ctx_llama, str2, add_bos);
|
std::vector<llama_token> embd_inp = ::llama_tokenize(ctx_llama, str2, add_bos, true);
|
||||||
eval_tokens(ctx_llama, embd_inp, n_batch, n_past);
|
eval_tokens(ctx_llama, embd_inp, n_batch, n_past);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -152,20 +152,8 @@ static void process_prompt(struct llava_context * ctx_llava, struct llava_image_
|
|||||||
size_t image_pos = prompt.find("<image>");
|
size_t image_pos = prompt.find("<image>");
|
||||||
if (image_pos != std::string::npos) {
|
if (image_pos != std::string::npos) {
|
||||||
// new templating mode: Provide the full prompt including system message and use <image> as a placeholder for the image
|
// new templating mode: Provide the full prompt including system message and use <image> as a placeholder for the image
|
||||||
|
|
||||||
system_prompt = prompt.substr(0, image_pos);
|
system_prompt = prompt.substr(0, image_pos);
|
||||||
user_prompt = prompt.substr(image_pos + std::string("<image>").length());
|
user_prompt = prompt.substr(image_pos + std::string("<image>").length());
|
||||||
// We replace \n with actual newlines in user_prompt, just in case -e was not used in templating string
|
|
||||||
size_t pos = 0;
|
|
||||||
while ((pos = user_prompt.find("\\n", pos)) != std::string::npos) {
|
|
||||||
user_prompt.replace(pos, 2, "\n");
|
|
||||||
pos += 1; // Advance past the replaced newline
|
|
||||||
}
|
|
||||||
while ((pos = system_prompt.find("\\n", pos)) != std::string::npos) {
|
|
||||||
system_prompt.replace(pos, 2, "\n");
|
|
||||||
pos += 1; // Advance past the replaced newline
|
|
||||||
}
|
|
||||||
|
|
||||||
printf("system_prompt: %s\n", system_prompt.c_str());
|
printf("system_prompt: %s\n", system_prompt.c_str());
|
||||||
printf("user_prompt: %s\n", user_prompt.c_str());
|
printf("user_prompt: %s\n", user_prompt.c_str());
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user