OpenCompass/opencompass/datasets/subjective/compassbench_checklist.py
bittersweet1999 1f9f728f22
[Feature] support compassbench Checklist evaluation (#1339)
* fix pip version

* fix pip version

* support checklist eval

* init

* add lan

* fix typo
2024-07-19 16:40:44 +08:00

38 lines
1.2 KiB
Python

# flake8: noqa
import json
import os.path as osp
from datasets import Dataset
from opencompass.registry import LOAD_DATASET
from ..base import BaseDataset
@LOAD_DATASET.register_module()
class CompassBenchCheklistDataset(BaseDataset):
def load(self, path: str, name: str, *args, **kwargs):
filename = osp.join(path, f'{name}.json')
raw_data = []
with open(filename, 'r', encoding='utf-8') as f:
json_data = json.load(f)
for problem in json_data:
question = problem['instruction']
checklist_mardkdown = ''
if problem.get('checklist', None):
for checklist_item in problem['checklist']:
checklist_mardkdown += f'- {checklist_item}\n'
raw_data.append({
'question': question,
'checklist': checklist_mardkdown,
'judge': {
'category': problem.get('category', None),
'lan': problem.get('lan', None),
'id': problem.get('id', None),
'question': question
}
})
dataset = Dataset.from_list(raw_data)
return dataset