云服务器内容精选

  • 创建训练任务 在VS Code中修改“\6.3.902-Ascend\llm_train\AscendSpeed\scripts\llama2\sft-llama2-13b.sh”脚本,修改脚本内容如下: #!/bin/bash set -ex source /usr/local/Ascend/ascend-toolkit/set_env.sh # The number of parameters is not aligned export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib:/root/miniconda3/lib:$LD_LIBRARY_PATH # 以下环境变量和多机网络通信相关,可以在容器内使用ifconfig查看 export HCCL_CONNECT_TIMEOUT=3600 # 多机通信等待时间 export AZUREML_EXPERIMENT_ID=0 # 多机训练时,数据多机编译 export GLOO_SOCKET_IFNAME=${NCCL_SOCKET_IFNAME} # 多机之间使用gloo通信时需要指定网口名称, export TP_SOCKET_IFNAME=${NCCL_SOCKET_IFNAME} # 多机之间使用TP通信时需要指定网口名称 # 以下变量和性能优化相关 export HCCL_OP_BASE_FFTS_MODE_ENABLE=TRUE export COMBINED_ENABLE=1 export MULTI_STREAM_MEMORY_REUSE=1 # export INF_NAN_MODE_ENABLE=1 # model args export MODEL_TYPE=13B #模型加载类型 # learning rate args export LR=0.00001 export MIN_LR=0.000003 export TRAIN_ITERS=100 #训练迭代周期 export LR_WARMUP_ITERS=2000 export MBS=4 #流水线并行中一个micro batch所处理的样本量 export GBS=64 #训练中所有机器一个step所处理的样本量,建议单机64,双机128。 # data args PWD=`pwd` export DATASET_PATH=${MA_JOB_DIR}/6.3.902-Ascend/datasets/alpaca-ft/alpaca-ft #预处理后的数据地址:*注意:一般为数据地址/数据前缀名 export TOKENIZER_PATH=${MA_JOB_DIR}/6.3.902-Ascend/tokenizers/llama2-13b-hf/ #tokeneizer地址 export SAVE_PATH=$PWD/ckpt #中间保存结果 包含日志 export SAVE_CKPT_PATH=${SAVE_PATH}/ckpt-llama2-13b-sft #训练ckpt保存地址 export MODEL_PATH=${MA_JOB_DIR}/6.3.902-Ascend/weight/llama2-13b-ckpt #增量预训练权重加载地址 # megatron args export TP=8 #张量并行 export PP=1 #流水线并行 export SEED=1234 export RUN_TYPE=sft #训练类型:pretrain、sft、loral,sft表示训练类型是增量预训练 bash $PWD/scripts/llama2/llama2.sh 在“\6.3.902-Ascend\llm_train\AscendSpeed”路径下创建“ckpt/ckpt-llama2-13B-sft”目录,并设置为输出目录。 在“\6.3.902-Ascend\datasets\alpaca-ft”目录挂载4.1.1中的输出目录。 设置“tokenizers/llama2-13b-hf”目录挂载权重目录“obs://standard-llama2-13b/llama-2-13b-chat-hf/”。设置“weight/llama2-13b-ckpt”目录挂载增量预训练权重转换的输出路径。 图1 设置输出和挂载目录 设置启动命令如下。 cd ${MA_JOB_DIR}/6.3.902-Ascend/llm_train/AscendSpeed/ && bash scripts/llama2/sft-llama2-13b.sh 单击“提交作业”完成作业创建。 图2 提交作业