Megatron-Deepspeed 预训练 GPT-小白踩坑与解决
记录在使用 megatron deepspeed 训练大模型 gpt 时,遇到的坑
1. 成功运行的最终步骤
1.1 配置分布式环境:
1.1.1 硬件配置:
3090 单机四卡
root@xxxx:/workspace# nvidia-smi -L
GPU 0: NVIDIA GeForce RTX 3090 (UUID: GPU-xxxx)
GPU 1: NVIDIA GeForce RTX 3090 (UUID: GPU-xxxx)
GPU 2: NVIDIA GeForce RTX 3090 (UUID: GPU-xxxx)
GPU 3: NVIDIA GeForce RTX 3090 (UUID: GPU-xxxx)
1.1.2 基础配置:
-
1.1.2.1 拉取 nvidia 的 docker 镜像,通过命令:
其中参数 --shm-size 在训练大模型的 TP(模型并行) 和 PP(流水并行) 特别重要,xxxx 是自己选择的 nvidia docker 的版本,通过在官网选择合适的填入,例如21.07
:docker run --gpus all -it --rm --runtime=nvidia --shm-size=16g --ulimit memlock=-1 --privileged --net host nvcr.io/nvidia/pytorch:21.09-py3
-
1.1.2.2 下载各种包,reference:https://github.com/bigscience-workshop/Megatron-DeepSpeed
# 基础包 git clone https://github.com/bigscience-workshop/Megatron-DeepSpeed cd Megatron-DeepSpeed pip install -r requirements.txt # 可恶的 apex 包,由于在 docker 环境里,所以安装不会有问题 git clone https://github.com/NVIDIA/apex cd apex pip install --global-option="--cpp_ext" --global-option="--cuda_ext" --no-cache -v --disable-pip-version-check . 2>&1 | tee build.log # 安装 deepspeed git clone https://github.com/microsoft/deepspeed cd deepspeed rm -rf build TORCH_CUDA_ARCH_LIST