欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > ​【微调大模型】使用LLaMA-Factory进行监督微调 Qwen2.5 ​

​【微调大模型】使用LLaMA-Factory进行监督微调 Qwen2.5 ​

2025/4/19 0:53:42 来源:https://blog.csdn.net/wss794/article/details/147108633  浏览:    关键词:​【微调大模型】使用LLaMA-Factory进行监督微调 Qwen2.5 ​

本文使用LLaMA-Factory进行监督微调 Qwen2.5

监督微调(SFT)脚本具有以下特点:

  • 支持单GPU和多GPU训练
  • 支持全参数调优,LoRA,Q-LoRA,Dora

下面详细介绍一下该脚本的使用方法。

目录

安装

数据准备

训练

合并 LoRA 

结论



安装

开始之前,请确保已安装以下软件包:

按照LLaMA-Factory的说明 ,构建环境。安装这些软件包(可选):

pip install deepspeedpip install flash-attn --no-build-isolation

如果想使用 FlashAttention-2,请确保 CUDA 是 11.6 及以上版本。

数据准备

LLaMA-Factory 在文件夹中提供了几个训练数据集data,可以直接使用。如果使用自定义数据集,请按如下方式准备数据集。

1将数据组织到json文件中,并将数据放入data 文件夹中。LLaMA-Factory 支持alpacasharegpt 格式的数据集。

alpaca格式的数据集应遵循以下格式:

[{"instruction": "user instruction (required)","input": "user input (optional)","output": "model response (required)","system": "system prompt (optional)","history": [["user instruction in the first round (optional)", "model response in the first round (optional)"],["user instruction in the second round (optional)", "model response in the second round (optional)"]]}
]

sharegpt格式的数据集应遵循以下格式:

[{"conversations": [{"from": "human","value": "user instruction"},{"from": "gpt","value": "model response"}],"system": "system prompt (optional)","tools": "tool description (optional)"}
]

2 data/dataset_info.json按以下格式提供数据集定义。

对于alpaca格式数据集dataset_info.json 应该是:

"dataset_name": {"file_name": "dataset_name.json","columns": {"prompt": "instruction","query": "input","response": "output","system": "system","history": "history"}
}

对于sharegpt格式数据集dataset_info.json 应该是:

"dataset_name": {"file_name": "dataset_name.json","formatting": "sharegpt","columns": {"messages": "conversations","system": "system","tools": "tools"},"tags": {"role_tag": "from","content_tag": "value","user_tag": "user","assistant_tag": "assistant"}}

训练

执行以下训练命令:

DISTRIBUTED_ARGS="--nproc_per_node $NPROC_PER_NODE \--nnodes $NNODES \--node_rank $NODE_RANK \--master_addr $MASTER_ADDR \--master_port $MASTER_PORT"torchrun $DISTRIBUTED_ARGS src/train.py \--deepspeed $DS_CONFIG_PATH \--stage sft \--do_train \--use_fast_tokenizer \--flash_attn \--model_name_or_path $MODEL_PATH \--dataset your_dataset \--template qwen \--finetuning_type lora \--lora_target q_proj,v_proj\--output_dir $OUTPUT_PATH \--overwrite_cache \--overwrite_output_dir \--warmup_steps 100 \--weight_decay 0.1 \--per_device_train_batch_size 4 \--gradient_accumulation_steps 4 \--ddp_timeout 9000 \--learning_rate 5e-6 \--lr_scheduler_type cosine \--logging_steps 1 \--cutoff_len 4096 \--save_steps 1000 \--plot_loss \--num_train_epochs 3 \--bf16

要更改训练,可以修改训练命令中的参数来调整超参数。需要注意的一个参数是cutoff_len,这是训练数据的最大长度。控制此参数以避免 OOM 错误。

合并 LoRA 

如果使用 LoRA 训练模型,则可能需要将适配器参数合并到主分支。运行以下命令执行 LoRA 适配器的合并。

CUDA_VISIBLE_DEVICES=0 llamafactory-cli export \--model_name_or_path path_to_base_model \--adapter_name_or_path path_to_adapter \--template qwen \--finetuning_type lora \--export_dir path_to_export \--export_size 2 \--export_legacy_format False

结论

以上内容是使用 LLaMA-Factory 训练 Qwen 的最简单方法。

Quickstart - Qwen

至此,本文的内容就结束了。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词