AI开发平台MODELARTS-增量预训练任务:创建训练任务

时间:2024-04-30 18:09:26

创建训练任务

  1. 在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

  2. “\6.3.902-Ascend\llm_train\AscendSpeed”路径下创建“ckpt/ckpt-llama2-13B-sft”目录,并设置为输出目录。
  3. “\6.3.902-Ascend\datasets\alpaca-ft”目录挂载4.1.1中的输出目录。

  4. 设置“tokenizers/llama2-13b-hf”目录挂载权重目录“obs://standard-llama2-13b/llama-2-13b-chat-hf/”。设置“weight/llama2-13b-ckpt”目录挂载增量预训练权重转换的输出路径。

    图1 设置输出和挂载目录

  5. 设置启动命令如下。

    cd ${MA_JOB_DIR}/6.3.902-Ascend/llm_train/AscendSpeed/ && 
    bash scripts/llama2/sft-llama2-13b.sh

  6. 单击“提交作业”完成作业创建。

    图2 提交作业

support.huaweicloud.com/bestpractice-modelarts/modelarts_10_1821.html