@tduncan / Nvidia-Optimization-Stack-VLLM Mirror · read-only / commits / 8711bc5e68
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 15, 07:15 UTC

[Misc] Add packages for benchmark as extra dependency (#19089)

Signed-off-by: Isotr0py <2037008807@qq.com>

Isotr0py committed Jun 4, 2025 at 19:18 UTC 8711bc5e684d43a333c0c20bef575a0d8ee8346f
3 files changed +20 -22
docs/cli/README.md
+2
@@ -77,6 +77,8 @@ vllm complete --quick "The future of AI is"
77
78 Run benchmark tests for latency online serving throughput and offline inference throughput.
79
80 +To use benchmark commands, please install with extra dependencies using `pip install vllm[bench]`.
81 +
82 Available Commands:
83
84 ```bash
setup.py
+1
@@ -688,6 +688,7 @@ setup(
688 ext_modules=ext_modules,
689 install_requires=get_requirements(),
690 extras_require={
691 + "bench": ["pandas", "datasets"],
692 "tensorizer": ["tensorizer>=2.9.0"],
693 "fastsafetensors": ["fastsafetensors >= 0.1.10"],
694 "runai": ["runai-model-streamer", "runai-model-streamer-s3", "boto3"],
vllm/benchmarks/datasets.py
+17 -22
@@ -24,7 +24,6 @@ from io import BytesIO
24 from typing import Any, Callable, Optional, Union
25
26 import numpy as np
27 -import pandas as pd
27 from PIL import Image
28 from transformers import PreTrainedTokenizerBase
29
@@ -33,6 +32,23 @@ from vllm.lora.utils import get_adapter_absolute_path
32 from vllm.multimodal import MultiModalDataDict
33 from vllm.multimodal.image import convert_image_mode
34 from vllm.transformers_utils.tokenizer import AnyTokenizer, get_lora_tokenizer
35 +from vllm.utils import PlaceholderModule
36 +
37 +try:
38 + from datasets import load_dataset
39 +except ImportError:
40 + datasets = PlaceholderModule("datasets")
41 + load_dataset = datasets.placeholder_attr("load_dataset")
42 +
43 +try:
44 + import pandas as pd
45 +except ImportError:
46 + pd = PlaceholderModule("pandas")
47 +
48 +try:
49 + import librosa
50 +except ImportError:
51 + librosa = PlaceholderModule("librosa")
52
53 logger = logging.getLogger(__name__)
54
@@ -636,13 +652,6 @@ class BurstGPTDataset(BenchmarkDataset):
652 if self.dataset_path is None:
653 raise ValueError("dataset_path must be provided for loading data.")
654
639 - try:
640 - import pandas as pd
641 - except ImportError as e:
642 - raise ImportError(
643 - "Pandas is required for BurstGPTDataset. Please install it "
644 - "using `pip install pandas`.") from e
645 -
655 df = pd.read_csv(self.dataset_path)
656 # Filter to keep only GPT-4 rows.
657 gpt4_df = df[df["Model"] == "GPT-4"]
@@ -717,13 +726,6 @@ class HuggingFaceDataset(BenchmarkDataset):
726
727 def load_data(self) -> None:
728 """Load data from HuggingFace datasets."""
720 - try:
721 - from datasets import load_dataset
722 - except ImportError as e:
723 - raise ImportError(
724 - "Hugging Face datasets library is required for this dataset. "
725 - "Please install it using `pip install datasets`.") from e
726 -
729 self.data = load_dataset(
730 self.dataset_path,
731 name=self.dataset_subset,
@@ -1147,13 +1149,6 @@ class ASRDataset(HuggingFaceDataset):
1149 output_len: Optional[int] = None,
1150 **kwargs,
1151 ) -> list:
1150 - try:
1151 - import librosa
1152 - except ImportError as e:
1153 - raise ImportError(
1154 - "librosa is required for ASRDataset. Please install it "
1155 - "using `pip install librosa`.") from e
1156 -
1152 output_len = (output_len
1153 if output_len is not None else self.DEFAULT_OUTPUT_LEN)
1154 prompt = ASRDataset.TRANSCRIPTION_PREAMBLE