作者:昇腾实战派

一、背景概述

ais_bench 是专门用于评估模型在Ascend硬件上推理精度和性能的AI基准测试工具。精度验证通过对比模型输出与预期结果,确保模型部署的准确性;性能测试则衡量推理速度、吞吐量等关键指标,为优化提供依据。本文档基于官方实践整理,提供完整的测试流程。

二、ais_bench精度验证

服务端准备

确保模型服务已正确部署并启动,具体部署方法可参考博客: 【vLLM-环境部署指导】部署指导汇总

客户端准备

  1. 安装 ais_bench
    在独立容器中安装工具,参考官方文档:aisbench安装
  2. 配置数据集
    下载开源数据集(如CEval、MMLU等),并将数据文件统一放置于 ais_bench/datasets/ 目录下。参考文档:开源数据集下载
  3. 验证服务端连接
    使用以下命令测试服务端是否可达:
curl -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{"model": "qwen","messages": [{"role": "user", "content": "请介绍一下杭州"}],"max_tokens": 60}' http://0.0.0.0:1234/v1/chat/completions
  1. 修改测试配置
    编辑 ais_bench/benchmark/configs/models/vllm_api/vllm_api_general_chat.py,调整参数如下(重点修改batch_size以匹配数据集建议值):
from ais_bench.benchmark.models import VLLMCustomAPIChat

models = [
    dict(
        attr="service",
        type=VLLMCustomAPIChat,
        abbr='vllm-api-general-chat',
        path="",
        model="",
        request_rate = 0,
        retry = 2,
        host_ip = "0.0.0.0",
        host_port = 1234,
        max_out_len = 32768,
        batch_size=32, #更改此处batch_size
        trust_remote_code=False,
        generation_kwargs = dict(
            temperature = 0.6,
            top_p = 0.95,
            seed = None,
            repetition_penalty = 1.03,
        )
    )
]
  1. 执行精度测试
    运行以下命令对常用基准数据集进行测试(支持断点续推参数 --reuse <时间戳>):
ais_bench --models vllm_api_general_chat --datasets ceval_gen_0_shot_cot_chat_prompt.py --mode all --dump-eval-details --merge-ds
ais_bench --models vllm_api_general_chat --datasets mmlu_gen_0_shot_cot_chat_prompt.py --mode all --dump-eval-details --merge-ds
ais_bench --models vllm_api_general_chat --datasets gpqa_gen_0_shot_str.py --mode all --dump-eval-details --merge-ds
ais_bench --models vllm_api_general_chat --datasets math500_gen_0_shot_cot_chat_prompt.py --mode all --dump-eval-details --merge-ds
ais_bench --models vllm_api_general_chat --datasets livecodebench_code_generate_lite_gen_0_shot_chat.py --mode all --dump-eval-details --merge-ds
ais_bench --models vllm_api_general_chat --datasets aime2024_gen_0_shot_chat_prompt.py --mode all --dump-eval-details --merge-ds

三、性能测试

在精度验证基础上,增加 --mode perf 参数切换至性能测试模式。示例命令如下:

ais_bench --models vllm_api_general_chat --datasets demo_gsm8k_gen_4_shot_cot_chat_prompt --summarizer default_perf --mode perf

注意事项

  • 数据集生成:性能测试推荐使用合成数据集(如GSM8K格式),可通过调整输入/输出长度和并发数模拟真实场景。
  • 参数调优:根据硬件资源调整 batch_size 和 request_rate,避免资源过载。
  • 高级功能:如需启用Prefix Cache等优化(仅支持P节点、上下文<16K),需在服务端配置中修改 plugin_params 并关闭冲突选项(如 dpScheduling: false)。

通过上述步骤,可系统化完成模型精度与性能验证,为部署优化提供数据支撑。

Logo

昇腾计算产业是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI计算基础设施、行业应用及服务,https://devpress.csdn.net/organization/setting/general/146749包括昇腾系列处理器、系列硬件、CANN、AI计算框架、应用使能、开发工具链、管理运维工具、行业应用及服务等全产业链

更多推荐