-
Notifications
You must be signed in to change notification settings - Fork 22
Feat/gptoss accuracy agentic #376
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
b4aff94
86163ee
2d59abe
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,63 @@ | ||
| name: "qwen-agentic-benchmark" | ||
| version: "1.0" | ||
| type: "online" | ||
|
|
||
| model_params: | ||
| name: "Qwen/Qwen3.6-35B-A3B" | ||
| temperature: 1.0 | ||
| top_k: 20 | ||
| top_p: 0.95 | ||
| repetition_penalty: 1.0 | ||
| presence_penalty: 1.5 | ||
| max_new_tokens: 8192 | ||
| chat_template_kwargs: | ||
| preserve_thinking: true | ||
|
|
||
| datasets: | ||
| - name: agentic_coding | ||
| type: performance | ||
| path: /home/tianmuli/vllm_test/datasets/agentic_combined_v4.jsonl | ||
| accuracy_config: | ||
| eval_method: agentic_inference_inline # required benchmark default. | ||
| agentic_inference: | ||
| turn_timeout_s: 14400.0 | ||
| num_trajectories_to_issue: 1 | ||
|
|
||
| - name: "aime25::gptoss" | ||
| type: "accuracy" | ||
| accuracy_config: | ||
| eval_method: "pass_at_1" | ||
| ground_truth: "answer" | ||
| extractor: "boxed_math_extractor" | ||
| num_repeats: 8 | ||
|
|
||
| - name: "gpqa::gptoss" | ||
| type: "accuracy" | ||
| accuracy_config: | ||
| eval_method: "pass_at_1" | ||
| extractor: "abcd_extractor" | ||
| ground_truth: "ground_truth" | ||
| num_repeats: 5 | ||
|
|
||
| - name: "livecodebench::gptoss" | ||
| type: "accuracy" | ||
| accuracy_config: | ||
| eval_method: "code_bench_scorer" | ||
| extractor: "python_code_extractor" | ||
| num_repeats: 3 | ||
|
|
||
| settings: | ||
| runtime: | ||
| min_duration_ms: 0 | ||
| max_duration_ms: 36000000 | ||
|
|
||
| load_pattern: | ||
| type: agentic_inference | ||
| target_concurrency: 128 # Submission-specific concurrency. | ||
|
|
||
| endpoint_config: | ||
| endpoints: | ||
| - "http://localhost:30000" | ||
| api_type: openai | ||
|
|
||
| report_dir: logs/qwen_agentic | ||
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -395,7 +395,20 @@ def setup_benchmark(config: BenchmarkConfig, test_mode: TestMode) -> BenchmarkCo | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| dataloader, accuracy_datasets, eval_configs = _load_datasets(config, report_dir) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Setup runtime settings using factory method | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| rt_settings = RuntimeSettings.from_config(config, dataloader.num_samples()) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| agentic_overrides: dict = {} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| if isinstance(dataloader, AgenticInferenceDataset): | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| perf_cfgs = [d for d in config.datasets if d.type == DatasetType.PERFORMANCE] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| agentic_cfg = perf_cfgs[0].agentic_inference if perf_cfgs else None | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| assert dataloader.conversation_metadata is not None | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| agentic_overrides = { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "agentic_num_conversations": dataloader.conversation_metadata.num_conversations, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "agentic_num_trajectories": agentic_cfg.num_trajectories_to_issue | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| if agentic_cfg is not None | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| else None, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| rt_settings = RuntimeSettings.from_config( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| config, dataloader.num_samples(), **agentic_overrides | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+398
to
+411
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There are two improvement opportunities here:
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Calculate and display expected sample count | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| total_samples = rt_settings.total_samples_to_issue() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -476,6 +489,7 @@ def _build_phases( | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Accuracy phases — use eval_cfg.dataset_name as phase name so it matches | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # what Scorer._load_sample_index_map() looks up in sample_idx_map.json | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| perf_lp = ctx.rt_settings.load_pattern | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| for eval_cfg in ctx.eval_configs: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| if eval_cfg.dataset_name == "performance": | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| continue | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -486,12 +500,17 @@ def _build_phases( | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "AgenticInferenceDataset, which is not yet supported for " | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "accuracy evaluation." | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Accuracy phases run at MAX_THROUGHPUT; inheriting perf_lp (e.g. POISSON) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # would silently rate-limit evaluation until an agentic inference accuracy strategy | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # and QPS-budgeting support are added. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| acc_load_pattern: LoadPattern | None = LoadPattern( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| type=LoadPatternType.MAX_THROUGHPUT | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Accuracy phases inherit the perf load pattern so the KV pool is not | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # exhausted by simultaneous burst requests. AGENTIC_INFERENCE is | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # downgraded to CONCURRENCY with the same cap because plain accuracy | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # datasets are single-turn and cannot use the agentic scheduler. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| if perf_lp is not None and perf_lp.type == LoadPatternType.AGENTIC_INFERENCE: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| acc_load_pattern: LoadPattern | None = LoadPattern( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| type=LoadPatternType.CONCURRENCY, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| target_concurrency=perf_lp.target_concurrency, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| else: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| acc_load_pattern = perf_lp | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| acc_settings = RuntimeSettings( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| metric_target=ctx.rt_settings.metric_target, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| reported_metrics=ctx.rt_settings.reported_metrics, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -273,14 +273,14 @@ class AgenticInferenceConfig(BaseModel): | |
| ), | ||
| ) | ||
| enable_salt: bool = Field( | ||
| False, | ||
| True, | ||
| description=( | ||
| "Add deterministic salt markers before and after the system prompt " | ||
| "to prevent KV cache reuse across trajectories in agentic inference setting." | ||
| ), | ||
| ) | ||
|
Comment on lines
275
to
281
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Changing the default of To make this default robust, consider updating |
||
| inject_tool_delay: bool = Field( | ||
| False, | ||
| True, | ||
| description=( | ||
| "Pause for a predefined duration between turns. Duration is defined " | ||
| "in dataset." | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The dataset path is hardcoded to a local absolute path (
/home/tianmuli/vllm_test/datasets/agentic_combined_v4.jsonl). This makes the example configuration non-portable and will fail for other users. Please use a placeholder path (e.g.,/path/to/agentic_combined_v4.jsonl) or a relative path instead.