├── SuperCLUE-Math6_v2.pdf
├── resources
└── img
│ ├── example0.png
│ ├── example1.png
│ ├── example2.png
│ ├── brightmart_s.jpeg
│ ├── scmath_group.jpeg
│ ├── weight_sum_reasoning.png
│ ├── 截屏2024-01-16 下午3.22.56.png
│ └── 截屏2024-01-16 下午3.24.18.png
├── scripts
├── readme.md
└── evaluate.py
└── README.md
/SuperCLUE-Math6_v2.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CLUEbenchmark/SuperCLUE-Math6/HEAD/SuperCLUE-Math6_v2.pdf
--------------------------------------------------------------------------------
/resources/img/example0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CLUEbenchmark/SuperCLUE-Math6/HEAD/resources/img/example0.png
--------------------------------------------------------------------------------
/resources/img/example1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CLUEbenchmark/SuperCLUE-Math6/HEAD/resources/img/example1.png
--------------------------------------------------------------------------------
/resources/img/example2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CLUEbenchmark/SuperCLUE-Math6/HEAD/resources/img/example2.png
--------------------------------------------------------------------------------
/resources/img/brightmart_s.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CLUEbenchmark/SuperCLUE-Math6/HEAD/resources/img/brightmart_s.jpeg
--------------------------------------------------------------------------------
/resources/img/scmath_group.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CLUEbenchmark/SuperCLUE-Math6/HEAD/resources/img/scmath_group.jpeg
--------------------------------------------------------------------------------
/resources/img/weight_sum_reasoning.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CLUEbenchmark/SuperCLUE-Math6/HEAD/resources/img/weight_sum_reasoning.png
--------------------------------------------------------------------------------
/resources/img/截屏2024-01-16 下午3.22.56.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CLUEbenchmark/SuperCLUE-Math6/HEAD/resources/img/截屏2024-01-16 下午3.22.56.png
--------------------------------------------------------------------------------
/resources/img/截屏2024-01-16 下午3.24.18.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CLUEbenchmark/SuperCLUE-Math6/HEAD/resources/img/截屏2024-01-16 下午3.24.18.png
--------------------------------------------------------------------------------
/scripts/readme.md:
--------------------------------------------------------------------------------
1 |
2 | ### 公式计算:
3 |
4 | 注意:这里所有的准确率计算都是【排除了无法提取数字作为答案的情况】
5 |
6 | 第一轮准确率 :第一轮准确率
7 | 第二轮准确率: 第二轮准确率
8 | 全面准确率: 只有两轮都正确才算做正确
9 | 平均准确率:(第一轮答对的题数+第二轮答对的题数)/(第一轮总题数+第二轮总题数)
10 |
11 | 准确率综合得分:0.5*全面准确率+0.5*平均准确率
12 |
13 | 推理步数加权得分:
14 | 1)分别计算推理步数1,2,3,4,5对应的模型平均得分avg_score_step_1, ..., avg_score_step_5;
15 | 2)计算推理步数加权得分:(1*avg_score_step_1 + ...+ 5*avg_score_step_5)/(1+...+5)
16 |
17 | 综合得分:0.5* 准确率综合得分+ 0.5 * 推理步数加权得分
18 |
19 |
20 | #### 模型回复文件的示例字段的说明:
21 | 一行记录:
22 | {"model_answer_turns_1": "答案是【24】",
23 | "answer": "88",
24 | "model_answer_turns_2":
25 | "答案是【61】",
26 | "answer_followup": "73",
27 | "reasoning_step_ref": "5",
28 | "reasoning_step_followup_ref": "5"}
29 |
30 | 字段说明:
31 | model_answer_turns_1:第一轮模型的回复
32 | answer:问题1的标准答案
33 | model_answer_turns_2:第二轮模型的回复
34 | answer_followup:问题2的标准答案
35 | reasoning_step_ref:第一问的参考的推理步数
36 | reasoning_step_followup_ref:第二问的参考的推理步数
37 |
38 |
39 |
--------------------------------------------------------------------------------
/scripts/evaluate.py:
--------------------------------------------------------------------------------
1 | # 这是一个用于评估的代码
2 |
3 | import jsonlines
4 | import regex as re
5 |
6 | def unify_score(x,y):
7 | if y==0:
8 | return 0
9 | return round(x/y*100,2)
10 |
11 |
12 | def score(path):
13 | # 第一轮,所有题的数量
14 | all_count_turns_1=0
15 |
16 | # 第二轮,所有题的数量
17 | all_count_turns_2=0
18 |
19 | # 第一轮和第二轮都获取到模型回复的数量
20 | count_turns_all=0
21 |
22 | # 第一轮,未获取到模型回复的数量
23 | unfinished_count_turns_1=0
24 |
25 | # 第二轮,未获取到模型回复的数量
26 | unfinished_count_turns_2=0
27 |
28 | # 第一轮,模型回答正确的数量
29 | win_count_turns_1=0
30 |
31 | # 第二轮,模型回答正确的数量
32 | win_count_turns_2=0
33 |
34 | # 两轮,模型都回答正确的数量
35 | win_count_turns_all=0
36 |
37 | # 用第一种方法团提取到模型答案数量
38 | processed_count_m1=0
39 |
40 | # 用第二种方法团提取到模型答案数量
41 | processed_count_m2=0
42 |
43 | # 第一轮未处理的数据量,包含未获取的模型回复,以及获取到了模型回复但是没有获取到标准数字答案
44 |
45 | unprocessed_turns_1=0
46 |
47 | # 第二轮未处理的数据量,包含未获取的模型回复,以及获取到了模型回复但是没有获取到标准数字答案
48 | unprocessed_turns_2=0
49 |
50 | # 长度统计
51 | total_length=0
52 |
53 | # 每个reasoning step上模型的加权总分,{reasoning_step:score, }
54 | score_for_reasoning_step = {}
55 |
56 | # reasoning step对应的问题数量(reasoning_step:num_of_problems)
57 | sample_num_for_reasoning_step = {}
58 |
59 | for line in jsonlines.open(path):
60 |
61 |
62 | model_answer_turns_1=line.get(f'model_answer_turns_1',None)
63 | model_answer_turns_2=line.get(f'model_answer_turns_2',None)
64 |
65 | ref_answer_turns_1=line[f'answer']
66 | ref_answer_turns_2=line[f'answer_followup']
67 | reasoning_steps_turns_1 = line["reasoning_step_ref"]
68 | reasoning_steps_turns_2 = line["reasoning_step_followup_ref"]
69 |
70 |
71 | if not model_answer_turns_1:
72 | model_answer_turns_1=''
73 | unfinished_count_turns_1+=1
74 | if not model_answer_turns_2:
75 | model_answer_turns_2=''
76 | unfinished_count_turns_2+=1
77 |
78 | total_length+=len(model_answer_turns_1)
79 | total_length+=len(model_answer_turns_2)
80 |
81 | if model_answer_turns_1 and model_answer_turns_2:
82 | count_turns_all+=1
83 |
84 | obj_left_turns_1_m1=re.findall('【(\d+)】',model_answer_turns_1)
85 | obj_left_turns_1_m2=re.findall('(\d+)[^\d]*$',model_answer_turns_1)
86 |
87 | # +=2
88 |
89 | ans_left_1=''
90 | all_count_turns_1+=1
91 |
92 |
93 | if obj_left_turns_1_m1:
94 | ans_left_1=obj_left_turns_1_m1[0]
95 | processed_count_m1+=1
96 | sample_num_for_reasoning_step[reasoning_steps_turns_1] = sample_num_for_reasoning_step.get(reasoning_steps_turns_1, 0) + 1
97 |
98 |
99 | elif obj_left_turns_1_m2:
100 | ans_left_1=obj_left_turns_1_m2[0]
101 | processed_count_m2+=1
102 | sample_num_for_reasoning_step[reasoning_steps_turns_1] = sample_num_for_reasoning_step.get(reasoning_steps_turns_1, 0) + 1
103 | else:
104 | unprocessed_turns_1+=1
105 |
106 | obj_left_turns_2_m1=re.findall('【(\d+)】',model_answer_turns_2)
107 | obj_left_turns_2_m2=re.findall('(\d+)[^\d]*$',model_answer_turns_2)
108 | # obj_left_turns_1_m2=re.findall('(\d+)[^\d]*?$',model_answer_turns_1)
109 |
110 | ans_left_2=''
111 | all_count_turns_2+=1
112 | if obj_left_turns_2_m1:
113 | ans_left_2=obj_left_turns_2_m1[0]
114 | processed_count_m1+=1
115 | sample_num_for_reasoning_step[reasoning_steps_turns_2] = sample_num_for_reasoning_step.get(reasoning_steps_turns_2, 0) + 1
116 |
117 | elif obj_left_turns_2_m2:
118 | ans_left_2=obj_left_turns_2_m2[0]
119 | processed_count_m2+=1
120 | sample_num_for_reasoning_step[reasoning_steps_turns_2] = sample_num_for_reasoning_step.get(reasoning_steps_turns_2, 0) + 1
121 | else:
122 | unprocessed_turns_2+=1
123 |
124 |
125 | if ans_left_1==ref_answer_turns_1:
126 | win_count_turns_1+=1
127 | score_for_reasoning_step[reasoning_steps_turns_1] = score_for_reasoning_step.get(reasoning_steps_turns_1, 0) + 1
128 |
129 |
130 |
131 |
132 | if ans_left_2==ref_answer_turns_2:
133 | win_count_turns_2+=1
134 | score_for_reasoning_step[reasoning_steps_turns_2] = score_for_reasoning_step.get(reasoning_steps_turns_2, 0) + 1
135 |
136 |
137 | if ans_left_1==ref_answer_turns_1 and ans_left_2==ref_answer_turns_2:
138 | win_count_turns_all+=1
139 |
140 | # 计算reasoning step对应的平均分
141 | min_level = 1
142 | max_level = 5
143 | score_for_reasoning_step = {_:round(score_for_reasoning_step[str(_)]/sample_num_for_reasoning_step[str(_)], 2) for _ in range(min_level, max_level+1)}
144 |
145 |
146 |
147 | overall={}
148 |
149 | overall['第一轮准确率']=unify_score(win_count_turns_1,all_count_turns_1-unfinished_count_turns_1)
150 | overall['第二轮准确率']=unify_score(win_count_turns_2,all_count_turns_2-unfinished_count_turns_2)
151 | # 准确率综合得分
152 | overall['全面准确率']=unify_score(win_count_turns_all,count_turns_all)
153 | num_example_valid=all_count_turns_1 + all_count_turns_2 - unfinished_count_turns_1 - unfinished_count_turns_2 # 获取到的回复数量
154 | overall['平均准确率']=unify_score(win_count_turns_1+win_count_turns_2,num_example_valid)
155 | overall["准确率综合得分"] = round(0.5*overall['全面准确率'] + 0.5*overall['平均准确率'],2)
156 |
157 | overall["推理步数加权得分"] = unify_score(sum([int(step_num)*score_for_reasoning_step[step_num] for step_num in score_for_reasoning_step]), sum(range(min_level, max_level+1)))
158 |
159 | # 综合得分
160 | overall["综合得分"] = round(0.5 *overall["准确率综合得分"]+0.5*overall["推理步数加权得分"],2)
161 |
162 | overall["指令遵循率(答案)"]=float(processed_count_m1)/float(processed_count_m1+processed_count_m2)
163 | # 其他信息
164 | overall['获取到括号内作为答案数量']=processed_count_m1
165 | overall['获取到最后一个数字作为答案数量']=processed_count_m2
166 | overall['标准答案无法获取']=unprocessed_turns_1+unprocessed_turns_2-unfinished_count_turns_1-unfinished_count_turns_2
167 | overall['尚获取到模型回复']=unfinished_count_turns_1+unfinished_count_turns_2
168 | overall['推理步数的成绩分布']=score_for_reasoning_step
169 | overall['答案平均长度']=unify_score(total_length/100,num_example_valid)
170 |
171 | return overall
172 |
173 | if __name__=="__main__":
174 | file_name = "sample_answer.json"
175 | result_dict=score(file_name)
176 | final_score=result_dict["综合得分"]
177 | reasong_step_scores = result_dict['推理步数的成绩分布']
178 | acc_scores = result_dict['准确率综合得分']
179 |
180 | print("SC-Math得分情况:\n\n1.综合得分:",final_score,"\n2.准确率综合得分:",acc_scores,"\n3.推理步数的成绩分布:",reasong_step_scores)
181 | print("--------------------\n详情:")
182 | for k,v in result_dict.items():
183 | print(k,v)
184 | print("\n注:准确率和得分均是百分制")
185 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## SuperCLUE-Math6:新一代中文原生多轮多步数学推理数据集的探索之旅
2 |
3 | 技术报告(定稿并修订完成):SC-Math6: Graded Multi-Step Math Reasoning Benchmark for LLMs in Chinese
4 |
5 | 在人工智能领域,我们正见证着大语言模型如ChatGPT和GPT-4的蓬勃发展,它们是我们走向通用人工智能梦想的关键一步。中文大模型的推出,更是开启了人
6 | 工智能在各行各业的全新应用时代;像GSM8K数学推理任务,由于可以考察多步逻辑推理推能力、应用数学和实现知识的能力、需要自然语言理解和解决方案、
7 | 具备精确的评估标准的任务,受到了广泛的使用。然而,在这一进程中,缺乏能够测试中文大模型在数学推理上能力的原生数据集,导致中文模型的数学逻辑能力评估,
8 | 一直依赖于英文测试集。
9 |
10 | 为了缓解这一问题,我们推出了SuperCLUE-Math6数据集。这是一个GSM8K的中文升级版,专门设计来测试中文大模型在数学推理方面的核心能力。
11 | SuperCLUE-Math6不仅延续了GSM8K的高质量和多样性,更在难度和应用广度上进行了适当的扩充。它的推出,旨在解决中文模型评估中的关键问题,并提供一个全面的测试平台。
12 |
13 | SuperCLUE-Math6具有三大特点:
14 | 1. 中文原生场景的数学推理:
15 | 每个问题均以中文原生环境呈现,配备详细的自然语言解题方案,强化了模型在本土语言环境下的适用性和实际应用价值。
16 |
17 | 2. 多轮交互下的推理能力考察:
18 | 适应真实交流,通过问题及其追问,考察模型在连续对话环境中的逻辑推理与问题解决能力。
19 |
20 | 3. 推理能力等级自动评定:
21 | 独创的评估系统能自动给出大模型处理数学问题的推理能力等级,为模型智力水平提供量化指标。
22 | SuperCLUE-Math的推出不仅填补了中文数学推理数据集的空缺,而且对于提升中文大模型在复杂逻辑和数学问题解决能力上的表现具有重要价值。
23 |
24 | 它的应用将加速人工智能在教育、金融分析和技术领域等的本土化进程,同时助力模型更贴近人类的思维方式,为实现真正的通用人工智能奠定坚实的基础。
25 | 期待SuperCLUE-Math能激励更多的创新,推动人工智能技术在各行各业的广泛应用,从而为社会带来更深远的影响。
26 |
27 | 官网地址:https://www.CLUEbenchmarks.com/superclue_math6.html
28 |
29 | 公众号推文地址:https://mp.weixin.qq.com/s/jM2rgWE_-2TC7c49e22jAw
30 |
31 |
32 | ### 申请方式
33 |
34 | 请使用单位邮箱,将数据研究目的、计划,研究机构、申请者介绍和联系方式(手机或微信),发送到邮箱,并承诺不向第三方提供。
35 | 邮箱: contact@superclue.ai,标题是:SuperCLUE-Math6申请
36 |
37 | 收到申请邮件后,会通过邮件回复反馈测试集,谢谢。
38 |
39 | ### 使用方式及测评代码
40 |
41 | #### 1.数据的字段说明
42 | id: 编号,
43 | question:问题,
44 | follow_up_question:追问,
45 | language solution:问题的自然语言解决方案,
46 | language solution_followup:追问的自然语言解决方案,
47 | reasoning_step_ref:问题的推理步数,供参考,
48 | reasoning_step_followup_ref:追问的推理步数,供参考,
49 | answer:问题的答案,
50 | answer_followup:追问的答案
51 |
52 | #### 2.使用的Prompt及数据的构造
53 |
54 | ##### 第一轮数据构造
55 | # line:每一行json
56 | question=line['question']
57 | question=f'''{question}
58 | ------------------------
59 | 注意:回答格式如下:“解题过程+'\n\n'+最终答案:【XXX】”。XXX,必须为非负整数,如35;解题过程中如涉及小数可保留两位数,最终结果如有小数四舍五入为非负整数。'''
60 |
61 | messages=[{"role": "user", "content": question}]
62 |
63 |
64 | ##### 第二轮数据构造
65 | # line:每一行json
66 | follow_up_question=line['follow_up_question']
67 | follow_up_question=f'''{follow_up_question}
68 | ------------------------
69 | 注意:回答格式如下:“解题过程+'\n\n'+最终答案:【XXX】”。XXX,必须为非负整数,如35;解题过程中如涉及小数可保留两位数,最终结果如有小数四舍五入为非负整数。'''
70 |
71 | messages=[
72 | {"role": "user", "content": question},
73 | {"role": "assistant", "content": question_response},
74 | {"role": "user", "content": follow_up_question},
75 | ]
76 |
77 | #### 3.测评代码及模型生成的示例
78 |
79 | 测评代码:scripts/evaluate.py
80 |
81 | 模型预测的示例文件:scripts/sample_answer.json
82 |
83 |
84 | 运行方式:
85 |
86 | cd scripts
87 | python3 evaluate.py
88 |
89 | ## SuperCLUE-Math6
90 |
91 | ### SC-Math6与GSM8K区别联系
92 |
93 | | 序号 | 对比项目 | SC-Math6 | GSM8K |
94 | |:----:|:------------------------------:|:---------------:|:-----:|
95 | | 1 | 数学逻辑推理 | YES | YES |
96 | | 2 | 自然语言解决方案 | YES | YES |
97 | | 3 | 小学数学知识 | YES | YES |
98 | | 4 | 多步推理 | YES | YES |
99 | | 5 | 中文原生场景 | YES | NO |
100 | | 6 | 多轮深入推理 | YES | NO |
101 | | 7 | 题目推理步骤数 | YES | NO |
102 | | 8 | 可解析性的模型推理等级 | YES | NO |
103 | | 9 | 测试题数量 | 2024题
(1012对)| 1300题 |
104 |
105 |
106 | ### 推理步数的分布
107 | | 推理步数 | 题目占比(%) |
108 | |:--------:|:------------:|
109 | | 1 | 15-20 |
110 | | 2 | 15-20 |
111 | | 3 | 45-50 |
112 | | 4 | 5-10 |
113 | | 5 | 5-10 |
114 |
115 | ### 推理等级的计算
116 | 我们介绍了一种创新的方案来评估大模型的推理能力。它通过结合模型在不同推理步骤的表现和总体准确率,以科学且公正的方式进行评估。
117 | 其特点在于简明易懂,通过合理的阈值设置,确保了性能相近的模型被归入同一等级,方便了对新模型的快速评级,而无需重新评估现有模型。
118 | 这提供了一个透明、易于理解的框架,帮助公众衡量和比较大模型的推理能力和智力水平。
119 | #### 推理等级的计算方案
120 | 为了设计一个科学且综合的方案来计算模型的推理等级,我们可以采用以下步骤:
121 | ##### 1. 数据准备和处理
122 | - 将提供的数据整理为一个表格,以便进行计算。
123 | ##### 2. 计算每个模型的推理步数得分
124 | - 由于更长的推理步数更难,我们将为每个推理步数赋予不同的权重。步数1的权重为1,步数5的权重为5。
125 | - 对每个模型,计算加权平均得分:
126 |
127 |
128 |
129 |
130 | ##### 3. 计算每个模型的综合得分
131 | - 综合得分=0.5×推理步数得分+0.5×准确率得分
132 | - 综合得分将由推理步数得分和准确率得分共同决定,每部分占50%的权重。
133 | ##### 4. 等级划分
134 | - 根据综合得分进行等级划分,等级从1到5,等级5为最高,等级1为最低。
135 | - 使用阈值(0.05分)来确定等级。如果两个模型的综合得分差距在0.05分以内,它们处于同一个等级。
136 | ##### 5. 新模型的等级计算
137 | - 对于新模型,使用相同的方法计算其综合得分。
138 | - 将其综合得分与现有模型的综合得分进行比较,按照相同的等级划分原则,确定其等级。
139 |
140 | ### 评估标准
141 | 采取完全匹配的方式,计算准确率。
142 | 其中,答案只能是非负整数。
143 |
144 | ### 模型列表及使用方式
145 | | 模型名称 | 机构 | 使用方式 |
146 | |:-----------------:|:--------:|:--------:|
147 | | GPT_4_1106_Preview | OpenAI | API |
148 | | GPT_4 | OpenAI | API |
149 | | 文心一言4.0 | 百度 | API |
150 | | GPT_3.5_Turbo | OpenAI | API |
151 | | ChatGLM_Turbo | 智谱AI | API |
152 | | Qwen_14B_Chat | 阿里云 | API |
153 | | Baichuan2_13B_Chat | 百川智能 | 模型 |
154 | | ChatGLM3_6B | 智谱AI | 模型 |
155 | | 讯飞星火_V3.0 | 科大讯飞 | API |
156 | | 文心一言3.5 | 百度 | 模型 |
157 | | Chinese_Alpaca2_13B | Yiming Cui | 模型 |
158 |
159 |
160 | ## 测评结果
161 | ### SuperCLUE推理能力等级
162 | | 模型名称 | **推理
等级** | 综合
得分 | 推理步数
加权得分 | 准确率
综合得分 |
163 | |:---------------------:|:--------:|:--------:|:------------:|:----------:|
164 | | GPT_4_1106_Preview | **5级** | 87.76 | 88.60 | 86.92 |
165 | | GPT_4 | **5级** | 83.86 | 83.60 | 84.12 |
166 | | 文心一言4.0 | **5级** | 79.64 | 80.73 | 78.55 |
167 | | GPT_35_Turbo | **4级** | 53.75 | 54.87 | 52.64 |
168 | | ChatGLM_Turbo | **4级** | 52.55 | 53.60 | 51.49 |
169 | | Qwen_14B_Chat | **4级** | 49.05 | 49.73 | 48.37 |
170 | | 讯飞星火_V3.0 | **3级** | 37.39 | 40.87 | 33.91 |
171 | | Baichuan2_13B_Chat | **3级** | 36.76 | 38.40 | 35.12 |
172 | | ChatGLM3_6B | **3级** | 33.03 | 34.13 | 31.92 |
173 | | 文心一言3.5 | **2级** | 21.01 | 22.20 | 19.82 |
174 | | Chinese_Alpaca2_13B | **2级** | 18.09 | 18.67 | 17.51 |
175 |
176 | 注:准确率综合得分,代表了准确率的最终结果。由下表两个数的平均:全面准确率、平均准确率。
177 |
178 | ### 模型准确率得分
179 | | 模型名称 | **全面
准确率** | 平均
准确率 | 第一轮
准确率 | 第二轮
准确率 | 两轮
差异 |
180 | |:-------------------:|:----------:|:----------:|:------------:|:------------:|:----------------:|
181 | | GPT_4_1106_Preview | 83.68 | 90.16 | 94.22 | 86.10 | -8.12 |
182 | | GPT_4 | 80.50 | 87.73 | 91.70 | 83.77 | -7.93 |
183 | | 文心一言4.0 | 73.32 | 83.77 | 89.74 | 77.80 | -11.94 |
184 | | GPT_3.5_Turbo | 43.94 | 61.33 | 72.48 | 50.19 | -22.29 |
185 | | ChatGLM_Turbo | 42.44 | 60.54 | 71.92 | 49.16 | -22.76 |
186 | | Qwen_14B_Chat | 38.54 | 58.19 | 72.31 | 44.06 | -28.25 |
187 | | Baichuan2_13B_Chat | 25.09 | 45.15 | 59.24 | 31.06 | -28.18 |
188 | | ChatGLM3_6B | 21.23 | 42.60 | 56.72 | 28.44 | -28.28 |
189 | | 讯飞星火_V3.0 | 20.52 | 47.29 | 69.12 | 25.47 | -43.65 |
190 | | Chinese_Alpaca2_13B | 10.23 | 24.79 | 33.21 | 16.32 | -16.89 |
191 | | 文心一言3.5 | 9.51 | 30.13 | 43.00 | 17.26 | -25.74 |
192 |
193 |
194 | #### 指令遵循率与回答长度
195 |
196 | | 模型名称 | 指令遵循率
(答案) | 回答
长度 |
197 | |:---------------------:|:------------------:|:------------:|
198 | | GPT_4_1106_Preview | 99.44 | 173.48 |
199 | | GPT_4 | 99.21 | 126.75 |
200 | | 文心一言4.0 | 68.04 | 143.78 |
201 | | GPT_3.5_Turbo | 54.64 | 82.11 |
202 | | ChatGLM_Turbo | 60.15 | 91.84 |
203 | | Qwen_14B_Chat | 90.67 | 71.1 |
204 | | Baichuan2_13B_Chat | 1.54 | 70.00 |
205 | | ChatGLM3_6B | 20.91 | 56.29 |
206 | | 讯飞星火_V3.0 | 53.66 | 61.03 |
207 | | Chinese_Alpaca2_13B | 18.15 | 46.50 |
208 | | 文心一言3.5 | 64.68 | 43.14 |
209 |
210 | ### 推理步数的成绩分布
211 | | 模型名称 | 步数1 | 步数2 | 步数3 | 步数4 | 步数5 |
212 | |:-------------------:|:-----:|:-----:|:-----:|:-----:|:-----:|
213 | | GPT_4_1106_Preview | 0.92 | 0.89 | 0.91 | 0.89 | 0.86 |
214 | | GPT_4 | 0.92 | 0.91 | 0.89 | 0.82 | 0.77 |
215 | | 文心一言4.0 | 0.87 | 0.85 | 0.85 | 0.81 | 0.75 |
216 | | GPT_3.5_Turbo | 0.73 | 0.65 | 0.61 | 0.48 | 0.49 |
217 | | ChatGLM_Turbo | 0.70 | 0.65 | 0.60 | 0.51 | 0.44 |
218 | | Qwen_14B_Chat | 0.72 | 0.58 | 0.60 | 0.47 | 0.38 |
219 | | Baichuan2_13B_Chat | 0.56 | 0.48 | 0.44 | 0.38 | 0.28 |
220 | | ChatGLM3_6B | 0.58 | 0.49 | 0.41 | 0.27 | 0.25 |
221 | | 讯飞星火_V3.0 | 0.62 | 0.48 | 0.47 | 0.31 | 0.38 |
222 | | 文心一言3.5 | 0.49 | 0.29 | 0.29 | 0.16 | 0.15 |
223 | | Chinese_Alpaca2_13B| 0.40 | 0.29 | 0.22 | 0.14 | 0.12 |
224 |
225 | ### 成绩对比:SC-Math vs GSM8K
226 | | 模型名称 | SC-Math6
全面准确率 | GSM8K | 成绩来源 |
227 | |:-------------------:|:------------------:|:------------------:|:-------------------:|
228 | | GPT_4_1106_Preview | 83.68 | 未报告 | -- |
229 | | GPT_4 | 80.50 | 92.0
(5-shot CoT) | GPT-4 report |
230 | | 文心一言4.0 | 73.32 | 未报告 | -- |
231 | | GPT_3.5_Turbo | 43.94 | 57.1
(5-shot) | GPT-4 report |
232 | | ChatGLM_Turbo | 42.44 | 未报告 | -- |
233 | | Qwen_14B_Chat | 38.54 | 50.3
(0-shot) | Modelscope
项目 |
234 | | Baichuan2_13B_Chat | 25.09 | 52.77
(base) | Baichuan2
report |
235 | | ChatGLM3_6B | 21.23 | 72.3
(0-shot CoT) | ChatGLM3-6B
Github |
236 | | 讯飞星火_V3.0 | 20.52 | 未报告 | - |
237 | | Chinese_Alpaca2_13B| 10.23 | 未报告 | - |
238 | | 文心一言3.5 | 9.51 | 未报告 | - |
239 |
240 | ## 测评结论
241 |
242 | 通过我们获得的推理等级数据,我们可以得出以下三个关键结论:
243 |
244 | #### 1. 先进模型的卓越表现:
245 | 顶级模型(如GPT_4_1106_Preview、GPT_4 和文心一言4.0 )在推理任务中展现了卓越的性能,特别是在处理高难度的多步推理任务时。
246 | 它们在推理能力和准确性方面均达到了较高的标准,证明了当前大模型的先进水平。
247 | #### 2. 性能分层明显:
248 | 通过对不同模型的综合评估,我们可以看到性能上的明显分层。高等级模型在复杂任务上的表现远远超过低等级模型,这反映了在大模型领域内技术和能力的多样性和分层。
249 | #### 3. 针对不同需求的模型选择:
250 | 不同等级的模型提供了根据具体应用场景和需求选择合适模型的依据。例如,对于需要高精度和复杂推理能力的任务,更适合选择等级较高的模型;
251 | 而对于一些基础应用,则可以考虑使用等级较低但仍具有效率和准确性的模型。
252 |
253 |
254 | 通过分析准确率和指令遵循率得分情况,我们还可以看到:
255 |
256 | #### 1. 准确率的递减趋势:
257 | 在所有模型中,第二轮准确率普遍低于第一轮准确率,这表明随着任务复杂度的增加(从第一轮到第二轮),模型的性能出现了下降。这种趋势在所有模型中普遍存在,
258 | 表明在设计和优化模型时,需要特别关注其在持续任务中的稳定性和适应性。
259 |
260 | 比如,GPT_4_1106_Preview的第一轮准确率为94.22%,而第二轮准确率为86.10%,准确率下降了8.12%。同样地,ERNIE_35_Turbo_v2的第一轮准确率为43.00%,第二轮准确率为17.26%,下降了25.74%。
261 | #### 2. GPT系列模型的卓越性能:
262 | GPT_4_1106_Preview和GPT_4在各项指标中均表现优异,尤其在全面准确率和平均准确率方面。这反映了GPT系列模型在处理复杂任务时的高效性和可靠性,
263 | 同时也表明了其在语言理解和生成方面的先进性。
264 | GPT_4_1106_Preview在全面准确率上达到了83.68%,平均准确率为90.16%,而GPT_4的全面准确率为80.50%,平均准确率为87.73%,均高于其他模型。
265 | #### 3. 指令遵循率与准确率的相关性:
266 | 高指令遵循率模型(如GPT_4_1106_Preview和GPT_4)通常也展现了较高的准确率,而低指令遵循率模型(如Baichuan2_13B_Chat)则准确率较低。
267 | 这表明指令遵循率可能是衡量模型整体性能的一个重要指标,尤其在评估模型对任务要求的理解和执行能力时。
268 | GPT_4_1106_Preview的指令遵循率为99.44%,全面准确率为83.68%,而Chinese_Alpaca2_13B的指令遵循率仅为18.15%,全面准确率也较低,仅为10.23%。
269 | #### 4. 准确率与答案长度的潜在关系:
270 | 在某些模型(如GPT_4_1106_Preview)中,较高的准确率伴随着较长的平均答案长度,这可能暗示这些模型在生成详尽回答时更为精确。
271 | 然而,这一趋势并不在所有模型中一致出现,表明答案长度与准确率之间的关系可能受多种因素影响,包括模型的设计和训练数据。
272 | GPT_4_1106_Preview的平均答案长度为173.48,准确率较高,而ChatGLM3_6B的平均答案长度为56.29,准确率相对较低。这暗示在某些情况下,答案长度可能与准确率相关。
273 | #### 5. 性能差异的可能原因:
274 | 观察各模型之间的性能差异,可能反映了它们在架构、训练数据集、优化策略等方面的不同。例如,GPT系列模型可能因为更大的模型规模、更广泛的训练数据或更高级的优化技术而表现更佳。
275 | 对这些差异的深入研究有助于理解和改进现有模型的性能。
276 |
277 | ## 示例
278 | #### 示例1
279 |
280 |
281 | #### 示例2
282 |
283 |
284 | #### 示例3
285 |
286 |
287 |
288 |
289 | ## 讨论交流与使用
290 |
291 |
292 | 微信群:
293 |
294 | 联系人:
295 |
296 |