1. 昇腾开源分布式训练加速库Ascend Speed
在昇腾上开发大模型,如果想有最快的迁移效率和最佳性能,推荐开发者基于Ascend Speed来迁移模型或者开发,Ascend Speed除了支持Deep Speed 和Megatron-LM的大模型特性以外(如3D并行,Zero等),还有一些昇腾亲和的优化特性,从而可以有更好的性能。
目前Ascend Speed已经支持了LLaMA2,Baichuan,Bloom等主流大模型,并且已经正式开源。
https://gitee.com/ascend/AscendSpeed
2. 通过Adapter方式支持Pytorch框架
昇腾对Pytorch是基于Adapter的方式(Torch-NPU)来支持,开发者只需要下载社区版本的Pytorch和对应该版本的Torch-NPU即可开发。
迁移指导文档可以参考:
https://www.hiascend.com/document/detail/zh/canncommercial/63RC2/modeldevpt/ptmigr/ptmigr_0002.html
Torch NPU链接:
https://gitee.com/ascend/pytorch
经过PyTorch社区与昇腾的持续合作和共同努力,Pytorch 2.1版本已同步支持昇腾NPU,意味着开发者可直接在PyTorch 2.1上基于昇腾进行模型开发。
3. Deep Speed NPU\Megatron-LM NPU
业界训练大模型常常会使用Deep Speed和Megatron-LM等分布式加速库,在昇腾上开发大模型优先推荐使用Ascend Speed,但是如果不想改动训练脚本,还是想用Deep Speed和Megatron-LM,也是可以支持的。对Deep Speed和Megatron-LM的支持也都是通过Adapter的方式。
- Deep Speed NPU
https://gitee.com/ascend/DeepSpeed
- Megatron-LM NPU