2023-07-05 10:22:40 +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
2023-07-06 12:27:41 +08:00
from opencompass . datasets import TheoremQADataset , TheoremQA_postprocess
2023-07-05 10:22:40 +08:00
2024-05-14 15:35:58 +08:00
TheoremQA_reader_cfg = dict ( input_columns = [ ' Question ' , ' Answer_type ' ] , output_column = ' Answer ' , train_split = ' test ' )
2023-07-05 10:22:40 +08:00
2024-03-04 14:42:36 +08:00
TheoremQA_prompt1 = (
2024-05-14 15:35:58 +08:00
' Please read a math problem, and then think step by step to derive the answer. The answer is decided by Answer Type. '
' If the Answer type in [bool], the answer needs to be True or False. '
' Else if the Answer type in [integer, float] , The answer needs to be in numerical form. '
' Else if the Answer type in [list of integer, list of float] , the answer needs to be a list of number like [2, 3, 4]. '
' Else if the Answer type in [option], the answer needs to be an option like (a), (b), (c), (d). '
2024-03-04 14:42:36 +08:00
" You need to output the answer in your final sentence like ' Therefore, the answer is ... ' . "
)
TheoremQA_prompt2 = (
2024-05-14 15:35:58 +08:00
f ' Below is an instruction that describes a task, paired with an input that provides further context. '
f ' Write a response that appropriately completes the request. \n \n ### Instruction: \n { TheoremQA_prompt1 } \n \n ### Input: \n {{ Question }} \n Answer_type: {{ Answer_type }} \n ### Response: \n '
2024-03-04 14:42:36 +08:00
)
2023-07-05 10:22:40 +08:00
TheoremQA_infer_cfg = dict (
2024-03-04 14:42:36 +08:00
prompt_template = dict ( type = PromptTemplate , template = TheoremQA_prompt2 ) ,
2023-07-05 10:22:40 +08:00
retriever = dict ( type = ZeroRetriever ) ,
2024-03-04 14:42:36 +08:00
inferencer = dict ( type = GenInferencer , max_out_len = 512 ) ,
)
2023-07-05 10:22:40 +08:00
2024-03-04 14:42:36 +08:00
TheoremQA_eval_cfg = dict ( evaluator = dict ( type = AccEvaluator ) , pred_postprocessor = dict ( type = TheoremQA_postprocess ) )
2023-07-05 10:22:40 +08:00
TheoremQA_datasets = [
dict (
2024-05-14 15:35:58 +08:00
abbr = ' TheoremQA ' ,
2023-07-05 10:22:40 +08:00
type = TheoremQADataset ,
2024-05-14 15:35:58 +08:00
path = ' ./data/TheoremQA/test.csv ' ,
2023-07-05 10:22:40 +08:00
reader_cfg = TheoremQA_reader_cfg ,
infer_cfg = TheoremQA_infer_cfg ,
2024-03-04 14:42:36 +08:00
eval_cfg = TheoremQA_eval_cfg ,
)
2023-07-05 10:22:40 +08:00
]