From a81d0c2a171a4446e6a21a3ec74a0c0768d71184 Mon Sep 17 00:00:00 2001 From: Gary Linscott Date: Sat, 18 Mar 2023 04:17:19 -0700 Subject: [PATCH] Fix n^2 loop in tokenization (#254) This causes long prompts to parse very slowly. --- utils.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils.cpp b/utils.cpp index 22ef593..efa2e3c 100644 --- a/utils.cpp +++ b/utils.cpp @@ -302,7 +302,7 @@ std::vector llama_tokenize(const gpt_vocab & vocab, const std::st // Forward pass for (int i = 0; i < len; i++) { int max_len = std::min(len - i, MAX_TOKEN_LEN); - for (int sub_len = 1; sub_len <= len - i; sub_len++) { + for (int sub_len = 1; sub_len <= max_len; sub_len++) { auto sub = text.substr(i, sub_len); auto token = vocab.token_to_id.find(sub); if (token != vocab.token_to_id.end()) {