(6/n) Package MT-Bench as a declarative multi-turn task - #85
Draft
kargibora wants to merge 3 commits into
Draft
Conversation
Move source pins, baseline, multi-turn policy, reference routing, and FastChat judge defaults into YAML and route the task through registered adapters.
Resolve native baselines exclusively from validated task definitions and drop tests for the obsolete compatibility map.
Move the complete MT-Bench lifecycle into its registered runner and remove duplicate wrapper parameters.
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.
Summary
This PR migrates MT-Bench into the declarative task registry and gives it a dedicated benchmark runner.
MT-Bench differs from the existing pairwise tasks because it uses two-turn conversations, category-specific generation
temperatures, reference answers for selected categories, and FastChat-specific judge prompts and verdict parsing.
Previously, the generic pairwise runner contained a special
if task == "mt-bench"execution path. MT-Benchconfiguration was also distributed across dataset utilities, prompt constants, judge helpers, and baseline mappings.
This PR moves the stable MT-Bench protocol into one validated task definition and routes it through a specialized
runner.
Task definition
The MT-Bench task YAML declares:
lmsys/mt-benchHugging Face Space sourcegpt-4baselineThe task remains configurable at runtime. Candidate, baseline, judge, instruction count, and other experiment-level
settings may still be supplied through the CLI or run configuration.
Protocol schemas
The task schema now distinguishes between generic pairwise tasks and MT-Bench:
Shared concepts such as baseline and scoring remain reusable, while MT-Bench can declare fields that only its runner
understands:
This avoids adding MT-Bench-only fields to every pairwise task.
Runtime flow
MT-Bench now follows this execution path:
mt-bench task ID
-> resolve validated task definition
-> select the mt_bench runner
-> load questions and reference answers
-> generate both conversation turns
-> apply category-specific temperatures
-> select the appropriate FastChat judge prompt
-> parse pairwise verdicts
-> compute and save the result
The generic pairwise runner no longer checks for or executes MT-Bench directly.
Dataset handling
The mt_bench dataset adapter owns the source-specific operations:
The runner receives a resolved protocol and normalized data rather than reading global MT-Bench constants.
Baseline ownership
Native baseline resolution now comes exclusively from validated task definitions. The remaining legacy baseline registry
and its compatibility tests are removed.
For MT-Bench, the task default remains gpt-4, but a runtime baseline can override it when required.
Why this helps
MT-Bench demonstrates that the task registry can support benchmarks that share common concepts without forcing them
through the same execution function.
The task YAML owns stable benchmark policy, the dataset adapter owns source normalization, and the specialized runner
owns multi-turn execution.