首页
/ OpenCompass项目数据集配置完全指南

OpenCompass项目数据集配置完全指南

2026-02-04 04:56:18作者:虞亚竹Luna

数据集配置概述

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:表示使用生成式评估方法,提示词版本为db509b
  • CLUE_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次评估
        ...
    )
]

最佳实践建议

  1. 数据集选择:根据评估目标选择具有代表性的数据集组合,建议覆盖不同难度和领域

  2. 评估方法:对于生成任务优先使用生成式评估,分类任务可考虑判别式评估

  3. 稳定性配置:关键评估建议设置n≥5,确保结果稳定可靠

  4. 版本控制:生产环境建议使用带版本号的配置文件,确保评估可复现

  5. 自定义数据集:参考现有配置模板,可以轻松扩展支持新的数据集

通过合理配置OpenCompass的数据集评估方案,开发者可以全面、准确地评估大模型在各种任务上的表现,为模型优化和改进提供可靠依据。

登录后查看全文
热门项目推荐
相关项目推荐