模型选取与约束说明(必读)
模型选取
建议用户在选取迁移模型时,尽可能选取权威PyTorch模型实现仓,包括但不限于PyTorch(imagenet/vision等)、facebookresearch(Detectron/detectron2等)、open-mmlab(MMDetection/mmpose等)。
对于大模型,使用较为广泛的资源仓库是huggingface社区、Megatron-LM、Llama-Factory等仓库,可以在其中选取目标模型。
约束说明
在进行模型迁移前,需要了解如下模型迁移约束,评估当前模型迁移的可行性,完成迁移前的准备:
- 迁移前要保证选定的模型能在GPU或CPU上运行,并输出精度和性能基线。
- 模型迁移前需要完成昇腾PyTorch训练环境安装,以完成迁移支持度分析与后续的模型训练,请参考《Ascend Extension for PyTorch 配置与安装》完成环境安装,包括NPU驱动固件、CANN软件toolkit、二进制算子包以及PyTorch框架的安装。
目前已知的不支持场景:
- Ascend Extension for PyTorch(即torch-npu)1.11.0版本不支持单进程多卡;Ascend Extension for PyTorch(即torch-npu)2.1.0及以上版本支持单进程多卡,具体使用方法请参考torch_npu在单进程中使用多张NPU卡。
- 当前不支持使用DP(distributed parallel)模式的模型迁移。若用户训练脚本中包含昇腾NPU平台不支持的torch.nn.parallel.DataParallel接口,则需手动修改该接口为torch.nn.parallel.DistributedDataParallel接口,以执行多卡训练。原脚本需要在GPU环境下基于Python3.7及以上跑通。
- APEX库中的FusedAdam融合优化器,目前不支持使用自动迁移或PyTorch GPU2Ascend工具迁移该优化器,需用户手工进行迁移,具体修改方法请参考LINK。
- 大模型迁移暂不支持bmtrain框架的迁移。
- 大模型迁移暂不支持使用了bitsandbytes的迁移。
- 大模型迁移暂不支持colossai三方库中HybridAdam优化器相关接口的迁移。
- 目前暂不原生支持xFormers训练,需要使用xFormers中的FlashAttentionScore融合算子的迁移,用户可参考FlashAttentionScore章节进行替换。
- 当前NPU不支持grouped_gemm第三方库安装。
- 当前NPU支持composer第三方库安装,但NPU未做适配,无法使用。
父主题: 迁移分析