[Presets] Make a preset workload state the requested dataset - #4201
Merged
Conversation
`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
force-pushed
the
preset-workload-kind
branch
from
August 25, 2026 12:23
6a37bba to
6f87b35
Compare
peterschmidt85
marked this pull request as ready for review
August 25, 2026 12:24
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.
randomis dstack's name for a synthetic workload; a benchmark tool has its own name for the datait generates —
randomin vLLM,generated-shared-prefixin SGLang. Verification compared thetwo as one name, so a preset with
shared_prefix_tokensand nodatasetfailed whenever theagent benchmarked with SGLang, and passed with vLLM only because the names coincide.
Now
datasetstates the dataset you asked for, and nothing else.No
dataset, so the benchmark runs synthetic prompts. Verification compares the shared prefix andthe concurrency with the request; whatever the tool calls its generated data stays in
benchmark.command, and the stored preset records no dataset.datasetnames a real dataset, which defines its own requests. Verification checks the benchmarkserved exactly it, and every mismatch names both values.
The UI shows a preset's dataset only when one was requested.
Breaking changes
dataset: randomis rejected: omitdatasetfor synthetic prompts.Backward compatibility
dataset: randomupgrade when read.Reworks #4199 by @r4victor; its verification comparisons and much of its test suite carry over.
Reworked because:
workload.dataset, and the pulled-preset row from [Presets] Support fordstack preset pushanddstack preset pull#4194 readsthat field as the request — the same confusion, one layer up.
one has two meanings; now it has one.
configuration.
AI assistance: written with Claude Code.