2025-01-21 22:23:38 +08:00
|
|
|
from mmengine.config import read_base
|
|
|
|
from opencompass.openicl.icl_retriever import ZeroRetriever
|
|
|
|
from opencompass.openicl.icl_inferencer import GenInferencer
|
2025-01-23 16:39:31 +08:00
|
|
|
from opencompass.datasets import OlympiadBenchDataset, OlympiadBenchEvaluator, olympiadbench_postprocess_v2
|
2025-01-21 22:23:38 +08:00
|
|
|
|
|
|
|
|
|
|
|
with read_base():
|
|
|
|
from .OlympiadBench_categories import categories
|
|
|
|
|
|
|
|
# Create prompter instance for problems
|
|
|
|
olympiadbench_prompter_cfg = dict(
|
|
|
|
type='OlympiadBenchPrompter'
|
|
|
|
)
|
|
|
|
|
|
|
|
olympiadbench_reader_cfg = dict(
|
|
|
|
input_columns=[
|
|
|
|
'problem', 'language', 'subject', 'question_type',
|
|
|
|
'answer_type', 'is_multiple_answer', 'unit', 'questions'
|
|
|
|
],
|
|
|
|
output_column='solution'
|
|
|
|
)
|
|
|
|
|
|
|
|
olympiadbench_datasets = []
|
|
|
|
for _name in categories:
|
|
|
|
olympiadbench_infer_cfg = dict(
|
|
|
|
prompt_template=dict(
|
|
|
|
type='OlympiadBenchTemplate'
|
|
|
|
),
|
|
|
|
retriever=dict(type=ZeroRetriever),
|
|
|
|
inferencer=dict(type=GenInferencer),
|
|
|
|
)
|
|
|
|
|
|
|
|
olympiadbench_eval_cfg = dict(
|
|
|
|
evaluator=dict(type=OlympiadBenchEvaluator, version='v2'),
|
|
|
|
pred_postprocessor=dict(type=olympiadbench_postprocess_v2),
|
|
|
|
)
|
|
|
|
|
|
|
|
olympiadbench_datasets.append(
|
|
|
|
dict(
|
|
|
|
type=OlympiadBenchDataset,
|
|
|
|
abbr=f'OlympiadBench_{_name}',
|
2025-01-23 16:58:48 +08:00
|
|
|
path='opencompass/OlympiadBench',
|
2025-01-21 22:23:38 +08:00
|
|
|
name=_name,
|
|
|
|
reader_cfg=olympiadbench_reader_cfg,
|
|
|
|
infer_cfg=olympiadbench_infer_cfg,
|
|
|
|
eval_cfg=olympiadbench_eval_cfg,
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
del _name
|