Skip to content

Commit f422f83

Browse files
authored
[benchmark] update tools (#7211)
1 parent ae2f9f4 commit f422f83

File tree

3 files changed

+81
-1
lines changed

3 files changed

+81
-1
lines changed

benchmarks/backend_request_func.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,15 @@ async def async_request_eb_openai_chat_completions(
269269
if request_func_input.response_format:
270270
payload["response_format"] = request_func_input.response_format
271271

272+
# 随机输入开关
273+
if request_func_input.random_flag:
274+
payload["max_tokens"] = request_func_input.output_len
275+
payload["min_tokens"] = request_func_input.output_len
276+
# 随机token_ids场景
277+
if isinstance(request_func_input.prompt, list):
278+
request_func_input.prompt_token_ids = request_func_input.prompt
279+
request_func_input.prompt = ""
280+
272281
# 支持传入prompt_token_ids
273282
if request_func_input.prompt_token_ids:
274283
# 不走messages

benchmarks/benchmark_dataset.py

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -818,3 +818,61 @@ def sample_len(base_len: int, ratio: float) -> int:
818818
)
819819
)
820820
return samples
821+
822+
823+
class RandomTokenDataset(BenchmarkDataset):
824+
"""
825+
Generates random English words for pure text benchmarking.
826+
"""
827+
828+
def __init__(self, **kwargs):
829+
super().__init__(**kwargs)
830+
831+
def sample(
832+
self,
833+
num_requests: int,
834+
lora_path: Optional[str] = None,
835+
max_loras: Optional[int] = None,
836+
random_input_len: Optional[int] = None,
837+
random_output_len: Optional[int] = None,
838+
random_range_ratio: Optional[float] = None,
839+
enable_multimodal_chat: bool = False,
840+
**kwargs,
841+
) -> list:
842+
samples = []
843+
844+
def sample_len(base_len: int, ratio: float) -> int:
845+
if base_len is None:
846+
return None
847+
if ratio is None or ratio <= 0:
848+
return base_len
849+
lo = max(1, int(base_len * (1 - ratio)))
850+
hi = int(base_len * (1 + ratio))
851+
return random.randint(lo, hi)
852+
853+
for i in range(1, num_requests + 1):
854+
# [length * (1 - range_ratio), length * (1 + range_ratio)]
855+
sampled_input_len = sample_len(random_input_len, random_range_ratio)
856+
sampled_output_len = sample_len(random_output_len, random_range_ratio)
857+
858+
random.seed(21)
859+
token_ids = [random.randint(2000, 10000) for _ in range(sampled_input_len)]
860+
# prompt_text = " ".join(words)
861+
862+
data = {
863+
"messages": [{"role": "user", "content": [{"type": "text", "text": ""}]}],
864+
"prompt_token_ids": token_ids,
865+
}
866+
867+
samples.append(
868+
SampleRequest(
869+
no=i,
870+
json_data=data,
871+
prompt=token_ids,
872+
prompt_len=sampled_input_len,
873+
history_QA=data["messages"],
874+
expected_output_len=sampled_output_len,
875+
random_flag=True,
876+
)
877+
)
878+
return samples

benchmarks/benchmark_serving.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,13 @@
3939
RequestFuncInput,
4040
RequestFuncOutput,
4141
)
42-
from benchmark_dataset import EBChatDataset, EBDataset, RandomTextDataset, SampleRequest
42+
from benchmark_dataset import (
43+
EBChatDataset,
44+
EBDataset,
45+
RandomTextDataset,
46+
RandomTokenDataset,
47+
SampleRequest,
48+
)
4349
from benchmark_utils import convert_to_pytorch_benchmark_format, write_to_json
4450
from tqdm.asyncio import tqdm
4551

@@ -1156,6 +1162,12 @@ def main(args: argparse.Namespace):
11561162
random_output_len=args.random_output_len,
11571163
random_range_ratio=args.random_range_ratio,
11581164
),
1165+
"random_token_ids": lambda: RandomTokenDataset().sample(
1166+
num_requests=args.num_prompts,
1167+
random_input_len=args.random_input_len,
1168+
random_output_len=args.random_output_len,
1169+
random_range_ratio=args.random_range_ratio,
1170+
),
11591171
}
11601172

11611173
try:
@@ -1338,6 +1350,7 @@ def main(args: argparse.Namespace):
13381350
"EB",
13391351
"EBChat",
13401352
"random",
1353+
"random_token_ids",
13411354
],
13421355
help="Name of the dataset to benchmark on.",
13431356
)

0 commit comments

Comments
 (0)