云服务器内容精选

  • Step2 创建LoRA微调训练任务 创建训练作业,并自定义名称、描述等信息。选择自定义算法,启动方式自定义,以及上传的镜像。训练脚本中会自动执行训练前的权重转换操作和数据处理操作。 图1 选择镜像 如果镜像使用使用基础镜像中的基础镜像时,训练作业启动命令中输入: cd /home/ma-user/work/llm_train/AscendSpeed; sh ./scripts/install.sh; sh ./scripts/llama2/0_pl_lora_13b.sh 如果镜像使用E CS 中构建新镜像构建的新镜像时,训练作业启动命令中输入: cd /home/ma-user/work/llm_train/AscendSpeed; sh ./scripts/llama2/0_pl_lora_13b.sh 创建训练作业时,可开启自动重启功能。当环境问题导致训练作业异常时,系统将自动修复异常或隔离节点,并重启训练作业,提高训练成功率。为了避免丢失训练进度、浪费算力。此功能已适配断点续训练。 图2 开启故障重启 断点续训练是通过checkpoint机制实现。checkpoint机制是在模型训练的过程中,不断地保存训练结果(包括但不限于EPOCH、模型权重、优化器状态、调度器状态)。即便模型训练中断,也可以基于checkpoint接续训练。 当训练作业发生故障中断本次作业时,代码可自动从训练中断的位置接续训练,加载中断生成的checkpoint,中间不需要改动任何参数。可以通过训练脚本中的SAVE_INTERVAL参数来指定间隔多少step保存checkpoint。
  • Step1 修改训练超参配置 以llama2-13b LORA微调为例,执行脚本0_pl_lora_13b.sh 。 修改模型训练脚本中的超参配置,必须修改的参数如表1所示。其他超参均有默认值,可以参考表1按照实际需求修改。 表1 训练超参配置说明 参数 示例值 参数说明 ORIGINAL_TRAIN_DATA_PATH /home/ma-user/work/training_data/alpaca_gpt4_data.json 必须修改。训练时指定的输入数据路径。请根据实际规划修改。 ORIGINAL_HF_WEIGHT /home/ma-user/work/models/llama-2-13b-chat-hf 必须修改。加载Hugging Face权重(可与tokenizer相同文件夹)时,对应的存放地址。请根据实际规划修改。 TOKENIZER_PATH /home/ma-user/work/tokenizers/llama-2-13b-chat-hf 该参数为tokenizer文件的存放地址。默认与ORIGINAL_HF_WEIGHT路径相同。如果用户需要将Hugging Face权重与tokenizer文件分开存放时,则需要修改参数。 INPUT_PRO CES SED_DIR /home/ma-user/work/AscendSpeed/processed_for_input/llama2-13b 该路径下保存“数据转换”和“权重转换”的结果。示例中,默认生成在“processed_for_input”文件夹下。如果用户需要修改,可添加并自定义该变量。 OUTPUT_SAVE_DIR /home/ma-user/work/AscendSpeed/saved_dir_for_output/ 该路径下统一保存生成的 CKPT、P LOG 、LOG 文件。示例中,默认统一保存在“saved_dir_for_output”文件夹下。如果用户需要修改,可添加并自定义该变量。 CKPT_SAVE_PATH /home/ma-user/work/AscendSpeed/saved_dir_for_output/saved_models/llama2-13b 保存训练生成的模型 CKPT 文件。示例中,默认保存在“saved_dir_for_output/saved_models”文件夹下。如果用户需要修改,可添加并自定义该变量。 LOG_SAVE_PATH /home/ma-user/work/AscendSpeed/saved_dir_for_output/saved_models/llama2-13b/log 保存训练过程记录的日志 LOG 文件。示例中,默认保存在“saved_models/llama2-13b/log”文件夹下。如果用户需要修改,可添加并自定义该变量。 ASCEND_PROCESS_LOG_PATH /home/ma-user/work/AscendSpeed/saved_dir_for_output/plog 保存训练过程中记录的程序堆栈信息日志 PLOG 文件。示例中,默认保存在“saved_dir_for_output/plog”文件夹下。如果用户需要修改,可添加并自定义该变量。 SAVE_INTERVAL 10 表示训练间隔多少step,则会保存一次权重文件。 对于Yi系列模型、ChatGLMv3-6B和Qwen系列模型,还需要手动修改训练参数和tokenizer文件,具体请参见训练tokenizer文件说明。