检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
Loss对齐结果 在排查完精度偏差来源之后发现,Loss最大绝对偏差减少为0.0003,Loss结果对齐。 需要注意训练引入随机性的目的是为了增加结果的鲁棒性,理论上不会对训练模型的收敛与否造成影响。 此处做随机性固定主要的目的是为了训练结果可完全复现,从而实现NPU和标杆的精度对齐。
基于MindSpore Lite的模型转换 迁移推理业务的整体流程如下: 模型准备 转换关键参数准备 模型转换 推理应用适配 主要通过MindSpore Lite(简称MSLite)进行模型的转换,进一步通过MindSpore Runtime支持昇腾后端的能力来将推理业务运行到昇腾设备上。
Profiling数据采集 在train.py的main()函数Step迭代处添加配置,添加位置如下图所示: 此处需要注意的是prof.step()需要加到dataloder迭代循环的内部以保证采集单个Step迭代的Profiling数据。 更多信息,请参见Ascend PyTorch
模型精度调优 场景介绍 精度问题诊断 精度问题处理 父主题: 基于AIGC模型的GPU推理业务迁移至昇腾指导
性能调优 单模型性能测试工具Mindspore lite benchmark 单模型性能调优AOE 父主题: 基于AIGC模型的GPU推理业务迁移至昇腾指导
GPU业务迁移至昇腾训练推理 ModelArts昇腾迁移调优工具总览 GPU训练业务迁移至昇腾的通用指导 基于AIGC模型的GPU推理业务迁移至昇腾指导 GPU推理业务迁移至昇腾的通用指导 基于advisor的昇腾训练性能自助调优指导 Dit模型PyTorch迁移与精度性能调优 msprobe工具使用指导
精度问题处理 设置高精度并重新转换模型 在转换模型时,默认采用的精度模式是fp16,如果转换得到的模型和标杆数据的精度差异比较大,可以使用fp32精度模式提升模型的精度(精度模式并不总是需要使用fp32,因为相对于fp16,fp32的性能较差。因此,通常只在检测到某个模型精度存在
场景介绍 本小节通过一个具体问题案例,介绍模型精度调优的过程。 如下图所示,使用MindSpore Lite生成的图像和onnx模型的输出结果有明显的差异,因此需要对MindSpore Lite pipeline进行精度诊断。 图1 结果对比 在MindSpore Lite 2.0
动态shape 在某些推理场景中,模型输入的shape可能是不固定的,因此需要支持用户指定模型的动态shape,并能够在推理中接收多种shape的输入。在CPU上进行模型转换时无需考虑动态shape问题,因为CPU算子支持动态shape;而在Ascend场景上,算子需要指定具体的
使用Msprobe工具分析偏差 观察上一章Loss趋势,在首个Step有较小偏差,所以对第一个Step进行比对分析。此处使用Msprobe的整网Dump和比对分析功能。 首先安装社区Msprobe工具,命令如下: pip install mindstudio-probe 使能工具
调优前后性能对比 在完成上一章几类调优方式之后,在单卡场景下实测性能调优比对结果如下表所示: 设备 batch_size Steps/Sec 1p-GPU Ant8 16 3.17 1p-NPU snt9b 313T 16 2.17 1p-NPU snt9b 313T调优后 16
MindSpore Lite问题定位指南 在MindSpore Lite使用中遇到问题时,例如模型转换失败、训练后量化转换失败、模型推理失败、模型推理精度不理想、模型推理性能不理想、使用Visual Studio报错、使用Xcode构建APP报错等,您可以先查看日志信息进行定位分析。
长训Loss比对结果 在单卡环境下,执行一个Epoch训练任务,GPU和NPU训练叠加效果如下: 上图中的红色曲线为GPU Loss折线图,蓝色曲线为NPU训练Loss折线图。在整网训练单个Epoch情况下,Loss总体的绝对偏差大约为0.08181。 父主题: 精度对齐
精度问题诊断 逐个替换模型,检测有问题的模型 该方式主要是通过模型替换,先定位出具体哪个模型引入的误差,进一步诊断具体的模型中哪个算子或者操作导致效果问题,模型替换原理如下图所示。通过设置开关选项(是否使用onnx模型),控制模型推理时,模型使用的是onnx模型或是mindir的模型。
使用Advisor工具分析生成调优建议 关于Advisor使用及安装过程请参见昇腾社区Gitee。最后生成导出的各类场景的建议包含以下两种: Terminal日志信息的概览建议。 包含Detail信息及修改示例的HTML信息。 按照建议信息做如下修改: 亲和优化器使能,在train
日志提示Compile graph failed 问题现象 日志提示:Compile graph failed。 图1 报错提示 原因分析 模型转换时未指定Ascend后端。 处理方法 需要在模型转换阶段指定“--device=Ascend”。 父主题: 常见问题
单模型性能测试工具Mindspore lite benchmark 在模型精度对齐后,针对Stable Diffusion模型性能调优,您可以通过AOE工具进行自助性能调优,进一步可以通过profiling工具对于性能瓶颈进行分析,并针对性地做一些调优操作。 您可以直接使用ben
日志提示Custom op has no reg_op_name attr 问题现象 日志提示:Custom op has no reg_op_name attr。 图1 报错提示 原因分析 无。 处理方法 定义context时无需指定: context.ascend.provider
单模型性能调优AOE 使用AOE工具可以在模型转换阶段对于模型运行和后端编译过程进行执行调优。请注意AOE只适合静态shape的模型调优。在AOE调优时,容易受当前缓存的一些影响,建议分两次进行操作,以达到较好的优化效果(第一次执行生成AOE的知识库,在第二次使用时可以复用)。在
请参考OBS服务端错误码或者采集request id后向OBS客服进行咨询。 如果是空间不足。 参考 常见的磁盘空间不足的问题和解决办法章节处理。 父主题: 云上迁移适配故障