Skip to content

Commit c6dfc3c

Browse files
authored
Fix handling of special tokens in decoding. (#418)
1 parent 51be365 commit c6dfc3c

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

vllm/engine/llm_engine.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -276,8 +276,9 @@ def _decode_sequences(self, seq_groups: List[SequenceGroup]) -> None:
276276
seq.get_last_token_id(),
277277
skip_special_tokens=True,
278278
)
279-
seq.output_tokens.append(new_token)
280-
seq.output_text = new_output_text
279+
if new_token is not None:
280+
seq.output_tokens.append(new_token)
281+
seq.output_text = new_output_text
281282

282283
def _stop_sequences(self, seq_groups: List[SequenceGroup]) -> None:
283284
"""Stop the finished sequences."""

vllm/transformers_utils/tokenizer.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ def detokenize_incrementally(
8080
new_token: The new token as a string.
8181
output_text: The new output text as a string.
8282
"""
83+
if skip_special_tokens and (new_token_id in tokenizer.all_special_ids):
84+
return None, prev_output_tokens
8385
new_token = tokenizer.convert_ids_to_tokens(
8486
new_token_id, skip_special_tokens=skip_special_tokens)
8587
output_tokens = prev_output_tokens + [new_token]
@@ -99,7 +101,7 @@ def detokenize_incrementally(
99101
sub_texts = []
100102
current_sub_text = []
101103
for token in output_tokens:
102-
if skip_special_tokens and token in tokenizer.all_special_ids:
104+
if skip_special_tokens and token in tokenizer.all_special_tokens:
103105
continue
104106
if token in tokenizer.added_tokens_encoder:
105107
if current_sub_text:

0 commit comments

Comments
 (0)