Skip to content

Meta-eval: (5/7) Add Arena-Hard and AlpacaEval judge prompt presets - #105

Open
ErlisLushtaku wants to merge 4 commits into
meta-eval/04-rankingfrom
meta-eval/05-prompt-presets
Open

Meta-eval: (5/7) Add Arena-Hard and AlpacaEval judge prompt presets#105
ErlisLushtaku wants to merge 4 commits into
meta-eval/04-rankingfrom
meta-eval/05-prompt-presets

Conversation

@ErlisLushtaku

@ErlisLushtaku ErlisLushtaku commented Aug 15, 2026

Copy link
Copy Markdown
Collaborator

Description

Note

Packaged meta-eval split from closed PR #76. Meta-eval does not use the unified do_inference cache, 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_preset rather than a separate prompt_mode flag. arena-hard parses Likert tags, alpaca-eval parses ordered_models JSON, and alpaca-eval-pair-score keeps 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.

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.
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
Comment thread judgearena/config.py
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."
)

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

q: should we make these presets available to the other benchmarks as well?

@ErlisLushtaku ErlisLushtaku changed the title WIP: (5/7) Add Arena-Hard and AlpacaEval judge prompt presets Meta-eval: (5/7) Add Arena-Hard and AlpacaEval judge prompt presets Aug 17, 2026
@ErlisLushtaku
ErlisLushtaku marked this pull request as ready for review August 17, 2026 09:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant