2023-11-09 22:05:25 +08:00
from opencompass . openicl . icl_prompt_template import PromptTemplate
from opencompass . openicl . icl_retriever import ZeroRetriever
from opencompass . openicl . icl_inferencer import GenInferencer
from opencompass . openicl . icl_evaluator import AccEvaluator
from opencompass . datasets import MaxminDataset
from opencompass . utils . text_postprocessors import first_capital_postprocess
maxmin_reader_cfg = dict (
2024-05-14 15:35:58 +08:00
input_columns = [ ' nl_tokens ' , ' pl_tokens ' ] ,
output_column = ' answer ' ,
2023-11-09 22:05:25 +08:00
)
maxmin_infer_cfg = dict (
prompt_template = dict (
type = PromptTemplate ,
template = dict (
round = [
2024-05-14 15:35:58 +08:00
dict ( role = ' HUMAN ' , prompt = " Code: {pl_tokens} \n The aim of the code: {nl_tokens} \n Question: Please tell me what \" <mask> \" in the code should be replaced with and you must response to me only A or B. \n A. max \n B. min \n Answer: " ) ,
dict ( role = ' BOT ' , prompt = ' {answer} ' ) ,
2023-11-09 22:05:25 +08:00
]
) ,
) ,
retriever = dict ( type = ZeroRetriever ) ,
inferencer = dict ( type = GenInferencer ) ,
)
maxmin_eval_cfg = dict ( evaluator = dict ( type = AccEvaluator ) ,
2024-05-14 15:35:58 +08:00
pred_role = ' BOT ' ,
2023-11-09 22:05:25 +08:00
pred_postprocessor = dict ( type = first_capital_postprocess ) )
maxmin_datasets = [
dict (
type = MaxminDataset ,
2024-05-14 15:35:58 +08:00
abbr = f ' maxmin ' ,
test_path = f ' data/clozeTest-maxmin/python/clozeTest.json ' ,
answer_path = f ' data/clozeTest-maxmin/python/answers.txt ' ,
2023-11-09 22:05:25 +08:00
reader_cfg = maxmin_reader_cfg ,
infer_cfg = maxmin_infer_cfg ,
eval_cfg = maxmin_eval_cfg ,
)
2024-05-14 15:35:58 +08:00
]