下载
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
昇腾小AI

迁移总体思路

通用模型迁移适配方法,可以分为四个阶段:迁移分析、迁移适配、精度调试与性能调优,如图1所示。

本手册的内容章节是根据迁移阶段与其对应任务设计的,如表1所示。

图1 训练模型迁移总体流程图
表1 迁移阶段任务表

迁移阶段

迁移任务

任务描述

阶段1:迁移分析

模型选取与约束说明

  1. 调研业务需求场景,参考模型选取选取主流仓库模型。
  2. 保证选取的模型在第三方平台(如GPU)可成功运行。
  3. 明确迁移前模型运行的硬件型号、精度、性能基线。从权威网站或数据平台获取源模型的性能值基线,或在三方平台实测性能基线。

迁移支持度分析

  1. 准备NPU环境,获取模型的源码、权重和数据集等文件。
  2. 使用迁移分析工具采集目标网络中的模型/算子清单,识别第三方库及目标网络中算子支持情况,分析模型迁移的可行性。
  3. 模型迁移需要符合模型选取与约束说明(必读)
  4. 算子开发与适配:在迁移支持度分析中如果存在平台未支持的算子,可通过修改模型脚本,使用等价支持的算子替换的方式解决,或者参考《套件与三方库支持清单》中的“单算子适配OpPlugin插件开发”章节进行算子适配,也可联系华为工程师提出开发适配诉求。

阶段2:迁移适配

模型脚本迁移

通过模型脚本迁移,实现GPU -> NPU的接口替换、NPU分布式框架改造。

环境变量和脚本配置

  1. 参考环境变量配置,配置训练相关环境变量,以保证模型训练可以在昇腾NPU上正常运行。
  2. 参考模型脚本与启动脚本配置,根据实际场景选择相应操作完成模型脚本和启动脚本配置。

关键特性适配

  • 数据类型为BF16或FP32的模型训练过程中出现的收敛异常,可参考特征值检测开启特征值检测,用于检测在训练过程中的梯度特征值是否存在异常。
  • 在训练时如需混合使用单精度(float32)与半精度(float16)数据类型,可参考(可选)混合精度适配

模型调试

  1. 迁移适配过程中,如果遇到问题,可以通过模型调试定位问题发生的代码位置。
  2. 常见问题发生场景包括环境配置,脚本配置,硬件配置与集群配置问题,可从以上场景角度排查问题。

模型保存与导出

参考模型保存与导出,保存模型文件用于在线推理,使用模型文件导出ONNX模型通过ATC工具将其转换为适配昇腾AI处理器的.om文件用于离线推理。

阶段3:精度调试

精度分析与调优

  1. 训练过程中的模型精度问题分析,及时处理训练不稳定问题。
  2. 分析评价集loss/ppl和模型下游评测任务得分,评估迁移前后的精度差异。
  3. 确保迁移前后模型精度差异在可接受范围之内,数据无异常溢出;如果出现精度相关问题,需要借助精度问题分析工具分析。

阶段4:性能调优

性能数据采集与评测

  1. 在NPU环境上,使用性能分析工具介绍对模型进行性能拆解。
  2. 基于性能拆解得到的数据,分析瓶颈模块,模块分类参考性能概念,明确性能优化方向。

模型性能优化实施

依据性能瓶颈模块的类型,从通用优化方法寻求优化方法,具体方法包括数据加载加速、模型代码亲和适配、内存优化、融合算子、融合优化器。

此外,本章节提供了通信优化的建议和可以使能的通信算法。

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词