Merge branch 'master' into small-fixes

This commit is contained in:
anon998 2023-06-02 10:35:06 +00:00 committed by GitHub
commit abb7782745
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -533,6 +533,7 @@ json format_generation_settings(llama_server_context &llama) {
const auto eos_bias = llama.params.logit_bias.find(llama_token_eos()); const auto eos_bias = llama.params.logit_bias.find(llama_token_eos());
const bool ignore_eos = eos_bias != llama.params.logit_bias.end() && const bool ignore_eos = eos_bias != llama.params.logit_bias.end() &&
eos_bias->second < 0.0f && std::isinf(eos_bias->second); eos_bias->second < 0.0f && std::isinf(eos_bias->second);
return json { return json {
{ "seed", llama.params.seed }, { "seed", llama.params.seed },
{ "temp", llama.params.temp }, { "temp", llama.params.temp },
@ -653,10 +654,15 @@ bool parse_options_completion(json body, llama_server_context& llama, Response &
if (body["logit_bias"].is_array()) { if (body["logit_bias"].is_array()) {
int n_vocab = llama_n_vocab(llama.ctx); int n_vocab = llama_n_vocab(llama.ctx);
for (const auto &el : body["logit_bias"]) { for (const auto &el : body["logit_bias"]) {
if (el.is_array() && el.size() == 2 && el[0].is_number_integer() && el[1].is_number_float()) { if (el.is_array() && el.size() == 2 && el[0].is_number_integer()) {
llama_token tok = el[0].get<llama_token>(); llama_token tok = el[0].get<llama_token>();
if (tok < 0 || tok >= n_vocab) continue; if (tok >= 0 && tok < n_vocab) {
llama.params.logit_bias[tok] = el[1].get<float>(); if (el[1].is_number_float()) {
llama.params.logit_bias[tok] = el[1].get<float>();
} else if (el[1].is_boolean() && !el[1].get<bool>()) {
llama.params.logit_bias[tok] = -INFINITY;
}
}
} }
} }
} }