127 lines
3.1 KiB
Markdown
127 lines
3.1 KiB
Markdown
# CMATH
|
||
|
||
## 概述
|
||
|
||
CMATH 是一个面向中国小学数学的基准测试,包含 1,698 道覆盖 1 至 6 年级的数学题目,用于评估语言模型在中文数学应用题上的数学推理能力,题目难度随年级递增。
|
||
|
||
## 任务描述
|
||
|
||
- **任务类型**:中文数学应用题求解
|
||
- **输入**:中文数学应用题(小学水平)
|
||
- **输出**:分步推理过程及数值答案
|
||
- **难度**:1 年级(最简单)至 6 年级(最难)
|
||
|
||
## 主要特点
|
||
|
||
- 包含 1,098 道测试题 + 600 道验证题
|
||
- 六个年级(1–6)便于细粒度难度分析
|
||
- 题目为中文,测试语言特定的推理能力
|
||
- 答案形式为简单数值(整数或小数)
|
||
- 元数据包含推理步骤数和数字复杂度信息
|
||
|
||
## 评估说明
|
||
|
||
- 默认配置采用 **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)
|
||
``` |