(7/n) Complete declarative task runtime and shared pairwise orchestration - #86
Draft
kargibora wants to merge 6 commits into
Draft
(7/n) Complete declarative task runtime and shared pairwise orchestration#86kargibora wants to merge 6 commits into
kargibora wants to merge 6 commits into
Conversation
Move dataset, baseline, pairwise, and MT-Bench contracts into focused modules while preserving the public schema imports and YAML behavior.
Explain task identity, adding YAML definitions, and when new dataset adapters or protocol schemas are required.
Pass resolved tasks through dispatch, normalize registered dataset inputs behind one contract, and move baseline planning out of the runner.
Define pinned fluency task YAML and a dataset adapter, add base-completion generation policy, and remove the legacy pairwise fallback.
Let prompt presets own parsing, resolve scoring adapters at runtime, and remove repeated metric semantics from task YAML.
Reuse resolved MT-Bench state throughout its pipeline and derive validation IDs from lazy benchmark and dataset registrations.
Collaborator
Author
|
Note that with new fluency adaptation from David's PR I will change this to adjust it so everything is implemented exactly as it is. |
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 completes the declarative task architecture by connecting packaged task YAML definitions to dataset loading,
baseline selection, benchmark execution, judge configuration, and scoring.
Previously, task definitions described benchmark settings, but parts of the runtime still selected behavior through
hard-coded branches, repeated registry lookups, or direct function calls. Adding another task could therefore require
changes across several unrelated files.
After this change, a task is resolved once and passed through the complete evaluation pipeline. Existing components can
be reused by referencing their registered names from task YAML.
Before and after
Architecture
The runtime now follows this path:
The new schema package separates datasets, sources, baselines, pairwise protocols, MT-Bench protocols, and resolved task
models. This prevents a single schema file from growing whenever a new benchmark family introduces specialized fields.
Most new tasks do not require a new schema or runner. A task using existing components only needs a YAML definition
selecting its dataset adapter, runner, baseline policy, judge protocol, and scorer.
A new Python component is only necessary when a benchmark introduces genuinely different behavior:
Executable behavior remains in Python rather than YAML; YAML only selects registered and validated components.
Changes