open-compass / open-compass/opencompass

[Bug] Medbench dataset only provides test data, not the entire dataset

Open
#1,874 3 comments 0 reactions 1 assignee View on GitHub

@tonysy is already working on this.

Since Feb 16, 2025.

Dominant language
Python
Stars
7.5k
Forks
869
Avg merge
17h 52m
Merged PRs (30d)
13

Description

先决条件
问题类型

我正在使用官方支持的任务/模型/数据集进行评估。

环境

/bin/sh: 1: /usr/local/cuda/bin/nvcc: not found
{'CUDA available': True,
'CUDA_HOME': '/usr/local/cuda',
'GCC': 'gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0',
'GPU 0': 'NVIDIA A10G',
'MMEngine': '0.10.6',
'MUSA available': False,
'NVCC': 'Not Available',
'PyTorch': '2.6.0+cu124',
'PyTorch compiling details': 'PyTorch built with:\n'
' - GCC 9.3\n'
' - C++ Version: 201703\n'
' - Intel(R) oneAPI Math Kernel Library Version '
'2024.2-Product Build 20240605 for Intel(R) 64 '
'architecture applications\n'
' - Intel(R) MKL-DNN v3.5.3 (Git Hash '
'66f0cb9eb66affd2da3bf5f8d897376f04aae6af)\n'
' - OpenMP 201511 (a.k.a. OpenMP 4.5)\n'
' - LAPACK is enabled (usually provided by '
'MKL)\n'
' - NNPACK is enabled\n'
' - CPU capability usage: AVX2\n'
' - CUDA Runtime 12.4\n'
' - NVCC architecture flags: '
'-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75;-gencode;arch=compute_80,code=sm_80;-gencode;arch=compute_86,code=sm_86;-gencode;arch=compute_90,code=sm_90\n'
' - CuDNN 90.1\n'
' - Magma 2.6.1\n'
' - Build settings: BLAS_INFO=mkl, '
'BUILD_TYPE=Release, '
'COMMIT_SHA=2236df1770800ffea5697b11b0bb0d910b2e59e1, '
'CUDA_VERSION=12.4, CUDNN_VERSION=9.1.0, '
'CXX_COMPILER=/opt/rh/devtoolset-9/root/usr/bin/c++, '
'CXX_FLAGS= -D_GLIBCXX_USE_CXX11_ABI=0 '
'-fabi-version=11 -fvisibility-inlines-hidden '
'-DUSE_PTHREADPOOL -DNDEBUG -DUSE_KINETO '
'-DLIBKINETO_NOROCTRACER -DLIBKINETO_NOXPUPTI=ON '
'-DUSE_FBGEMM -DUSE_PYTORCH_QNNPACK '
'-DUSE_XNNPACK -DSYMBOLICATE_MOBILE_DEBUG_HANDLE '
'-O2 -fPIC -Wall -Wextra -Werror=return-type '
'-Werror=non-virtual-dtor -Werror=bool-operation '
'-Wnarrowing -Wno-missing-field-initializers '
'-Wno-type-limits -Wno-array-bounds '
'-Wno-unknown-pragmas -Wno-unused-parameter '
'-Wno-strict-overflow -Wno-strict-aliasing '
'-Wno-stringop-overflow -Wsuggest-override '
'-Wno-psabi -Wno-error=old-style-cast '
'-Wno-missing-braces -fdiagnostics-color=always '
'-faligned-new -Wno-unused-but-set-variable '
'-Wno-maybe-uninitialized -fno-math-errno '
'-fno-trapping-math -Werror=format '
'-Wno-stringop-overflow, LAPACK_INFO=mkl, '
'PERF_WITH_AVX=1, PERF_WITH_AVX2=1, '
'TORCH_VERSION=2.6.0, USE_CUDA=ON, USE_CUDNN=ON, '
'USE_CUSPARSELT=1, USE_EXCEPTION_PTR=1, '
'USE_GFLAGS=OFF, USE_GLOG=OFF, USE_GLOO=ON, '
'USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, '
'USE_NCCL=1, USE_NNPACK=ON, USE_OPENMP=ON, '
'USE_ROCM=OFF, USE_ROCM_KERNEL_ASSERT=OFF, \n',
'Python': '3.10.16 | packaged by conda-forge | (main, Dec 5 2024, 14:16:10) '
'[GCC 13.3.0]',
'TorchVision': '0.21.0+cu124',
'lmdeploy': "not installed:No module named 'lmdeploy'",
'numpy_random_seed': 2147483648,
'opencompass': '0.4.0+68a9838',
'sys.platform': 'linux',
'transformers': '4.48.3'}

重现问题 - 代码/配置示例

python run.py --hf-type chat
--hf-path /home/sagemaker-user/DQFP/model/qwen_1_5b_I
--tokenizer-path /home/sagemaker-user/DQFP/model/qwen_1_5b_I
--datasets medbench_gen
--debug

重现问题 - 命令或脚本

python run.py --hf-type chat
--hf-path /home/sagemaker-user/DQFP/model/qwen_1_5b_I
--tokenizer-path /home/sagemaker-user/DQFP/model/qwen_1_5b_I
--datasets medbench_gen
--debug

重现问题 - 错误信息

多次显示找不到文件,进入文件后发现只存在类似DrugCA_test.jsonl的文件,而需求DrugCA.jsonl
类似...
FileNotFoundError: [Errno 2] No such file or directory: './data/MedBench/MedSafety/MedSafety.jsonl'
...

其他信息

没有加入medbench数据集,而只有medbench_test数据集,而且参考答案可能为0,导致没有成绩出现最后

我下面是关于 MedBench 数据集修改操作的完整总结,包含两部分映射调整:


1. 将 _test.jsonl 文件映射为正常 .jsonl 文件

在一些 MedBench 子任务中,下载的数据文件名称包含后缀 _test(例如 Med-Exam_test.jsonlSafetyBench_test.jsonl),而配置文件中期望的名称为不带 _test 的标准文件名(例如 Med-Exam.jsonlSafetyBench.jsonl)。为了解决这一问题,你可以使用符号链接将后缀文件映射为预期文件名。操作示例(在对应目录下执行):

# 例如,对于 Med-Exam 数据集:
cd /home/sagemaker-user/DQFP/opencompass/data/MedBench/Med-Exam
ln -s Med-Exam_test.jsonl Med-Exam.jsonl

如果目录下存在其他数据集,也可使用类似命令进行映射。


2. 将目录名称映射调整为配置文件期望

配置文件中 MedBench 部分期望数据文件位于路径 ./data/MedBench/MedSafety/MedSafety.jsonl,但实际数据存放目录中没有名为 MedSafety 的文件夹,而是存在 SafetyBench 文件夹,并且文件名为 SafetyBench.jsonl。为使配置加载正常,你可以创建以下符号链接:

  1. 在 MedBench 根目录下创建一个符号链接,将 SafetyBench 映射为 MedSafety
    cd /home/sagemaker-user/DQFP/opencompass/data/MedBench
    ln -s SafetyBench MedSafety
    
  2. 进入新建的 MedSafety 目录后,再创建内部符号链接,将实际文件 SafetyBench.jsonl 映射为 MedSafety.jsonl
    cd MedSafety
    ln -s SafetyBench.jsonl MedSafety.jsonl
    

这样,当 OpenCompass 尝试访问 ./data/MedBench/MedSafety/MedSafety.jsonl 时,系统会自动读取实际的文件内容。


总结
  • 文件名映射:通过创建符号链接,将下载数据中带有 _test 后缀的文件映射为不带 _test 的标准文件名,确保配置加载时文件名称一致。
  • 目录名称映射:由于配置文件期望的 MedBench 子数据集目录名称为 MedSafety,而实际数据存放目录中使用的是 SafetyBench,因此在 MedBench 目录下创建符号链接 MedSafety -> SafetyBench,同时在内部创建映射链接,将 SafetyBench.jsonl 映射为 MedSafety.jsonl

通过以上两步操作,配置文件中预期的路径和文件名称就能与实际数据存放保持一致,从而解决 FileNotFoundError 的问题,但是还是跑不出成绩

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.