evalstone/bash/case/README_API_TEST.md

162 lines
4.4 KiB
Markdown
Raw 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.

# EvalScope API 测试指南
本目录提供一键运行 API 模型评测的脚本。
## 1. 准备 API key
为了不把 key 写进代码,推荐用环境变量:
```bash
export EVAL_API_KEY="sk-xxxx"
```
如果使用智谱 / Vectron / 自定义 OpenAI-compatible 服务,按需改 `EVAL_API_URL`
```bash
export EVAL_API_URL="https://api.vectron.meta-stone.com/v1"
export EVAL_MODEL="DeepSeek/DeepSeek-V4-Flash"
```
## 2. 快速开始
### 2.1 测指定 datasets最常用
```bash
cd /data1/sora/evalscope
export EVAL_API_KEY="sk-xxxx"
export EVAL_DATASETS="gsm8k,aime24,arc"
bash bash/case/GLM52_API_TEST1.sh
```
想换 benchmark`EVAL_DATASETS` 即可。常用数据集:
```text
gsm8k, aime24, aime25, aime26, hmmt26, imo_answerbench, competition_math
bbh, drop
bigcodebench, humaneval, live_code_bench
gpqa_diamond, mmlu_pro, simple_qa, mmlu, cmmlu, arc, hellaswag, trivia_qa, winogrande
longbench_v2, openai_mrcr
tau2_bench, general_fc, bfcl_v3
```
### 2.2 使用内置模式
```bash
bash bash/case/GLM52_API_TEST1.sh --mode quick # 快速冒烟gsm8k,aime24,arc limit=20
bash bash/case/GLM52_API_TEST1.sh --mode lite # lite 套件
bash bash/case/GLM52_API_TEST1.sh --mode mid # 中等套件
bash bash/case/GLM52_API_TEST1.sh --mode full # 全量(不含 tau2_bench因为耗时
bash bash/case/GLM52_API_TEST1.sh --mode official # 与 DP4-Flash 官方发布对齐
```
### 2.3 测 GLM5.2
```bash
export EVAL_API_KEY="sk-xxxx"
export EVAL_API_URL="https://api.example.com/v1" # 替换为 GLM5.2 的实际 endpoint
export EVAL_MODEL="glm-5.2"
export EVAL_DATASETS="gsm8k,aime24,arc"
export EVAL_FOLDER_NAME="GLM52-API-Test"
bash bash/case/GLM52_API_TEST1.sh
```
## 3. 常用命令行参数
| 参数 | 说明 |
|---|---|
| `--api-key` | API key也可用 `EVAL_API_KEY` |
| `--api-url` | OpenAI-compatible API 地址 |
| `--model` | 模型名,如 `glm-5.2``DeepSeek/DeepSeek-V4-Flash` |
| `--datasets` | 逗号分隔的 benchmark 列表 |
| `--mode` | `quick / lite / mid / full / official / custom` |
| `--folder-name` | 输出目录名,默认 `API-Test` |
| `--config` | 评测配置 YAML默认 `config/dpv4-int8_nothinking.yaml` |
| `--batch-size` | 并发数,默认 4 |
| `--limit` | 每个 benchmark 最多测多少条,`none` 表示全量 |
| `--thinking` | 启用 thinking 模式 |
| `--no-thinking` | 关闭 thinking 模式 |
## 4. 查看进度
评测日志在 `logs/` 目录,最新日志:
```bash
ls -t logs/live_code_bench_thinking_*.log | head -1
```
实时看进度:
```bash
tail -f $(ls -t logs/live_code_bench_thinking_*.log | head -1)
```
## 5. 结果与成本
### 5.1 结果位置
```text
output/<FOLDER_NAME>/<benchmark>/seed_42/reports/<benchmark>.json
```
### 5.2 计算成本
运行完成后,用成本脚本按 token 量算钱:
```bash
# GLM5.2:输入 8 元/M输出 28 元/M折扣 0.65
bash bash/case/calc_glm52_cost.sh
# 输出到 results/P800_benchmark_cost_GLM52.csv
```
如果是其他模型,直接调工具:
```bash
python3 tools/calculate_cost.py \
--input "P800模型能力评测结果 - DS4-Flash-INT8-NO-Thinking-2.0-FULL.csv" \
--input-price 2 \
--output-price 8 \
--discount 1.0 \
--model-name MyModel \
--output results/cost_mymodel.csv
```
### 5.3 把成本写回 Excel
```bash
python3 tools/fill_excel_cost.py \
--input "/data1/sora/P800模型能力评测结果_统一格式_filled.xlsx" \
--output "/data1/sora/P800模型能力评测结果_统一格式_with_cost.xlsx" \
--input-price 8 \
--output-price 28 \
--discount 0.65 \
--model-name GLM-5.2
```
## 6. 常见问题
### 6.1 simple_qa 分数为 0
通常是 judge API 被限流HTTP 429。SimpleQA 需要调用外部 judge 模型打分。解决方案:
- 换成本地模型当 judge
```bash
bash bash/case/GLM52_API_TEST1.sh \
--datasets simple_qa \
--judge-model /data1/models/DeepSeek-V4-Flash-INT8 \
--judge-api-url http://localhost:30000/v1 \
--judge-api-key EMPTY
```
- 或降低 `--batch-size` / `--parallel-runs` 减少 judge 并发。
### 6.2 评测非常慢
代码类 benchmark`live_code_bench`、`bigcodebench`、`humaneval`)需要实际执行生成的代码并跑测试用例,耗时比纯文本生成高很多。可以先 `--limit 10` 测小样本。
### 6.3 只想重跑失败/漏掉的 benchmark
直接指定 datasets 即可EvalScope 会自动跳过已完成的(通过 `use_cache` 恢复)。