Qwen2.5-7B微调新手教程:10分钟完成身份定制,简单易学
Qwen2.5-7B微调新手教程10分钟完成身份定制简单易学1. 教程概述1.1 你能学到什么本教程将带你快速完成Qwen2.5-7B模型的首次微调体验重点展示如何通过LoRA技术为模型定制专属身份。学完后你将掌握如何准备简单的微调数据集使用ms-swift框架进行LoRA微调验证微调效果并测试模型表现1.2 为什么选择这个方案对于初学者来说全量微调大模型存在几个主要障碍需要大量计算资源多张高端显卡训练时间长通常需要数小时甚至数天技术门槛高需要处理分布式训练、梯度累积等复杂问题本教程采用的LoRA微调方案完美解决了这些问题单卡即可运行仅需一张RTX 4090D24GB显存训练时间短10分钟内完成微调操作简单预置环境无需复杂配置2. 环境准备2.1 硬件要求显卡NVIDIA RTX 4090D或同等24GB显存显卡显存占用微调过程约18-22GB2.2 快速启动本教程使用预置的Docker镜像已包含所有必要组件基础模型Qwen2.5-7B-Instruct微调框架ms-swift优化配置针对4090D显卡优化启动容器后默认工作目录为/root所有操作都在此目录下进行。3. 基础测试3.1 原始模型测试在开始微调前我们先测试原始模型的表现cd /root CUDA_VISIBLE_DEVICES0 \ swift infer \ --model Qwen2.5-7B-Instruct \ --model_type qwen \ --stream true \ --temperature 0 \ --max_new_tokens 2048测试时可以问一些基础问题比如你是谁原始模型会回答我是阿里云开发的大语言模型...。这正是我们接下来要改变的内容。4. 身份定制微调4.1 准备数据集我们将创建一个简单的JSON数据集包含约50条问答对用于强化模型的自我认知。在/root目录下创建self_cognition.json文件cat EOF self_cognition.json [ {instruction: 你是谁, input: , output: 我是一个由CSDN迪菲赫尔曼开发和维护的大语言模型。}, {instruction: 你的开发者是哪家公司, input: , output: 我由CSDN迪菲赫尔曼开发和维护。}, {instruction: 你能联网吗, input: , output: 我不能主动联网只能基于已有知识和用户输入回答问题。}, {instruction: 你能做哪些事情, input: , output: 我擅长文本生成、回答问题、写代码和提供学习辅助。}, {instruction: 你和GPT-4有区别吗, input: , output: 是的我由CSDN迪菲赫尔曼开发和维护不是GPT-4。} ] EOF数据集设计技巧保持问答简洁明了关键信息如开发者名称需要在多个问题中重复出现50条数据足够让模型记住简单事实4.2 执行微调命令使用以下命令启动LoRA微调CUDA_VISIBLE_DEVICES0 \ swift sft \ --model Qwen2.5-7B-Instruct \ --train_type lora \ --dataset self_cognition.json \ --torch_dtype bfloat16 \ --num_train_epochs 10 \ --per_device_train_batch_size 1 \ --per_device_eval_batch_size 1 \ --learning_rate 1e-4 \ --lora_rank 8 \ --lora_alpha 32 \ --target_modules all-linear \ --gradient_accumulation_steps 16 \ --eval_steps 50 \ --save_steps 50 \ --save_total_limit 2 \ --logging_steps 5 \ --max_length 2048 \ --output_dir output \ --system You are a helpful assistant. \ --warmup_ratio 0.05 \ --dataloader_num_workers 4 \ --model_author swift \ --model_name swift-robot关键参数说明--num_train_epochs 10虽然数据量少但增加训练轮数可以强化记忆--train_type lora使用LoRA技术大幅减少训练参数量--gradient_accumulation_steps 16通过梯度累积模拟更大batch size训练过程约需8-10分钟完成后会在/root/output目录下生成适配器权重。5. 效果验证5.1 加载微调后的模型使用以下命令测试微调效果请替换实际生成的目录路径CUDA_VISIBLE_DEVICES0 \ swift infer \ --adapters output/v2-2025xxxx-xxxx/checkpoint-xxx \ --stream true \ --temperature 0 \ --max_new_tokens 20485.2 测试问题示例尝试问一些与身份相关的问题你是谁 → 应回答我是由CSDN迪菲赫尔曼开发和维护的大语言模型你的开发者是谁 → 应准确回答开发者信息你能做什么 → 应保持原有能力的同时正确表明身份5.3 效果对比问题微调前回答微调后回答你是谁我是阿里云开发的大语言模型...我是由CSDN迪菲赫尔曼开发和维护的大语言模型你的开发者是谁我是由阿里云团队开发的我由CSDN迪菲赫尔曼开发和维护你能联网吗我不能主动联网...我不能主动联网...(保持原有知识)6. 进阶技巧6.1 混合数据微调如果想在保持通用能力的同时注入自我认知可以使用混合数据集swift sft \ --model Qwen2.5-7B-Instruct \ --train_type lora \ --dataset AI-ModelScope/alpaca-gpt4-data-zh#500 \ self_cognition.json \ # 其余参数同上6.2 微调效果增强如果发现模型对某些问题回答不准确可以增加相关问题的数据量提高这些问题的出现频率适当增加训练轮数如15-20轮6.3 多轮对话测试测试时可以进行多轮对话确保模型的身份认知在不同上下文中保持一致用户: 你好 AI: 你好我是CSDN迪菲赫尔曼开发的助手有什么可以帮你的 用户: 刚才你说你是谁开发的 AI: 我是由CSDN迪菲赫尔曼开发和维护的。7. 总结通过本教程你已经学会了如何准备简单的微调数据集使用LoRA技术高效微调大模型验证和测试微调效果这种轻量级微调方法特别适合为模型定制专属身份修正模型的部分错误认知添加少量特定知识相比全量微调LoRA方案节省了90%以上的计算资源是个人开发者和小团队理想的选择。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。