Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
2 tasks done
ryan0980 opened this issue Feb 16, 2025 · 0 comments
Open
2 tasks done
Assignees

Comments

@ryan0980
Copy link

先决条件

问题类型

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

环境

/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 的问题,但是还是跑不出成绩

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants