Skip to content

Commit 2c94aae

Browse files
author
Dmytro Parfeniuk
committed
transformers request generator is controlled by --subset-size CLI parameter
1 parent ecf2984 commit 2c94aae

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

src/guidellm/main.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,15 @@
151151
"until the user exits. "
152152
),
153153
)
154+
@click.option(
155+
"--subset-size",
156+
type=int,
157+
default=None,
158+
help=(
159+
"The number of subsets to use from the dataset. "
160+
"If not provided, all subsets will be used."
161+
),
162+
)
154163
def generate_benchmark_report_cli(
155164
target: str,
156165
backend: BackendEnginePublic,
@@ -164,6 +173,7 @@ def generate_benchmark_report_cli(
164173
max_requests: Union[Literal["dataset"], int, None],
165174
output_path: str,
166175
enable_continuous_refresh: bool,
176+
subset_size: Optional[int],
167177
):
168178
"""
169179
Generate a benchmark report for a specified backend and dataset.
@@ -181,6 +191,7 @@ def generate_benchmark_report_cli(
181191
max_requests=max_requests,
182192
output_path=output_path,
183193
cont_refresh_table=enable_continuous_refresh,
194+
subset_size=subset_size,
184195
)
185196

186197

@@ -197,6 +208,7 @@ def generate_benchmark_report(
197208
max_requests: Union[Literal["dataset"], int, None],
198209
output_path: str,
199210
cont_refresh_table: bool,
211+
subset_size: Optional[int],
200212
) -> GuidanceReport:
201213
"""
202214
Generate a benchmark report for a specified backend and dataset.
@@ -251,7 +263,7 @@ def generate_benchmark_report(
251263
request_generator = FileRequestGenerator(path=data, tokenizer=tokenizer_inst)
252264
elif data_type == "transformers":
253265
request_generator = TransformersDatasetRequestGenerator(
254-
dataset=data, tokenizer=tokenizer_inst
266+
dataset=data, tokenizer=tokenizer_inst, subset_size=subset_size
255267
)
256268
else:
257269
raise ValueError(f"Unknown data type: {data_type}")

src/guidellm/request/transformers.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ class TransformersDatasetRequestGenerator(RequestGenerator):
3333
:type mode: str
3434
:param async_queue_size: The size of the request queue.
3535
:type async_queue_size: int
36+
:param subset_size: The number of the subsets to use from the database.
37+
:type subset_size: Optional[int]
3638
"""
3739

3840
def __init__(
@@ -45,6 +47,7 @@ def __init__(
4547
tokenizer: Optional[Union[str, PreTrainedTokenizer]] = None,
4648
mode: GenerationMode = "async",
4749
async_queue_size: int = 50,
50+
subset_size: Optional[int] = None,
4851
**kwargs,
4952
):
5053
self._dataset = dataset
@@ -58,6 +61,9 @@ def __init__(
5861
self._hf_column = resolve_transformers_dataset_column(
5962
self._hf_dataset, column=column
6063
)
64+
if subset_size is not None and isinstance(self._hf_dataset, Dataset):
65+
self._hf_dataset = self._hf_dataset.select(range(subset_size))
66+
6167
self._hf_dataset_iterator = iter(self._hf_dataset)
6268

6369
# NOTE: Must be after all the parameters since the queue population

0 commit comments

Comments
 (0)