Skip to content

[Bug] mooncaketrace特性不支持py3.11 &py3.12 #397

Description

@SJTUyh

操作系统及版本

ubuntu 22.04

安装工具的python环境

在anaconda/miniconda创建的python虚拟环境

python版本

3.11

AISBench工具版本

3.1.20260630

AISBench执行命令

不关键

模型配置文件或自定义配置文件内容

from ais_bench.benchmark.openicl.icl_prompt_template import PromptTemplate
from ais_bench.benchmark.openicl.icl_retriever import ZeroRetriever
from ais_bench.benchmark.openicl.icl_inferencer import GenInferencer
from ais_bench.benchmark.datasets import MooncakeTraceDataset, MooncakeTraceEvaluator
from ais_bench.benchmark.openicl.icl_evaluator import AccEvaluator
import os

mooncake_trace_reader_cfg = dict[str, list[str] | str](
    input_columns=["prompt", "timestamp","max_out_len"],
    output_column="answer"
)

mooncake_trace_infer_cfg = dict(
    prompt_template=dict(
        type=PromptTemplate,
        template="{prompt}"
    ),
    retriever=dict(type=ZeroRetriever),
    inferencer=dict(type=GenInferencer)
)

mooncake_trace_eval_cfg = dict(
    evaluator=dict(type=MooncakeTraceEvaluator)
)

# 获取当前配置文件所在目录,然后找到测试数据文件
_current_dir = os.path.dirname(os.path.abspath(__file__))
_test_data_path = os.path.join(_current_dir, '..', 'test_mooncake_trace.jsonl')

mooncake_trace_datasets = [
    dict(
        abbr='mooncake-trace',
        type=MooncakeTraceDataset,
        path=_test_data_path,  # 测试数据文件路径
        generated_prompts_path='',  # 生成的prompt缓存路径,使用相对路径时相对于源码根路径,支持绝对路径
        random_seed=1234,
        fixed_schedule_auto_offset=False,
        fixed_schedule_start_offset=0,
        fixed_schedule_end_offset=-1,
        reader_cfg=mooncake_trace_reader_cfg,
        infer_cfg=mooncake_trace_infer_cfg,
        eval_cfg=mooncake_trace_eval_cfg
    )
]

预期行为

mooncaketrace在py3.11下能正常执行

实际行为

出现报错:

Copying config files to /home/ais_bench_ci/yh_dev/benchmark/smoke_tests/../ais_bench/benchmark/configs/datasets/mooncake_trace and /home/ais_bench_ci/yh_dev/benchmark/smoke_tests/../ais_bench/benchmark/configs/models/vllm_api/...
^[[1;32m[1/1]^[[0m Test case - performance_mooncake_trace
[2026-07-14 19:33:51,788] [ais_bench] [^[[32mINFO^[[0m] Loading performance_mooncake_trace: /home/ais_bench_ci/yh_dev/benchmark/ais_bench/benchmark/configs/./models/vllm_api/performance_mooncake_trace.py
[2026-07-14 19:33:51,796] [ais_bench] [^[[32mINFO^[[0m] Loading performance_mooncake_trace: /home/ais_bench_ci/yh_dev/benchmark/ais_bench/benchmark/configs/./datasets/mooncake_trace/performance_mooncake_trace.py
Traceback (most recent call last):
  File "/home/ais_bench_ci/yh_dev/benchmark/ais_bench/benchmark/cli/config_manager.py", line 213, in _load_datasets_config
    cfg = Config.fromfile(dataset[1])
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ais_bench_ci/miniconda3/envs/py311_1/lib/python3.11/site-packages/mmengine/config/config.py", line 494, in fromfile
    raise e
  File "/home/ais_bench_ci/miniconda3/envs/py311_1/lib/python3.11/site-packages/mmengine/config/config.py", line 492, in fromfile
    cfg_dict, imported_names = Config._parse_lazy_import(filename)
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ais_bench_ci/miniconda3/envs/py311_1/lib/python3.11/site-packages/mmengine/config/config.py", line 1109, in _parse_lazy_import
    exec(
  File "/home/ais_bench_ci/yh_dev/benchmark/ais_bench/benchmark/configs/./datasets/mooncake_trace/performance_mooncake_trace.py", line 27, in <module>
    _current_dir = os.path.dirname(os.path.abspath(__file__))
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ais_bench_ci/miniconda3/envs/py311_1/lib/python3.11/site-packages/mmengine/config/lazy.py", line 205, in __call__
    raise RuntimeError()
RuntimeError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/ais_bench_ci/miniconda3/envs/py311_1/bin/ais_bench", line 6, in <module>
    sys.exit(main())
             ^^^^^^
  File "/home/ais_bench_ci/yh_dev/benchmark/ais_bench/benchmark/cli/main.py", line 6, in main
    task_manager.run()
  File "/home/ais_bench_ci/yh_dev/benchmark/ais_bench/benchmark/cli/task_manager.py", line 35, in run
    cfg = self.config_manager.load_config(self.workflow)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ais_bench_ci/yh_dev/benchmark/ais_bench/benchmark/cli/config_manager.py", line 100, in load_config
    self.cfg = self._get_config_from_arg()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ais_bench_ci/yh_dev/benchmark/ais_bench/benchmark/cli/config_manager.py", line 185, in _get_config_from_arg
    datasets = self._load_datasets_config()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ais_bench_ci/yh_dev/benchmark/ais_bench/benchmark/cli/config_manager.py", line 215, in _load_datasets_config
    raise AISBenchConfigError(TMAN_CODES.INVAILD_SYNTAX_IN_CFG_CONTENT, f'Config file {dataset[1]} contain invaild syntax: {e}')
ais_bench.benchmark.utils.logging.exceptions.AISBenchConfigError: [^[[1m^[[41m^[[33mTMAN-CFG-001^[[0m]^[[1m^[[31minvaild syntax in config content^[[0m. Config file /home/ais_bench_ci/yh_dev/benchmark/ais_bench/benchmark/configs/./datasets/mooncake_trace/performance_mooncake_trace.py contain invaild syntax:  | Visit ^[[4m^[[35mhttps://ais-bench-benchmark.readthedocs.io/zh-cn/latest/faqs/error_codes.html#tman-cfg-001^[[0m for further help.
First run perf test: Failed

os库好像在python3.11及之后就无法正常lazy import,不应该直接写在配置文件里

前置检查

  • 我已读懂主页文档的快速入门,无法解决问题
  • 我已检索过FAQ,无重复问题
  • 我已搜索过现有Issue,无重复问题
  • 我已更新到最新版本,问题仍存在

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions