3.1 KiB
3.1 KiB
CMATH
概述
CMATH 是一个面向中国小学数学的基准测试,包含 1,698 道覆盖 1 至 6 年级的数学题目,用于评估语言模型在中文数学应用题上的数学推理能力,题目难度随年级递增。
任务描述
- 任务类型:中文数学应用题求解
- 输入:中文数学应用题(小学水平)
- 输出:分步推理过程及数值答案
- 难度:1 年级(最简单)至 6 年级(最难)
主要特点
- 包含 1,098 道测试题 + 600 道验证题
- 六个年级(1–6)便于细粒度难度分析
- 题目为中文,测试语言特定的推理能力
- 答案形式为简单数值(整数或小数)
- 元数据包含推理步骤数和数字复杂度信息
评估说明
- 默认配置采用 0-shot 评估方式
- 答案需用
\boxed{}格式包裹以便正确提取 - 使用数值精度指标进行答案比对
- 结果可按年级细分统计
- 默认使用中文提示模板
属性
| 属性 | 值 |
|---|---|
| 基准测试名称 | cmath |
| 数据集 ID | evalscope/cmath |
| 论文 | N/A |
| 标签 | Chinese, Math, Reasoning |
| 指标 | acc |
| 默认示例数 | 0-shot |
| 评估划分 | test |
数据统计
| 指标 | 值 |
|---|---|
| 总样本数 | 1,098 |
| 提示词长度(平均) | 70.14 字符 |
| 提示词长度(最小/最大) | 38 / 191 字符 |
各子集统计:
| 子集 | 样本数 | 提示词平均长度 | 提示词最小长度 | 提示词最大长度 |
|---|---|---|---|---|
Grade 1 |
164 | 60.65 | 45 | 99 |
Grade 2 |
253 | 63.3 | 38 | 168 |
Grade 3 |
237 | 69.49 | 49 | 148 |
Grade 4 |
120 | 75.33 | 51 | 114 |
Grade 5 |
126 | 76.79 | 49 | 124 |
Grade 6 |
198 | 80.16 | 42 | 191 |
样例示例
子集: Grade 1
{
"input": [
{
"id": "6e98e414",
"content": "妈咪买了3盒茶叶,一盒茶叶有6小包,一共买了多少小包茶叶?\n请一步一步推理,最后将答案放在\\boxed{}中。\n"
}
],
"target": "18",
"id": 0,
"group_id": 0,
"subset_key": "Grade 1",
"metadata": {
"reasoning_step": 1,
"num_digits": 2
}
}
提示模板
提示模板:
{question}
请一步一步推理,最后将答案放在\boxed{{}}中。
使用方法
使用 CLI
evalscope eval \
--model YOUR_MODEL \
--api-url OPENAI_API_COMPAT_URL \
--api-key EMPTY_TOKEN \
--datasets cmath \
--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=['cmath'],
dataset_args={
'cmath': {
# subset_list: ['Grade 1', 'Grade 2', 'Grade 3'] # 可选,用于评估指定子集
}
},
limit=10, # 正式评估时请删除此行
)
run_task(task_cfg=task_cfg)