Repository: open-compass/opencompass
Issue: [Bug] 使用api测评时mode参数不起作用，超出max_seq_len并没有按mode切分输入
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) 中尚未被修复。

### 问题类型

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

### 环境

python 3.10.2
用vllm 再另外一台服务器部署了一个llama 2-7b，对外提供openai api，本机通过api对部署的模型进行测评，在运行到mbpp 第493个数据和mmlu子数据集high_school_european_history时会出现超出模型最大输入长度限制的情况，设置了mode截取输入长度但并未起效果

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

```
from opencompass.models import OpenAI
from mmengine.config import read_base
from opencompass.partitioners import NaivePartitioner
from opencompass.runners.local_api import LocalAPIRunner
from opencompass.tasks import OpenICLInferTask

with read_base():
    from ..datasets.mmlu.mmlu_gen import mmlu_datasets
    from ..datasets.humaneval.humaneval_gen import humaneval_datasets
    from ..datasets.mbpp.mbpp_gen import mbpp_datasets
    from ..datasets.math.math_gen import math_datasets
    from ..datasets.bbh.bbh_gen import bbh_datasets
    from ..datasets.gsm8k.gsm8k_gen import gsm8k_datasets
    from ..datasets.iwslt2017.iwslt2017_gen import iwslt2017_datasets


datasets = [
    *mmlu_datasets,
    *bbh_datasets,
    *humaneval_datasets,
    *mbpp_datasets,
    *math_datasets,
    *gsm8k_datasets,
    # *iwslt2017_datasets,
]

api_meta_template = dict(
round=[
dict(role='HUMAN', api_role='HUMAN'),
dict(role='BOT', api_role='BOT', generate=True),
],
)
ip = '192.168.72.46'
port = 8000
models = [
    dict(
        type=OpenAI,                             # 使用 OpenAI 模型
        # 以下为 `OpenAI` 初始化参数
        path='/models/meta-llama/Llama-2-7b-chat-hf',                            # 指定模型类型
        openai_api_base = f"http://{ip}:{port}/v1/chat/completions",
        key='-',                   # OpenAI API Key
        max_seq_len=2048,                        # 最大输入长度
        mode = 'rear',
        retry = 3,
        # 以下参数为各类模型都有的参数，非 `OpenAI` 的初始化参数
        abbr='Llama-2-7b',                            # 模型简称
        run_cfg=dict(num_gpus=0),                # 资源需求（不需要 GPU）
        max_out_len=1024,                         # 最长生成长度
        batch_size=4,                            # 批次大小
        temperature = 0.1,
        meta_template = api_meta_template
    ),
]



work_dir = "outputs/api_openai/"
```

### 重现问题 - 命令或脚本

python3 run.py ./config/api_examples/eval_api_all.py --debug
在运行到mbpp 第493个数据和mmlu子数据集high_school_european_history时会出现超出模型最大输入长度限制的情况，设置了mode截取输入长度但并未起效果

### 重现问题 - 错误信息

<img width="1025" alt="image" src="https://github.com/open-compass/opencompass/assets/51048934/260f5b84-91ef-43af-a463-6cc2344d20f3">


### 其他信息

_No response_

我也是在另一台服务器用VLLM起的模型服务，用以上代码报错：
KeyError: 'Could not automatically map Qwen2-7B-Instruct to a tokeniser. Please use `tiktoken.get_encoding` to explicitly get the tokeniser you expect.'

> 我也是在另一台服务器用VLLM起的模型服务，用以上代码报错： KeyError: 'Could not automatically map Qwen2-7B-Instruct to a tokeniser. Please use `tiktoken.get_encoding` to explicitly get the tokeniser you expect.'

你有试过把 path 那个参数固定成  `gpt-3.5-trubo-0613` 么 我调用vllm的openai是可以跑通的。但是结果对不对我不确定

> 我也是在另一台服务器用VLLM起的模型服务，用以上代码报错： KeyError: 'Could not automatically map Qwen2-7B-Instruct to a tokeniser. Please use `tiktoken.get_encoding` to explicitly get the tokeniser you expect.'

这个应该跟opencompass代码中的 token计算有关，应该是需要改成 适配你 模型的token计算方法

我可以运行成功，但是每次运行的结果都不一致，你们有遇到过吗
https://github.com/open-compass/opencompass/issues/1634