基于SWIFT和Qwen1.5-0.5B-Chat进行大模型全参微调和自我认知微调及应用实战

环境安装

  1. 首先,我们需要创建并激活一个专用的Conda环境,以确保所有依赖项的正确安装和隔离。使用以下命令创建名为qwen_ft的环境,并激活它:

    conda create --name qwen_ft python=3.8
    conda activate qwen_ft
    
  2. 接下来,安装必要的Python库,包括torchtorchvisiontorchaudiotransformers,这些库将为我们的模型训练提供支持:

    pip install torch torchvision torchaudio
    pip install transformers
    
  3. 为了进行模型微调,我们还需要安装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模型进行的全参数微调和自我认知微调的实战过程。通过精心设计的训练脚本和策略,我们不仅优化了模型在特定任务上的表现,还增强了模型的自我认知能力。这种综合微调方法使得模型在处理复杂问题时更加精准和高效,为实际应用提供了强大的技术支持。

作者:康坤鹏
在这里插入图片描述

Logo

ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!

更多推荐