Skip to content

Commit 06aa6d4

Browse files
committed
Fix eos token usage in Qwen3 tokenizer
1 parent 5febcf8 commit 06aa6d4

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

pkg/llms_from_scratch/qwen3.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -536,14 +536,14 @@ def __init__(self, tokenizer_file_path="tokenizer.json", repo_id=None,
536536
self._special_to_id = {t: self._tok.token_to_id(t) for t in self._SPECIALS}
537537

538538
self.pad_token_id = self._special_to_id.get("<|endoftext|>")
539-
self.eos_token_id = self.pad_token_id
540539

541-
if repo_id and "Base" not in repo_id:
542-
eos_token = "<|im_end|>"
540+
# Match HF behavior: chat model → <|im_end|>, base model → <|endoftext|>
541+
fname = tok_file.name.lower()
542+
if "base" in fname and "reasoning" not in fname:
543+
self.eos_token = "<|endoftext|>"
543544
else:
544-
eos_token = "<|endoftext|>"
545-
if eos_token in self._special_to_id:
546-
self.eos_token_id = self._special_to_id[eos_token]
545+
self.eos_token = "<|im_end|>"
546+
self.eos_token_id = self._special_to_id.get(self.eos_token)
547547

548548
def encode(self, text, chat_wrapped=None):
549549
if chat_wrapped is None:

0 commit comments

Comments
 (0)