断点续训加速 万卡规模国产化集群下,断点续训在5类故障下实现1分钟检测、5分钟内定位、15分钟内恢复训练。 测试数据及代码准备 数据集 数据集大小 使用模型 Wikipediaen (1M条) 9.1GB Llama270B /Llama3.1405B 使用预处理为MindRecord格式的Wikipediaen (1M条)数据集,上传到对象存储,并由对象存储下载到平台HPFS。 测试代码在gitlab仓库下载到本地,并放置于/work/home下。 脚本和任务准备 按照下面修改run.sh脚本 plaintext ! /bin/bash huijuformers的绝对路径, 需要修改pathtohuijuformers export BASEDIR/work/data/llama29216/huijuformers 以下为平台自动注入的环境变量 yaml文件中需要修改的环境变量 export BATCHSIZE1 export EPOCHS350 export LEARNINGRATE6.e5 export DATAPARALLEL256 export MODELPARALLEL4 export PIPELINESTAGE9 模型微调相关 export FINETUNEMODELTYPEllama270bbase 合并为一个参数,与模型存放文件夹名称一致(与后端沟通过) export FINETUNINGTYPEALL export TIMETAG$(date +"%m%d%H%M") 数据相关 export DATASETPATH${BASEDIR}/data export DATASETFILEoriginaldata.json 需要修改 以下为平台后端需要自行更改后传入的环境变量 平台数据格式转换,专用数据调试时用不到 export DATASETTMPPATH${BASEDIR}/data/processeddata/${FINETUNEMODELTYPE} mkdir p ${DATASETTMPPATH} 模型输入 专业模式,平台训练时需要按照平台的挂载路径去修改这一块的变量 export CHECKPOINTDIR'' 低代码模式,微调时约定挂载为下面的路径 export CHECKPOINTDIR/work/mount/publicModel/${FINETUNEMODELTYPE}/${FINETUNEMODELTYPE} 输出文件夹路径,runmode为训练模式,如train,lora,full runmodetrain export OUTPUTDIR${BASEDIR}/output/${FINETUNEMODELTYPE}/${runmode}/${TIMETAG} export OUTPUTROOTDIR${BASEDIR}/output/${FINETUNEMODELTYPE}/${runmode} rm rf ${OUTPUTDIR}/resumerecord 获取节点IP、名称,记录至文件 echo $(hostname I awk '{print $1}'),$NODENAME >> ${BASEDIR}/output/nodes sed i '/pamlimits.so/s/^//' /etc/pam.d/sshd 启动脚本 cd ${BASEDIR}/bin/scripts apt install netcat y 微调 bash finetune.sh 预训练 export MSTOPOTIMEOUT7200 bash train.sh 启动训练任务 点击训练任务页面的新建任务,按照如下的示例配置训练命令和模型挂载等,然后启动任务。 Llama270B万卡测试结果 在平台使用9216卡对Llama270B进行预训练,万卡规模国产化集群下,断点续训在5类故障下实现1分钟检测、5分钟内定位、15分钟内恢复训练。