概述

AISBench是大模型性能测试的国产开源软件,GPUStack是大模型部署和管理的国产开源软件,两者都支持昇腾NPU卡(如910B),结合起来使用,可以使昇腾NPU卡大模型部署和大模型性能测试的效率倍增。

GPUStack下载地址:

https://gitee.com/mirrors/gpustack

AISBench下载地址:

https://gitee.com/aisbench/benchmark

AI 服务器:华为 Atlas 800I A2 推理服务器

组件

规格

CPU

鲲鹏 920(5250)

NPU

昇腾 910B4(8X32G)

内存

1024GB

硬盘

系统盘:450GB
数据盘:2*3.5TB

操作系统

openEuler 24.03 (LTS-SP1)

软件安装参考:(包括NPU驱动,FW,CANN,VLLM和GPUSTACK等)

https://zhuanlan.zhihu.com/p/1933864697607750376

AISBench和GPUStack配合可以提升大模型的部署和性能测试效率,经过验证,对AISBench测试脚本中的模型参数配置部分进行以下修改即可,包括GPUStack的模型权重目录,IP地址,端口,API_KEY,SSL验证等配置。

GPUStack部署vLLM格式模型文件

GPUStack安装好之后,可以直接通过网页下载modelscope.cn网站的vllm格式模型文件,后续的操作以vllm格式模型为例。

注:AISBench支持以vllm或mindie为后端的模型性能测试,暂不支持以llama-box和vox-box为后端的模型性能测试。

AISBench设置模型部署路径映射

首先部署vllm-ascend容器,安装步骤可以参考

https://gitee.com/mirrors/vllm-ascend

安装完成后,可以通过docker ps查看容器名称,端口和状态等信息

vllm-ascend的docker部署,国内镜像可选用docker.1ms.run

安装脚本如下,增加容器内模型缓存目录/root/.cache映射到宿主机/mnt/data/root/.cache的配置

# Update --device according to your device (Atlas A2: /dev/davinci[0-7] Atlas A3:/dev/davinci[0-15]).
# Update the vllm-ascend image according to your environment.
# Note you should download the weight to /root/.cache in advance.
export IMAGE=quay.io/ascend/vllm-ascend:v0.11.0rc1 #可按docker.1ms.run路径修改
docker run --rm \
    --name vllm-ascend \
    --shm-size=1g \
    --net=host \
    --device /dev/davinci0 \
    --device /dev/davinci1 \
    --device /dev/davinci2 \
    --device /dev/davinci3 \
    --device /dev/davinci4 \
    --device /dev/davinci5 \
    --device /dev/davinci6 \
    --device /dev/davinci7 \
    --device /dev/davinci_manager \
    --device /dev/devmm_svm \
    --device /dev/hisi_hdc \
    -v /usr/local/dcmi:/usr/local/dcmi \
    -v /usr/local/Ascend/driver/tools/hccn_tool:/usr/local/Ascend/driver/tools/hccn_tool \
    -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
    -v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \
    -v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \
    -v /etc/ascend_install.info:/etc/ascend_install.info \
    -v /mnt/data/root/.cache:/root/.cache \ #模型缓存目录映射到宿主机3.5T的NVME盘/mnt/data/root目录
    -it $IMAGE bash

然后在vllm-ascend容器中部署AISBench,具体安装步骤可以参考

https://gitee.com/aisbench/benchmark#-%E5%B7%A5%E5%85%B7%E5%AE%89%E8%A3%85

如下图,AISBench安装在vllm-ascend容器的/home/benchmark目录下

AISBench测试脚本的适配修改

精度测试

修改以下文件(按实际AISBench安装路径,例如/home/benchmark):

/home/benchmark/ais_bench/benchmark/configs/models/vllm_api/vllm_api_general_chat.py

主要修改或增加以下黄色背景内容,根据GPUStack大模型部署的参数进行修改。

from ais_bench.benchmark.models import VLLMCustomAPIChat

models = [
    dict(
        attr="service",
        type=VLLMCustomAPIChat,
        abbr='vllm-api-general-chat',
        path="",              # 指定模型序列化词表文件绝对路径(精度测试场景一般不需要配置)
        base_url="172.23.69.222",   # 新增参数,为gpustack模型地址
        model="Qwen/Qwen3-8B",      # 指定服务端已加载模型名称,依据实际VLLM推理服务拉取的模型名称配置(配置成空字符串会自动获取)
        api_key="gpustack_fe...9gb" # 新增参数,为gpustack模型秘钥

        request_rate = 0,           # 请求发送频率,每1/request_rate秒发送1个请求给服务端,小于0.1则一次性发送所有请求
        retry = 2,                  # 每个请求最大重试次数
        host_ip = "172.23.69.222",  # 指定推理服务的IP
        host_port = 80,             # 指定推理服务的端口
        enable_ssl = False,         # 新增参数,gpustack模型地址为http开头
        max_out_len = 512,          # 推理服务输出的token的最大数量
        batch_size=1,               # 请求发送的最大并发数
        trust_remote_code = True,   # gpustack模型远端执行       
        generation_kwargs = dict(   # 模型推理参数,参考VLLM文档配置,AISBench评测工具不做处理,在发送的请求中附带
            temperature = 0.5,
            top_k = 10,
            top_p = 0.95,
            seed = None,
            repetition_penalty = 1.03,
        )
    )
]

而后执行以下命令进行测试

ais_bench --models vllm_api_general_chat --datasets demo_gsm8k_gen_4_shot_cot_chat_prompt --debug

成功调用GPUStack部署的模型,测试执行成功,得到精度87.5的结果:

精度测试的更多参考:

https://gitee.com/aisbench/benchmark/blob/master/doc/users_guide/accuracy_benchmark.md

性能测试

性能测试必须要指定GPUStack部署模型的权重参数目录,否则会出现以下错误

修改以下文件(按实际AISBench安装路径,例如/home/benchmark):

/home/benchmark/ais_bench/benchmark/configs/models/vllm_api/vllm_api_stream_chat.py

主要修改或增加以下黄色背景内容,根据实际GPUStack大模型部署的参数进行修改。

from ais_bench.benchmark.models import VLLMCustomAPIChatStream
from ais_bench.benchmark.utils.model_postprocessors import extract_non_reasoning_content

models = [
    dict(
        attr="service",
        type=VLLMCustomAPIChatStream,
        abbr='vllm-api-stream-chat',
        path="/root/.cache/modelscope/hub/models/Qwen/Qwen3-8B",  #根据gpustack模型权重参数目录进行配置
        model="Qwen/Qwen3-8B",
        api_key="gpustack_fe...9gb" # 新增参数,为gpustack模型秘钥
        request_rate = 0,
        retry = 2,
        host_ip = "172.23.69.222",  # 指定推理服务的IP
        host_port = 80,             # 指定推理服务的端口
        enable_ssl = False,         # 新增参数,gpustack模型地址为http开头
        max_out_len = 512,
        batch_size=1,
        trust_remote_code = True,   # gpustack模型远端执行
        generation_kwargs = dict(
            temperature = 0.5,
            top_k = 10,
            top_p = 0.95,
            seed = None,
            repetition_penalty = 1.03,
        ),
        pred_postprocessor=dict(type=extract_non_reasoning_content)
    )
]

而后执行以下命令进行测试

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

成功调用GPUStack部署的模型,测试执行成功,得到E2EL、TTFT、TPOT、Token Throughput等结果:

性能测试的更多参考:

https://gitee.com/aisbench/benchmark/blob/master/doc/users_guide/performance_benchmark.md

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐