]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commitdiff
convert : fix broken sentencepiece vocab (#14416)
authorSigbjørn Skjæret <redacted>
Fri, 27 Jun 2025 08:42:19 +0000 (10:42 +0200)
committerGitHub <redacted>
Fri, 27 Jun 2025 08:42:19 +0000 (10:42 +0200)
convert_hf_to_gguf.py

index 4f2339a02a13c4b0d28b2631adf07d4506a4ee13..aed595e259ed514bc49c6c0663aefc0cb4abd36b 100755 (executable)
@@ -936,7 +936,11 @@ class TextModel(ModelBase):
         scores: list[float] = [-10000.0] * vocab_size
         toktypes: list[int] = [SentencePieceTokenTypes.UNUSED] * vocab_size
 
-        for token_id in range(vocab_size):
+        for token_id in range(tokenizer.vocab_size()):
+            if token_id >= vocab_size:
+                logger.warning(f'ignore tokens from {token_id}: id is out of range, max={vocab_size - 1}')
+                break
+
             piece = tokenizer.IdToPiece(token_id)
             text = piece.encode("utf-8")
             score = tokenizer.GetScore(token_id)
@@ -951,10 +955,6 @@ class TextModel(ModelBase):
             elif tokenizer.IsByte(token_id):
                 toktype = SentencePieceTokenTypes.BYTE
 
-            if token_id >= vocab_size:
-                logger.warning(f'ignore tokens from {token_id}: id is out of range, max={vocab_size - 1}')
-                break
-
             tokens[token_id] = text
             scores[token_id] = score
             toktypes[token_id] = toktype