ms-swift框架微调qwen3-0.6b模型
首先是安装相关的库:swanlab,swift,modelscope等。
下载模型:
from modelscope import snapshot_download
local_dir = "./my_qwen_model"model_dir = snapshot_download('Qwen/Qwen3-0.6B',local_dir=local_dir)
将模型下载到本地./my_qwen_model目录内。
使用alpaca格式的数据集,例如huanhuan.json。
CUDA_VISIBLE_DEVICES=0swift sft \--model ./my_qwen_model \--model_type qwen3 \--dataset ./huanhuan.json \--train_type lora \--torch_dtype bfloat16 \--num_train_epochs 2 \--per_device_train_batch_size 4 \--per_device_eval_batch_size 1 \--learning_rate 1e-5 \--lora_rank 8 \--lora_alpha 32 \--target_modules all-linear \--gradient_accumulation_steps 2 \--eval_steps 200 \--save_steps 200 \--save_total_limit 2 \--logging_steps 5 \--max_length 4096 \--output_dir output \--warmup_ratio 0.05 \--dataloader_num_workers 4 \--load_from_cache_file false \--loss_scale ignore_empty_think \--save_strategy steps \--model_author glm \--model_name qwen3_0.6b \--report_to swanlab \--swanlab_project swift-learn
各参数解释如下:
CUDA_VISIBLE_DEVICES=0swift sft \--model ./my_qwen_model \ # 指定基础模型的本地路径--model_type qwen3 \ # 指定模型的类型,用于加载正确的模板和配置--dataset ./huanhuan.json \ # 指定训练数据集的 JSON 文件路径--train_type lora \ # 指定训练方法为 LoRA,一种参数高效微调技术--torch_dtype bfloat16 \ # 指定模型训练时使用的数据类型,节省显存并加速计算--num_train_epochs 2 \ # 指定训练的总轮数,模型将完整地看两遍数据--per_device_train_batch_size 4 \ # 指定每个 GPU 上的训练批大小--per_device_eval_batch_size 1 \ # 指定每个 GPU 上的评估批大小--learning_rate 1e-5 \ # 指定优化器的学习率--lora_rank 8 \ # 指定 LoRA 适配器的秩,控制其复杂度和参数量--lora_alpha 32 \ # 指定 LoRA 的缩放因子,控制其对模型的影响强度--target_modules all-linear \ # 指定将 LoRA 应用到所有线性层--gradient_accumulation_steps 2 \ # 指定梯度累积步数,用于模拟更大的批大小--eval_steps 200 \ # 指定每训练多少步进行一次评估--save_steps 200 \ # 指定每训练多少步保存一次模型检查点--save_total_limit 2 \ # 指定最多保留的检查点数量,以节省磁盘空间--logging_steps 5 \ # 指定每训练多少步记录一次日志--max_length 4096 \ # 指定输入序列的最大长度--output_dir output \ # 指定输出目录,用于保存日志、模型等--warmup_ratio 0.05 \ # 指定学习率预热的比例,用于稳定训练初期--dataloader_num_workers 4 \ # 指定数据加载器的工作进程数,用于加速数据读取--load_from_cache_file false \ # 设置为 false,每次都重新处理数据,便于调试--loss_scale ignore_empty_think \ # 自定义的损失缩放策略--save_strategy steps \ # 指定保存策略为按步数保存--model_author glm \ # 设置模型作者的元信息--model_name qwen3_0.6b \ # 设置模型名称的元信息--report_to swanlab \ # 指定日志上报的可视化工具--swanlab_project swift-learn # 指定在 SwanLab 中的项目名称
进行推理:
CUDA_VISIBLE_DEVICES=0 \
swift infer \--adapters ./output/v2-20251101-154047/checkpoint-934 \--stream true \--temperature 0 \--max_new_tokens 2048
进行合并:
swift export \--adapters ./output/v2-20251101-154047/checkpoint-934 \--merge_lora true```进行合并后的推理:
```shell
swift infer \--model_type qwen3 \--model ./output/v2-20251101-154047/checkpoint-934-merged
swanlab实验可视化

