LLM的考试过程原来是这样?C-Eval优等生考题实测
机器之心 SOTA!模型社区专栏
本专栏由机器之心SOTA!模型社区出品,每周日于机器之心公众号持续更新。
学术基准排名靠前的开源模型,场外答题表现好吗?能答,但...
随着最近一年开源基础LLM的发展和精调技术的日趋成熟,社区已经涌现了大量基于LLM的开源微调和精调模型。其中,以ChatGPT为代表的大语言模型(Large Language Model, LLM)凭借其近乎通用人工智能(AGI)的能力,为自然语言处理领域带来了新的研究和应用浪潮。
目前,基于社区微调的大模型进一步精调和对齐,再用于应用开发已经成为构建生成式和交互式AI应用的高效手段。但面对众多的模型,如何挑选适合自己进一步进行精调和对齐的模型成为了一个问题。
虽然学术界已经提供了大量的大模型评估基准和评估数据,但这些基于学术研究的评估基准并不总是能够完全满足实际开发的需求。
在本系列的SOTA!模型社区专栏中,我们将深入探索目前流行的中文大模型评估基准,包括它们的指标设计、评估集构成和适用场景,希望能够帮助大家更好地使用这些学术指标来指导开源基座的选择。
这篇专栏将为大家探索以下问题
1、C-Eval主要评估什么能力? 覆盖哪些知识科目?不同科目的难度一样吗?不同科目的难度如何?
2、C-Eval的测例库是如何形成的?使用C-Eval的测例库进行评测时,提示词要如何写?提示词的编撰方式是否会有影响?
3、C-Eval榜单排名靠前的开源模型基于C-Eval覆盖科目、同样的题目提示格式进行场外问题实测,他们回答结果如何呢?
C-Eval 主要评估什么能力?
图1. C-Eval 概览图。不同颜色的科目表示四个难度等级:初中、高中、大学和专业
自GLUE发布以来,大语言模型评测基准已分化为三类。
1、针对自然语言理解能力的评测,如GLUE和SuperCLUE,主要考察模型对语言文字的基础理解;
2、针对知识理解和记忆能力的评测,如C-Eval,旨在考察模型在高级知识任务上的推理能力;
3、针对综合性能力评测,如HELM,重点在于评估模型在各种场景下的表现,包括其反应速度、言语控制和辨别虚假信息的能力。
C-Eval 全称 A Multi-Level Multi-Discipline Chinese Evaluation Suite for Foundation Model,是首个评估中文基础模型高级知识和推理能力的广泛基准。
数据集地址:https://huggingface.co/datasets/ceval/ceval-exam
C-Eval的科目覆盖及难度设计
C-Eval包括四个难度级别的多项选择题:初中、高中、大学和专业。C-Eval还附带有C-Eval HARD,这是C-Eval中非常具有挑战性的一部分主题(子集),是从C-Eval中选择的8个具有挑战性的数学、物理和化学科目,需要高级推理能力才能解决,具体包括高等数学、离散数学、概率和统计、大学化学、大学物理、高中数学、高中化学和高中物理。这些科目通常涉及复杂的LATEX方程,需要推理能力来解决。
C-Eval 的问题涉及涵盖52个不同的学科领域,由13948个多项选择题组成,从人文学科到科学和工程学科不等。除了英语科目外,包含了初中、高中的标准科目。对于大学,从中国教育部列出的所有13个官方本科专业类别中选择了25个有代表性的科目、每个类别中至少有一个科目被纳入C-Eval,以确保全面性。在专业层面上,参考了中国官方的国家职业资格目录5并选择了12个有代表性的科目,如医生、法律专业和公务员资格考试。还将这些科目按其主题分为四类:STEM(科学、技术、工程和数学)、社会科学、人文学科和其他领域。
C-Eval学科领域的详细统计数据如下:
C-Eval的测例库是如何形成的?
C-Eval 主要测例来源是互联网上免费提供的模拟考试。一部分大学阶段 的试题是来自中国顶尖大学的过去的考试题,由学生公开分享。一小部分大学试题是全国 研究生入学考试的模拟试题,来源是维普网站。
C-Eval 研究组获取到原始测例数据有多种格式,主要是PDF或Microsoft Word文档,还有一小部分网页。PDF文件最初是用OCR工具处理成文本。所有的问题随后被解析--在可能的情况下自动解析,否则由团队手动解析--变成结构化格式,即 "问题列表"。对于具有复杂数学符号的科目,如STEM类别中的许多科目,手动将其转换为标准的LATEX格式。
C-Eval中的所有问题都经过处理,正好包括四个选择。大部分的原始问题伴随着四个选择,还消除了少于四个选项的问题。并对有四个以上选项的问题随机放弃不正确的选择。所有的问题也都经过了标准的数据预处理管道,如重复数据删除和清理。
在此之后,这些问题经过了作者的几轮人工验证,所有的LATEX符号都被确保符合要求,没有语法错误。项目组为每个科目处理了至少200个问题,并在每个科目中随机地将问题分成一个开发集、一个验证集和一个测试集。每个科目的开发组由五个示例组成,以方便进行少量的评估。这些示范题还附有解释,以便于进行少量的评估。验证集和测试集的比例为1:9。
思维链(COT)推理可以促使语言学习者生成推理过程的文本序列以及最终答案,在推理繁重的任务中取得了巨大成功。与zero-shot 相比(单轮),few-shot更常用(多轮),并能在各种任务中实现最先进的性能。为了改进 C-Eval 在few-shot中的应用效果,将自动生成和人工注释结合起来,为开发拆分提供高质量的解释数据。
使用 C-Eval 做评测,Prompt 不同会有什么影响?
C-Eval官方文档推荐了四种prompting范式。首先是few-shot answer-only,这是最基础的方式。其次是few-shot chain-of-thought,这种方式在模型超过65B之后才会显著有效。接着是zero-shot answer-only,通常在进行instruction tuning之后采用。最后是zero-shot chain-of-thought,只有在instruction tuning之后且模型足够强大时,才推荐使用这种模式。
C-Eval的官方文档对于如何编写测试提示也给出了非常详细的示例。如果模型还没有被调成一个 chatbot,那么提示格式如下。其中,对话格式的 prompt 相当于已让 AI 假装已经正确回答了五个问题(但实际上是被我们 hard code 到 prompt 里的),然后 AI 实际上只回答最后一轮的问题。相应的,对话格式的 zero-shot 和 chain-of-thought 版本的 prompt 需要分别去掉 in-context 样本和加上{让我们一步一步思考 [explanation]} 的内容。
具体来说,如果是 zero-shot (单轮)的话,则去掉 [题目 1] 到 [题目 5] 的 in-context 样本;如果模型的 context length 装不下所有的 in-context examples,则去掉一两个;如果是 chain-of-thought 的话,则需要加上 {让我们一步一步思考 [explanation]} 的内容。
以下是中国关于{subject}考试的单项选择题,请选出其中的正确答案。<- 注意把 {subject} 改成具体的科目名称
[题目 1]
A. [选项 A 具体内容]
B. [选项 B 具体内容]
C. [选项 C 具体内容]
D. [选项 D 具体内容]
答案:A
... <- 题目 2 到 4
[题目 5]
A. [选项 A 具体内容]
B. [选项 B 具体内容]
C. [选项 C 具体内容]
D. [选项 D 具体内容]
答案:C
[测试题目]
A. [选项 A 具体内容]
B. [选项 B 具体内容]
C. [选项 C 具体内容]
D. [选项 D 具体内容]
答案:<模型从此处生成>
此外,C-Eval团队对于提示方式的影响也分享了自己的发现。
对于没有经过instruction tuning的预训练模型,prompt的选择会导致效果的显著差异。虽然有default prompt,但它不一定是最佳选择。在实际操作中,我们需要明确分数的提高是由于模型的进步还是prompt的改进。如果主要目标是模型的开发,那么建议不要过多地优化prompt。
而对于经过指令精调的预训练模型,prompt的差异对模型效果的影响会减少,但仍然不能被忽视。尽管instruction tuning后,模型对prompt engineering的需求会降低,但这种需求仍然存在。
LLM选手们是如何回答 C-Eval的题目的?
C-Eval中的结构化的大学经济学实例题目示例如下,为提高可读性,英文译文显示在相应的中文文本下方。我们可以看出,单纯从题目只能看出来“洛伦兹曲线”这样的关键信息,但结合给出的答案能够判断出考察的是“洛伦兹曲线”与“基尼系数”、收入平等性之间的关系,这需要有一定的经济学背景,才能理解并识别出问题并给出正确答案。在掌握相关背景知识的前提下,本道题的回答难度并不大,不需要复杂的推理能力。
下面我们给出一个C-Eval中few-shot设置中的潜在使用。首先提示 GPT-4 生成解释ground-truth答案的步骤解释,然后手动修改生成的解释,以获得最终解释。下面是一个高中化学题目的示例及解释。为提高可读性,在相应的中文文本下方显示英文翻译。
最后是一个C-Eval HARD的高等数学的示例。我们可以看出,答对这道题要具备很强的数学计算和推理能力,而非普通的数学题。不过,C-Eval中全部为客观题,所以我们并不能看到所有推理题目的解题过程。
C-Eval 头部选手场外实测
我们选择了截止2023年9月底 C-Eval 的最新榜单中部分排名前20位的选手中选择了4个模型进行实测,来看看这些在C-Eval中榜单排名靠前的模型在考场之外的场景中表现又如何呢?
我们收集和整理了一些初高中的学科类题目,这些题目都是我们在日常生活中收集的,而不出自于任何公开的成熟评测基准,所以更加能反应模型在真实场景中的工作能力。
我们整理了五道高中化学、初中数学、公务员考试和大学经济学的题目,同时按照C-Eval的题目格式将其都组织成客观题的形式,同时用4个选出的模型进行实测。
我们通过查阅资料,能够确定上述四道题目的正确答案为D、C、A、D,那么在C-Eval榜单排名靠前的模型答题表现如何呢?
第一题 高中化学
ChatGLM2-6B
InternLM-7B
MOSS Moon 003 SFT INT4
Baichuan7B
第二题 初中数学
ChatGLM2-6B
InternLM-7B
MOSS Moon 003 SFT INT4
Baichuan7B
第三题 公务员考试
ChatGLM2-6B
InternLM-7B
MOSS Moon 003 SFT INT4
Baichuan7B
第四题 大学经济学
ChatGLM2-6B
InternLM-7B
MOSS Moon 003 SFT INT4
Baichuan7B
往期实测回顾
微信扫码关注该文公众号作者