AI开发平台MODELARTS-GP Ant8裸金属服务器使用Megatron-Deepspeed训练GPT2并推理:Step1 安装模型

时间:2024-04-30 19:22:38

Step1 安装模型

  1. 安装Megatron-Deepspeed框架。

    1. 使用root用户SSH的方式登录GPU裸金属服务器,登录方式在华为云购买页面可以获取。
    2. 拉取pytorch镜像,可以选择常用的镜像源进行下载。
      docker pull nvcr.io/nvidia/pytorch:21.10-py3
    3. 启动容器。
      docker run -d -t --network=host --gpus all --privileged --ipc=host --ulimit memlock=-1 --ulimit stack=67108864 --name megatron-deepspeed -v /etc/localtime:/etc/localtime -v /root/.ssh:/root/.ssh nvcr.io/nvidia/pytorch:21.10-py3
    4. 执行以下命令,进入容器终端。
      docker exec -it megatron-deepspeed bash
    5. 下载Megatron-DeepSpeed框架。
      git clone https://github.com/bigscience-workshop/Megatron-DeepSpeed

      若git clone失败,可以尝试先下载至本地,然后拷贝至服务器中,在docker cp至容器中。

    6. 安装Megatron-DeepSpeed框架。
      cd Megatron-DeepSpeed
      pip install -r requirements.txt -i http://mirrors.myhuaweicloud.com/pypi/web/simple --trusted-host mirrors.myhuaweicloud.com
      pip install mpi4py -i http://mirrors.myhuaweicloud.com/pypi/web/simple --trusted-host mirrors.myhuaweicloud.com
    7. 修改测试代码,注释掉以下文件的断言所在行。
      vim /workspace/Megatron-DeepSpeed/megatron/model/fused_softmax.py +191

      “assert mask is None, "Mask is silently ignored due to the use of a custom kernel"”前加“#”,即:

      # assert mask is None, "Mask is silently ignored due to the use of a custom kernel"

  2. 数据集下载和预处理。

    本实践中选择使用1GB 79K-record的JSON格式的OSCAR数据集。

    1. 下载数据集。
      wget https://huggingface.co/bigscience/misc-test-data/resolve/main/stas/oscar-1GB.jsonl.xz 
      wget https://s3.amazonaws.com/models.huggingface.co/bert/gpt2-vocab.json
      wget https://s3.amazonaws.com/models.huggingface.co/bert/gpt2-merges.txt
    2. 解压数据集。
      xz -d oscar-1GB.jsonl.xz
    3. 预处理数据。
      python3 tools/preprocess_data.py \
          --input oscar-1GB.jsonl \
          --output-prefix meg-gpt2 \
          --vocab gpt2-vocab.json \
          --dataset-impl mmap \
          --tokenizer-type GPT2BPETokenizer \
          --merge-file gpt2-merges.txt \
          --append-eod \
          --workers 8
      若发生如下“np.float”报错,按照报错提示修改为“float”即可。
      图1 预处理数据报错
    4. 数据预处理完成标识。
      图2 数据预处理完成
    5. 新建data目录并移动处理好的数据。
      mkdir data 
      mv meg-gpt2* ./data 
      mv gpt2* ./data

support.huaweicloud.com/usermanual-modelarts-lite/usermanual-modelarts-lite-0087.html