Repository: open-compass/opencompass
Issue: [Bug] Medbench dataset only provides test data, not the entire dataset
Root cause: Configuration Error

### 先决条件

- [x] 我已经搜索过 [问题](https://github.com/open-compass/opencompass/issues/) 和 [讨论](https://github.com/open-compass/opencompass/discussions) 但未得到预期的帮助。
- [x] 错误在 [最新版本](https://github.com/open-compass/opencompass) 中尚未被修复。

### 问题类型

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

### 环境

/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`）。为了解决这一问题，你可以使用符号链接将后缀文件映射为预期文件名。操作示例（在对应目录下执行）：

```bash
# 例如，对于 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`：
   ```bash
   cd /home/sagemaker-user/DQFP/opencompass/data/MedBench
   ln -s SafetyBench MedSafety
   ```
2. 进入新建的 `MedSafety` 目录后，再创建内部符号链接，将实际文件 `SafetyBench.jsonl` 映射为 `MedSafety.jsonl`：
   ```bash
   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 的问题，但是还是跑不出成绩

Same problem. Have you solved it?

> Same problem. Have you solved it?

No

要用这个文件加载数据集https://github.com/open-compass/opencompass/blob/main/opencompass/configs/datasets/MedBench/medbench_gen_0b4fff.py，而且代码还少了两个新增的数据集，MedBench很乱，官方都不维护这份代码了