]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commitdiff
Fix n^2 loop in tokenization (#254)
authorGary Linscott <redacted>
Sat, 18 Mar 2023 11:17:19 +0000 (04:17 -0700)
committerGitHub <redacted>
Sat, 18 Mar 2023 11:17:19 +0000 (11:17 +0000)
This causes long prompts to parse very slowly.

utils.cpp

index 22ef593775c8c11a7975e1ef83111d976b2330f4..efa2e3c35f728e7addb7806b8bcf7bfc6430f0ab 100644 (file)
--- a/utils.cpp
+++ b/utils.cpp
@@ -302,7 +302,7 @@ std::vector<gpt_vocab::id> 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()) {