GaokaoBench_mixed_9af5ee.py 22.2 KB
Newer Older
gaotongxiao's avatar
gaotongxiao committed
1
2
3
4
5
6
7
from opencompass.openicl.icl_prompt_template import PromptTemplate
from opencompass.openicl.icl_retriever import ZeroRetriever
from opencompass.openicl.icl_inferencer import GenInferencer, PPLInferencer
from opencompass.datasets import GaokaoBenchDataset

_MCQ_prompts = [
    {
8
9
10
11
12
        'type': 'single_choice',
        'keyword': '2010-2022_Math_II_MCQs',
        'prefix_prompt':
        '请你做一道数学选择题\n请你一步一步思考并将思考过程写在【解析】和<eoe>之间。你将从A,B,C,D中选出正确的答案,并写在【答案】和<eoa>之间。\n例如:【答案】: A <eoa>\n完整的题目回答的格式如下:\n【解析】 ... <eoe>\n【答案】 ... <eoa>\n请你严格按照上述格式作答。\n题目如下:',
        'comment': ''
gaotongxiao's avatar
gaotongxiao committed
13
14
    },
    {
15
16
17
18
19
        'type': 'single_choice',
        'keyword': '2010-2022_Math_I_MCQs',
        'prefix_prompt':
        '请你做一道数学选择题\n请你一步一步思考并将思考过程写在【解析】和<eoe>之间。你将从A,B,C,D中选出正确的答案,并写在【答案】和<eoa>之间。\n例如:【答案】: A <eoa>\n完整的题目回答的格式如下:\n【解析】 ... <eoe>\n【答案】 ... <eoa>\n请你严格按照上述格式作答。\n题目如下:',
        'comment': ''
gaotongxiao's avatar
gaotongxiao committed
20
21
    },
    {
22
23
24
25
26
27
        'type':
        'single_choice',
        'keyword':
        '2010-2022_History_MCQs',
        'prefix_prompt':
        '请你做一道历史选择题\n请你一步一步思考并将思考过程写在【解析】和<eoe>之间。你将从A,B,C,D中选出正确的答案,并写在【答案】和<eoa>之间。\n例如:【答案】: A <eoa>\n完整的题目回答的格式如下:\n【解析】 ... <eoe>\n【答案】 ... <eoa>\n请你严格按照上述格式作答。\n题目如下:'
gaotongxiao's avatar
gaotongxiao committed
28
29
    },
    {
30
31
32
33
34
35
        'type':
        'single_choice',
        'keyword':
        '2010-2022_Biology_MCQs',
        'prefix_prompt':
        '请你做一道生物选择题\n请你一步一步思考并将思考过程写在【解析】和<eoe>之间。你将从A,B,C,D中选出正确的答案,并写在【答案】和<eoa>之间。\n例如:【答案】: A <eoa>\n完整的题目回答的格式如下:\n【解析】 ... <eoe>\n【答案】 ... <eoa>\n请你严格按照上述格式作答。\n题目如下:'
gaotongxiao's avatar
gaotongxiao committed
36
37
    },
    {
38
39
40
41
42
43
        'type':
        'single_choice',
        'keyword':
        '2010-2022_Political_Science_MCQs',
        'prefix_prompt':
        '请你做一道政治选择题\n请你一步一步思考并将思考过程写在【解析】和<eoe>之间。你将从A,B,C,D中选出正确的答案,并写在【答案】和<eoa>之间。\n例如:【答案】: A <eoa>\n完整的题目回答的格式如下:\n【解析】 ... <eoe>\n【答案】 ... <eoa>\n请你严格按照上述格式作答。\n题目如下:'
gaotongxiao's avatar
gaotongxiao committed
44
45
    },
    {
46
47
48
49
50
51
        'type':
        'multi_choice',
        'keyword':
        '2010-2022_Physics_MCQs',
        'prefix_prompt':
        '请你做一道物理选择题。\n请你一步一步思考并将思考过程写在【解析】和<eoe>之间。你将从A,B,C,D中选出所有符合题意的答案,并写在【答案】和<eoa>之间。\n例如:【答案】 AB <eoa>\n完整的题目回答的格式如下:\n【解析】 ... <eoe>\n【答案】... <eoa>\n请你严格按照上述格式作答。\n'
gaotongxiao's avatar
gaotongxiao committed
52
53
    },
    {
54
55
56
57
58
59
        'type':
        'single_choice',
        'keyword':
        '2010-2022_Chemistry_MCQs',
        'prefix_prompt':
        '请你做一道化学选择题\n请你一步一步思考并将思考过程写在【解析】和<eoe>之间。你将从A,B,C,D中选出正确的答案,并写在【答案】和<eoa>之间。\n例如:【答案】: A <eoa>\n完整的题目回答的格式如下:\n【解析】 ... <eoe>\n【答案】 ... <eoa>\n请你严格按照上述格式作答。\n题目如下:'
gaotongxiao's avatar
gaotongxiao committed
60
61
    },
    {
62
63
64
65
66
67
        'type':
        'single_choice',
        'keyword':
        '2010-2013_English_MCQs',
        'prefix_prompt':
        '请你做一道英语选择题\n请你一步一步思考并将思考过程写在【解析】和<eoe>之间。你将从A,B,C,D中选出正确的答案,并写在【答案】和<eoa>之间。\n例如:【答案】: A <eoa>\n完整的题目回答的格式如下:\n【解析】 ... <eoe>\n【答案】 ... <eoa>\n请你严格按照上述格式作答。\n题目如下:'
gaotongxiao's avatar
gaotongxiao committed
68
69
    },
    {
70
71
72
73
74
75
        'type':
        'multi_question_choice',
        'keyword':
        '2010-2022_Chinese_Modern_Lit',
        'prefix_prompt':
        '请你做一道语文阅读理解题,其中包含三个小题。\n请你一步一步思考。每一题你将从A,B,C,D中选出正确的答案,并写在【答案】和<eoa>之间。\n例如:(1)【答案】 A <eoa>\n(2)【答案】 B <eoa>\n请你严格按照上述格式作答。\n'
gaotongxiao's avatar
gaotongxiao committed
76
77
    },
    {
78
79
80
81
82
83
        'type':
        'multi_question_choice',
        'keyword':
        '2010-2022_English_Fill_in_Blanks',
        'prefix_prompt':
        '请你做一道英语完形填空题,其中包含二十个小题。\n请你一步一步思考。每一题你将从A,B,C,D中选出正确的答案,并写在【答案】和<eoa>之间。\n例如:(1)【答案】 A <eoa>\n(2)【答案】 B <eoa>\n请你严格按照上述格式作答。\n'
gaotongxiao's avatar
gaotongxiao committed
84
85
    },
    {
86
87
88
89
90
91
        'type':
        'five_out_of_seven',
        'keyword':
        '2012-2022_English_Cloze_Test',
        'prefix_prompt':
        '请回答下面的问题,将符合题意的五个选项的字母写在【答案】和<eoa>之间,例如“【答案】 A B C D E <eoa>\n请严格按照上述格式作答。\n'
gaotongxiao's avatar
gaotongxiao committed
92
93
    },
    {
94
95
96
97
98
99
        'type':
        'multi_question_choice',
        'keyword':
        '2010-2022_Geography_MCQs',
        'prefix_prompt':
        '请你做一道地理选择题,其中包含两到三个小题。\n请你一步一步思考。每一题你将从A,B,C,D中选出正确的答案,并写在【答案】和<eoa>之间。\n例如:(1)【答案】 A <eoa>\n(2)【答案】 B <eoa>\n请你严格按照上述格式作答。\n'
gaotongxiao's avatar
gaotongxiao committed
100
101
    },
    {
102
103
104
105
106
107
        'type':
        'multi_question_choice',
        'keyword':
        '2010-2022_English_Reading_Comp',
        'prefix_prompt':
        '请你做一道英语阅读理解题,其中包含三到五个小题。\n请你一步一步思考。每一题你将从A,B,C,D中选出正确的答案,并写在【答案】和<eoa>之间。\n例如:(1)【答案】 A <eoa>\n(2)【答案】 B <eoa>\n请你严格按照上述格式作答。\n'
gaotongxiao's avatar
gaotongxiao committed
108
109
    },
    {
110
111
112
113
114
115
        'type':
        'multi_question_choice',
        'keyword':
        '2010-2022_Chinese_Lang_and_Usage_MCQs',
        'prefix_prompt':
        '请你做一道语文选择题\n请你一步一步思考并将思考过程写在【解析】和<eoe>之间。你将从A,B,C,D中选出正确的答案,并写在【答案】和<eoa>之间。\n例如:【答案】: A <eoa>\n完整的题目回答的格式如下:\n(1)【解析】 ... <eoe>\n【答案】 ... <eoa>\n(2)【解析】 ... <eoe>\n【答案】 ... <eoa>\n请你严格按照上述格式作答。如果不止一道题,请分别作答\n题目如下:'
gaotongxiao's avatar
gaotongxiao committed
116
117
118
    },
]
_FBQ_prompts = [{
119
120
121
122
123
    'type': 'cloze',
    'keyword': '2010-2022_Math_I_Fill-in-the-Blank',
    'prefix_prompt':
    '请解答下面的数学填空题\n仔细阅读题目,解答其中的问题,请你一步步思考并将思考过程写在【解析】和<eoe>之间。请把你的答案写在【答案】和<eoa>之间。\n完整的题目回答格式如下:\n【解析】 ...<eoe>\n【答案】...<eoa>\n请你严格按照上述格式作答。\n题目如下:',
    'comment': ''
gaotongxiao's avatar
gaotongxiao committed
124
}, {
125
126
127
128
129
    'type': 'cloze',
    'keyword': '2010-2022_Math_II_Fill-in-the-Blank',
    'prefix_prompt':
    '请解答下面的数学填空题\n仔细阅读题目,解答其中的问题,请你一步步思考并将思考过程写在【解析】和<eoe>之间。请把你的答案写在【答案】和<eoa>之间。\n完整的题目回答格式如下:\n【解析】 ...<eoe>\n【答案】...<eoa>\n请你严格按照上述格式作答。\n题目如下:',
    'comment': ''
gaotongxiao's avatar
gaotongxiao committed
130
}, {
131
132
133
134
135
136
    'type': 'cloze',
    'keyword':
    '2010-2022_Chinese_Language_Famous_Passages_and_Sentences_Dictation',
    'prefix_prompt':
    '请回答下面的语文填空题\n请你仔细阅读题目,先找到题目对应的中国名篇,再从名篇中找到合适的句子填写到题目的空白处。请你将思考过程写在【解析】和<eoe>之间,将最终答案写在【答案】和<eoa>之间。\n完整的题目回答格式如下:\n(1)【解析】 ...<eoe>\n【答案】...<eoa>\n(2)【解析】 ...<eoe>\n【答案】...<eoa>\n请严格按照上述格式作答,如果不止一道题,请分别作答。\n题目如下:',
    'comment': ''
gaotongxiao's avatar
gaotongxiao committed
137
}, {
138
139
140
141
142
    'type': 'cloze',
    'keyword': '2014-2022_English_Language_Cloze_Passage',
    'prefix_prompt':
    '请回答下面的英语短文填词题\n仔细阅读题目,空白处请填入一个适当单词或者括号内单词的正确形式。请你一步步思考,将思考过程写在【解析】和<eoe>之间,将最终答案写在【答案】和<eoa>之间。\n完整的题目回答格式如下:\n(1)【解析】 ...<eoe>\n【答案】...<eoa>\n(2)【解析】 ...<eoe>\n【答案】...<eoa>\n请严格按照上述格式作答,如果不止一道题,请分别作答。\n题目如下:',
    'comment': ''
gaotongxiao's avatar
gaotongxiao committed
143
144
145
}]
_OEQ_prompts = [
    {
146
147
148
149
150
        'type': 'subjective',
        'keyword': '2010-2022_Geography_Open-ended_Questions',
        'prefix_prompt':
        '请解答下面的地理解答题\n仔细阅读题目并充分结合你已有的知识,解答其中的问题,请你一步步思考并将思考过程写在【解析】和<eoe>之间。你的答案请写在【答案】和<eoa>之间\n完整的题目回答格式如下:\n(1)【解析】 ...<eoe>\n【答案】...<eoa>\n (2)【解析】 ...<eoe>\n【答案】...<eoa>\n请你严格按照上述格式作答,如果不止一道题,请分别作答。\n题目如下:',
        'comment': ''
gaotongxiao's avatar
gaotongxiao committed
151
152
    },
    {
153
154
155
156
157
        'type': 'subjective',
        'keyword': '2010-2022_Chemistry_Open-ended_Questions',
        'prefix_prompt':
        '请解答下面的化学解答题\n仔细阅读题目并充分结合你已有的知识,解答其中的问题,请你一步步思考并将思考过程写在【解析】和<eoe>之间。请把你的答案写在【答案】和<eoa>之间\n完整的题目回答格式如下:\n(1)【解析】 ...<eoe>\n【答案】...<eoa>\n (2)【解析】 ...<eoe>\n【答案】...<eoa>\n请你严格按照上述格式作答,如果不止一道题,请分别作答。\n题目如下:',
        'comment': ''
gaotongxiao's avatar
gaotongxiao committed
158
159
    },
    {
160
161
162
163
164
        'type': 'subjective',
        'keyword': '2010-2022_Math_I_Open-ended_Questions',
        'prefix_prompt':
        '请解答下面的数学解答题\n仔细阅读题目并充分结合你已有的知识,解答其中的问题,请你一步步思考并将思考过程写在【解析】和<eoe>之间。请把你的答案写在【答案】和<eoa>之间,答案需要有完整的解题步骤。\n完整的题目回答格式如下:\n(1)【解析】 ...<eoe>\n【答案】...<eoa>\n (2)【解析】 ...<eoe>\n【答案】...<eoa>\n请你严格按照上述格式作答,如果不止一道题,请分别作答。\n题目如下:',
        'comment': ''
gaotongxiao's avatar
gaotongxiao committed
165
166
    },
    {
167
168
169
170
171
        'type': 'subjective',
        'keyword': '2010-2022_History_Open-ended_Questions',
        'prefix_prompt':
        '请解答下面的历史解答题\n仔细阅读材料和题目,并充分结合你已有的知识,解答其中的问题。请你一步步思考并将思考过程写在【解析】和<eoe>之间。请把你的答案写在【答案】和<eoa>之间\n完整的题目回答格式如下:\n(1)【解析】 ...<eoe>\n【答案】...<eoa>\n (2)【解析】 ...<eoe>\n【答案】...<eoa>\n请你严格按照上述格式作答,如果不止一道题,请分别作答。\n题目如下:',
        'comment': ''
gaotongxiao's avatar
gaotongxiao committed
172
173
    },
    {
174
175
176
177
178
        'type': 'subjective',
        'keyword': '2010-2022_Biology_Open-ended_Questions',
        'prefix_prompt':
        '请解答下面的生物解答题\n仔细阅读题目并充分结合你已有的知识,解答其中的问题,请你一步步思考并将思考过程写在【解析】和<eoe>之间。请把你的答案写在【答案】和<eoa>之间,同一小题的答案用\t分隔开。\n完整的题目回答格式如下:\n(1)【解析】 ...<eoe>\n【答案】...\t...<eoa>\n (2)【解析】 ...<eoe>\n【答案】...\t...<eoa>\n请你严格按照上述格式作答,如果不止一道题,请分别作答。\n题目如下:',
        'comment': ''
gaotongxiao's avatar
gaotongxiao committed
179
180
    },
    {
181
182
183
184
185
        'type': 'subjective',
        'keyword': '2010-2022_Math_II_Open-ended_Questions',
        'prefix_prompt':
        '请解答下面的数学解答题\n仔细阅读题目并充分结合你已有的知识,解答其中的问题,请你一步步思考并将思考过程写在【解析】和<eoe>之间。请把你的答案写在【答案】和<eoa>之间,答案需要有完整的解题步骤。\n完整的题目回答格式如下:\n(1)【解析】 ...<eoe>\n【答案】...<eoa>\n (2)【解析】 ...<eoe>\n【答案】...<eoa>\n请你严格按照上述格式作答,如果不止一道题,请分别作答。\n题目如下:',
        'comment': ''
gaotongxiao's avatar
gaotongxiao committed
186
187
    },
    {
188
189
190
191
192
        'type': 'subjective',
        'keyword': '2010-2022_Physics_Open-ended_Questions',
        'prefix_prompt':
        '请解答下面的物理解答题,仔细阅读题目,注意其中可能含有单选题和多选题。请你一步步思考并将思考过程写在【解析】和<eoe>之间。请把你的最终答案写在【答案】和<eoa>之间。选择题你要从选项中选出符合题意的答案,例如“【答案】A <eoa>”。\n完整的题目回答格式如下:(1)【解析】 ...<eoe>\n【答案】 ...<eoa>\n (2)【解析】 ...<eoe>\n【答案】...<eoa>\n请你严格按照上述格式作答。如果不止一道题,请分别作答。\n题目如下:',
        'comment': ''
gaotongxiao's avatar
gaotongxiao committed
193
194
    },
    {
195
196
197
198
199
        'type': 'subjective',
        'keyword': '2010-2022_Political_Science_Open-ended_Questions',
        'prefix_prompt':
        '请解答下面的政治解答题\n仔细阅读材料和题目,并充分结合你已有的知识,解答其中的问题,请你一步步思考并将思考过程写在【解析】和<eoe>之间。请把你的答案写在【答案】和<eoa>之间\n完整的题目回答格式如下:\n(1)【解析】 ...<eoe>\n【答案】...<eoa>\n (2)【解析】 ...<eoe>\n【答案】...<eoa>\n请你严格按照上述格式作答,如果不止一道题,请分别作答。\n题目如下:',
        'comment': ''
gaotongxiao's avatar
gaotongxiao committed
200
201
    },
    {
202
203
204
205
        'type': 'correction',
        'keyword': '2012-2022_English_Language_Error_Correction',
        'prefix_prompt':
        '请解答下面的英语短文改错题,仔细阅读题目并充分结合你你已有的知识,找出其中10处需要改动的地方。请你一步步思考,把修改后的短文写在【答案】和<eoa>之间。\n完整的题目回答格式如下:【答案】 ...<eoa>\n 请你严格按照上述格式作答。\n题目如下:',
gaotongxiao's avatar
gaotongxiao committed
206
207
208
209
        # "prefix_prompt": [
        #     "请解答下面的英语短文改错题,仔细阅读题目并充分结合你你已有的知识,找出其中10处需要改动的地方。请你一步步思考,把修改后的短文写在【答案】和<eoa>之间。\n完整的题目回答格式如下:【答案】 ...<eoa>\n 请你严格按照上述格式作答。\n题目如下:",
        #     "请比较下面两篇短文,找到第二篇和第一篇的10处不同,每处不同只涉及一个单词,请将结果写在【答案】和<eoa>之间。例如:【答案】1. 将play改为plays\n 2.增加了the\n ... <eoa>\n 完整的题目回答格式如下:【答案】(1) ... \n (2) ...\n ...(10) ...\n<eoa>\n请你严格按照上述格式作答。\n短文如下:"
        # ],
210
        'comment': ''
gaotongxiao's avatar
gaotongxiao committed
211
212
    },
    {
213
214
215
216
217
        'type': 'subjective',
        'keyword': '2010-2022_Chinese_Language_Ancient_Poetry_Reading',
        'prefix_prompt':
        '请解答下面的语文古代诗歌阅读题,仔细阅读题目,注意其中可能含有单选题和多选题。请你一步步思考并将最终答案写在【答案】和<eoa>之间。选择题你要从选项中选出符合题意的答案,例如“【答案】A <eoa>”。\n完整的题目回答格式如下:(1)【答案】 ...<eoa>\n (2)【答案】...<eoa>\n请你严格按照上述格式作答,如果不止一道题,请分别作答。\n题目如下:',
        'comment': ''
gaotongxiao's avatar
gaotongxiao committed
218
219
    },
    {
220
221
222
223
224
        'type': 'subjective',
        'keyword': '2010-2022_Chinese_Language_Practical_Text_Reading',
        'prefix_prompt':
        '请解答下面的语文实用类文本阅读,仔细阅读题目,注意其中可能含有单选题和多选题。请你一步步思考并将最终答案写在【答案】和<eoa>之间。选择题你要从选项中选出符合题意的答案,例如“【答案】A <eoa>”。\n完整的题目回答格式如下:(1)[答案】 ...<eoa>\n (2)【答案】...<eoa>\n请你严格按照上述格式作答,如果不止一道题,请分别作答。\n题目如下:',
        'comment': ''
gaotongxiao's avatar
gaotongxiao committed
225
226
    },
    {
227
228
229
230
231
        'type': 'subjective',
        'keyword': '2010-2022_Chinese_Language_Literary_Text_Reading',
        'prefix_prompt':
        '请解答下面的语文文学类文本阅读,仔细阅读题目,注意其中可能含有单选题和多选题。请你一步步思考并将最终答案写在【答案】和<eoa>之间。选择题你要从选项中选出符合题意的答案,例如“【答案】A <eoa>”。\n完整的题目回答格式如下:(1)[答案】 ...<eoa>\n (2)【答案】...<eoa>\n请你严格按照上述格式作答,如果不止一道题,请分别作答。\n题目如下:',
        'comment': ''
gaotongxiao's avatar
gaotongxiao committed
232
233
    },
    {
234
235
236
237
238
        'type': 'subjective',
        'keyword': '2010-2022_Chinese_Language_Classical_Chinese_Reading',
        'prefix_prompt':
        '请解答下面的语文文言文阅读,仔细阅读题目,前三题是单选题,最后一题要将文言文翻译为现代汉语。请你一步步思考并把最终答案写在【答案】和<eoa>之间。选择题你要从选项中选出符合题意的答案,例如“【答案】A <eoa>”。翻译题把翻译后的现代汉语句子写在【答案】后面,例如”【答案】今天天气很好 <eoa>”\n完整的题目回答格式如下:(1)[答案】 ...<eoa>\n (2)【答案】...<eoa>\n请你严格按照上述格式作答,如果不止一道题,请分别作答。\n题目如下:',
        'comment': ''
gaotongxiao's avatar
gaotongxiao committed
239
240
    },
    {
241
242
243
244
245
246
        'type': 'subjective',
        'keyword':
        '2010-2022_Chinese_Language_Language_and_Writing_Skills_Open-ended_Questions',
        'prefix_prompt':
        '请解答下面的语文解答题,仔细阅读题目,注意其中可能含有选择题。请你一步步思考并将思考过程写在【解析】和<eoe>之间。请把你的最终答案写在【答案】和<eoa>之间。选择题你要从选项中选出符合题意的答案,例如“【答案】A <eoa>”。\n完整的题目回答格式如下:(1)【解析】 ...<eoe>\n【答案】 ...<eoa>\n (2)【解析】 ...<eoe>\n【答案】...<eoa>\n请你严格按照上述格式作答。如果不止一道题,请分别作答。\n题目如下:',
        'comment': ''
gaotongxiao's avatar
gaotongxiao committed
247
248
249
250
251
    }
]

GaokaoBench_datasets = []
for _folder, _prompts in [
252
253
254
    ('Multiple-choice_Questions', _MCQ_prompts),
    ('Fill-in-the-blank_Questions', _FBQ_prompts),
    ('Open-ended_Questions', _OEQ_prompts),
gaotongxiao's avatar
gaotongxiao committed
255
256
]:
    for _p in _prompts:
257
        if _p['type'] == 'single_choice':
gaotongxiao's avatar
gaotongxiao committed
258
259
            continue
        _reader_cfg = {
260
261
            'input_columns': ['question'],
            'output_column': 'answer',
gaotongxiao's avatar
gaotongxiao committed
262
263
        }
        _infer_cfg = {
264
265
266
267
268
269
            'ice_template': {
                'type': PromptTemplate,
                'template': {
                    'round': [{
                        'role': 'HUMAN',
                        'prompt': _p['prefix_prompt'] + '{question}'
gaotongxiao's avatar
gaotongxiao committed
270
271
                    }]
                },
272
                'ice_token': '</E>'
gaotongxiao's avatar
gaotongxiao committed
273
            },
274
275
            'retriever': {
                'type': ZeroRetriever
gaotongxiao's avatar
gaotongxiao committed
276
            },
277
278
279
            'inferencer': {
                'type': GenInferencer,
                'max_out_len': 1024,
gaotongxiao's avatar
gaotongxiao committed
280
281
282
            }
        }
        _eval_cfg = {
283
284
            'evaluator': {
                'type': 'GaokaoBenchEvaluator' + '_' + _p['type'],
gaotongxiao's avatar
gaotongxiao committed
285
            },
286
            'pred_role': 'BOT',
gaotongxiao's avatar
gaotongxiao committed
287
288
289
        }
        _base_path = './data/GAOKAO-BENCH/data'
        _dataset = {
290
291
292
293
294
295
            'type': GaokaoBenchDataset,
            'abbr': 'GaokaoBench_' + _p['keyword'],
            'path': _base_path + '/' + _folder + '/' + _p['keyword'] + '.json',
            'reader_cfg': _reader_cfg,
            'infer_cfg': _infer_cfg,
            'eval_cfg': _eval_cfg,
gaotongxiao's avatar
gaotongxiao committed
296
297
298
299
        }

        GaokaoBench_datasets.append(_dataset)

300
_folder = 'Multiple-choice_Questions'
gaotongxiao's avatar
gaotongxiao committed
301
for _p in _MCQ_prompts:
302
    if _p['type'] != 'single_choice':
gaotongxiao's avatar
gaotongxiao committed
303
304
        continue
    _reader_cfg = {
305
306
        'input_columns': ['question'],
        'output_column': 'answer',
gaotongxiao's avatar
gaotongxiao committed
307
308
    }
    _infer_cfg = {
309
310
311
        'ice_template': {
            'type': PromptTemplate,
            'template': {
gaotongxiao's avatar
gaotongxiao committed
312
                answer: {
313
314
315
                    'round': [{
                        'role': 'HUMAN',
                        'prompt': _p['prefix_prompt'] + '{question}'
gaotongxiao's avatar
gaotongxiao committed
316
                    }, {
317
318
                        'role': 'BOT',
                        'prompt': f'【答案】{answer} <eoa>'
gaotongxiao's avatar
gaotongxiao committed
319
320
321
322
                    }]
                }
                for answer in ['A', 'B', 'C', 'D']
            },
323
            'ice_token': '</E>'
gaotongxiao's avatar
gaotongxiao committed
324
        },
325
326
        'retriever': {
            'type': ZeroRetriever
gaotongxiao's avatar
gaotongxiao committed
327
        },
328
329
        'inferencer': {
            'type': PPLInferencer
gaotongxiao's avatar
gaotongxiao committed
330
331
332
        }
    }
    _eval_cfg = {
333
334
        'evaluator': {
            'type': 'GaokaoBenchEvaluator' + '_' + _p['type'],
gaotongxiao's avatar
gaotongxiao committed
335
        },
336
        'pred_role': 'BOT',
gaotongxiao's avatar
gaotongxiao committed
337
338
339
    }
    _base_path = './data/GAOKAO-BENCH/data'
    _dataset = {
340
341
342
343
344
345
        'type': GaokaoBenchDataset,
        'abbr': 'GaokaoBench_' + _p['keyword'],
        'path': _base_path + '/' + _folder + '/' + _p['keyword'] + '.json',
        'reader_cfg': _reader_cfg,
        'infer_cfg': _infer_cfg,
        'eval_cfg': _eval_cfg,
gaotongxiao's avatar
gaotongxiao committed
346
347
348
349
350
351
352
353
    }

    GaokaoBench_datasets.append(_dataset)

_temporary_variables = [k for k in globals() if k.startswith('_')]
for _t in _temporary_variables:
    del globals()[_t]
del _temporary_variables, _t