From 7af4320d67a32638d9eec38f4f0816455cc41e39 Mon Sep 17 00:00:00 2001 From: Qiaolin Yu Date: Thu, 14 May 2026 19:11:25 -0700 Subject: [PATCH] [perf] fix kimi tokenizer to improve ttft (#25265) --- python/sglang/srt/managers/tokenizer_manager.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) 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(