llama: move suppress_tokens handling to common/sampling (#26276)

* llama: move suppress_tokens handling to common/sampling

* address security issues

* rm has_logit_bias
This commit is contained in:
Xuan-Son Nguyen
2026-07-29 18:02:30 +02:00
committed by GitHub
parent caa596ab3f
commit afeebe103b
5 changed files with 32 additions and 44 deletions

View File

@@ -310,8 +310,19 @@ struct common_sampler * common_sampler_init(const struct llama_model * model, st
}
}
if (params.has_logit_bias()) {
samplers.push_back(llama_sampler_init_logit_bias(llama_vocab_n_tokens(vocab), params.logit_bias.size(), params.logit_bias.data()));
// logit bias: user biases + model suppress tokens (-INFINITY)
{
std::vector<llama_logit_bias> merged = params.logit_bias;
int32_t n_suppress = 0;
const llama_token * suppress = llama_vocab_get_suppress_tokens(vocab, &n_suppress);
for (int32_t i = 0; i < n_suppress; ++i) {
merged.push_back({ suppress[i], -INFINITY });
}
if (!merged.empty()) {
samplers.push_back(llama_sampler_init_logit_bias(llama_vocab_n_tokens(vocab), merged.size(), merged.data()));
}
}
if (params.mirostat == 0) {