Repository: open-compass/opencompass
Issue: [Bug] Eval HumanEval dataset when k > 1 in pass@k
Root cause: Unimplemented Feature Gap

### Prerequisite

- [X] I have searched [Issues](https://github.com/InternLM/opencompass/issues/) and [Discussions](https://github.com/InternLM/opencompass/discussions) but cannot get the expected help.
- [X] The bug has not been fixed in the [latest version](https://github.com/InternLM/opencompass).

### Type

I'm evaluating with the officially supported tasks/models/datasets.

### Environment

```python
{'CUDA available': True, 'CUDA_HOME': '/mnt/petrelfs/share/cuda-11.8', 'GCC': 'gcc (GCC) 7.5.0', 'GPU 0,1,2,3,4,5,6,7': 'NVIDIA A100-SXM4-80GB', 'MMEngine': '0.8.4', 'NVCC': 'Cuda compilation tools, release 11.8, V11.8.89', 'OpenCV': '4.8.0', 'PyTorch': '2.0.1+cu118', 'PyTorch compiling details': 'PyTorch built with:\n' ' - GCC 9.3\n' ' - C++ Version: 201703\n' ' - Intel(R) oneAPI Math Kernel Library Version ' '2022.2-Product Build 20220804 for Intel(R) 64 ' 'architecture applications\n' ' - Intel(R) MKL-DNN v2.7.3 (Git Hash ' '6dbeffbae1f23cbbeae17adb7b5b13f1f37c080e)\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 11.8\n'
' - NVCC architecture flags: '
'-gencode;arch=compute_37,code=sm_37;-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 8.7\n'
' - Magma 2.6.1\n'
' - Build settings: BLAS_INFO=mkl, '
'BUILD_TYPE=Release, CUDA_VERSION=11.8, '
'CUDNN_VERSION=8.7.0, '
'CXX_COMPILER=/opt/rh/devtoolset-9/root/usr/bin/c++, '
'CXX_FLAGS= -D_GLIBCXX_USE_CXX11_ABI=0 '
'-fabi-version=11 -Wno-deprecated '
'-fvisibility-inlines-hidden -DUSE_PTHREADPOOL '
'-DNDEBUG -DUSE_KINETO -DLIBKINETO_NOROCTRACER '
'-DUSE_FBGEMM -DUSE_QNNPACK '
'-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 -Wunused-local-typedefs '
'-Wno-unused-parameter -Wno-unused-function '
'-Wno-unused-result -Wno-strict-overflow '
'-Wno-strict-aliasing '
'-Wno-error=deprecated-declarations '
'-Wno-stringop-overflow -Wno-psabi '
'-Wno-error=pedantic -Wno-error=redundant-decls '
'-Wno-error=old-style-cast '
'-fdiagnostics-color=always -faligned-new '
'-Wno-unused-but-set-variable '
'-Wno-maybe-uninitialized -fno-math-errno '
'-fno-trapping-math -Werror=format '
'-Werror=cast-function-type '
'-Wno-stringop-overflow, LAPACK_INFO=mkl, '
'PERF_WITH_AVX=1, PERF_WITH_AVX2=1, '
'PERF_WITH_AVX512=1, '
'TORCH_DISABLE_GPU_ASSERTS=ON, '
'TORCH_VERSION=2.0.1, USE_CUDA=ON, USE_CUDNN=ON, '
'USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, '
'USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, '
'USE_MPI=OFF, USE_NCCL=1, USE_NNPACK=ON, '
'USE_OPENMP=ON, USE_ROCM=OFF, \n',
'Python': '3.10.11 (main, May 16 2023, 00:28:57) [GCC 11.2.0]',
'TorchVision': '0.15.2+cu118',
'numpy_random_seed': 2147483648,
'opencompass': '0.1.0+',
'sys.platform': 'linux'}
```

### Reproduces the problem - code/configuration sample

```python
humaneval_infer_cfg = dict(prompt_template=dict(
                               type=PromptTemplate,
                               template=f'{humaneval_hint}### Instruction:\nComplete the following python code.\n\n### Input:\n{{input}}\n\n### Response:\n{{prompt}}',
                               # template='</E></prompt>',
                               ),
                           retriever=dict(type=ZeroRetriever),
                           inferencer=dict(type=GenInferencer, max_out_len=512,
                                           temperature=0.1, top_p=0.95, num_return_sequences=10, do_sample=True,
                                           ))
humaneval_eval_cfg = dict(
    evaluator=dict(type=HumanEvaluator),
    k=[1, 5, 10],  # the parameter only for humaneval
    pred_postprocessor=dict(type=humaneval_postprocess),
)
```

### Reproduces the problem - command or script

```shell
python run.py configs/eval.py 
```

### Reproduces the problem - error message

None

### Other information

I want to eval HumanEval with pass@10. But the output under `predictions` folder contains only 163 entries (163*10 hoped). And only pass@1 is tested.

Maybe I configure it wrongly but I didn't find any suggestions in issues or docs.

k > 1 in pass@k is not supported yet

okay, could you please tell me if there is a plan to support that?

We will add this feature to backlog. Unable to provide a time estimate right now.

Reopen this issue for possible updates in the future.

refers to #598