基于SWIFT和Qwen1.5-0.5B-Chat进行大模型全参微调实战及应用(1)
本文全面介绍了使用SWIFT框架对Qwen1.5-0.5B-Chat模型进行的全参数微调和自我认知微调的实战过程。通过精心设计的训练脚本和策略,我们不仅优化了模型在特定任务上的表现,还增强了模型的自我认知能力。这种综合微调方法使得模型在处理复杂问题时更加精准和高效,为实际应用提供了强大的技术支持。-0.5B-Chat模型进行的全参数微调和自我认知微调的实战过程。通过精心设计的训练脚本和策略,我们不
基于SWIFT和Qwen1.5-0.5B-Chat进行大模型全参微调和自我认知微调及应用实战
环境安装
-
首先,我们需要创建并激活一个专用的Conda环境,以确保所有依赖项的正确安装和隔离。使用以下命令创建名为
qwen_ft
的环境,并激活它:conda create --name qwen_ft python=3.8 conda activate qwen_ft
-
接下来,安装必要的Python库,包括
torch
、torchvision
、torchaudio
和transformers
,这些库将为我们的模型训练提供支持:pip install torch torchvision torchaudio pip install transformers
-
为了进行模型微调,我们还需要安装SWIFT框架,这是一个强大的工具,可以帮助我们高效地进行模型训练和调优:
pip install ms-swift
模型下载
Qwen1.5-0.5B-Chat
git clone git clone https://www.modelscope.cn/qwen/Qwen1.5-0.5B-Chat.git
数据集准备
准备并预处理您的数据集,确保数据集格式与训练任务相匹配。
-
数据集格式:例如,问答数据集如下所示:
{"query": "请推荐一款适合痰湿内盛的中药", "response": "对于痰湿内盛的情况,可以考虑使用半夏泻心汤来进行调理。这个方子包含半夏、黄芩、生姜、大枣、人参、甘草等中药,可以清热化痰、健脾开胃、调理脾胃功能,有助于缓解痰湿内盛的症状。不过,中药使用前最好咨询中医师进行个性化的辨证论治,以确保药方的准确性和安全性。"}
-
数据集划分:将数据集分为训练集和验证集,比例通常为9:1或8:2。
模型微调
使用SWIFT框架,我们可以对Qwen1.5-0.5B-Chat模型进行全参数微调。这一步骤是提高模型在特定任务上性能的关键。
编写微调脚本
创建一个脚本来启动训练过程:
# Experimental environment: 1 * 1080 12GB
nproc_per_node=1
NPROC_PER_NODE=$nproc_per_node \
MASTER_PORT=29500 \
CUDA_VISIBLE_DEVICES=0 \
swift sft \
--model_type qwen1half-0_5b-chat \
--model_id_or_path ./models/Qwen1.5-0.5B-Chat \
--model_revision master \
--sft_type full \
--tuner_backend swift \
--template_type AUTO \
--dtype AUTO \
--output_dir ./llm_sft_output \
--ddp_backend nccl \
--custom_train_dataset_path ./datasets/ChatMed_TCM-v0.2/ChatMed_TCM-v0.2.json \
--train_dataset_sample -1 \
--num_train_epochs 1 \
--max_length 4096 \
--check_dataset_strategy warning \
--gradient_checkpointing true \
--batch_size 1 \
--weight_decay 0.01 \
--learning_rate 1e-4 \
--gradient_accumulation_steps $(expr 8 / $nproc_per_node) \
--max_grad_norm 0.5 \
--warmup_ratio 0.03 \
--eval_steps 100 \
--save_steps 100 \
--save_total_limit 3 \
--logging_steps 10 \
--use_flash_attn false \
--save_only_model true \
--self_cognition_sample 500 \
--model_name "专属AI助手" "Dedicated AI Assistant" \
--model_author "技术团队" "Tech Team"
模型评估与保存
在训练过程中,模型会在每个指定的步骤进行评估,并在训练完成后保存。
测试微调效果
微调前的效果
使用以下命令启动CLI推理:
CUDA_VISIBLE_DEVICES=0 swift infer --model_type qwen1half-0_5b-chat --model_id_or_path models/Qwen1.5-0.5B-Chat
微调后的效果
使用以下命令启动CLI推理:
CUDA_VISIBLE_DEVICES=0 swift infer --model_type qwen1half-0_5b-chat --ckpt_dir ./llm_sft_output/qwen1half-0_5b-chat/v3-20240919-211719/checkpoint-91
总结
本文全面介绍了使用SWIFT框架对Qwen1.5-0.5B-Chat模型进行的全参数微调和自我认知微调的实战过程。通过精心设计的训练脚本和策略,我们不仅优化了模型在特定任务上的表现,还增强了模型的自我认知能力。这种综合微调方法使得模型在处理复杂问题时更加精准和高效,为实际应用提供了强大的技术支持。
-0.5B-Chat模型进行的全参数微调和自我认知微调的实战过程。通过精心设计的训练脚本和策略,我们不仅优化了模型在特定任务上的表现,还增强了模型的自我认知能力。这种综合微调方法使得模型在处理复杂问题时更加精准和高效,为实际应用提供了强大的技术支持。
作者:康坤鹏
更多推荐
所有评论(0)