open-compass / open-compass/opencompass
[Bug] Medbench dataset only provides test data, not the entire dataset
@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.jsonl 或 SafetyBench_test.jsonl),而配置文件中期望的名称为不带 _test 的标准文件名(例如 Med-Exam.jsonl 或 SafetyBench.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。为使配置加载正常,你可以创建以下符号链接:
- 在 MedBench 根目录下创建一个符号链接,将
SafetyBench映射为MedSafety:cd /home/sagemaker-user/DQFP/opencompass/data/MedBench ln -s SafetyBench MedSafety - 进入新建的
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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.