Main entry point
(args: argparse.Namespace)
| 1041 | |
| 1042 | |
| 1043 | def main(args: argparse.Namespace): |
| 1044 | """Main entry point""" |
| 1045 | print(args) |
| 1046 | random.seed(args.seed) |
| 1047 | np.random.seed(args.seed) |
| 1048 | |
| 1049 | backend = args.backend |
| 1050 | # 支持多轮对话方式请求,仅支持chat接口 |
| 1051 | if args.multi_turn: |
| 1052 | backend = "openai-chat-multi-turn" |
| 1053 | model_id = args.model |
| 1054 | model_name = args.served_model_name |
| 1055 | tokenizer_id = args.tokenizer if args.tokenizer is not None else args.model |
| 1056 | |
| 1057 | if args.base_url is not None: |
| 1058 | api_url = f"{args.base_url}{args.endpoint}" |
| 1059 | base_url = f"{args.base_url}" |
| 1060 | else: |
| 1061 | api_url = f"http://{args.host}:{args.port}{args.endpoint}" |
| 1062 | base_url = f"http://{args.host}:{args.port}" |
| 1063 | |
| 1064 | if args.dataset_name is None: |
| 1065 | raise ValueError("Please specify '--dataset-name' and the corresponding " "'--dataset-path' if required.") |
| 1066 | |
| 1067 | # For datasets that follow a similar structure, use a mapping. |
| 1068 | dataset_mapping = { |
| 1069 | "EB": lambda: EBDataset(random_seed=args.seed, dataset_path=args.dataset_path, shuffle=args.shuffle).sample( |
| 1070 | num_requests=args.num_prompts, |
| 1071 | output_len=args.sharegpt_output_len, |
| 1072 | ), |
| 1073 | "EBChat": lambda: EBChatDataset( |
| 1074 | random_seed=args.seed, dataset_path=args.dataset_path, shuffle=args.shuffle |
| 1075 | ).sample( |
| 1076 | num_requests=args.num_prompts, |
| 1077 | output_len=args.sharegpt_output_len, |
| 1078 | ), |
| 1079 | "random": lambda: RandomTextDataset().sample( |
| 1080 | num_requests=args.num_prompts, |
| 1081 | random_input_len=args.random_input_len, |
| 1082 | random_output_len=args.random_output_len, |
| 1083 | random_range_ratio=args.random_range_ratio, |
| 1084 | ), |
| 1085 | } |
| 1086 | |
| 1087 | try: |
| 1088 | input_requests = dataset_mapping[args.dataset_name]() |
| 1089 | except KeyError as err: |
| 1090 | raise ValueError(f"Unknown dataset: {args.dataset_name}") from err |
| 1091 | |
| 1092 | goodput_config_dict = check_goodput_args(args) |
| 1093 | |
| 1094 | # Collect the sampling parameters. |
| 1095 | sampling_params = { |
| 1096 | k: v |
| 1097 | for k, v in { |
| 1098 | "top_p": args.top_p, |
| 1099 | "top_k": args.top_k, |
| 1100 | "min_p": args.min_p, |
no test coverage detected