云服务器内容精选

  • 步骤二:修改训练yaml文件配置 LlamaFactroy配置文件为Yaml文件,启动训练前需修改Yaml配置文件,Yaml配置文件在代码目录下的{work_dir}/llm_train/LLaMAFactory/demo.yaml。修改详细步骤如下所示。 选择训练阶段类型。 指令监督微调,复制tune_yaml样例模板内容覆盖demo.yaml文件内容。 DPO偏好训练,复制dpo_yaml样例模板内容覆盖demo.yaml文件内容。 PPO强化训练,先进行RM奖励训练任务后,复制ppo_yaml样例模板内容覆盖demo.yaml内容。 RM奖励训练,复制rm_yaml样例模板内容覆盖demo.yaml文件内容。 1、DPO偏好训练、Reward奖励模型训练、PPO强化学习目前仅限制支持于llama3系列 2、PPO训练暂不支持llama3-70B,存在已知的内存OOM问题,待社区版本修复。 训练策略类型 全参full,配置如下: finetuning_type: full lora,如dpo仅支持此策略;配置如下: finetuning_type: lora lora_target: all lora+,目前仅支持qwen1.5-7B指令监督微调;配置如下: finetuning_type: lora lora_target: all loraplus_lr_ratio: 16.0 修改yaml文件(demo.yaml)的参数如表1所示。 表1 修改重要参数 参数 示例值 参数说明 model_name_or_path /home/ma-user/ws/tokenizers/Qwen2-72B 必须修改。加载tokenizer与Hugging Face权重时存放目录绝对或相对路径。请根据实际规划修改。 template qwen 必须修改。用于指定模板。如果设置为"qwen",则使用Qwen模板进行训练,模板选择可参照表1中的template列 output_dir /home/ma-user/ws/Qwen2-72B/sft-4096 必须修改。指定输出目录。训练过程中生成的模型参数和日志文件将保存在这个目录下。用户根据自己实际要求适配。 per_device_train_batch_size 1 指定每个设备的训练批次大小 gradient_accumulation_steps 8 可修改。指定梯度累积的步数,这可以增加批次大小而不增加内存消耗。可根据自己要求适配。取值可参考表1中梯度累积值列。 num_train_epochs 5 表示训练轮次,根据实际需要修改。一个Epoch是将所有训练样本训练一次的过程。可根据自己要求适配 cutoff_len 4096 文本处理时的最大长度,此处为4096,用户可根据自己要求适配 dataset 指令监督微调/ppo:alpaca_en_demo rm/dpo:dpo_en_demo 多模态数据集(图像):mllm_demo,identity 【可选】注册在dataset_info.json文件数据集名称。如选用定义数据请参考准备数据(可选)配置dataset_info.json文件,并将数据集存放于dataset_info.json同目录下。 dataset_dir /home/ma-user/ws/LLaMAFactory/LLaMA-Factory/data 【可选】dataset_info.json配置文件所属的绝对路径;如使用自定义数据集,yaml配置文件需添加此参数。 是否选择加速深度学习训练框架Deepspeed,可参考表1选择不同的框架。 是,选用ZeRO (Zero Redundancy Optimizer)优化器。 ZeRO-0,配置以下参数 deepspeed: examples/deepspeed/ds_z0_config.json ZeRO-1,配置以下参数,并复制ds_z1_config.json样例模板至工作目录/home/ma-user/LLaMAFactory/LLaMA-Factory/examples/deepspeed deepspeed: examples/deepspeed/ds_z1_config.json ZeRO-2,配置以下参数 deepspeed: examples/deepspeed/ds_z2_config.json ZeRO-2-Offload,配置以下参数 deepspeed: examples/deepspeed/ds_z2_offload_config.json ZeRO-3,配置以下参数 deepspeed: examples/deepspeed/ds_z3_config.json ZeRO-3-Offload,配置以下参数 deepspeed: examples/deepspeed/ds_z3_offload_config.json 否,默认选用Accelerate加速深度学习训练框架,注释掉deepspeed参数。 是否开启NPU FlashAttention融合算子,具体约束详见NPU_Flash_Attn融合算子约束 是,配置以下参数。 flash_attn: sdpa 否,配置以下参数关闭。 flash_attn: disabled 是否使用固定句长。 是,配置以下参数 packing: true 否,默认使用动态句长,注释掉packing参数。 选用数据精度格式bf16或fp16二者选一,两者区别可查看BF16和FP16说明。 bf16,配置以下参数。 bf16: true fp16,相比bf16还需配置loss scale参数,配置如下。 设置fp16为True。 fp16: true 修改deepspeed的"loss_scale"参数,配置如下。 修改ZeRO优化器配置文件,如ZeRO2命令如下。 cd /home/ma-user/LLaMAFactory/LLaMA-Factory/examples/deepspeed vim ds_z2_config.json 使用fp16容易出现数值溢出,因此配置loss scale建议配置4096或4096以上: "loss_scale": 4096, 是否使用自定义数据集。 是,参考准备数据(可选),以指令监督微调数据集为例,配置以下参数:参考表1dataset_dir和dataset参数说明;如alpaca_gpt4_data.json数据集前缀则为alpaca_gpt4_data。 dataset: alpaca_gpt4_data dataset_dir: /home/ma-user/ws/llm_train/LLaMAFactory/LLaMA-Factory/data 否,使用代码包自带数据集,注释掉dataset_dir参数,配置参数如下。 指令监督微调/PPO数据集 dataset: identity,alpaca_en_demo 多模态数据集,如qwen2_vl系列模型 dataset: mllm_demo,identity RM/DPO,目前仅支持llama3系列模型 dataset: dpo_en_demo 是否使用falcon-11b、qwen2_vl系列、glm4-9b模型。 是,更新配置或命令。 falcon-11b,参考falcon-11B模型替换文件。 glm4-9b,参考glm4-9b模型修改文件内容。 qwen2_vl系列,数据集为多模态数据集,如果前面步骤已配置请忽略。具体配置如下: 数据集dataset配置: dataset: mllm_demo,identity 否,忽略此步骤,执行下一步。 如需其他配置参数,可参考表1按照实际需求修改。