diff options
author | Guillaume "Vermeille" Sanchez <Guillaume.V.Sanchez@gmail.com> | 2023-07-21 12:58:36 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-21 13:58:36 +0300 |
commit | ab0e26bdfb7b3adb1e3145c61a0fa92d1abd21d0 (patch) | |
tree | 84420ac76f4de9304ab23a9835c4feca03171fed /llama.cpp | |
parent | 73643f5fb1136dc2b65ae910bdc5a431520d70a2 (diff) |
llama : remove cfg smooth factor as it is only a reparameterization of the guidance scale (#2280)
Diffstat (limited to 'llama.cpp')
-rw-r--r-- | llama.cpp | 14 |
1 files changed, 2 insertions, 12 deletions
@@ -2218,8 +2218,7 @@ void llama_sample_classifier_free_guidance( struct llama_context * ctx, llama_token_data_array * candidates, struct llama_context * guidance_ctx, - float scale, - float smooth_factor) { + float scale) { int64_t t_start_sample_us = ggml_time_us(); assert(ctx); @@ -2240,16 +2239,7 @@ void llama_sample_classifier_free_guidance( for (int i = 0; i < n_vocab; ++i) { float logit_guidance = logits_guidance[i]; float logit_base = logits_base[i]; - logits_guidance[i] = scale * (logit_base - logit_guidance) + logit_guidance; - } - - llama_log_softmax(logits_guidance, n_vocab); - - for (int i = 0; i < n_vocab; ++i) { - float logit_base = logits_base[i]; - float logit_guidance = logits_guidance[i]; - - candidates->data[i].logit = smooth_factor * logit_guidance + (1.f - smooth_factor) * logit_base; + candidates->data[i].logit = scale * (logit_base - logit_guidance) + logit_guidance; } if (ctx) { |