模型迁移

按照如下步骤操作,即可实现Megatron-LM在昇腾设备上的高效运行,且无缝集成并充分发挥MindSpeed所提供的丰富加速与优化技术。

  1. “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
  2. “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
            )
  3. “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

    以上路径请根据实际情况进行替换。

  4. 配置环境变量,请用户根据set_env.sh的实际安装路径进行替换。
    source /usr/local/Ascend/ascend-toolkit/set_env.sh
  5. 执行如下命令启动预训练。
    bash examples/pretrain_gpt_distributed.sh

更多模型迁移实例请参见模型迁移最佳实践