A comprehensive toolkit for large model evaluation, commit id: e67dfeb3068480f2b9b17c13c4904ac646aab24b, commit date: Thu Jun 11 16:16:00 2026 +0800
Project description
❗重要
⭐️收藏项目,你将能第一时间获取 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]
- 新增Function Call专用模型配置 vllm_api_function_call_chat,支持 BFCL 函数调用能力评估 🔥🔥🔥
- 提供工具支持的性能测试规格说明,优化推理集群场景工具内存占用及性能计算。最大规格场景(250K条请求,输入/输出token 4K/4K)内存占用降低60%,内存占用小于64GB;性能结果计算效率提升20倍。🚀🚀🚀
- [2025.7.15]
- [2025.6.19] 支持📚性能评测结果可视化,辅助定位推理服务性能瓶颈!🔥🔥🔥
- [2025.6.12] 支持textvqa、videobench和vocalsound等多模态数据集的精度和性能评测!🔥🔥🔥
- [2025.6.6] AISBench支持稳态性能评测,获取系统真实最佳性能,参考📚 服务化稳定状态性能测试进行快速上手! 🔥🔥🔥
- [2025.5.16] 支持3W+高并发服务化性能评测,📚 性能指标对齐🔗 vllm benchmark,参考📚 服务化性能测评指南了解详情!🔥🔥🔥
- [2025.4.30] 精度评测支持断点续测和失败用例重测,大幅提高精度评测鲁棒性,参考📚 中断续测 & 失败用例重测进行快速上手! 🔥🔥🔥
🌏 简介
AISBench Benchmark 是基于 OpenCompass 构建的模型评测工具,兼容 OpenCompass 的配置体系、数据集结构与模型后端实现,并在此基础上扩展了对服务化模型的支持能力。
当前,AISBench 支持两大类推理任务的评测场景:
🔍 精度测评:支持对服务化模型和本地模型在各类问答、推理基准数据集上的精度验证,覆盖文本、多模态等多种场景。
🚀 性能测评:支持对服务化模型的延迟与吞吐率评估,并可进行压测场景下的极限性能测试,支持稳态性能评测和真实业务流量模拟。
🛠️ 工具安装
✅ 环境要求
Python 版本:仅支持 Python 3.10、 3.11 或 3.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 Path。Log Path(logs/infer/vllm-api-general-chat/demo_gsm8k.out)是在Base path(outputs/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 path(outputs/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任务链和工具调用等复杂场景的评测。
🤝 致谢
- 本项目代码基于🔗 OpenCompass做拓展开发。
- 本项目部分数据集和提示词实现修改自simple-evals。
- 本项目代码中打点的性能指标与VLLM Benchmark对齐。
- 本项目的BFCL函数调用能力评估功能基于 Berkeley Function Calling Leaderboard (BFCL) 实现。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ais_bench_benchmark-3.1.20260611.tar.gz.
File metadata
- Download URL: ais_bench_benchmark-3.1.20260611.tar.gz
- Upload date:
- Size: 701.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d37ea88acdc229b9b12188b499d78896f9bb4d1de65e1bce430b68a381e5a3a0
|
|
| MD5 |
a8c961584db450df5a52fc32c7d95b07
|
|
| BLAKE2b-256 |
e6fcbe95463019f82b44cce305b4c9e445e36cb3acb6f9702dce6a5598667eaf
|
File details
Details for the file ais_bench_benchmark-3.1.20260611-py3-none-any.whl.
File metadata
- Download URL: ais_bench_benchmark-3.1.20260611-py3-none-any.whl
- Upload date:
- Size: 1.2 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2b10c9bd2991aad6eb0397e2a6f42c9b32ae00313c912825e224ae5188deb5d1
|
|
| MD5 |
75571d0faceb75f10eb5b3dba25e1e94
|
|
| BLAKE2b-256 |
3b626ecfdf2f749ee08dbbe8803f8f3912baddb059f1d47a825cdcc893650e1d
|