# EvalScope 评测套件（DeepSeek-V4-Flash-INT8 定制版）

本仓库基于 [EvalScope](https://github.com/modelscope/evalscope) 构建，面向 **DeepSeek-V4-Flash-INT8（no-thinking / thinking）** 模型，提供一键化、可断点续跑、可汇总对比的 benchmark 评测能力。

---

## 1. 仓库定位

- **底座**：EvalScope 开源评测框架（本地 editable 安装）。
- **目标模型**：DeepSeek-V4-Flash-INT8，通过本地 sglang 服务以 OpenAI API 形式调用。
- **核心产出**：
  - 标准化 benchmark 分数（与 Kimi / GLM / DS 官方对比表对齐）。
  - 每个 benchmark 的详细预测、review、报告 JSON。
  - 汇总 Excel / CSV，含真实运行时间（active time）统计。

---

## 2. 目录结构

```
/data1/sora/evalscope/
├── bash/                           # 评测入口与辅助脚本
│   ├── run.py                      # 统一评测入口（full/lite/mid/group*/official）
│   ├── collect_results.py          # 汇总各 benchmark 分数到 Excel/CSV
│   ├── perf_backup.py              # 断点续跑：备份/恢复 predictions 与 perf
│   └── pull_swe_bench_images.py    # 预拉 SWE-bench Docker 镜像
├── config/
│   └── dpv4-int8_nothinking.yaml   # 各 benchmark 的 temperature / max_tokens 配置
├── tools/docker/                   # Docker 镜像构建上下文
│   ├── Dockerfile.py312            # evalscope-complete-py312 镜像定义
│   ├── bash/                       # 构建时内置的入口脚本
│   └── evalscope/                  # 构建时内置的源码
├── myread.md                       # 完整使用手册（环境、数据、Docker、参数、结果）
├── DOCKER_BUILD.md                 # Docker 镜像构建实录
└── results/                        # 汇总 Excel / CSV 输出目录
```

---

## 3. 核心能力

### 3.1 统一入口 `bash/run.py`

一个脚本跑所有 benchmark：

```bash
python bash/run.py \
  --model DeepSeek-V4-Flash-Int8 \
  --api-url http://localhost:30000/v1 \
  --dataset-dir /data1/sora/evalscope \
  --output-dir /data1/sora/evalscope/output \
  --suite official \
  --limit none
```

支持 suite：

| suite | 说明 |
|-------|------|
| `full` | 全部 benchmark + multi-run |
| `lite` | 快速冒烟 |
| `mid` | 较全子集 |
| `group1/2/3` | 多机组分组 |
| `official` | 腾讯入库标准对比表核心子集 |

### 3.2 thinking 模式

```bash
# 开启 thinking，max_tokens 按倍数放大
python bash/run.py --suite official --thinking --thinking-max-tokens-scale 2.0

# 或在原 max_tokens 基础上再加 token
python bash/run.py --suite official --thinking --max-tokens-add 32768
```

### 3.3 输出目录结构

```
output/
└── {folder_name}/                  # 默认 model_name，thinking 时默认 model_name_THINKING
    ├── {benchmark}/
    │   └── seed_{seed}/
    │       ├── predictions/
    │       ├── reviews/
    │       ├── reports/{benchmark}.json
    │       └── logs/
    └── active_time/                # 真实运行时间累计

results/
└── {folder_name}.xlsx              # 汇总表格
```

### 3.4 断点续跑

- 通过 `perf_backup.py` 在每次 benchmark 结束后备份 predictions 和 report。
- 再次运行同一 benchmark 时自动恢复，避免重复推理。
- 运行时间通过 `active_time/` 累计，kill 后重启不会把等待时间算进去。

---

## 4. 快速开始

### 4.1 环境（宿主机）

```bash
conda create -n evalscope python=3.12 -y
conda activate evalscope
cd /data1/sora/evalscope
pip install -e ./evalscope
```

### 4.2 数据

参考 `myread.md` 第 4 章，从 ModelScope 下载数据集到 `datasets/`。

### 4.3 Docker 一键评测

```bash
docker load -i docker/evalscope-complete-py312.tar.gz

docker run -it --rm \
  --network host \
  -v /data1/sora/evalscope:/opt/evalscope \
  -v /data1/models:/opt/models \
  -v /var/run/docker.sock:/var/run/docker.sock \
  evalscope-complete-py312:latest \
  bash -c "cd /opt/evalscope && python bash/run.py --suite official --limit none"
```

---

## 5. 主要自定义增强

相较于上游 EvalScope，本仓库额外增加了：

- `--folder-name`：自定义顶层输出文件夹。
- `--thinking` / `--thinking-max-tokens-scale` / `--max-tokens-add`：支持 thinking 模型评测。
- `official` suite：对齐腾讯入库标准的 8 个核心 benchmark。
- `active_time` 机制：更准确地测量 benchmark 真实运行时间。
- `perf_backup.py`：支持 kill 后断点续跑。
- `pull_swe_bench_images.py`：支持批量预拉 SWE-bench 镜像。

---

## 6. 相关文档

- 完整使用手册：`myread.md`
- Docker 构建实录：`DOCKER_BUILD.md`
- 上游 EvalScope 文档：https://evalscope.readthedocs.io/

---

## 7. 维护者

- 仓库：`git.meta-stone.net/sora/evalstone.git`
- Docker 镜像：`SoraAmami/evalscope-docker`（ModelScope）
- 数据集：`SoraAmami/evalscope-datasets`（ModelScope）
