main : fix off by one error for context shift (#6921)

This commit is contained in:
l3utterfly 2024-05-02 04:27:41 +09:00 committed by GitHub
parent 3ea0d36000
commit 8d608a81b7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -544,7 +544,7 @@ int main(int argc, char ** argv) {
// if we run out of context:
// - take the n_keep first tokens from the original prompt (via n_past)
// - take half of the last (n_ctx - n_keep) tokens and recompute the logits in batches
if (n_past + (int) embd.size() + std::max<int>(0, guidance_offset) > n_ctx) {
if (n_past + (int) embd.size() + std::max<int>(0, guidance_offset) >= n_ctx) {
if (params.n_predict == -2) {
LOG_TEE("\n\n%s: context full and n_predict == -%d => stopping\n", __func__, params.n_predict);
break;