diff --git a/python/sglang/srt/managers/tokenizer_manager.py b/python/sglang/srt/managers/tokenizer_manager.py index 07ee75093..6375a1d8b 100644 --- a/python/sglang/srt/managers/tokenizer_manager.py +++ b/python/sglang/srt/managers/tokenizer_manager.py @@ -689,9 +689,16 @@ class TokenizerManager(TokenizerControlMixin, TokenizerManagerScoreMixin): ) else: logger.debug(f"Using regular tokenizer for {len(tokenizer_input)} inputs") - encoded = self.tokenizer(tokenizer_input, **tokenizer_kwargs) - input_ids = encoded["input_ids"] - token_type_ids = encoded.get("token_type_ids") if is_cross_encoder else None + + if not is_cross_encoder and (not getattr(self.tokenizer, "is_fast", False)): + input_ids = [self.tokenizer.encode(t) for t in tokenizer_input] + token_type_ids = None + else: + encoded = self.tokenizer(tokenizer_input, **tokenizer_kwargs) + input_ids = encoded["input_ids"] + token_type_ids = ( + encoded.get("token_type_ids") if is_cross_encoder else None + ) # Step 4: Extract results based on input format return self._extract_tokenizer_results(