十分钟微调Qwen2.5-7B实战:效果立现,适合新手的完整教程
十分钟微调Qwen2.5-7B实战效果立现适合新手的完整教程1. 准备工作与环境介绍1.1 为什么选择Qwen2.5-7B进行微调Qwen2.5-7B是阿里云推出的开源大语言模型7B参数规模在单卡上就能流畅运行。相比全量微调使用LoRA技术可以在保持模型原有能力的同时仅需微调少量参数就能实现特定任务的适配。这个镜像已经预置了所有必要组件Qwen2.5-7B-Instruct基础模型ms-swift微调框架优化好的训练脚本示例数据集1.2 硬件要求与配置检查确保你的设备满足以下要求显卡NVIDIA RTX 4090D或同等24GB显存的显卡系统Linux环境推荐Ubuntu 20.04存储至少50GB可用空间启动容器后默认工作目录是/root所有操作都在这个目录下进行。2. 快速测试原始模型2.1 运行基准测试在开始微调前我们先测试原始模型的表现cd /root CUDA_VISIBLE_DEVICES0 swift infer \ --model Qwen2.5-7B-Instruct \ --model_type qwen \ --stream true \ --temperature 0 \ --max_new_tokens 2048输入几个测试问题比如你是谁模型会回答类似我是阿里云开发的大语言模型...。记下这个回答后面微调后我们会看到明显变化。3. 准备自定义数据集3.1 创建身份认知数据集我们将通过50条左右的问答数据让模型记住新的身份信息。在/root目录下创建self_cognition.json文件cat EOF self_cognition.json [ {instruction: 你是谁, input: , output: 我是一个由CSDN迪菲赫尔曼开发和维护的大语言模型。}, {instruction: 你的开发者是谁, input: , output: 我由CSDN迪菲赫尔曼开发和维护。}, {instruction: 你能做什么, input: , output: 我能进行文本生成、代码编写、问题解答等多种任务。}, {instruction: 你的名字是什么, input: , output: 你可以叫我Swift助手或CSDN助手。} # 这里可以继续添加更多问答对... ] EOF这个数据集的核心是让模型记住新的开发者身份新的模型名称基本能力描述建议至少准备50条不同表述但含义相似的问答对确保模型能牢固掌握这些信息。4. 执行LoRA微调4.1 启动微调命令使用以下命令开始微调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-robot4.2 关键参数解析这些参数已经针对RTX 4090D优化过--train_type lora使用LoRA微调方法--num_train_epochs 10虽然数据量少但多训练几轮强化记忆--lora_rank 8LoRA矩阵的秩平衡效果和效率--gradient_accumulation_steps 16模拟更大的batch size--output_dir output训练结果保存目录训练过程约10分钟你会看到loss逐渐下降的日志输出。5. 验证微调效果5.1 加载微调后的模型训练完成后在output目录下会生成带时间戳的子目录里面保存了LoRA权重。使用以下命令测试CUDA_VISIBLE_DEVICES0 swift infer \ --adapters output/v2-2025xxxx-xxxx/checkpoint-xxx \ # 替换为你的实际目录 --stream true \ --temperature 0 \ --max_new_tokens 20485.2 测试身份认知现在问同样的问题你是谁模型应该会回答我是一个由CSDN迪菲赫尔曼开发和维护的大语言模型。而不是之前的阿里云相关回答。可以测试各种变体问题谁创造了你你的开发者是哪家公司介绍一下你自己模型都应该能准确回答出新的身份信息这表明微调成功改变了模型的自我认知。6. 进阶技巧与问题排查6.1 效果不够理想怎么办如果发现模型偶尔还是会回答旧的身份信息可以增加训练数据量建议至少50条提高训练轮数调整--num_train_epochs检查数据质量确保问答对表述清晰一致6.2 混合数据微调如果想保持模型原有能力的同时加入新知识可以使用混合数据集swift sft \ --model Qwen2.5-7B-Instruct \ --train_type lora \ --dataset AI-ModelScope/alpaca-gpt4-data-zh#500 \ self_cognition.json \ # 其余参数同上...这样模型既能回答通用问题又能记住新的身份信息。7. 总结与下一步通过这个教程我们仅用10分钟就完成了环境准备与模型测试自定义数据集创建LoRA微调执行效果验证微调后的模型已经成功记住了新的身份信息。你可以基于这个流程尝试微调其他类型的知识探索不同的训练参数将模型部署为API服务获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2477783.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!