基于Megatron-LM的大模型迁移
Megatron-LM是NVIDIA提供的大模型训练加速库,提供了多种针对GPU的训练优化技术。MindSpeed提供了Megatron-LM的适配功能,用户可使用MindSpeed并配合Megatron-LM,在NPU上使用其分布式特性。
当前MindSpeed已适配的特性主要包括:模型并行、流水线并行、序列并行及分布式优化器。使用Megatron-LM训练的大模型,如GPT-3,可参考以下步骤进行模型的迁移与训练。
- 准备环境,具体请参考《Ascend Extension for PyTorch 配置与安装》。
- 执行以下命令,下载安装MindSpeed。
- 1.0.RC3_core_r0.6.0分支
git clone -b 1.0.RC3_core_r0.6.0 https://gitee.com/ascend/MindSpeed.git pip install -e MindSpeed
- 1.0.RC3_core_r0.7.0分支
git clone -b 1.0.RC3_core_r0.7.0 https://gitee.com/ascend/MindSpeed.git pip install -e MindSpeed
- 1.0.RC3_core_r0.6.0分支
- 获取Megatron-LM并切换为配套版本。
git clone https://github.com/NVIDIA/Megatron-LM.git cd Megatron-LM git checkout <version>
其中<version>可以配置为core_r0.6.0或者core_r0.7.0。
- 以GPT-3为例,在“Megatron-LM”目录下修改“pretrain_gpt.py”文件,在“import torch”下新增一行“import mindspeed.megatron_adaptor”代码,如下黑体加粗部分。
import os import torch import mindspeed.megatron_adaptor from torch import Tensor from functools import partial from typing import Union
- 在“Megatron-LM”目录下,参考Megatron-LM官方文档准备好训练数据,并在示例脚本中填写对应路径,然后执行以下命令。
父主题: LLM大模型迁移案例