from opencompass.openicl.icl_prompt_template import PromptTemplate from opencompass.openicl.icl_retriever import ZeroRetriever from opencompass.openicl.icl_inferencer import GenInferencer from opencompass.datasets.ruler.ruler_qa import RulerQaDataset from opencompass.datasets.ruler.ruler_qa import RulerQaEvaluator qa_configurations = [ {'dataset': 'squad', 'path': './data/ruler/dev-v2.0.json'}, {'dataset': 'hotpotqa', 'path': './data/ruler/hotpotqa.json'}, ] qa_datasets = [] for index, config in enumerate(qa_configurations): dataset_dict = { 'abbr': f'ruler_qa_{config["dataset"]}', 'dataset': config['dataset'], 'path': config['path'], 'type': RulerQaDataset, 'tokens_to_generate': 50, 'reader_cfg': dict(input_columns=['prompt'], output_column='answer'), 'infer_cfg': dict( prompt_template=dict( type=PromptTemplate, template=dict( round=[ dict(role='HUMAN', prompt='{prompt}'), dict(role='BOT', prompt='{answer}\n'), ] ), ), retriever=dict(type=ZeroRetriever), inferencer=dict(type=GenInferencer), ), 'eval_cfg': dict( evaluator=dict(type=RulerQaEvaluator), ), } qa_datasets.append(dataset_dict)