@tduncan / Nvidia-Optimization-Stack-VLLM Mirror · read-only / commits / 02606b0b09
Fork 0

A high-throughput and memory-efficient inference and serving engine for LLMs

Mirrored from https://github.com/tduncan-lum/Nvidia-Optimization-Stack---VLLM.git

Synced Nov 2, 14:45 UTC

[BUGFIX] Multimodal benchmark with MistralTokenizer (#42965)

Signed-off-by: juliendenize <julien.denize@mistral.ai> Signed-off-by: Julien Denize <40604584+juliendenize@users.noreply.github.com>

Julien Denize committed May 28, 2026 at 14:36 UTC 02606b0b09c0b35d1c7e888f1679502c479a0ac0
1 file changed +14 -10
vllm/benchmarks/datasets/datasets.py
+14 -10
@@ -48,6 +48,7 @@ from vllm.multimodal.image import convert_image_mode
48 from vllm.tokenizers import TokenizerLike
49 from vllm.utils.argparse_utils import FlexibleArgumentParser
50 from vllm.utils.import_utils import PlaceholderModule
51 +from vllm.utils.mistral import is_mistral_tokenizer
52
53 try:
54 from datasets import load_dataset
@@ -1219,16 +1220,19 @@ class RandomMultiModalDataset(RandomDataset):
1220 )
1221
1222 vocab_size = tokenizer.vocab_size
1222 - # Can't use tokenizer.all_special_ids since
1223 - # it returns ONLY ids from special_tokens_map.json
1224 - # We want to exclude placeholder tokens and all
1225 - # tokens that indicate start/end of image as it
1226 - # may break prompt replacement logic.
1227 - prohibited_tokens = list(
1228 - tok_id
1229 - for tok_id, token in tokenizer.added_tokens_decoder.items()
1230 - if token.special
1231 - )
1223 + if is_mistral_tokenizer(tokenizer):
1224 + prohibited_tokens = tokenizer.all_special_ids
1225 + else:
1226 + # Can't use tokenizer.all_special_ids since
1227 + # it returns ONLY ids from special_tokens_map.json
1228 + # We want to exclude placeholder tokens and all
1229 + # tokens that indicate start/end of image as it
1230 + # may break prompt replacement logic.
1231 + prohibited_tokens = list(
1232 + tok_id
1233 + for tok_id, token in tokenizer.added_tokens_decoder.items()
1234 + if token.special
1235 + )
1236 all_tokens = np.arange(vocab_size)
1237 allowed_tokens = np.array(list(set(all_tokens) - set(prohibited_tokens)))
1238 logger.debug(