用你的指数统一评测#

一句话:使用混合 JSONL(由采样阶段生成)作为单一“数据集”运行评测,一次得到多层能力分数与加权指数总分。

评测配置#

from evalscope import TaskConfig, run_task
import os

task_cfg = TaskConfig(
    model='qwen2.5-7b-instruct',
    api_url='https://dashscope.aliyuncs.com/compatible-mode/v1',
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    eval_type='openai_api',
    datasets=['data_collection'],
    dataset_args={
        'data_collection': {
            'local_path': 'outputs/stratified_mixed_data.jsonl',
            'shuffle': True
        }
    },
    eval_batch_size=5,
    generation_config={
        'temperature': 0.0
    }
)
run_task(task_cfg=task_cfg)
evalscope eval \
  --model qwen2.5-7b-instruct \
  --eval-type openai_api \
  --api-url https://dashscope.aliyuncs.com/compatible-mode/v1 \
  --api-key "$DASHSCOPE_API_KEY" \
  --datasets data_collection \
  --dataset-args '{"data_collection":{"local_path":"outputs/stratified_mixed_data.jsonl","shuffle":true}}' \
  --eval-batch-size 5 \
  --generation-config '{"temperature":0.0}'

使用约定#

  • datasets 固定使用 data_collection 作为混合入口。

  • dataset_args.local_path 指向混合 JSONL;可选 shuffle 控制样本遍历顺序。

  • 输出结构:outputs//{logs,predictions,reviews,reports,configs}。

  • 推理并发:eval_batch_size。

指标与输出#

系统会在五个“观察视角”输出报告:

  1. subset_level:原始数据集中子集(如 ARC-Challenge / ARC-Easy)。

  2. dataset_level:同一数据集所有子集汇总(如 arc)。

  3. task_level:同一任务类型(如 reasoning)。

  4. tag_level:样本 tags 维度(语言、模式等;Schema 名称可并入 tags)。

  5. category_level:自定义分组(如 reasoning_index)。

指标说明:

  • micro_avg.:逐样本加总后计算整体准确率(总正确数 / 总样本数)。样本数高的子集影响更大。

  • macro_avg.:对该层“成员”(子集)各自得分简单平均,每个成员同权,不受样本数影响。

  • weighted_avg.:按定义的叶子权重 \(w_i\) 做加权(权重在采样前定义,采样过程不改变权重含义)。

示例输出:

2025-11-24 18:44:50 - evalscope - data_collection_adapter.py - generate_report - 171 - INFO: subset_level Report:
+-----------+--------------+---------------+------------+-------+
| task_type | dataset_name |  subset_name  | micro_avg. | count |
+-----------+--------------+---------------+------------+-------+
| reasoning |     arc      | ARC-Challenge |    0.8     |   5   |
| reasoning |     arc      |   ARC-Easy    |    1.0     |   4   |
| reasoning |    ceval     |     logic     |    0.0     |   1   |
+-----------+--------------+---------------+------------+-------+
2025-11-24 18:44:50 - evalscope - data_collection_adapter.py - generate_report - 171 - INFO: dataset_level Report:
+-----------+--------------+------------+------------+---------------+-------+
| task_type | dataset_name | micro_avg. | macro_avg. | weighted_avg. | count |
+-----------+--------------+------------+------------+---------------+-------+
| reasoning |     arc      |   0.8889   |    0.9     |    0.8889     |   9   |
| reasoning |    ceval     |    0.0     |    0.0     |      0.0      |   1   |
+-----------+--------------+------------+------------+---------------+-------+
2025-11-24 18:44:50 - evalscope - data_collection_adapter.py - generate_report - 171 - INFO: task_level Report:
+-----------+------------+------------+---------------+-------+
| task_type | micro_avg. | macro_avg. | weighted_avg. | count |
+-----------+------------+------------+---------------+-------+
| reasoning |    0.8     |    0.6     |    0.3556     |  10   |
+-----------+------------+------------+---------------+-------+
2025-11-24 18:44:50 - evalscope - data_collection_adapter.py - generate_report - 171 - INFO: tag_level Report:
+------+------------+------------+---------------+-------+
| tags | micro_avg. | macro_avg. | weighted_avg. | count |
+------+------------+------------+---------------+-------+
|  en  |   0.8889   |    0.9     |    0.8889     |   9   |
|  zh  |    0.0     |    0.0     |      0.0      |   1   |
+------+------------+------------+---------------+-------+
2025-11-24 18:44:50 - evalscope - data_collection_adapter.py - generate_report - 171 - INFO: category_level Report:
+-----------------+------------+------------+---------------+-------+
|    category0    | micro_avg. | macro_avg. | weighted_avg. | count |
+-----------------+------------+------------+---------------+-------+
| reasoning_index |    0.8     |    0.6     |    0.3556     |  10   |
+-----------------+------------+------------+---------------+-------+

常见问题#

  • 指数得分不符合预期:展开 Schema 验证归一化权重,确认未使用均匀采样误解权重效果。

  • 修改只需重新运行:若不改 JSONL 内容可开启 --use-cache 节省推理时间。

  • 大数据量评测速度慢:调大 eval_batch_size;确保模型/接口支持并发请求。

后续操作#

  • 可视化:evalscope service 打开交互界面筛选维度与模型。

  • 版本化:为不同权重配置生成多份 JSONL,命名为 weighted_v1.jsonl / weighted_v2.jsonl 并分开评测。