Skip to content

Commit e1c24b3

Browse files
fix: handle NoneType check for think tokens in TokenizerWrapper (#1167)
1 parent f39cb8e commit e1c24b3

2 files changed

Lines changed: 12 additions & 0 deletions

File tree

mlx_lm/tokenizer_utils.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -397,6 +397,8 @@ def think_start(self):
397397

398398
@property
399399
def think_start_id(self):
400+
if self._think_start_tokens is None:
401+
return None
400402
if len(self._think_start_tokens) > 1:
401403
raise ValueError("The start thinking sequence is more than 1 token")
402404
return self._think_start_tokens[0]
@@ -411,6 +413,8 @@ def think_end(self):
411413

412414
@property
413415
def think_end_id(self):
416+
if self._think_end_tokens is None:
417+
return None
414418
if len(self._think_end_tokens) > 1:
415419
raise ValueError("The end thinking sequence is more than 1 token")
416420
return self._think_end_tokens[0]

tests/test_tokenizers.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,14 @@ def test_thinking(self):
101101
self.assertEqual(tokenizer.think_start, "<think>")
102102
self.assertEqual(tokenizer.think_end, "</think>")
103103

104+
tokenizer_repo = "mlx-community/Llama-3.2-1B-Instruct-4bit"
105+
tokenizer = load_tokenizer(tokenizer_repo)
106+
self.assertFalse(tokenizer.has_thinking)
107+
self.assertIsNone(tokenizer.think_start)
108+
self.assertIsNone(tokenizer.think_end)
109+
self.assertIsNone(tokenizer.think_start_id)
110+
self.assertIsNone(tokenizer.think_end_id)
111+
104112

105113
if __name__ == "__main__":
106114
unittest.main()

0 commit comments

Comments
 (0)