Meta-eval: (5/7) Add Arena-Hard and AlpacaEval judge prompt presets - #105
Open
ErlisLushtaku wants to merge 4 commits into
Open
Meta-eval: (5/7) Add Arena-Hard and AlpacaEval judge prompt presets#105ErlisLushtaku wants to merge 4 commits into
ErlisLushtaku wants to merge 4 commits into
Conversation
Meta-eval selects these through --judge.prompt_preset rather than a separate prompt_mode flag. arena-hard parses Likert tags, alpaca-eval parses the ordered_models JSON, and alpaca-eval-pair-score keeps the AlpacaEval prompt with PairScore output. The task default remains the standard PairScore preset.
abs(score - 0.5) == eps used to classify as model_a. The original meta-eval parser counted that boundary as a tie.
This was referenced Aug 15, 2026
Both presets were globally selectable, but only meta-eval knows how to read Likert or JSON verdicts: on any other task the judge output reached PairScore and raised after every judge call had already been paid for. Each preset now declares the parser mode its output needs, meta-eval dispatches on that mode instead of the preset name, and the non-meta-eval config path rejects a preset whose verdicts it cannot parse.
# Conflicts: # judgearena/benchmarks/meta_eval/annotate.py
ErlisLushtaku
commented
Aug 17, 2026
Comment on lines
+482
to
+492
| # Only meta-eval implements the Arena-Hard and AlpacaEval verdict | ||
| # parsers; elsewhere the judge output would only fail to parse after | ||
| # every judge call has been paid for. | ||
| preset = PRESETS.get(self.judge.prompt_preset or task_judge.default_prompt) | ||
| if preset is not None and preset.parser_mode != "score": | ||
| raise ValueError( | ||
| f"judge.prompt_preset={preset.name!r} produces " | ||
| f"{preset.parser_mode!r} verdicts, which only meta-eval tasks " | ||
| f"can parse; task {self.task!r} needs a score-based preset." | ||
| ) | ||
|
|
Collaborator
Author
There was a problem hiding this comment.
q: should we make these presets available to the other benchmarks as well?
ErlisLushtaku
marked this pull request as ready for review
August 17, 2026 09:21
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.
Description
Note
Packaged meta-eval split from closed PR #76. Meta-eval does not use the unified
do_inferencecache, and the cache stack (#94-#100) does not wire it up either: caching will be added to meta-eval once those PRs are merged.Meta-eval selects Arena-Hard and AlpacaEval prompts through
--judge.prompt_presetrather than a separateprompt_modeflag.arena-hardparses Likert tags,alpaca-evalparsesordered_modelsJSON, andalpaca-eval-pair-scorekeeps the AlpacaEval prompt with PairScore output. The task default remains PairScore.PairScore preferences exactly on the tie epsilon are classified as ties, matching the original meta-eval parser.
This is stacked on #104.