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

127 lines
3.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# CMATH
## 概述
CMATH 是一个面向中国小学数学的基准测试,包含 1,698 道覆盖 1 至 6 年级的数学题目,用于评估语言模型在中文数学应用题上的数学推理能力,题目难度随年级递增。
## 任务描述
- **任务类型**:中文数学应用题求解
- **输入**:中文数学应用题(小学水平)
- **输出**:分步推理过程及数值答案
- **难度**1 年级(最简单)至 6 年级(最难)
## 主要特点
- 包含 1,098 道测试题 + 600 道验证题
- 六个年级16便于细粒度难度分析
- 题目为中文,测试语言特定的推理能力
- 答案形式为简单数值(整数或小数)
- 元数据包含推理步骤数和数字复杂度信息
## 评估说明
- 默认配置采用 **0-shot** 评估方式
- 答案需用 `\boxed{}` 格式包裹以便正确提取
- 使用数值精度指标进行答案比对
- 结果可按年级细分统计
- 默认使用中文提示模板
## 属性
| 属性 | 值 |
|----------|-------|
| **基准测试名称** | `cmath` |
| **数据集 ID** | [evalscope/cmath](https://modelscope.cn/datasets/evalscope/cmath/summary) |
| **论文** | 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`
```json
{
"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
}
}
```
## 提示模板
**提示模板:**
```text
{question}
请一步一步推理,最后将答案放在\boxed{{}}中。
```
## 使用方法
### 使用 CLI
```bash
evalscope eval \
--model YOUR_MODEL \
--api-url OPENAI_API_COMPAT_URL \
--api-key EMPTY_TOKEN \
--datasets cmath \
--limit 10 # 正式评估时请删除此行
```
### 使用 Python
```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)
```