return text;
}
-bool llama_should_add_bos_token(const llama_model * model) {
- const int add_bos = llama_add_bos_token(model);
-
- return add_bos != -1 ? bool(add_bos) : (llama_vocab_type(model) == LLAMA_VOCAB_TYPE_SPM);
-}
-
//
// Chat template utils
//
const std::vector<llama_token> & tokens,
bool special = true);
-// Uses the value from the model metadata if possible, otherwise
-// defaults to true when model type is SPM, otherwise false.
-bool llama_should_add_bos_token(const llama_model * model);
-
//
// Chat template utils
//
size_t max_seq_len;
tokenized_prompt(llama_context * ctx, std::string pos, std::string neg) {
- const bool add_bos = llama_should_add_bos_token(llama_get_model(ctx));
+ const bool add_bos = llama_add_bos_token(llama_get_model(ctx));
tokens_pos = ::llama_tokenize(ctx, pos, add_bos, true);
tokens_neg = ::llama_tokenize(ctx, neg, add_bos, true);
max_seq_len = std::max(tokens_pos.size(), tokens_neg.size());
}
static bool run(llama_context * ctx, const gpt_params & params) {
- const bool add_bos = llama_should_add_bos_token(llama_get_model(ctx));
+ const bool add_bos = llama_add_bos_token(llama_get_model(ctx));
std::vector<llama_token> tokens = ::llama_tokenize(ctx, params.prompt, add_bos);
}
static bool compute_imatrix(llama_context * ctx, const gpt_params & params) {
- const bool add_bos = llama_should_add_bos_token(llama_get_model(ctx));
- GGML_ASSERT(llama_add_eos_token(llama_get_model(ctx)) != 1);
+ const bool add_bos = llama_add_bos_token(llama_get_model(ctx));
+ GGML_ASSERT(!llama_add_eos_token(llama_get_model(ctx)));
const int n_ctx = llama_n_ctx(ctx);
auto tim1 = std::chrono::high_resolution_clock::now();
LOG_TEE("\n");
LOG_TEE("%s\n", gpt_params_get_system_info(params).c_str());
}
- const bool add_bos = llama_should_add_bos_token(model);
- GGML_ASSERT(llama_add_eos_token(model) != 1);
+ const bool add_bos = llama_add_bos_token(model);
+ GGML_ASSERT(!llama_add_eos_token(model));
LOG("add_bos: %d\n", add_bos);
std::vector<llama_token> embd_inp;
}
}
- const bool add_bos = llama_should_add_bos_token(model);
+ const bool add_bos = llama_add_bos_token(model);
if (!llama_model_has_encoder(model)) {
- GGML_ASSERT(llama_add_eos_token(model) != 1);
+ GGML_ASSERT(!llama_add_eos_token(model));
}
LOG("add_bos: %d\n", add_bos);
// Output: `perplexity: 13.5106 [114/114]`
// BOS tokens will be added for each chunk before eval
- const bool add_bos = llama_should_add_bos_token(llama_get_model(ctx));
- GGML_ASSERT(llama_add_eos_token(llama_get_model(ctx)) != 1);
+ const bool add_bos = llama_add_bos_token(llama_get_model(ctx));
+ GGML_ASSERT(!llama_add_eos_token(llama_get_model(ctx)));
fprintf(stderr, "%s: tokenizing the input ..\n", __func__);
// Output: `perplexity: 13.5106 [114/114]`
// BOS tokens will be added for each chunk before eval
- const bool add_bos = llama_should_add_bos_token(llama_get_model(ctx));
- GGML_ASSERT(llama_add_eos_token(llama_get_model(ctx)) != 1);
+ const bool add_bos = llama_add_bos_token(llama_get_model(ctx));
+ GGML_ASSERT(!llama_add_eos_token(llama_get_model(ctx)));
std::ofstream logits_stream;
if (!params.logits_file.empty()) {
const int n_batch = params.n_batch;
const int num_batches = (n_ctx + n_batch - 1)/n_batch;
const int nv = 2*((n_vocab + 1)/2) + 4;
- const bool add_bos = llama_should_add_bos_token(llama_get_model(ctx));
- GGML_ASSERT(llama_add_eos_token(llama_get_model(ctx)) != 1);
+ const bool add_bos = llama_add_bos_token(llama_get_model(ctx));
+ GGML_ASSERT(!llama_add_eos_token(llama_get_model(ctx)));
std::vector<uint16_t> log_probs_uint16(size_t(n_ctx - 1 - n_ctx/2) * nv);
std::vector<float> kld_values(size_t(n_ctx - 1 - n_ctx/2)*n_chunk);
n_ctx = llama_n_ctx(ctx);
- add_bos_token = llama_should_add_bos_token(model);
- has_eos_token = llama_add_eos_token(model) != 1;
-
+ add_bos_token = llama_add_bos_token(model);
+ has_eos_token = !llama_add_eos_token(model);
return true;
}
slot.t_start_generation = 0;
if (slot.infill) {
- const bool add_bos = llama_should_add_bos_token(model);
+ const bool add_bos = llama_add_bos_token(model);
bool suff_rm_leading_spc = true;
if (params.input_suffix.find_first_of(' ') == 0 && params.input_suffix.size() > 1) {
params.input_suffix.erase(0, 1);
prompt = stdin_buffer.str();
}
- const bool model_wants_add_bos = llama_should_add_bos_token(model);
+ const bool model_wants_add_bos = llama_add_bos_token(model);
const bool add_bos = model_wants_add_bos && !no_bos;
const bool parse_special = !no_parse_special;
LLAMA_API llama_token llama_token_nl (const struct llama_model * model); // next-line
LLAMA_API llama_token llama_token_pad(const struct llama_model * model); // padding
- // Returns -1 if unknown, 1 for true or 0 for false.
- LLAMA_API int32_t llama_add_bos_token(const struct llama_model * model);
-
- // Returns -1 if unknown, 1 for true or 0 for false.
- LLAMA_API int32_t llama_add_eos_token(const struct llama_model * model);
+ LLAMA_API bool llama_add_bos_token(const struct llama_model * model);
+ LLAMA_API bool llama_add_eos_token(const struct llama_model * model);
// Codellama infill tokens
LLAMA_API llama_token llama_token_prefix(const struct llama_model * model); // Beginning of infill prefix
return vocab.special_pad_id;
}
-int32_t llama_add_bos_token_impl(const struct llama_vocab & vocab) {
+bool llama_add_bos_token_impl(const struct llama_vocab & vocab) {
return vocab.tokenizer_add_bos;
}
-int32_t llama_add_eos_token_impl(const struct llama_vocab & vocab) {
+bool llama_add_eos_token_impl(const struct llama_vocab & vocab) {
return vocab.tokenizer_add_eos;
}
llama_token llama_token_nl_impl (const struct llama_vocab & vocab);
llama_token llama_token_pad_impl(const struct llama_vocab & vocab);
-int32_t llama_add_bos_token_impl(const struct llama_vocab & vocab);
-int32_t llama_add_eos_token_impl(const struct llama_vocab & vocab);
+bool llama_add_bos_token_impl(const struct llama_vocab & vocab);
+bool llama_add_eos_token_impl(const struct llama_vocab & vocab);
llama_token llama_token_prefix_impl(const struct llama_vocab & vocab);
llama_token llama_token_middle_impl(const struct llama_vocab & vocab);
return llama_token_pad_impl(model->vocab);
}
-int32_t llama_add_bos_token(const struct llama_model * model) {
+bool llama_add_bos_token(const struct llama_model * model) {
return llama_add_bos_token_impl(model->vocab);
}
-int32_t llama_add_eos_token(const struct llama_model * model) {
+bool llama_add_eos_token(const struct llama_model * model) {
return llama_add_eos_token_impl(model->vocab);
}