迁移约束
模型选取
若用户需要选取模型学习迁移流程,尽可能选取权威PyTorch模型实现仓作为标杆,包括但不限于PyTorch(imagenet/vision等)、facebookresearch(Detectron/detectron2等)和open-mmlab(MMDetection/mmpose等)。
模型是否可以迁移成功主要取决于模型算子是否支持昇腾AI处理器,用户可以参考PyTorch Analyse迁移分析工具对模型算子在昇腾AI处理器上的支持性进行评估。当有不支持算子时,可修改模型脚本用等价支持的算子替换不支持算子或者参考如下文档进行算子适配。
约束说明
- 自动迁移和工具迁移方法需要参见《CANN 软件安装指南》完成开发环境Toolkit软件包的安装才能使用。
- 在自动迁移和工具迁移中,若原始代码中调用了模型套件或第三方库,迁移过程可能会存在适配问题,所以在迁移原始代码前,需要自行安装昇腾已适配的模型套件或三方库版本。目前已适配的第三方库如表1 昇腾适配第三方库说明所示,请用户查看对应的第三方库版本,并前往对应的章节查看安装和使用指南。
- 当前自动迁移和工具迁移不支持使用DP(distributed parallel)模式的模型迁移。若用户训练脚本中包含昇腾NPU平台不支持的torch.nn.parallel.DataParallel接口,需要手动修改成torch.nn.parallel.DistributedDataParallel接口执行多卡训练,原脚本需要在GPU环境下且基于Python3.7及以上能够跑通。修改步骤可参见迁移单卡脚本为多卡脚本。
- APEX中使用的FusedAdam优化器不支持使用0代码迁移和PyTorch GPU2Ascend工具进行迁移,若原始代码中包含该优化器,用户需自行修改。
第三方库名称 |
版本要求 |
昇腾已适配第三方库说明 |
---|---|---|
Torchvision Adapter |
要求Torchvision 0.12.0,PyTorch版本为1.11.0。 |
请参考Torchvision Adapter章节。 |
Transformers |
要求Transformers版本为4.25.1,PyTorch版本为1.11.0。 |
请参考Transformers章节。 |
MMCV |
要求MMCV版本为1.7.0及以上。 |
请参考MMCV章节。 |
MMEngine |
要求MMEngine版本为0.5.0及以上。 |
请参考MMEngine章节。 |
MMDetection |
要求MMDetection版本为2.26.0及以上。 |
请参考MMDetection章节。 |
APEX |
请用户参考《CANN 软件安装指南》中“安装PyTorch”章节内的“安装APEX混合精度模块”,安装PyTorch框架对应的APEX即可。 |
请参考APEX章节。 |
AscendSpeed |
要求PyTorch版本为1.11,deepspeed版本为0.9.2。 |
请参考AscendSpeed章节。 |
备注:如果用户希望以上第三方库和模型套件在适配昇腾设备后能达到更高的性能,可以自行调优。 |