mcpField
A
ais-bench

ais-bench

github.com/ascend-ai-coding测试与质量17864 次安装2 周前更新
代码仓库

关于 ais-bench

ais-bench 是面向 Ascend NPU 上 AI 模型的评测工具,基于 OpenCompass。它覆盖准确率与性能测试,并支持文本、多模态、多轮对话和函数调用基准。

主要功能

  1. 01准确率与性能评测
  2. 02文本及多模态基准
  3. 03时延、吞吐与压力测试
  4. 04稳态性能及流量模拟
  5. 05多模型与数据集并行评测

适用场景

  1. 01比较本地模型和服务模型的问答表现
  2. 02测量推理服务的时延与吞吐
  3. 03模拟实际业务流量进行性能测试

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/ascend-ai-coding/awesome-ascend-skills --skill ais-bench

安装后在 Claude Code 中输入/ais-bench确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

assets/
custom_mcq_template.csv
custom_meta_template.json
custom_multimodal_template.jsonl
custom_qa_template.jsonl
model_config_template.py
references/
cli-reference.md
model-configs.md
scripts/
check_env.sh
parse_results.py
run_accuracy_test.sh
run_performance_test.sh

详细介绍

AISBench 基准测试工具

AISBench Benchmark 是一款基于 OpenCompass 构建的模型评估工具,支持在 Ascend NPU 上对 AI 模型进行准确性和性能测试。

概览

  • 准确性评估:在各种问答和推理基准数据集上,对服务部署模型和本地模型进行准确性验证,涵盖文本、多模态等场景。
  • 性能评估:评估服务部署模型的延迟和吞吐量,进行压力测试场景下的极限性能测试、稳态性能评估,以及真实业务流量模拟。
支持的场景
场景说明
准确性评估模型在文本/多模态数据集上的准确性
性能评估延迟、吞吐量、压力测试
稳态性能获取系统的真实最佳性能
真实流量模拟模拟真实业务流量模式
多轮对话评估多轮对话模型
函数调用(BFCL)函数调用能力评估
支持的基准测试
  • 文本:GSM8K、MMLU、Ceval、FewCLUE 系列、dapo_math、leval
  • 多模态:docvqa、infovqa、ocrbench_v2、omn​​idocbench、mmmu、mmmu_pro、mmstar、videomme、textvqa、videobench、vocalsound
  • 多轮对话:sharegpt、mtbench
  • 函数调用:BFCL(Berkeley Function Calling Leaderboard)

安装

环境要求

Python 版本:仅支持 Python 3.10、3.11 或 3.12。

# Create conda environment
conda create --name ais_bench python=3.10 -y
conda activate ais_bench
从源代码安装
git clone https://github.com/AISBench/benchmark.git
cd benchmark/
pip3 install -e ./ --use-pep517

验证安装:

ais_bench -h
可选依赖项
# For service-deployed model evaluation (vLLM, Triton, etc.)
pip3 install -r requirements/api.txt
pip3 install -r requirements/extra.txt

# For Huggingface multimodal / vLLM offline inference
pip3 install -r requirements/hf_vl_dependency.txt

# For BFCL Function Calling evaluation
pip3 install -r requirements/datasets/bfcl_dependencies.txt --no-deps

快速入门

基本命令结构
ais_bench --models <model_task> --datasets <dataset_task> [--summarizer example]
  • --models:指定模型任务配置
  • --datasets:指定数据集任务配置
  • --summarizer:结果呈现任务(默认值:example)
查找配置文件
# List all available task configurations
ais_bench --models vllm_api_general_chat --datasets demo_gsm8k_gen_4_shot_cot_chat_prompt --search
示例:服务模型准确性评估
  1. 启动 vLLM 推理服务(请参阅 vLLM 文档)

  2. 准备数据集:

    • 从 opencompass 下载 GSM8K
    • 解压到 ais_bench/datasets/gsm8k/
  3. 修改模型配置(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="",
            stream=False,
            request_rate=0,
            retry=2,
            api_key="",
            host_ip="localhost",
            host_port=8080,
            url="",
            max_out_len=512,
            batch_size=1,
            trust_remote_code=False,
            generation_kwargs=dict(
                temperature=0.01,
                ignore_eos=False,
            )
        )
    ]
    
  4. 运行评估:

    ais_bench --models vllm_api_general_chat --datasets demo_gsm8k_gen_4_shot_cot_chat_prompt
    
输出结果
dataset                 version  metric   mode  vllm_api_general_chat
----------------------- -------- -------- ----- ----------------------
demo_gsm8k              401e4c   accuracy gen                   62.50

模型任务类型

服务部署模型
模型类型说明
vllm_api_general_chat通用 vLLM API 聊天模型
vllm_api_function_call_chat函数调用模型(BFCL)
triton_api_*Triton 推理服务
本地模型
模型类型说明
hf_*HuggingFace 模型
vllm_offline_*vLLM 离线推理

性能评估

关键指标
指标说明
TTFT首个 Token 的生成时间
TPOT每个输出 Token 的生成时间
吞吐量每秒处理的 Token 数
延迟请求延迟(P50、P90、P99)
性能测试示例
ais_bench --models vllm_api_general_chat --datasets custom_performance \
    --mode performance --concurrency 100
稳态性能

用于获取系统的真实最佳性能:

ais_bench --models vllm_api_general_chat --datasets sharegpt \
    --stable-stage --duration 300
真实流量模拟
ais_bench --models vllm_api_general_chat --datasets custom \
    --rps-distribution rps_config.json

多任务评估

多个模型
ais_bench --models model1 model2 model3 --datasets dataset1
多个数据集
ais_bench --models model1 --datasets dataset1 dataset2 dataset3
并行执行
ais_bench --models model1 model2 --datasets dataset1 dataset2 --parallel 4

自定义数据集

自定义性能数据集

创建包含自定义请求的 JSONL 文件:

{"input": "Your prompt here", "max_output_length": 512}
自定义准确性数据集

请参阅自定义数据集指南


输出结构

outputs/default/20250628_151326/
├── configs/           # Combined configuration
├── logs/              # Execution logs
│   ├── eval/          # Evaluation logs
│   └── infer/         # Inference logs
├── predictions/       # Raw inference results
├── results/           # Calculated scores
└── summary/           # Final summaries
    ├── summary_*.csv
    ├── summary_*.md
    └── summary_*.txt

任务管理界面

执行期间,实时任务管理界面会显示:

  • 任务名称和进度
  • 耗时和状态
  • 日志路径
  • 扩展参数

控制项:

  • P 键:暂停/恢复屏幕刷新
  • Ctrl+C:退出

常用 CLI 选项

选项描述
--models模型任务名称
--datasets数据集任务名称
--summarizer结果摘要器
--search列出配置文件路径
--debug打印详细日志
--mode评估模式(准确率/性能)
--parallel并行任务数
--resume从断点恢复
--failed-only仅重新运行失败的用例

高级功能

断点续跑
ais_bench --models model1 --datasets dataset1 --resume outputs/default/20250628_151326
失败用例重跑
ais_bench --models model1 --datasets dataset1 --failed-only --resume outputs/default/20250628_151326
多文件数据集合并

对于包含多个文件的数据集(如 MMLU):

ais_bench --models model1 --datasets mmlu_merged
pass@k 重复推理
ais_bench --models model1 --datasets dataset1 --repeat-n 5

故障排除

安装问题
  1. Python 版本不匹配:使用 Python 3.10/3.11/3.12
  2. 依赖冲突:使用 conda 环境
  3. bfcl_eval pathlib 问题:使用 --no-deps 标志
运行时问题
  1. 模型连接失败:检查 host_ip、host_port 和服务状态
  2. 未找到数据集:将数据集下载到 ais_bench/datasets/
  3. 内存问题:减小 batch_size 或使用较小的数据集

辅助脚本

用于常见操作的快捷实用脚本:

脚本描述
scripts/check_env.sh验证环境设置
scripts/run_accuracy_test.sh快速准确率测试运行器
scripts/run_performance_test.sh快速性能测试运行器
scripts/parse_results.py解析并汇总结果
# Check environment
bash scripts/check_env.sh

# Quick accuracy test
bash scripts/run_accuracy_test.sh vllm_api_general_chat demo_gsm8k --host-port 8080

# Quick performance test
bash scripts/run_performance_test.sh vllm_api_general_chat sharegpt --concurrency 100

# Parse results
python scripts/parse_results.py outputs/default/20250628_151326

参考资料

特定用例的详细文档:

  • 模型配置参考:所有模型类型(vLLM、MindIE、Triton、TGI、离线)及参数说明
  • CLI 参考:准确率和性能评估的完整 CLI 选项

模板

可直接用于自定义评估的模板:

模板描述
assets/model_config_template.py模型配置模板
assets/custom_qa_template.jsonlQA 数据集模板
assets/custom_mcq_template.csv选择题数据集模板
assets/custom_meta_template.json数据集元数据模板

评论

支持 Markdown