SuperAPI AI 工具集

huawei-cloud-ascend-small-model-migrate

智能体与模型

查看项目

更新于 10-15 16:24

技能介绍

用途

本技能用于指导将视觉类小模型迁移到昇腾 NPU,覆盖从模型结构分析、迁移验证、性能数据采集、性能分析到优化建议的完整工作流。适用于将视觉模型从 GPU 迁移到昇腾 NPU、在昇腾硬件上部署 YOLO/ResNet/UNet 模型、优化小模型在 NPU 上的性能、验证迁移后的模型精度,以及识别计算机视觉模型的性能瓶颈。

主要能力

技能按五个步骤组织:

  1. 模型结构分析:读取模型配置,分析模型实现来源(transformers 或本地目录)、架构类型(Decoder-only / Encoder-only / Encoder-Decoder)、逐层加载需求、MoE 融合权重风险,并输出结构分析报告与迁移路径建议。
  2. 环境准备与迁移验证:配置 torch_npu 环境,运行推理测试并验证精度,输出迁移验证报告。
  3. 性能数据采集:使用 profiling 技能采集算子性能数据(板端 device 模式或仿真 simulator 模式),输出性能数据位置。
  4. 性能分析:查询分析 Top N 算子耗时、按算子类型分组统计、AI_CPU / AI_CORE / AI_VECTOR_CORE 分布,识别瓶颈算子与表现良好的算子。
  5. 优化建议:针对瓶颈算子提供优化方案,可选进行算子优化。

技能还包含性能基线对比模块(对比 YOLOv8、ResNet50、UNet、EfficientNet 等常见模型在昇腾 NPU 上的基线数据,生成性能差距分析与优化潜力评估)和资源估算与规划工具(预测 NPU 内存占用、推理时间,推荐批大小,提供多卡扩展指导与成本收益分析)。

使用方式

前置条件:Python 3.8+、torch_npu >= 2.0.0、msprof >= 7.0.0、ultralytics >= 8.0.0(YOLO 模型)、已配置昇腾 NPU 环境、待迁移的模型代码。视觉模型还需安装 OpenCV 依赖:apt install libgl1 libglib2.0-0。

环境检查命令:

python3 --version python3 -c "import torch_npu; print('OK')" python3 -c "import msprof; print('OK')"

如未安装:pip3 install --user torch_npu msprof ultralytics

核心命令:

分析模型迁移可行性

python3 scripts/analyze_model.py --model /path/to/model

验证 NPU 推理

python3 scripts/verify_npu.py --model /path/to/model --input test.jpg

参数说明:model(模型代码路径,必填)、input(测试输入数据,必填)、output(输出目录,可选)。

默认环境:服务器 ascend-server-01,容器 skill-the,镜像 quay.io/ascend/vllm-ascend:v0.18.0,NPU 为 8× Ascend 910B3(每卡 64G HBM),CANN 版本为 cann-version-placeholder.220。

适用场景

支持的架构:Encoder-only 架构(ResNet、VGG、EfficientNet)、检测模型(YOLO、Faster-RCNN、SSD)、分割模型(UNet、DeepLab)、其他非 Decoder-only 的 LLM 模型。

不支持的架构:Decoder-only LLM(Qwen、LLaMA、DeepSeek),需采用适配器量化方案;VLM 文本主干,需采用适配器量化方案。

限制

迁移路径判定规则:Decoder-only LLM 与 VLM 文本主干采用适配器量化;Encoder-only / 检测 / 分割模型继续使用本技能;其他架构需人工判定。技能涉及的相关技能包括 huawei-cloud-msmodelslim-model-analysis(模型结构分析)、huawei-cloud-msot-msopprof-operator-profiler(算子性能数据采集)、huawei-cloud-ascend-profiler-db-explorer(性能数据库分析)、huawei-cloud-ascendc-operator-performance-optim(可选的 AscendC 算子优化)。

常见瓶颈与优化方向:索引算子耗时高(AI_CPU 实现,可用 AscendC 开发优化版本)、TransData 耗时高(格式转换开销,可减少 CPU-NPU 数据传输)、NMS 回退到 CPU(算子不支持 NPU,可用 AscendC 开发 NPU 版本 NMS)、Upsample 慢(向量核效率,可优化 upsample 算子)。

参考文档包括验收标准、验证方法、故障排查、报告模板、Profiler SQL、迁移脚本等。