在 Megatron-Patch 中使用示例中打开 FP8 混合精度训练开关也很容易,如下所示:
if [ $PR = fp16 ]; then pr_options=" \ --fp16" elif [ $PR = bf16 ]; then pr_options=" \ --bf16" elif [ $PR = fp8 ]; then pr_options=" \ --bf16 --fp8-hybrid\ --fp8-amax-compute-algo max\ --fp8-amax-history-len 1024\ --transformer-impl transformer_engine" fi
复制代码
我们可以使用如下训练脚本 run_pretrain_megatron_llama_enwiki.sh 来测试打开 FP8 开关后的预训练收敛性。下图展示了 llama-7B 和 llama-2-70B 模型在打开和关闭 FP8 时的 loss 曲线对比,可以看出基本是重合的。
LLama-7B
LLama2-70B
3. 大模型训练 &推理
从 github 上获取 Megatron 模型训练工具 PAI-Megatron-Patch(https://github.com/alibaba/Pai-Megatron-Patch)源代码并拷贝到工作目录/mnt/workspace/下。
1)模型格式转换
使用我们提供的模型转换脚本,将 huggingface 格式的模型文件转换为 megatron 格式: cd /mnt/workspace/ mkdir llama2-ckpts cd llama2-ckpts wget https://atp-modelzoo-wlcb-pai.oss-cn-wulanchabu.aliyuncs.com/release/models/pai-meg atron-patch/llama2-ckpts/Llama-2-7b-hf.tgz tar -zxf Llama-2-7b-hf.tgz mv Llama-2-7b-hf llama2-7b-hf
cd /mnt/workspace/PAI-Megatron-Patch/toolkits/model_checkpoints_convertor/llama sh model_convertor.sh\ /root/Megatron-LM-23.04 \ /mnt/workspace/llama2-ckpts/llama2-7b-hf \ /mnt/workspace/llama2-ckpts/llama2-7b-hf-to-megatron-tp1-pp1 \ 1 \ 1 \ llama-7b \ 0 \ false
复制代码
2)继续预训练
中文继续预训练汉化指引
Step1: 获取需要扩充词表的模型(如 llama-13b-hf)
Step2: 获取需要扩充的词表
|