- perf_stats aggregator lives in eval/, not model/: the import failed silently and EVERY perf column was empty (not just ttft). Now warns on stderr instead of swallowing. - repeats > 1 get their own checkpoint key (:rep2, :rep3, ...): repeat 2 previously restored repeat 1's predictions and finished instantly with identical scores. rep1 keeps the legacy key (existing checkpoints still resume). - repeats summary: report the MEAN score and aggregate time/tokens over ALL runs (was: last run only). - README: six-benchmark command as the primary example. Co-Authored-By: Claude <noreply@anthropic.com>
35 lines
1.2 KiB
Python
35 lines
1.2 KiB
Python
"""IMO Answer Bench. Community-curated (evalscope); no official upstream release."""
|
|
|
|
from ..sample import Sample
|
|
from ..registry import register_dataset
|
|
from ..spec import DatasetSpec
|
|
|
|
|
|
@register_dataset(
|
|
DatasetSpec(
|
|
name='imo_answerbench',
|
|
source='OpenEvals/IMO-AnswerBench', # HF OpenEvals mirror of the community curation
|
|
split='train', # the dataset ships a single split
|
|
gen_config={'temperature': 1.0, 'max_tokens': 32768},
|
|
prompt_style='imo_es', # es template: Problem: prefix + boxed suffix,
|
|
task_type='math',
|
|
tags=['math', 'competition', 'imo'],
|
|
description='IMO-level answer bench (community-curated, no official upstream).',
|
|
params={'hub': 'hf_raw'},
|
|
)
|
|
)
|
|
def imo_answerbench():
|
|
def to_sample(record: dict) -> Sample:
|
|
return Sample(
|
|
input=record['Problem'],
|
|
target=str(record['Short Answer']).strip(),
|
|
metadata={
|
|
'id': record.get('Problem ID'),
|
|
'category': record.get('Category'),
|
|
'subcategory': record.get('Subcategory'),
|
|
'source': record.get('Source'),
|
|
},
|
|
)
|
|
|
|
return to_sample
|