OpenCompass项目数据集配置完全指南
数据集配置概述
OpenCompass作为一个强大的大模型评估框架,其核心功能之一是对各类NLP数据集进行评估。本文将详细介绍如何在OpenCompass中配置和使用数据集,帮助用户快速上手并灵活运用各种评估场景。
数据集配置文件结构
OpenCompass采用模块化的方式组织数据集配置文件,所有数据集配置文件都存放在configs/datasets
目录下。这种设计使得数据集管理清晰有序,便于维护和扩展。
典型的目录结构如下:
configs/datasets/
├── agieval/ # 学术能力评估数据集
├── apps/ # 编程能力评估数据集
├── ARC_c/ # 常识推理数据集
├── CLUE_afqmc/ # 中文语义相似度数据集
│ ├── CLUE_afqmc_gen_901306.py # 生成式评估配置
│ ├── CLUE_afqmc_gen.py # 最新生成式评估配置
│ ├── CLUE_afqmc_ppl_378c5b.py # 判别式评估配置
│ └── CLUE_afqmc_ppl.py # 最新判别式评估配置
├── XLSum/ # 多语言摘要数据集
└── z_bench/ # 综合基准测试集
配置文件命名规范
每个数据集配置文件遵循统一的命名规则: {数据集名称}_{评估方法}_{提示词版本号}.py
例如:
CLUE_afqmc_gen_db509b.py
:表示使用生成式评估方法,提示词版本为db509bCLUE_afqmc_ppl_00b348.py
:表示使用判别式评估方法,提示词版本为00b348
不带版本号的文件(如CLUE_afqmc_gen.py
)会自动指向该评估方法下最新的提示词配置,通常是经过充分验证的最优配置。
数据集配置详解
每个数据集配置文件都会定义一个数据集变量,通常命名为{数据集缩写}_datasets
。让我们看一个典型配置示例:
afqmc_datasets = [
dict(
abbr="afqmc-dev", # 数据集缩写
type=AFQMCDatasetV2, # 数据集类型
path="./data/CLUE/AFQMC/dev.json", # 数据路径
reader_cfg=afqmc_reader_cfg, # 数据读取配置
infer_cfg=afqmc_infer_cfg, # 推理配置
eval_cfg=afqmc_eval_cfg, # 评估配置
),
]
配置项说明:
abbr
:数据集缩写,用于在日志和报告中标识type
:数据集处理类,定义数据加载和处理逻辑path
:数据集文件路径reader_cfg
:控制数据读取和预处理infer_cfg
:定义模型推理参数eval_cfg
:设置评估指标和方法
多数据集组合评估
OpenCompass支持同时评估多个数据集,这是通过配置文件导入机制实现的。下面是一个组合评估的示例:
from mmengine.config import read_base
with read_base():
# 导入AFQMC数据集的生成式评估配置
from .datasets.CLUE_afqmc.CLUE_afqmc_gen_db509b import afqmc_datasets
# 导入CMNLI数据集的判别式评估配置
from .datasets.CLUE_cmnli.CLUE_cmnli_ppl_b78ad4 import cmnli_datasets
datasets = []
datasets += afqmc_datasets # 添加AFQMC数据集
datasets += cmnli_datasets # 添加CMNLI数据集
这种模块化设计使得用户可以灵活组合不同领域、不同评估方法的数据集,构建全面的评估方案。
高级评估配置
多次评估取平均
为提高评估结果的稳定性,OpenCompass支持对同一数据集进行多次评估并计算平均指标:
afqmc_datasets = [
dict(
abbr="afqmc-dev",
type=AFQMCDatasetV2,
path="./data/CLUE/AFQMC/dev.json",
n=10, # 执行10次评估取平均
reader_cfg=afqmc_reader_cfg,
infer_cfg=afqmc_infer_cfg,
eval_cfg=afqmc_eval_cfg,
),
]
G-Pass@k评估方法
对于二元评估指标(如准确率、通过率等),OpenCompass支持G-Pass@k评估方法。这是一种考虑评估稳定性的高级指标,特别适合评估模型在关键任务中的可靠性。
G-Pass@k的数学定义为:
G-Pass@k_τ = E_Data[Σ_{j=⌈τ·k⌉}^c (C(c,j) * C(n-c,k-j) / C(n,k))]
其中:
- n:总评估次数
- c:n次评估中通过/正确的次数
- k:抽样次数
- τ:通过阈值比例
配置示例:
aime2024_datasets = [
dict(
abbr='aime2024',
type=Aime2024Dataset,
path='opencompass/aime2024',
k=[2, 4], # 同时计算G-Pass@2和G-Pass@4
n=12, # 共进行12次评估
...
)
]
最佳实践建议
-
数据集选择:根据评估目标选择具有代表性的数据集组合,建议覆盖不同难度和领域
-
评估方法:对于生成任务优先使用生成式评估,分类任务可考虑判别式评估
-
稳定性配置:关键评估建议设置n≥5,确保结果稳定可靠
-
版本控制:生产环境建议使用带版本号的配置文件,确保评估可复现
-
自定义数据集:参考现有配置模板,可以轻松扩展支持新的数据集
通过合理配置OpenCompass的数据集评估方案,开发者可以全面、准确地评估大模型在各种任务上的表现,为模型优化和改进提供可靠依据。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考