diff options
| author | Gary Linscott <glinscott@gmail.com> | 2023-03-18 04:17:19 -0700 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-18 11:17:19 +0000 | 
| commit | a81d0c2a171a4446e6a21a3ec74a0c0768d71184 (patch) | |
| tree | add34bcf432f96fcb5bf821db99268d22040596f | |
| parent | b2de7f18dfbb93463eeb5b4392117bbe82d5bd1b (diff) | |
Fix n^2 loop in tokenization (#254)
This causes long prompts to parse very slowly.
| -rw-r--r-- | utils.cpp | 2 | 
1 files changed, 1 insertions, 1 deletions
@@ -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()) {  | 
