From 2c301ee2eb2d60015936c5e34c80fa62d3c2d37d Mon Sep 17 00:00:00 2001 From: Fanli Lin Date: Thu, 4 Sep 2025 17:47:08 +0800 Subject: [PATCH] [Bugfix] Fix Incremental Detokenization with `tokenizers == 0.22.0` (#24159) Signed-off-by: Fanli Lin Signed-off-by: Fanli Lin Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- vllm/v1/engine/detokenizer.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/vllm/v1/engine/detokenizer.py b/vllm/v1/engine/detokenizer.py index 04ad51aae0a8c..0ccbe65493499 100644 --- a/vllm/v1/engine/detokenizer.py +++ b/vllm/v1/engine/detokenizer.py @@ -234,7 +234,7 @@ class FastIncrementalDetokenizer(BaseIncrementalDetokenizer): try: token = self.stream.step(self.tokenizer, next_token_id) except Exception as e: - if str(e) != INVALID_PREFIX_ERR_MSG: + if not str(e).startswith(INVALID_PREFIX_ERR_MSG): raise e # Recover from edge case where tokenizer can produce non-monotonic, # invalid UTF-8 output, which breaks the internal state of @@ -243,7 +243,8 @@ class FastIncrementalDetokenizer(BaseIncrementalDetokenizer): logger.warning( "Encountered invalid prefix detokenization error" " for request %s, resetting decode stream.", self.request_id) - self.stream = DecodeStream(self.skip_special_tokens) + self.stream = DecodeStream( + skip_special_tokens=self.skip_special_tokens) token = self.stream.step(self.tokenizer, next_token_id) return token