预训练
前提条件
已上传训练代码、训练权重文件和数据集到SFS Turbo中,具体参考代码上传至OBS和使用Notebook将OBS数据导入SFS Turbo。
Step1 在Notebook中修改训练超参配置
以llama2-13b预训练为例,执行脚本0_pl_pretrain_13b.sh。
修改模型训练脚本中的超参配置,必须修改的参数如表1所示。其他超参均有默认值,可以参考表1按照实际需求修改。
参数 |
示例值 |
参数说明 |
---|---|---|
ORIGINAL_TRAIN_DATA_PATH |
/home/ma-user/work/training_data/train-00000-of-00001-a09b74b3ef9c3b56.parquet |
必须修改。训练时指定的输入数据路径。请根据实际规划修改。 |
ORIGINAL_HF_WEIGHT |
/home/ma-user/work/model/llama-2-13b-chat-hf |
必须修改。加载tokenizer与Hugging Face权重时,对应的存放地址。请根据实际规划修改。 |
对于ChatGLMv3-6B和Qwen系列模型,还需要手动修改tokenizer文件,具体请参见训练tokenizer文件说明。
Step2 创建预训练任务
创建训练作业,并自定义名称、描述等信息。选择自定义算法,启动方式自定义,以及上传的镜像。训练脚本中会自动执行训练前的权重转换操作和数据处理操作。
训练作业启动命令中输入:
cd /home/ma-user/work/llm_train/AscendSpeed; sh ./scripts/install.sh; sh ./scripts/llama2/0_pl_pretrain_13b.sh
选择用户自己的专属资源池,以及规格与节点数。防止训练过程中出现内存溢出的情况,用户可参考表2进行配置。
新增SFS Turbo挂载配置,并选择用户创建的SFS Turbo文件系统。
- 云上挂载路径:输入镜像容器中的工作路径 /home/ma-user/work/
- 存储位置:输入用户在Notebook中创建的“子目录挂载”
作业日志选择OBS中的路径,训练作业的日志信息则保存该路径下。
提交训练作业,训练完成后,生成的权重文件自动保存在SFS Turbo中,保存路径为:/home/ma-user/work/llm_train/saved_dir_for_output/llama2-13b/saved_models/。
最后,提交训练作业,训练完成后,请参考查看日志和性能章节查看SFT微调的日志和性能。了解更多ModelArts训练功能,可查看模型开发简介。