最近更新时间:2025-11-10 17:12:08
Llama(Large Language Model Meta AI)是由 Meta 公司推出的开源大语言模型,Llama3 是 Llama 系列的最新版本。本文将介绍如何使用星流平台完成一个 Llama3 模型的训练。
确认已有可用的资源池和队列
选择有资源的可用区,点击新建训练任务
在官方镜像中找到 llama3-train-demo 这个示例专用镜像
注意:如果用户需要重定向任务输出到自定义存储目录,建议使用`tee `指令,避免由于重定向导致平台无法收集日志
任务启动命令支持多行输入,需要与在宿主机执行相同任务脚本的指令保持一致
支持用户手动记录日志参数(如tee /log/task_$PET_NODE_RANK.log)
此处task_$PET_NODE_RANK.log使用了平台预设环境变量,会在用户指定目录下每个Rank创建一个独立的日志
在平台中执行pytorch分布式任务需要使用以下环境变量,请在训练脚本中配置
PET_MASTER_PORT 当前任务Master节点的端口
PET_MASTER_ADDR 当前任务Master节点的地址
PET_NODE_RANK 当前节点在所有节点中排序
PET_NNODES 当前任务使用节点总数
PET_NPROC_PER_NODE 当前任务容器GPU数
#指令样例,请根据实际挂载的存储配置修改
cd /mnt/Pai-Megatron-Patch-240405
bash /mnt/Pai-Megatron-Patch-240405/examples/llama3/run_kai.sh 8B 3 4096 4 1 16 WARN /mnt/llama3-datasets/wudao_llama3bpe_content_document bond0 4 2>&1 | tee /mnt/Pai-Megatron-Patch-240405/task_$PET_NODE_RANK.log为了简化流程,本示例内置了数据集和代码,不需要挂载存储。在真实生产场景中,通常会将数据集、代码、checkpoint 等数据都以存储配置的方式挂载。
如需挂载存储,请确保启动命令中使用的脚本执行目录与存储配置中的挂载路径保持一致,避免路径错误导致脚本执行失败。如果任务执行失败可通过日志查看原因,如果挂载失败会提示路径找不到。
项目目录可通过高级设置/代码挂载框进行挂载
选择预先在AI资产管理/存储配置中完成创建的存储配置
存储配置中的项目目录会挂载到预先设置的挂载路径下
环境变量用于控制训练任务执行期间相关库的执行行为(如输出NCCL通讯库的日志信息)
ENV_TENSORBOARD_DIR=/mnt/tensorboard #设置tensorboard
NCCL_DEBUG=INFO
NCCL_DEBUG_SUBSYS=ALL
NCCL_IB_HCA=mlx5_0:1,mlx5_1:1,mlx5_2:1,mlx5_3:1,mlx5_4:1,mlx5_5:1,mlx5_6:1,mlx5_7:1,
NCCL_SOCKET_IFNAME=bond0
UCX_NET_DEVICES=bond0
NCCL_DEBUG_FILE=/mnt/Pai-Megatron-Patch-240405/nccl_debug_file.%h.%p #填写实际存储训练日志的地址注意:检查任务执行脚本,确保项目任务输出Tensorboard路径与目录挂载路径保持一致。可通过在任务配置中添加环境变量指定Tensorboard写入的路径。
Tensorboard存储配置与项目路径配置方式一致,开启Tensorboard后选择存放Tensorboard数据的存储配置即可。
对于meagtron框架的模型训练,当任务正常启动后可以在最后一个rank所在pod看到下列输出日志
可以看到模型训练过程中每一轮次输出的统计信息
当任务正常启动后可以点击任务Tensorboard查看训练任务中监控数据
纯净模式
