飞桨x昇腾生态适配方案:11_静态OM推理

简介: 昇腾AI推理工具`ais_bench`基于ACL开发,支持命令行快速推理与性能测试(吞吐率、时延等),并提供相关API。用户需下载适配环境的`aclruntime`和`ais_bench`的whl包后通过pip安装。设置环境变量后,可通过多种场景使用工具:纯推理(默认输入全0数据)、调试模式(获取详细参数与耗时信息)、文件/文件夹输入(指定Numpy文件或目录)、以及多Device并行推理。例如,BERT模型需按顺序传入三个文件夹对应其输入参数。工具输出包括吞吐率、耗时等关键指标,助力高效模型性能评估。

推理环境准备

ais_bench推理工具简介

昇腾离线OM模型的推理后端是ACL(Ascend Computing Language),其底层采用C实现,后来在ACL基础上又做了一套Python接口,命名为pyACL,为了方便开发,华为工程师又基于pyacl开发出一款推理工具ais_bench,此工具支持使用命令进行快捷地推理,并测试推理模型的性能(包括吞吐率、时延),同时ais_bench工具也对外开放推理相关的API。

推理工具下载

下载aclruntime和ais_bench推理程序的whl包,aclruntime包请根据当前环境选择适配版本:

aclruntime-0.0.2-cp39-cp39-linux_x86_64.whl

aclruntime-0.0.2-cp39-cp39-linux_aarch64.whl

ais_bench-0.0.2-py3-none-any.whl

推理工具安装

执行如下命令,进行安装:

# 安装aclruntime
pip3 install aclruntime-0.0.2-cp39-cp39-linux_aarch64.whl
# 安装ais_bench推理程序
pip3 install ais_bench-0.0.2-py3-none-any.whl

分别提示如下信息则表示安装成功:

# 成功安装aclruntime
Successfully installed aclruntime-{version}
# 成功安装ais_bench推理程序
Successfully installed ais_bench-{version}

设置环境变量

source /usr/local/Ascend/ascend-toolkit/set_env.sh

静态OM推理

纯推理场景

该场景主要用于模型性能测试。默认情况下,构造全为0的数据送入模型推理。
示例命令:

python3 -m ais_bench --model ./inference/om/det.om --output ./output/ --outfmt BIN --loop 5

推理结果:
01_纯推理场景.png

调试模式

开启debug调试模式。
示例命令:

python3 -m ais_bench --model ./inference/om/det.om --output ./output/ --debug 1

调试模式开启后会增加更多的打印信息,包括:

  • 模型的输入输出参数信息
    02_模型的输入输出参数.png
  • 详细的推理耗时信息
    03_推理耗时.png
  • 模型输入输出等具体操作信息

    文件输入场景

    示例命令:
python3 -m ais_bench --model ./inference/om/det.om --input ./inference/image.npy

推理结果:
04_文件输入场景.png

文件夹输入场景

使用--input参数指定模型输入文件所在目录,多个目录之间通过“,”进行分隔。
本场景会根据文件输入size和模型实际输入size进行组Batch。
示例命令:

python3 -m ais_bench --model ./inference/om/det.om --input ./inference/input/

推理结果:
05_文件夹输入场景.png

特殊说明:
模型输入需要与传入文件夹的个数一致。
例如,bert模型有三个输入,则必须传入3个文件夹,且三个文件夹分别对应模型的三个输入,顺序要对应。 模型输入参数的信息可以通过开启调试模式查看,bert模型的三个输入依次为input_ids、 input_mask、 segment_ids,所以依次传入三个文件夹:

  • 第一个文件夹“./data/SQuAD1.1/input_ids",对应模型第一个参数"input_ids"的输入
  • 第二个文件夹"./data/SQuAD1.1/input_mask",对应模型第二个参数"input_mask"的输入
  • 第三个文件夹"./data/SQuAD1.1/segment_ids",对应模型第三个参数"segment_ids"的输入
python3 -m ais_bench --model ./save/model/BERT_Base_SQuAD_BatchSize_1.om --input ./data/SQuAD1.1/input_ids,./data/SQuAD1.1/input_mask,./data/SQuAD1.1/segment_ids

多Device场景

多Device场景下,可以同时指定多个Device进行推理测试。
示例命令:

python3 -m ais_bench --model ./inference/om/det.om --input ./inference/input/ --device 1,2

推理结果:
06_多Device场景.png

输出结果依次展示每个Device的推理测试结果,其中结果最后展示包括throughput(吞吐率)、start_time(测试启动时间)、end_time(测试结束时间)以及summary throughput(吞吐率汇总)。

目录
相关文章
|
2月前
|
负载均衡 Docker Python
vLLM-Ascend 安装部署与环境配置指南
vLLM-Ascend 是 vLLM 项目专为华为昇腾 NPU 设计的硬件插件,支持主流大模型与多模态架构,提供高性能推理能力。项目结构清晰,涵盖核心算子、工具脚本与容器化部署方案,兼容单/多节点环境,助力高效构建昇腾上的 AI 推理服务。
606 1
|
9月前
|
编解码 人工智能 API
飞桨x昇腾生态适配方案:12_动态OM推理
本文介绍了基于Ascend AI平台的OM模型动态推理方法,包括动态BatchSize、动态分辨率、动态维度及动态Shape四种场景,支持固定模式与自动设置模式。通过`ais_bench`工具实现推理,提供示例命令及输出结果说明,并解决常见问题(如环境变量未设置、输入与模型不匹配等)。此外,还提供了API推理指南及参考链接,帮助用户深入了解ONNX离线推理流程、性能优化案例及工具使用方法。
879 0
|
9月前
|
API Python
飞桨x昇腾生态适配方案:13_API离线推理
ais_bench 提供了基于昇腾硬件的 Python API,用于离线模型(.om模型)推理。支持静态与动态API场景,如单个或多个OM模型推理。通过 `InferSession` 类加载模型并执行推理,可灵活处理输入输出形状转换。示例代码涵盖图片读取、形状调整、多模型串联推理及资源释放等操作,满足多样化推理需求。
643 26
|
9月前
|
编解码 人工智能 JSON
飞桨x昇腾生态适配方案:10_ONNX转OM
本章节主要介绍如何将ONNX模型转化为昇腾AI处理器支持的OM模型,并进行离线推理。通过昇腾张量编译器(ATC),可实现静态OM、动态BatchSize、动态分辨率、动态维度及动态shape等多种模型转换。文中详细说明了ATC工具的使用方法、参数配置、命令格式以及常见问题解决方法,同时提供了具体示例和可视化工具辅助输入参数确认,帮助用户高效完成模型转换与部署。
1901 0
|
10月前
|
容器
vllm+vllm-ascend本地部署QwQ-32B
本指南介绍如何下载、安装和启动基于Ascend的vLLM模型。首先,可通过华为镜像或Hugging Face下载预训练模型;其次,安装vllm-ascend,支持通过基础镜像(如`quay.io/ascend/vllm-ascend:v0.7.3-dev`)或源码编译方式完成;最后,使用OpenAI兼容接口启动模型,例如运行`vllm serve`命令,设置模型路径、并行规模等参数。适用于大模型推理场景,需注意显存需求(如QwQ-32B需70G以上)。
3981 17
|
6月前
|
存储 机器学习/深度学习 人工智能
MXFP4量化:如何在80GB GPU上运行1200亿参数的GPT-OSS模型
GPT-OSS通过MXFP4量化技术实现1200亿参数模型在单个80GB GPU上的高效运行,将权重压缩至每参数4.25位,大幅降低内存需求,同时保持高精度和竞争力的基准性能,为大规模模型部署提供了新思路。
588 13
MXFP4量化:如何在80GB GPU上运行1200亿参数的GPT-OSS模型
|
11月前
|
算法 PyTorch 算法框架/工具
昇腾 msmodelslim w8a8量化代码解析
msmodelslim w8a8量化算法原理和代码解析
904 5
|
8月前
|
并行计算 PyTorch 开发工具
基于昇腾适配DeepMind团队发布的蛋白质结构预测模型OpenFold
OpenFold是一种基于深度学习的蛋白质结构预测模型,广泛应用于蛋白质从头预测、功能位点解析、突变效应模拟等领域。该模型的核心目标是通过大规模预训练和多阶段优化,从氨基酸序列中高效、准确地推断蛋白质的三维结构。
基于昇腾适配DeepMind团队发布的蛋白质结构预测模型OpenFold
|
8月前
|
缓存 PyTorch 算法框架/工具
离线推理精度问题分析
传统模型迁移到昇腾设备上出现了精度问题,介绍精度问题的定位方法和解决方案,重点介绍了精度问题的定位定界方法。
离线推理精度问题分析
|
9月前
|
存储 算法
飞桨x昇腾生态适配方案:09_Paddle转ONNX
本节主要介绍如何将 PP-OCRv4 模型转化为 ONNX 模型,包括环境准备、模型下载、训练模型转 inference 模型及最终转为 ONNX 格式的过程。首先需安装 Paddle2ONNX 和 ONNXRuntime,接着下载并解压训练模型。通过 `export_model.py` 脚本将训练模型转化为 inference 模型,生成包含结构和参数的文件。最后使用 Paddle2ONNX 工具完成到 ONNX 格式的转换,并可选地使用 onnxslim 进行模型优化。各步骤均提供详细命令与参数说明,便于实际操作与部署。
474 9