summaryrefslogtreecommitdiff
path: root/examples/server/server.cpp
diff options
context:
space:
mode:
authorJared Van Bortel <jared@nomic.ai>2024-02-21 10:33:54 -0500
committerGitHub <noreply@github.com>2024-02-21 10:33:54 -0500
commit89febfed9322c8849520dc63c93ee4f5fd72556e (patch)
tree60a680fab03dfd5def2827b7d4290e5db44351fa /examples/server/server.cpp
parent5022cf242d689e15defd133f96c4345ad30c5d19 (diff)
examples : do not assume BOS when shifting context (#5622)
Diffstat (limited to 'examples/server/server.cpp')
-rw-r--r--examples/server/server.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/examples/server/server.cpp b/examples/server/server.cpp
index 1c447951..c84719a0 100644
--- a/examples/server/server.cpp
+++ b/examples/server/server.cpp
@@ -1487,14 +1487,15 @@ struct llama_server_context
if (slot.is_processing() && system_tokens.size() + slot.cache_tokens.size() >= (size_t) slot.n_ctx)
{
// Shift context
- const int n_left = system_tokens.size() + slot.n_past - slot.params.n_keep - 1;
+ const int n_keep = slot.params.n_keep + add_bos_token;
+ const int n_left = system_tokens.size() + slot.n_past - n_keep;
const int n_discard = n_left / 2;
- LOG_TEE("slot %d: context shift - n_keep = %d, n_left = %d, n_discard = %d\n", slot.id, slot.params.n_keep, n_left, n_discard);
- llama_kv_cache_seq_rm (ctx, slot.id, slot.params.n_keep + 1 , slot.params.n_keep + n_discard + 1);
- llama_kv_cache_seq_shift(ctx, slot.id, slot.params.n_keep + 1 + n_discard, system_tokens.size() + slot.n_past, -n_discard);
+ LOG_TEE("slot %d: context shift - n_keep = %d, n_left = %d, n_discard = %d\n", slot.id, n_keep, n_left, n_discard);
+ llama_kv_cache_seq_rm (ctx, slot.id, n_keep , n_keep + n_discard);
+ llama_kv_cache_seq_shift(ctx, slot.id, n_keep + n_discard, system_tokens.size() + slot.n_past, -n_discard);
- for (size_t i = slot.params.n_keep + 1 + n_discard; i < slot.cache_tokens.size(); i++)
+ for (size_t i = n_keep + n_discard; i < slot.cache_tokens.size(); i++)
{
slot.cache_tokens[i - n_discard] = slot.cache_tokens[i];
}
@@ -1507,7 +1508,7 @@ struct llama_server_context
LOG_VERBOSE("context shift", {
{ "n_ctx", n_ctx },
- { "n_keep", params.n_keep },
+ { "n_keep", n_keep },
{ "n_left", n_left },
});
}