OpenCompass项目数据集配置指南

OpenCompass项目数据集配置指南

opencompass opencompass - OpenCompass是一个用于评估大型语言模型的工具,提供分布式评估、多样化评估范式和模块化设计。 opencompass 项目地址: https://gitcode.com/gh_mirrors/op/opencompass

数据集配置概述

OpenCompass作为一个大模型评测平台,其核心功能之一是对各类数据集进行高效评测。本文将详细介绍如何在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

数据集配置文件命名规范

数据集配置文件的命名遵循统一格式:{数据集名称}_{评测方式}_{prompt版本号}.py。例如:

  • CLUE_afqmc_gen_db509b.py:表示使用生成式评测(gen)方法,prompt版本号为db509b
  • CLUE_afqmc_ppl_00b348.py:表示使用判别式评测(ppl)方法,prompt版本号为00b348

不带版本号的文件(如CLUE_afqmc_gen.py)通常指向该评测方式下最新的prompt配置,建议优先使用这些文件以获得最佳评测效果。

数据集配置详解

每个数据集配置文件都包含一个或多个数据集定义,这些定义存储在{数据集名称}_datasets变量中。以AFQMC和CMNLI数据集为例:

# AFQMC数据集配置示例
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,  # 评估配置
    )
]

# CMNLI数据集配置示例
cmnli_datasets = [
    dict(
        type=HFDataset,
        abbr='cmnli',
        path='json',
        split='train',
        data_files='./data/CLUE/cmnli/cmnli_public/dev.json',
        reader_cfg=cmnli_reader_cfg,
        infer_cfg=cmnli_infer_cfg,
        eval_cfg=cmnli_eval_cfg
    )
]

多数据集组合评测

在实际评测中,我们经常需要同时评测多个数据集。OpenCompass支持通过简单的导入和合并操作实现这一需求:

from mmengine.config import read_base

with read_base():
    from .datasets.CLUE_afqmc.CLUE_afqmc_gen_db509b import afqmc_datasets
    from .datasets.CLUE_cmnli.CLUE_cmnli_ppl_b78ad4 import cmnli_datasets

datasets = []
datasets += afqmc_datasets
datasets += cmnli_datasets

这种设计使得数据集组合变得非常灵活,用户可以根据评测需求自由搭配不同领域、不同评测方式的数据集。

高级评测配置

多次评测取平均

为了提高评测结果的稳定性,OpenCompass支持对同一数据集进行多次评测并取平均值。通过设置n参数即可实现:

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评测方法。该方法通过设置kn参数,可以更全面地评估模型的稳定性:

aime2024_datasets = [
    dict(
        abbr='aime2024',
        type=Aime2024Dataset,
        path='opencompass/aime2024',
        k=[2, 4],  # 计算G-Pass@2和G-Pass@4
        n=12,  # 进行12次评测
        ...
    )
]

G-Pass@k的计算公式考虑了多次评测中的通过率分布,能够更准确地反映模型的实际表现。

最佳实践建议

  1. 优先使用最新prompt:不带版本号的配置文件通常代表最新、最优的prompt设计
  2. 合理组合数据集:根据评测目标选择不同领域、不同难度的数据集组合
  3. 考虑评测稳定性:对于关键评测,建议设置n≥3以获得更稳定的结果
  4. 理解评测方法:根据评测目标选择合适的评测方式(生成式gen或判别式ppl)

通过合理配置数据集,用户可以充分发挥OpenCompass的评测能力,获得全面、准确的大模型评估结果。

opencompass opencompass - OpenCompass是一个用于评估大型语言模型的工具,提供分布式评估、多样化评估范式和模块化设计。 opencompass 项目地址: https://gitcode.com/gh_mirrors/op/opencompass

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

### OpenCompass Framework 的功能与特性 OpenCompass 是一种用于多模态数据处理和模型训练的开源框架,旨在简化复杂任务中的跨模态学习流程。以下是关于 OpenCompass 的主要特性和使用方法: #### 功能概述 OpenCompass 提供了一个统一的接口来支持多种类型的输入数据流,类似于 BEVFusion 主体结构的设计理念[^2]。它能够集成来自不同传感器的数据源(如图像、点云等),并提供高效的预处理工具链。 - **模块化设计**: 类似于 BEVFusion 中提到的 Camera Stream 和 LiDAR Stream 模块划分,OpenCompass 将整个工作流分为多个独立但可协作的部分。这种架构允许开发者灵活调整各个组件的功能而不影响整体稳定性。 - **融合能力**: 融合模块负责将异构数据转换为一致的形式以便后续分析。这一步骤对于实现高质量的结果至关重要,在自动驾驶领域尤为明显。 #### 使用说明 为了充分利用 OpenCompass 的潜力,用户需遵循以下指南完成环境配置及相关操作: 1. **项目初始化**: 开始之前需要确保开发环境中已安装必要的依赖项。如果涉及单元测试,则可以参考如何向 Java 项目添加 JUnit 库的方法[^1]来进行相应设置。 2. **数据准备**: 准备好所需的原始数据集之后,利用内置函数对其进行标准化处理以适配下游算法需求。 3. **运行实例脚本**: 下面展示了一段简单的 Python 示例代码用来加载预定义模型并对新样本执行推理过程: ```python from opencompass.models import ModelFactory from opencompass.datasets import DatasetLoader # 初始化模型工厂类对象 model_factory = ModelFactory(config_path="path/to/config.yaml") # 加载特定名称下的神经网络实例 inference_model = model_factory.create_model(model_name="multi_modal_fusion_net") # 创建数据加载器 dataset_loader = DatasetLoader(data_dir="/input/data/path", batch_size=8) for batch_data in dataset_loader: predictions = inference_model.predict(batch=batch_data) print(predictions) ``` 此片段展示了从创建模型到实际预测的基本流程。 #### 性能优化建议 针对大规模应用场合下可能出现的速度瓶颈问题,可以通过如下手段加以缓解: - 并行计算加速; - GPU/CPU 协同调度策略改进。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

葛习可Mona

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值