From db8dee50516d1437f94017de196f87dcf54be12d Mon Sep 17 00:00:00 2001 From: Kawrakow Date: Thu, 3 Jul 2025 15:26:52 +0200 Subject: Do not crash when there is no DRY sampler (#578) Co-authored-by: Iwan Kawrakow --- common/sampling.cpp | 6 ++++-- src/llama.cpp | 3 +++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/common/sampling.cpp b/common/sampling.cpp index 4b983e5f..08a19b45 100644 --- a/common/sampling.cpp +++ b/common/sampling.cpp @@ -55,7 +55,7 @@ struct llama_sampling_context * llama_sampling_init(const struct llama_vocab* vo c_breakers.push_back(str.c_str()); } result->smpl=llama_sampler_init_dry(vocab, params.dry_multiplier, params.dry_base, params.dry_allowed_length, params.dry_penalty_last_n, c_breakers.data(), c_breakers.size()); - + break; } default: @@ -502,5 +502,7 @@ void llama_sampling_accept( if (ctx_sampling->grammar != NULL && apply_grammar) { llama_grammar_accept_token(ctx_sampling->grammar, ctx_main, id); } - llama_sampler_dry_accept(ctx_sampling->smpl, id); + if (ctx_sampling->smpl) { + llama_sampler_dry_accept(ctx_sampling->smpl, id); + } } diff --git a/src/llama.cpp b/src/llama.cpp index 8823ab5b..c2769e32 100644 --- a/src/llama.cpp +++ b/src/llama.cpp @@ -23401,6 +23401,9 @@ struct llama_sampler_dry* llama_sampler_dry_clone(struct llama_sampler_dry* smpl } void llama_sampler_dry_accept(struct llama_sampler_dry* smpl, llama_token token) { + if (!smpl) { + return; + } if (smpl->dry_multiplier == 0.0f || smpl->dry_base < 1.0f || smpl->dry_penalty_last_n == 0) { return; } -- cgit v1.2.3