(5/n) Package m-ArenaHard task families with language variants - #83
Draft
kargibora wants to merge 2 commits into
Draft
(5/n) Package m-ArenaHard task families with language variants#83kargibora wants to merge 2 commits into
kargibora wants to merge 2 commits into
Conversation
Resolve validated suffixes and groups from one task definition and record the selected view in CLI output and run metadata.
Define each benchmark version once, resolve language and EU views through task selectors, and remove the remaining legacy version/source maps.
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 m-ArenaHard v0.1 and v2.0 into the declarative task registry.
m-ArenaHard supports multiple benchmark versions and many language-specific views. Defining every combination as a
separate YAML file would duplicate the same dataset, protocol, judge, and scoring configuration dozens of times.
This PR introduces task-family variants so each benchmark version is defined once while language and language-group
views are resolved from validated task suffixes.
Task-family resolution
The task definitions declare their supported variants:
This allows the registry to resolve invocations such as:
The base ID selects all declared languages. A language suffix selects one language, while a group suffix expands to its
declared members.
The resolved task keeps both pieces of information:
This selection is also included in CLI inspection and run metadata.
Basically
ResolvedTaskSpeccontains all the important detail about tasks.Task organization
The definitions are organized as:
The shared base defines:
Each version then defines its own:
m-ArenaHard v0.1 uses Aya Expanse 8B as its task default, while v2.0 uses Gemini 2.5 Flash. Both allow runtime baseline
overrides.
Dataset handling
The m_arena_hard dataset adapter reads the resolved language selection and:
Resolved task invocation
-> download the pinned dataset sources
-> select the requested languages
-> normalize prompts and question IDs
-> load matching reference outputs
-> return canonical rows to the pairwise runner
The generic runner does not need to understand language suffixes or m-ArenaHard dataset layouts.
Validation
Variant definitions are validated to prevent:
Legacy m-ArenaHard version, revision, baseline, and prompt maps are removed because this information is now owned by the task definitions.
Main architectural difference
Before:
m_arenahard.py = configuration + task parsing + downloading + normalization
Now:
Task YAML = stable benchmark configuration
Task registry = task and language resolution
m_arenahard.py = downloading and dataset normalization
Pairwise runner = generation and evaluation
Notes
languagecolumn and filter it. Similarly for category, we can use it to filter instruction categories.