Skip to main content

A comprehensive toolkit for large model evaluation, commit id: e67dfeb3068480f2b9b17c13c4904ac646aab24b, commit date: Thu Jun 11 16:16:00 2026 +0800

Project description



AISBench 评测工具

面向人工智能领域的测试基准工具


License Ask DeepWiki

🌐官方网站 | 📖工具文档 | 👨‍💻开发者文档 | 🔥最新进展| 🤔报告问题 简体中文 | English

重要

⭐️收藏项目,你将能第一时间获取 AISBench评测工具 的最新动态~

🔥 最新进展

  • [2026.5.30] 支持在AISBench中测评基于Harbor的Terminal-Bench 2.0,并支持mini数据集,大幅降低评测成本🔥🔥🔥。示例与说明见 在AISBench中测评基于Harbor的Terminal-Bench 2.0
  • [2026.5.18] 支持在AISBench中测评SWE-Bench、TAU2-Bench、VBench 1.0的mini子集,大幅降低评测成本🔥🔥🔥。mini子集示例与说明在对应测评文档中搜索mini关键词:
  • [2026.5.07] 接入视频生成质量评测基准 VBench 1.0:支持在 GPU / NPU 上对生成视频进行多维度质量/语义指标测评。示例与说明见 在AISBench中测评VBench。 🔥🔥🔥
  • [2026.4.14] 接入大模型智能体评测基准τ²-Bench,支持双控环境下的对话、工具调用与合规能力评估,详见在AISBench中测评τ²-Bench。 🔥🔥🔥
  • [2026.4.10] 接入首个智能体评测基准SWE-Bench, 支持对智能体模型进行评测,详见在AISBench中测评SWE-Bench。 🔥🔥🔥
  • [2026.3.10] 接入首个图像生成类评测基准GEdit-Bench, 支持对图像生成模型进行评测,详见在AISBench中测评GEdit-Bench。 🔥🔥🔥
  • [2026.3.1] 支持接入裁判模型进行评估,详见使用裁判模型进行测评。 🔥🔥🔥
  • [2026.1.31] 支持 Mooncake Trace trace 数据集性能测评,支持按时间戳调度请求、hash_id 缓存与可复现 prompt 生成,详见数据集 README。🔥🔥🔥
  • [2025.12.19] 🎉 AISBench 架构全面重构完成!
    • 架构升级:对cli、models、inferencer、tasks组件进行了全面重构,支持快速接入新的测试基准,参考📚 开发者文档了解详情!
    • 🖥️ 任务管理界面:全新的任务UI管理界面,支持同时监控每个任务的详细执行状态,包括任务名称、进度、时间成本、状态、日志路径、扩展参数等,让任务执行状态一目了然!
    • 并行执行增强:扩展了多任务并行功能,支持多个性能或精度测评任务并行执行,大幅提升评测效率!
    • 📊 新增15+测评基准:新增docvqa、infovqa、ocrbench_v2、omnidocbench、mmmu、mmmu_pro、mmstar、videomme、FewCLUE系列、dapo_math、leval等多模态和文本测评基准!
    • 🤖 新增模型支持:新增vllm/vllm-ascend VL 离线推理模型支持!
    • 🔧 功能增强:新增流式推理开关、自定义URL路径、API key配置;支持API模型推理warmup;支持自定义多模态数据集性能测评;部分数据集支持服务化PPL(困惑度)测评等多项功能!
    • 🏗️ 基础设施优化:重构local models和api models组件,统一流式和非流式实现;重构inferencer组件,采用多进程+协程调用方式,提高并发能力;测试结果数据格式优化为jsonl,降低IO压力;采用错误码统一管理错误信息等!
  • [2025.11.25] 支持服务化模型PPL(Perplexity-based,困惑度)模式精度测评。🔥🔥🔥
  • [2025.9.08] 支持📚模拟真实业务流量:通过控制请求发送速率波动,感知在模拟真实场景下服务化的性能测评结果!🔥🔥🔥
  • [2025.8.28] 支持📚多次独立重复推理精度场景,计算pass@k/cons@k/avg@n等不同维度的精度指标!🔬🔬🔬
  • [2025.8.19]
  • [2025.7.15]
  • [2025.6.19] 支持📚性能评测结果可视化,辅助定位推理服务性能瓶颈!🔥🔥🔥
  • [2025.6.12] 支持textvqavideobenchvocalsound等多模态数据集的精度和性能评测!🔥🔥🔥
  • [2025.6.6] AISBench支持稳态性能评测,获取系统真实最佳性能,参考📚 服务化稳定状态性能测试进行快速上手! 🔥🔥🔥
  • [2025.5.16] 支持3W+高并发服务化性能评测,📚 性能指标对齐🔗 vllm benchmark,参考📚 服务化性能测评指南了解详情!🔥🔥🔥
  • [2025.4.30] 精度评测支持断点续测和失败用例重测,大幅提高精度评测鲁棒性,参考📚 中断续测 & 失败用例重测进行快速上手! 🔥🔥🔥

🌏 简介

AISBench Benchmark 是基于 OpenCompass 构建的模型评测工具,兼容 OpenCompass 的配置体系、数据集结构与模型后端实现,并在此基础上扩展了对服务化模型的支持能力。

当前,AISBench 支持两大类推理任务的评测场景:

🔍 精度测评:支持对服务化模型和本地模型在各类问答、推理基准数据集上的精度验证,覆盖文本、多模态等多种场景。

🚀 性能测评:支持对服务化模型的延迟与吞吐率评估,并可进行压测场景下的极限性能测试,支持稳态性能评测和真实业务流量模拟。

🛠️ 工具安装

✅ 环境要求

Python 版本:仅支持 Python 3.103.113.12

不支持 Python 3.9 及以下版本,也不兼容 Python 3.13 及以上版本

推荐使用 Conda 管理环境,以避免依赖冲突

conda create --name ais_bench python=3.10 -y
conda activate ais_bench

📦 安装方式(源码安装)

AISBench 当前仅提供源码安装方式,请确保安装环境联网:

git clone https://github.com/AISBench/benchmark.git
cd benchmark/
pip3 install -e ./ --use-pep517

该命令会自动安装核心依赖。 执行ais_bench -h,如果打印出AISBench评测工具的所有命令行的帮助信息,说明安装成功

⚙️ 服务化框架支持(可选)

若需评估服务化模型(如 vLLM、Triton 等),需额外安装相关依赖:

pip3 install -r requirements/api.txt
pip3 install -r requirements/extra.txt

⚙️ Huggingface多模态模型/vllm多模态离线推理支持(可选)

pip3 install -r requirements/hf_vl_dependency.txt

🔗 Berkeley Function Calling Leaderboard (BFCL) 测评支持

pip3 install -r requirements/datasets/bfcl_dependencies.txt --no-deps

重要提示:由于 bfcl_eval 会自动安装 pathlib 库,而 Python 3.5+ 环境已内置该库,为避免版本冲突,请务必使用 --no-deps 参数跳过额外依赖的自动安装。

🔗 OCRBench_v2数据集测评支持(可选)

pip3 install -r requirements/datasets/ocrbench_v2.txt

如需进一步配置、使用 CLI 或 Python 脚本发起评测任务,请参考快速入门指南

❌ 工具卸载

如需卸载 AISBench Benchmark,可执行以下命令:

pip3 uninstall ais_bench_benchmark

🚀 快速入门

命令含义

AISBench命令执行的单个或多个评测任务是由模型任务(单个或多个)、数据集任务(单个或多个)和结果呈现任务(单个)的组合定义的,AISBench的其他命令行则规定了评测任务的场景(精度评测场景、性能评测场景等)。以如下AISBench命令为例:

ais_bench --models vllm_api_general_chat --datasets demo_gsm8k_gen_4_shot_cot_chat_prompt --summarizer example

此命令没有指定其他命令行,默认是一个精度评测场景的任务,其中:

  • --models指定了模型任务,即vllm_api_general_chat模型任务。
  • --datasets指定了数据集任务,即demo_gsm8k_gen_4_shot_cot_chat_prompt数据集任务。
  • --summarizer指定了结果呈现任务,即example结果呈现任务(不指定--summarizer精度评测场景默认使用example任务),一般使用默认,不需要在命令行中指定,后续命令不指定。

多任务测评请参考:📚 精度场景的多任务测评 和 性能场景的多任务测评

如需自行组合测评任务,实现更灵活的测评方式,可参考:📚 自定义配置文件运行AISBench

任务含义查询(可选)

所选模型任务vllm_api_general_chat、数据集任务demo_gsm8k_gen_4_shot_cot_chat_prompt和结果呈现任务example的具体信息(简介,使用约束等)可以分别从如下链接中查询含义:

运行命令前置准备

  • --models: 使用vllm_api_general_chat模型任务,需要准备支持v1/chat/completions子服务的推理服务,可以参考🔗 VLLM启动OpenAI 兼容服务器启动推理服务
  • --datasets: 使用demo_gsm8k_gen_4_shot_cot_chat_prompt数据集任务,需要准备gsm8k数据集,可以从🔗 opencompass 提供的gsm8k数据集压缩包下载。将解压后的gsm8k/文件夹部署到AISBench评测工具根路径下的ais_bench/datasets文件夹下。

任务对应配置文件修改

每个模型任务、数据集任务和结果呈现任务都对应一个配置文件,运行命令前需要修改这些配置文件的内容。这些配置文件路径可以通过在原有AISBench命令基础上加上--search来查询,例如:

ais_bench --models vllm_api_general_chat --datasets demo_gsm8k_gen_4_shot_cot_chat_prompt --search

⚠️ 注意: 执行带search命令会打印出任务对应的配置文件的绝对路径。

执行查询命令可以得到如下查询结果:

╒══════════════╤═══════════════════════════════════════╤════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╕
│ Task Type     Task Name                              Config File Path                                                                                                               │
╞══════════════╪═══════════════════════════════════════╪════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╡
│ --models      vllm_api_general_chat                  /your_workspace/benchmark/ais_bench/benchmark/configs/models/vllm_api/vllm_api_general_chat.py                                 │
├──────────────┼───────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ --datasets    demo_gsm8k_gen_4_shot_cot_chat_prompt  /your_workspace/benchmark/ais_bench/benchmark/configs/datasets/demo/demo_gsm8k_gen_4_shot_cot_chat_prompt.py                   │
╘══════════════╧═══════════════════════════════════════╧════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╛
  • 快速入门中数据集任务配置文件demo_gsm8k_gen_4_shot_cot_chat_prompt.py不需要做额外修改,数据集任务配置文件内容介绍可参考📚 配置开源数据集

模型配置文件vllm_api_general_chat.py中包含了模型运行相关的配置内容,是需要依据实际情况修改的。快速入门中需要修改的内容用注释标明。

from ais_bench.benchmark.models import VLLMCustomAPIChat

models = [
    dict(
        attr="service",
        type=VLLMCustomAPIChat,
        abbr='vllm-api-general-chat',
        path="",                    # 指定模型序列化词表文件绝对路径(精度测试场景一般不需要配置)
        model="",        # 指定服务端已加载模型名称,依据实际VLLM推理服务拉取的模型名称配置(配置成空字符串会自动获取)
        stream=False,
        request_rate=0,           # 请求发送频率,每1/request_rate秒发送1个请求给服务端,小于0.1则一次性发送所有请求
        use_timestamp=False,      # 是否按数据集中 timestamp 调度请求,适用于含 timestamp 的数据集(如 Mooncake Trace)
        retry=2,                  # 每个请求最大重试次数
        api_key="",               # 自定义API key,默认是空字符串
        host_ip="localhost",      # 指定推理服务的IP
        host_port=8080,           # 指定推理服务的端口
        url="",                     # 自定义访问推理服务的URL路径(当base url不是http://host_ip:host_port的组合时需要配置, 配置后host_ip和host_port会被忽略)
        max_out_len=512,          # 推理服务输出的token的最大数量
        batch_size=1,               # 请求发送的最大并发数
        trust_remote_code=False,    # tokenizer是否信任远程代码,默认False;
        generation_kwargs=dict(   # 模型推理参数,参考VLLM文档配置,AISBench评测工具不做处理,在发送的请求中附带
            temperature=0.01,
            ignore_eos=False,
        )
    )
]

执行命令

修改好配置文件后,执行命令启动服务化精度评测:

ais_bench --models vllm_api_general_chat --datasets demo_gsm8k_gen_4_shot_cot_chat_prompt

查看任务执行细节

执行AISBench命令后,任务管理界面会在命令行实时刷新显示任务执行状态(键盘按"P"键可以暂停/恢复刷新,用于复制看板信息,再按"P"键可以继续刷新)。任务管理界面支持同时监控多个任务的详细执行状态,包括任务名称、进度、时间成本、状态、日志路径、扩展参数等信息,例如:

Base path of result&log : outputs/default/20250628_151326
Task Progress Table (Updated at: 2025-11-06 10:08:21)
Page: 1/1  Total 2 rows of data
Press Up/Down arrow to page,  'P' to PAUZE/RESUME screen refresh, 'Ctrl + C' to exit

+----------------------------------+-----------+-------------------------------------------------+-------------+-------------+-------------------------------------------------+------------------------------------------------+
| Task Name                        |   Process | Progress                                        | Time Cost   | Status      | Log Path                                        | Extend Parameters                              |
+==================================+===========+=================================================+=============+=============+=================================================+================================================+
| vllm-api-general-chat/demo_gsm8k |    547141 | [###############               ] 4/8 [0.5 it/s] | 0:00:11     | inferencing | logs/infer/vllm-api-general-chat/demo_gsm8k.out | {'POST': 5, 'RECV': 4, 'FINISH': 4, 'FAIL': 0} |
+----------------------------------+-----------+-------------------------------------------------+-------------+-------------+-------------------------------------------------+------------------------------------------------+

任务执行的细节日志会不断落盘在默认的输出路径,这个输出路径在实时刷新的看板上显示,即Log PathLog Pathlogs/infer/vllm-api-general-chat/demo_gsm8k.out)是在Base pathoutputs/default/20250628_151326)下的路径,以上述的看板信息为例,任务执行的详细日志路径为:

# {Base path}/{Log Path}
outputs/default/20250628_151326/logs/infer/vllm-api-general-chat/demo_gsm8k.out

💡 如果希望执行过程中将详细日志直接打印,执行命令时可以加上 --debug: ais_bench --models vllm_api_general_chat --datasets demo_gsm8k_gen_4_shot_cot_chat_prompt --debug

Base pathoutputs/default/20250628_151326)下包含了所有任务的执行细节,命令执行结束后所有的执行细节如下:

20250628_151326/
├── configs # 模型任务、数据集任务和结构呈现任务对应的配置文件合成的一个配置   └── 20250628_151326_29317.py
├── logs # 执行过程中日志,命令中如果加--debug,不会有过程日志落盘(都直接打印出来了)   ├── eval      └── vllm-api-general-chat
│          └── demo_gsm8k.out # 基于predictions/文件夹下的推理结果的精度评测过程的日志   └── infer
│       └── vllm-api-general-chat
│           └── demo_gsm8k.out # 推理过程日志
├── predictions
│   └── vllm-api-general-chat
│       └── demo_gsm8k.json # 推理结果(推理服务返回的所有输出)
├── results
│   └── vllm-api-general-chat
│       └── demo_gsm8k.json # 精度评测计算的原始分数
└── summary
    ├── summary_20250628_151326.csv # 最终精度分数呈现(表格格式)
    ├── summary_20250628_151326.md # 最终精度分数呈现(markdown格式)
    └── summary_20250628_151326.txt # # 最终精度分数呈现(文本格式)

⚠️ 注意: 不同评测场景落盘任务执行细节内容不同,具体请参考具体评测场景的指南。

输出结果

因为只有8条数据,会很快跑出结果,结果显示的示例如下

dataset                 version  metric   mode  vllm_api_general_chat
----------------------- -------- -------- ----- ----------------------
demo_gsm8k              401e4c   accuracy gen                   62.50

更多教程请查看我们的👉文档

🔜 即将推出

  • [已完成] ✅ AISBench完成全面重构,支持在AISBench框架下🔌插件化集成前沿测试基准,以应对业界愈发复杂多样化的测试任务;并且显著提高易用性。
  • [规划中] 持续扩展业界前沿的多模态测评能力,支持更多多模态数据集和评测场景。
  • [规划中] 提供业界主流Agent测评能力,支持Agent任务链和工具调用等复杂场景的评测。

🤝 致谢

🔝Back to top

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ais_bench_benchmark-3.1.20260611.tar.gz (701.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ais_bench_benchmark-3.1.20260611-py3-none-any.whl (1.2 MB view details)

Uploaded Python 3

File details

Details for the file ais_bench_benchmark-3.1.20260611.tar.gz.

File metadata

File hashes

Hashes for ais_bench_benchmark-3.1.20260611.tar.gz
Algorithm Hash digest
SHA256 d37ea88acdc229b9b12188b499d78896f9bb4d1de65e1bce430b68a381e5a3a0
MD5 a8c961584db450df5a52fc32c7d95b07
BLAKE2b-256 e6fcbe95463019f82b44cce305b4c9e445e36cb3acb6f9702dce6a5598667eaf

See more details on using hashes here.

File details

Details for the file ais_bench_benchmark-3.1.20260611-py3-none-any.whl.

File metadata

File hashes

Hashes for ais_bench_benchmark-3.1.20260611-py3-none-any.whl
Algorithm Hash digest
SHA256 2b10c9bd2991aad6eb0397e2a6f42c9b32ae00313c912825e224ae5188deb5d1
MD5 75571d0faceb75f10eb5b3dba25e1e94
BLAKE2b-256 3b626ecfdf2f749ee08dbbe8803f8f3912baddb059f1d47a825cdcc893650e1d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page