离线推理全流程&模型调优

简介: 本指南详细介绍小模型推理方案,涵盖从模型转换到推理的全流程。包括ATC架构转换、ModelZoo-PyTorch指导文档、ONNX导出与优化、离线及在线推理等环节。特别针对Chinese_CLIP模型,提供上机操作指导,如模型支持度分析、onnx-sim简化、msit surgeon优化、AOE自动调优和模型压缩等步骤。

整体概述

小模型推理方案:

ATC转换架构图:

ModelZoo-PyTorch指导文档:https://gitee.com/ascend/ModelZoo-PyTorch/blob/master/ACL_PyTorch/docs/README.md

模型推理

离线推理

导出Onnx

参考链接:ONNX的导出

Onnx转om

参考链接1:Onnx转Om
参考链接2:ATC工具介绍

离线推理

参考链接:离线推理

Chinese_CLIP上机操作

Chinese_CLIP模型介绍

参考链接

传统模型基于昇腾迁移适配全流程

模型支持度分析

msit analyze

使用onnx-sim对onnx模型进行简化

export bs=24
onnxsim models/vit-b-16.txt.fp32.onnx models/vit-b-16.txt.fp32.bs${bs}.sim.onnx --overwrite-input-shape "text:${bs},512"


Simplifying...
Finish! Here is the difference:
┏━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━┓
┃             ┃ Original Model ┃ Simplified Model ┃
┡━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━┩
│ Add                │ 122            │ 122              │
│ Cast               │ 4              │ 1                │
│ Concat             │ 48             │ 0                │
│ Constant           │ 532            │ 207              │
│ ConstantOfShape    │ 1              │ 0                │
│ Div                │ 24             │ 24               │
│ Equal              │ 1              │ 1                │
│ Erf                │ 12             │ 12               │
│ Expand             │ 1              │ 0                │
│ Gather             │ 101            │ 2                │
│ LayerNormalization │ 25             │ 25               │
│ MatMul             │ 97             │ 97               │
│ Mul                │ 25             │ 25               │
│ Not                │ 1              │ 1                │
│ Range              │ 1              │ 0                │
│ Reshape            │ 48             │ 48               │
│ Shape              │ 99             │ 0                │
│ Softmax            │ 12             │ 12               │
│ Sub                │ 1              │ 1                │
│ Transpose          │ 48             │ 48               │
│ Unsqueeze          │ 99             │ 1                │
│ Model Size         │ 392.3MiB       │ 461.4MiB         │
└────────────────────┴────────────────┴──────────────────┘

使用msit surgeon使能onnx模型基于昇腾芯片的优化(onnx->onnx)

msit surgeon功能指导:链接

  • msit surgeon安装
    # 安装
    msit install surgeon 
    # 检查安装是否成功
    msit surgeon check
    
  • 了解什么是知识库:链接

  • 各个命令的使用示例

模型转换(onnx->om)

atc工具使用指导:链接

AOE自动调优(onnx->om)

使用指导:链接

模型压缩:

官方指导文档:链接

离线推理

Chinese_CLIP模型推理指导

ais_bench使用安装:链接

推理执行:

在线推理

  • torch_npu单算子推理:
    开源样例 vs torch_npu适配版本
执行在线推理:
![](https://img2024.cnblogs.com/blog/3579592/202506/3579592-20250620160735927-758105881.png)


**跑了一把cpu版本和npu版本,发现最后返回logits有差异,需要进一步做精度对齐分析。**
  • torchair图模式推理:
    参考modelzoo适配:链接

    开源样例 vs torchair适配版本

执行推理:
![](https://img2024.cnblogs.com/blog/3579592/202506/3579592-20250620160905376-95291339.png)

报错整理

  • git clone 报错
    解决方案:export GIT_SSL_NO_VERIFY=1

```

  • No module named 'auto_optimizer'
    auto_optimizer是昇腾基于onnx的改图工具,需要安装msit install surgeon即可。
  • 执行msit debug compare报错
    比对结果输出路径要先创建出来
相关文章
|
2月前
|
编解码 人工智能 JSON
飞桨x昇腾生态适配方案:10_ONNX转OM
本章节主要介绍如何将ONNX模型转化为昇腾AI处理器支持的OM模型,并进行离线推理。通过昇腾张量编译器(ATC),可实现静态OM、动态BatchSize、动态分辨率、动态维度及动态shape等多种模型转换。文中详细说明了ATC工具的使用方法、参数配置、命令格式以及常见问题解决方法,同时提供了具体示例和可视化工具辅助输入参数确认,帮助用户高效完成模型转换与部署。
249 0
|
24天前
|
机器学习/深度学习 数据采集 调度
bp神经网络电力系统短期负荷预测
bp神经网络电力系统短期负荷预测
121 60
|
2月前
|
人工智能 PyTorch TensorFlow
AI界的"翻译官":ONNX如何让各框架模型和谐共处
还在为不同框架间的模型转换头疼?ONNX让你在PyTorch训练的模型可以无缝在TensorFlow部署,甚至能让模型在手机上飞速运行。本文带你了解这个AI领域的'瑞士军刀',轻松实现跨平台高性能模型部署。
189 12
|
1月前
|
搜索推荐 安全 API
聚合电商API:一键连接多平台数据
聚合电商API接口平台整合淘宝、天猫、京东等多平台API,提供一站式数据服务。核心功能包括数据整合、多平台搜索、详细解析与定制化服务,助力商家高效管理订单、优化商品推荐及支持数据驱动决策。平台注重智能化、个性化与全渠道发展,保障数据安全,推动业务增长。
98 2
|
2月前
|
API Python
飞桨x昇腾生态适配方案:13_API离线推理
ais_bench 提供了基于昇腾硬件的 Python API,用于离线模型(.om模型)推理。支持静态与动态API场景,如单个或多个OM模型推理。通过 `InferSession` 类加载模型并执行推理,可灵活处理输入输出形状转换。示例代码涵盖图片读取、形状调整、多模型串联推理及资源释放等操作,满足多样化推理需求。
155 26
|
4月前
|
PyTorch 编译器 算法框架/工具
NPU上如何使能pytorch图模式
本文介绍了PyTorch的`torch.compile`技术和TorchAir的相关内容。`torch.compile`通过将动态图转换为静态图并结合JIT编译,提升模型推理和训练效率。示例代码展示了如何使用`torch.compile`优化模型。TorchAir是昇腾为PyTorch提供的图模式扩展库,支持在昇腾设备上进行高效训练和推理。它基于Dynamo特性,将计算图转换为Ascend IR,并通过图引擎优化执行。文章还提供了TorchAir的使用示例及功能配置方法。
|
4月前
|
并行计算 开发工具 git
NPU上运行onnxruntime
在Ascend环境下使用onnxruntime推理时,若安装了GPU版本的onnxruntime(`onnxruntime-gpu`),可能会因缺少CUDA组件报错。正确做法是卸载`onnxruntime-gpu`,并根据官方文档适配NPU,通过源码构建支持CANN的onnxruntime whl包。具体步骤为克隆onnxruntime源码,使用`--use_cann`参数构建,并安装生成的whl包。最后,配置CANNExecutionProvider进行推理。
|
5月前
|
机器学习/深度学习 自然语言处理 算法
生成式 AI 大语言模型(LLMs)核心算法及源码解析:预训练篇
生成式 AI 大语言模型(LLMs)核心算法及源码解析:预训练篇
526 0
|
11月前
|
人工智能 Java 语音技术
开源上新|FunASR离线文件转写GPU软件包1.0
开源上新|FunASR离线文件转写GPU软件包1.0
WK
|
10月前
|
算法 决策智能
PSO算法的缺点有哪些
粒子群优化(PSO)算法是一种基于群体协作的随机搜索方法,源自对鸟群觅食行为的模拟。尽管其在多领域展现了独特优势,但也存在显著缺点:易陷局部最优、搜索精度不足、高度依赖参数设置、理论基础薄弱、适用范围有限及早熟收敛问题。针对这些问题,可通过结合其他优化算法、调整参数及改进更新公式等方式提升其性能。
WK
404 0