执行训练任务
准备工作
确认模型权重文件、训练数据集已经上传,准备软件包、权重、训练数据集。
步骤一:生成训练command命令并修改
- 进入调试模式。
修改config.yaml中的${command}进行调试,本示例中使用sleep命令启动pod,便于进入pod调试。
command: ["/bin/bash", "-c"] args: - sleep 1000000000000000000
根据config.yaml创建pod。
kubectl apply -f config.yaml
进入容器,{pod_name}替换为实际pod名字(get pod中显示的名字),{namespace}替换为实际命名空间(默认为default)。
kubectl exec -it {pod_name} bash -n {namespace} - 生成初始化训练yaml。生成后的yaml文件具体信息内容可以参考参数配置说明章节。
每个容器模型训练的config配置yaml文件的生成方式分为交互式、传参式两种,建议参考以下命令使用交互式生成。
ascendfactory-cli config --output_file_path=<output_file_path>
- 生成启动训练命令,容器中执行训练的命令如下。
source /usr/local/Ascend/ascend-toolkit/set_env.sh source /usr/local/Ascend/nnal/atb/set_env.sh
训练命令# 默认8卡 ascendfactory-cli train <cfgs_yaml_file> # 指定设备卡数,如2卡 ASCEND_RT_VISIBLE_DEVICES=0,1 ascendfactory-cli train <cfgs_yaml_file> # 指定修改yaml中某个参数内容,如af_output_dir等值,使用超参命令传递形式: ASCEND_RT_VISIBLE_DEVICES=0,1 ascendfactory-cli train <cfgs_yaml_file> --af_output_dir=xxx
- <cfgs_yaml_file>:yaml文件输出目录及文件名称,例如/path/to/xxx.yaml。
- --超参<key>:参数key可参考参数详情可参考MindSpeed-LLM、Llama-Factory、VeRL、12.1.4-MindSpeed-RL和MindSpeed-MM根据要求选择。
关于容器中的${command}示例如下,修改时可参考。

步骤二:根据config.yaml启动训练
启动作业命令如下。首先会根据config.yaml创建pod,继而在pod容器内自动启动训练作业。
kubectl apply -f config.yaml
启动后,可通过以下命令获取所有已创建的pod信息。若pod已全部启动,则状态为:Running。
kubectl get pod -A -o wide

若查看启动作业日志信息,可通过以下命令打印正在启动的日志信息。其中${pod_name}为上述pod信息中的NAME,例如vcjob-main-0。
kubectl logs -f ${pod_name}
等待模型载入
执行训练启动命令后,等待模型载入,当出现“training”关键字时,表示开始训练。训练过程中,训练日志会在最后的Rank节点打印。
训练完成后,生成的权重文件保存路径为:/mnt/sfs_turbo/llm_train/saved_dir_for_output/llama2-13b/saved_models/。
最后,请参考训练结果输出章节查看预训练的日志和性能。
步骤三:删除config.yaml创建出的所有工作负载Pod
若要删除config.yaml创建出的所有工作负载Pod,需要先找到config.yaml所在路径,并执行以下命令。
kubectl delete -f config.yaml