用你的指数统一评测#
一句话:使用混合 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。
指标与输出#
系统会在五个“观察视角”输出报告:
subset_level:原始数据集中子集(如 ARC-Challenge / ARC-Easy)。
dataset_level:同一数据集所有子集汇总(如 arc)。
task_level:同一任务类型(如 reasoning)。
tag_level:样本 tags 维度(语言、模式等;Schema 名称可并入 tags)。
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 app 打开交互界面筛选维度与模型。
版本化:为不同权重配置生成多份 JSONL,命名为 weighted_v1.jsonl / weighted_v2.jsonl 并分开评测。