2026-07-08 08:57:50 +00:00

7.2 KiB
Raw Permalink Blame History

C-Eval

概述

C-Eval 是一个全面的中文评估基准,旨在评估语言模型在中文语境下的知识与推理能力。该基准涵盖 52 个学科,范围从 STEM科学、技术、工程和数学到人文与社会科学题目难度覆盖初中至专业资格考试水平。

任务描述

  • 任务类型:多项选择题问答(中文)
  • 输入一道包含四个选项A、B、C、D的中文问题
  • 输出:单个正确答案字母
  • 学科分类52 个学科,分为 4 大类STEM、社会科学、人文学科、其他

主要特点

  • 共计 13,948 道多选题,覆盖 52 个学科
  • 题目来源包括中国初中、高中、大学及专业资格考试
  • 涵盖数学、物理、法律、医学等多个领域
  • 验证集validation split题目附带解析
  • 是中文语言模型评估的标准基准之一

评估说明

  • 默认配置使用来自开发集dev split5-shot 示例
  • 所有问题和提示均为中文
  • 答案格式应为:"答案:[LETTER]"
  • 结果可按学科或大类进行汇总
  • 可通过 subset_list 参数指定评估特定学科

属性

属性
基准测试名称 ceval
数据集ID evalscope/ceval
论文 N/A
标签 Chinese, Knowledge, MCQ
指标 acc
默认示例数 5-shot
评估集 val
训练集 dev

数据统计

指标
总样本数 1,346
提示词长度(平均) 1643.61 字符
提示词长度(最小/最大) 727 / 6605 字符

各子集统计数据:

子集 样本数 提示平均长度 提示最小长度 提示最大长度
computer_network 19 1245.42 1201 1313
operating_system 19 1216.16 1187 1282
computer_architecture 21 1654.67 1622 1732
college_programming 37 1745.03 1660 2189
college_physics 19 2071.16 1986 2184
college_chemistry 24 2152.96 2107 2291
advanced_mathematics 19 6271.68 6130 6605
probability_and_statistics 18 4700.39 4527 4987
discrete_mathematics 16 1176.75 1104 1365
electrical_engineer 37 1137.81 1093 1264
metrology_engineer 24 1187.08 1140 1312
high_school_mathematics 18 2749.11 2670 2894
high_school_physics 19 1365 1263 1538
high_school_chemistry 19 1625.79 1536 1739
high_school_biology 19 1159.95 1103 1243
middle_school_mathematics 19 2141.68 2054 2413
middle_school_biology 21 1822.52 1769 1910
middle_school_physics 19 1596.53 1544 1721
middle_school_chemistry 20 1916.65 1857 2045
veterinary_medicine 23 1254.04 1210 1350
college_economics 55 1919.85 1863 2141
business_administration 33 1608.52 1547 1754
marxism 19 1061.32 1033 1104
mao_zedong_thought 24 1485.62 1449 1545
education_science 29 1369.24 1338 1444
teacher_qualification 44 1516.55 1457 1638
high_school_politics 19 2062 1955 2189
high_school_geography 19 1059.53 1026 1216
middle_school_politics 21 1653.24 1595 1714
middle_school_geography 12 1063.58 1020 1143
modern_chinese_history 23 1355.7 1313 1447
ideological_and_moral_cultivation 19 760.21 727 830
logic 22 2436.41 2358 2572
law 24 1799.29 1729 1931
chinese_language_and_literature 23 954.83 937 983
art_studies 33 793.3 774 844
professional_tour_guide 29 924.41 902 1004
legal_professional 23 2856.17 2718 2978
high_school_chinese 19 2295.79 2205 2418
high_school_history 20 1221.9 1164 1300
middle_school_history 22 1069.73 1034 1149
civil_servant 47 1973 1849 2186
sports_science 19 1810.26 1789 1874
plant_protection 22 1678.09 1653 1745
basic_medicine 19 938.05 920 976
clinical_medicine 22 1119.41 1086 1209
urban_and_rural_planner 46 1428.8 1373 1591
accountant 49 1605.92 1511 1808
fire_engineer 31 1240.81 1168 1402
environmental_impact_assessment_engineer 31 1269.97 1209 1388
tax_accountant 49 1970.65 1879 2099
physician 49 1010.59 983 1065

样例示例

子集: computer_network

{
  "input": [
    {
      "id": "73073a35",
      "content": "以下是一些示例问题:\n\n问题下列设备属于资源子网的是____。\n选项\nA. 计算机软件\nB. 网桥\nC. 交换机\nD. 路由器\n解析1. 首先,资源子网是指提供共享资源的网络,如打印机、文件服务器等。\r\n2. 其次,我们需要了解选项中设备的功能。网桥、交换机和路由器的主要功能是实现不同网络之间的通信和数据传输,是通信子网设备。而计算机软件可以提供共享资源的功能。\n答案A\n\n问题滑动窗口的作用是____。\n选项\nA. 流量控制\nB. 拥塞控制\nC. 路由控制\nD. 差错 ... [TRUNCATED] ... Mbps所以答案为min{80Mbps, 100Mbps}=80Mbps选C。\n答案C\n\n\n以下是中国关于计算机网络的单项选择题请选出其中的正确答案。你的回答的最后一行应该是这样的格式\"答案:[LETTER]\"(不带引号),其中 [LETTER] 是 A、B、C、D 中的一个。\n\n问题使用位填充方法以01111110为位首flag数据为011011111111111111110010求问传送时要添加几个0____\n选项\nA. 1\nB. 2\nC. 3\nD. 4\n"
    }
  ],
  "choices": [
    "1",
    "2",
    "3",
    "4"
  ],
  "target": "C",
  "id": 0,
  "group_id": 0,
  "metadata": {
    "id": 0,
    "explanation": "",
    "subject": "computer_network"
  }
}

注:部分内容因展示需要已被截断。

提示模板

提示模板:

以下是中国关于{subject}的单项选择题,请选出对的选项。你的回答的最后一行应该是这样的格式:"答案:[LETTER]"(不带引号),其中 [LETTER] 是 A、B、C、D 中的一个。

问题:{question}
选项:
{choices}

少样本Few-shot模板
以下是一些示例问题:

{fewshot}


使用方法

使用命令行CLI

evalscope eval \
    --model YOUR_MODEL \
    --api-url OPENAI_API_COMPAT_URL \
    --api-key EMPTY_TOKEN \
    --datasets ceval \
    --limit 10  # 正式评估时请删除此行

使用 Python

from evalscope import run_task
from evalscope.config import TaskConfig

task_cfg = TaskConfig(
    model='YOUR_MODEL',
    api_url='OPENAI_API_COMPAT_URL',
    api_key='EMPTY_TOKEN',
    datasets=['ceval'],
    dataset_args={
        'ceval': {
            # subset_list: ['computer_network', 'operating_system', 'computer_architecture']  # 可选,用于评估特定子集
        }
    },
    limit=10,  # 正式评估时请删除此行
)

run_task(task_cfg=task_cfg)