llama : fix empty ring buffer push (#9358)

This commit is contained in:
Georgi Gerganov 2024-09-08 00:33:33 +03:00 committed by GitHub
parent faf69d4237
commit f12295b8a9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 4 additions and 2 deletions

View File

@ -145,7 +145,7 @@ struct gpt_sampler * gpt_sampler_init(const struct llama_model * model, const st
/* .params = */ params,
/* .grmr = */ llama_sampler_init_grammar(model, params.grammar.c_str(), "root"),
/* .chain = */ llama_sampler_chain_init(lparams),
/* .prev = */ ring_buffer<llama_token>(params.n_prev),
/* .prev = */ ring_buffer<llama_token>(std::max(32, params.n_prev)),
/* .cur = */ {},
/* .cur_p = */ {},
};

View File

@ -1226,7 +1226,9 @@ static struct llama_sampler_i llama_sampler_penalties_i = {
/* .name = */ [](const struct llama_sampler * /*smpl*/) { return "penalties"; },
/* .accept = */ [](struct llama_sampler * smpl, llama_token token) {
auto * ctx = (llama_sampler_penalties *) smpl->ctx;
ctx->prev.push_back(token);
if (ctx->prev.size()) {
ctx->prev.push_back(token);
}
},
/* .apply = */ [](struct llama_sampler * smpl, llama_token_data_array * cur_p) {
auto * ctx = (llama_sampler_penalties *) smpl->ctx;