Fix preset verification rejecting a tool's synthetic dataset name - #4199
Closed
r4victor wants to merge 1 commit into
Closed
Fix preset verification rejecting a tool's synthetic dataset name#4199r4victor wants to merge 1 commit into
r4victor wants to merge 1 commit into
Conversation
`random` is dstack's own name for a synthetic workload, while the agent reports the benchmark tool's name for the data it generated, so a shared-prefix benchmark run with SGLang could never match. The workload also had no way to state both a tool dataset name and a shared prefix, which is why the shared prefix went missing from the stored record.
Contributor
|
Will review and resolve conflicts myself tomorrow! |
peterschmidt85
pushed a commit
that referenced
this pull request
Aug 25, 2026
`random` was dstack's own name for a synthetic workload, but the report's `dataset` carried the benchmark tool's name for the data it served, so a shared-prefix benchmark run with SGLang could never verify (#4198): two namespaces, compared as one. Now the workload states the request. `dataset` echoes the requested dataset and is absent for a synthetic workload, whose requested shared prefix is compared instead - the one fact the request and the report share. The tool's own name for its generated data stays where it already was, in `command`. The stored record is normalized from the configuration, the authority on what was requested, so nothing the agent volunteers can contradict the contract - and the system prompt needs no change. `dataset: random` is retired from the configuration: a set dataset always means a real one, and synthetic prompts are requested by omitting it. Records it was legal in are upgraded when read - stored presets, in both the configuration and the workload, and an in-flight session's saved configuration. Based on #4199: the verification comparisons and much of the test suite are Victor's. Co-authored-by: Victor Skvortsov <vds003@gmail.com> Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
peterschmidt85
added a commit
that referenced
this pull request
Aug 25, 2026
`random` was dstack's own name for a synthetic workload, but the report's `dataset` carried the benchmark tool's name for the data it served, so a shared-prefix benchmark run with SGLang could never verify (#4198): two namespaces, compared as one. Now the workload states the request. `dataset` echoes the requested dataset and is absent for a synthetic workload, whose requested shared prefix is compared instead - the one fact the request and the report share. The tool's own name for its generated data stays where it already was, in `command`. The stored record is normalized from the configuration, the authority on what was requested, so nothing the agent volunteers can contradict the contract - and the system prompt needs no change. `dataset: random` is retired from the configuration: a set dataset always means a real one, and synthetic prompts are requested by omitting it. Records it was legal in are upgraded when read - stored presets, in both the configuration and the workload, and an in-flight session's saved configuration. Based on #4199: the verification comparisons and much of the test suite are Victor's. Co-authored-by: Andrey Cheptsov <andrey.cheptsov@github.com> Co-authored-by: Victor Skvortsov <vds003@gmail.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Contributor
|
Closing in favor of #4201: same fix, cleaner contract (dataset = the requested dataset, absent for synthetic), no system prompt changes. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #4198. A preset with
shared_prefix_tokensand nodatasetfailed verification whenever the agent benchmarked with a tool that doesn't call its synthetic datasetrandom.PresetRandomWorkloadintoPresetWorkloadso one workload can carry both the tool's dataset name andshared_prefix_tokens, which the old union made mutually exclusive.randomis dstack's own name for them while the report carries the benchmark tool's.concurrencyagainst the request, which nothing checked before;input_tokensandoutput_tokensstay uncompared because they are measured means rather than an echo of the request.AI assistance: written with Claude Code.