更新时间:2025-07-29 GMT+08:00
分享

ModelArts Lite Server环境

步骤一:准备工作

  1. 已完成准备工作步骤。
  2. 生成模型训练config配置yaml文件,生成方式分为交互式、传参式两种,两者区别为传参式提前传入所需参数,交互式为命令执行后交互选择所需参数,客户自行选择其中一种方式即可。
    1. 交互式,命令如下:
      ascendfactory-cli config  --output_file_path=<output_file_path> 
    2. 传参式,命令如下:
      ascendfactory-cli config --backend=<backend> --af_model_name=<af_model_name> --exp_name=<exp_name> --output_file_path=<output_file_path>
      • <backend>:所选框架类型,可选【mindspeed-llm,llamafactory,verl】。
      • <af_model_name>:训练模型
      • <exp_name>:所选实验类型,MindSpeed-LLM和Llama-Factory微调可选【full-4k, lora-4k, full-8k, lora-8k】,MindSpeed-LLM框架选用预训练【PT】训练类型可选用【full-4k, full-8k】实验类型;VeRL实验类型为【grpo】。
      • <output_file_path>:yaml文件输出目录及文件名称,例如/path/to/xxx.yaml。
  3. 修改生成config配置yaml文件中关键参数值,参数详情可参考MindSpeed-LLMLlama-FactoryVeRL【三选一】。
  4. 【VeRL框架】数据预处理:
    1. 根据模型类型选择VeRL数据处理样例脚本内容拷贝至本地为dataset_demo.py,编辑脚本中dataset = datasets.load_dataset(xxx/xxx/xxx)的xxx/xxx/xxx值,填写原始数据集目录或文件的绝对或相对路径。
    2. 本地执行以下命令:
      python  dataset_demo.py --local_dir=/data/verl-workdir/data/xxx/
      • --local_dir:数据处理输出后的数据集路径

步骤二:启动任务

  1. 任意目录都可执行训练命令,如新建test_benchmark目录下,预训练及微调阶段模型最小卡数参考模型最小卡数配置按自己实际情况决定。

    单机<可选>:

    # 默认8卡
    ascendfactory-cli train <cfgs_yaml_file> --env.MASTER_ADDR=localhost --env.NNODES=1 --env.NODE_RANK=0
    # 指定设备卡数,如2卡
    ASCEND_RT_VISIBLE_DEVICES=0,1 ascendfactory-cli train <cfgs_yaml_file> --env.MASTER_ADDR=localhost --env.NNODES=1 --env.NODE_RANK=0
    # 指定修改yaml中某个参数内容,如af_output_dir等值,使用超参命令传递形式:
    ASCEND_RT_VISIBLE_DEVICES=0,1 ascendfactory-cli train <cfgs_yaml_file> --af_output_dir=xxx --env.MASTER_ADDR=localhost --env.NNODES=1 --env.NODE_RANK=0

    多机<可选>多机同时执行:

    # 使用已修改完成yaml文件,不传参修改参数
    ascendfactory-cli train <cfgs_yaml_file> --env.MASTER_ADDR=localhost --env.NNODES=1 --env.NODE_RANK=0 
    # 指定修改yaml中某个参数内容,如af_output_dir等值,使用超参命令传递形式:
    ascendfactory-cli train <cfgs_yaml_file> --env.MASTER_ADDR=<master_addr> --env.NNODES=<nnodes> --env.NODE_RANK=<rank> --af_output_dir=xxx 
    • <cfgs_yaml_file>:config配置yaml文件相对或绝对路径地址,如
    • --env.MASTER_ADDR=<master_addr>:主master节点IP,一般选rank 0为主master。
    • --env.NNODES=<nnodes>:训练节点总个数。
    • --env.NODE_RANK=<rank>:节点ID,从0开始,一般选rank 0为主master。
    • --超参<key>:参数key可参考MindSpeed-LLMLlama-FactoryVeRL根据要求选择。

步骤三 lora权重合并

微调(SFT-lora)训练方式训练完成后只产出lora训练权重结果,未与原始权重合并,因此需手动合并权重,执行步骤如下:

  1. 参考三方官方merge_lora/llama3_lora_sft.yaml文件修改配置:
    • model_name_or_path:原始权重目录路径
    • adapter_name_or_path:训练产出的lora权重结果目录路径
    • template:训练样例参数,可参考模型template
    • export_legacy_format:训练权重格式,可选【true false】,true表示生成.bin格式,false生成.safetensors格式。
    • export_dir:权重合并后输出目录
  2. 执行lora合并命令:
    llamafactory-cli export  <merge_lora_yaml>
    • <merge_lora_yaml>:lora合并yaml目录绝对或相对路径

相关文档