# 数据集和模型下载 ```bash #模型 mkdir llama3-ckpts cd llama3-ckpts wget https://atp-modelzoo-wlcb-pai.oss-cn-wulanchabu.aliyuncs.com/release/models/pai-megatron-patch/llama3-ckpts/Meta-Llama-3.1-8B.tgz tar -zxf Meta-Llama-3.1-8B.tgz #项目目录Pai-Megatron-Patch/examples/all_tokenizer/llama3_tokenizer提供了llama3模型的tokenizer,可以从头pretrain,也可以将PRETRAIN_CHECKPOINT_PATH改成baichuan2模型路径进行训练 #数据集 mkdir llama3-datasets wget https://atp-modelzoo-wlcb-pai.oss-cn-wulanchabu.aliyuncs.com/release/models/pai-megatron-patch/llama3-datasets/wudao_llama3bpe_content_document.bin wget https://atp-modelzoo-wlcb-pai.oss-cn-wulanchabu.aliyuncs.com/release/models/pai-megatron-patch/llama3-datasets/wudao_llama3bpe_content_document.idx ``` # 模型训练流程 **TP需要较高的TE版本(1.11以上),目前DCU还没有更新到此版本** 运行run-pretrain.sh脚本,需要传入的参数列表如下 ``` ENV=$1 # 运行环境: dlc, dsw MEGATRON_PATH=$2 # 设置项目代码路径 MODEL_SIZE=$3 # 模型结构参数量级 BATCH_SIZE=$4 # 每卡训练一次迭代样本数: 4, 8 GLOBAL_BATCH_SIZE=$5 # 全局batch size LR=$6 # 学习率: 1e-5, 5e-5 MIN_LR=$7 # 最小学习率: 1e-6, 5e-6 SEQ_LEN=$8 # 序列长度 PAD_LEN=$9 # Padding长度:100 EXTRA_VOCAB_SIZE=${10} # 词表扩充大小 PR=${11} # 训练精度: fp16, bf16 TP=${12} # 模型并行度 PP=${13} # 流水并行度 AC=${14} # 激活检查点模式: sel, full DO=${15} # 是否使用Megatron版Zero-1降显存优化器: true, false FL=${16} # 是否使用Flash Attention: true, false SP=${17} # 是否使用序列并行: true, false TE=${18} # 是否使用Transformer Engine: true, false SAVE_INTERVAL=${19} # 保存ckpt的间隔 DATASET_PATH=${20} # 训练数据集路径 PRETRAIN_CHECKPOINT_PATH=${21} # 预训练模型路径 TRAIN_TOKENS=${22} # 训练token数 WARMUP_TOKENS=${23} # 预热token数 OUTPUT_BASEPATH=${24} # 训练输出文件路径 ``` ``` #这里建议用transformers==4.45 #在run_mcore_llama3_1-dcu.sh设置好使用卡号和卡数后可以直接运行: sh run-pretrain.sh ```