模型迁移
按照如下步骤操作,即可实现Megatron-LM在昇腾设备上的高效运行,且无缝集成并充分发挥MindSpeed所提供的丰富加速与优化技术。
- 在“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”目录下修改“pretrain_gpt.py”文件,在“model_provider”函数中删除“assert(args.context_parallel_size == 1), "Context parallelism is only supported with Megatron Core!"”代码,如下黑体加粗部分。
else: assert(args.context_parallel_size == 1), "Context parallelism is only supported with Megatron Core!" model = megatron.legacy.model.GPTModel( config, num_tokentypes=0, parallel_output=True, pre_process=pre_process, post_process=post_process )
- 在“Megatron-LM”目录下,参考Megatron-LM官方文档准备好训练数据,并在示例脚本(examples/pretrain_gpt_distributed.sh)中填写对应路径。
CHECKPOINT_PATH=<Specify path> VOCAB_FILE=<Specify path to file>/gpt2-vocab.json MERGE_FILE=<Specify path to file>/gpt2-merges.txt DATA_PATH=<Specify path and file prefix>_text_document
以上路径请根据实际情况进行替换。
- 配置环境变量,请用户根据set_env.sh的实际安装路径进行替换。
source /usr/local/Ascend/ascend-toolkit/set_env.sh
- 执行如下命令启动预训练。
bash examples/pretrain_gpt_distributed.sh