2026/1/13 6:32:09
网站建设
项目流程
网站建设销售策划方案,海口网球,论坛网站建设开源工具,会员积分系统#x1f34b;#x1f34b;AI学习#x1f34b;#x1f34b;#x1f525;系列专栏#xff1a; #x1f451;哲学语录: 用力所能及#xff0c;改变世界。
#x1f496;如果觉得博主的文章还不错的话#xff0c;请点赞#x1f44d;收藏⭐️留言#x1f4dd;支持一下博主…AI学习系列专栏 哲学语录: 用力所能及改变世界。如果觉得博主的文章还不错的话请点赞收藏⭐️留言支持一下博主哦一、LoRA微调✅ 核心思想不更新原始大模型的所有参数7B 参数 ≈ 14GB 显存而是在某些层如 attention 的 Q/V 投影插入低秩矩阵只训练 A 和 B可减少 99% 可训练参数✅ 优势项目传统全参数微调LoRA显存占用极高需多卡极低单卡 24G 可训 70B训练速度慢快 2~5 倍存储成本每个任务存完整模型只存 ~100MB 的 adapter多任务切换需加载不同模型动态切换 LoRA 权重适用场景SFT、DPO、甚至部分 RLHF策略模型二、准备工作1. 环境安装推荐使用unsloth加速# 基础依赖 pip install torch transformers datasets accelerate peft bitsandbytes # 可选但强烈推荐Unsloth加速 LoRA 训练 2~5 倍 pip install unsloth[colab-new] githttps://github.com/unslothai/unsloth.git2. 选择基础模型中文推荐Qwen/Qwen-1.5-7B-Chat,THUDM/chatglm3-6b英文推荐meta-llama/Meta-Llama-3-8B-Instruct,mistralai/Mistral-7B-Instruct-v0.3注意不要用 base 模型做对话任务优先选-Instruct或-Chat版本3. 准备 SFT 数据集Alpaca 格式[ { instruction: 将以下英文翻译成中文, input: The future is already here — its just not evenly distributed., output: 未来已来只是尚未均匀分布。 }, // ... 更多样本 ]三、LoRA 微调代码Hugging Face PEFT使用 Unsloth更快更省显存from unsloth import FastLanguageModel model, tokenizer FastLanguageModel.from_pretrained( model_nameQwen/Qwen-1.5-7B-Chat, max_seq_length2048, dtypeNone, # 自动选 float16/bfloat16 load_in_4bitTrue, ) model FastLanguageModel.get_peft_model( model, r64, target_modules[q_proj, k_proj, v_proj, o_proj], lora_alpha128, lora_dropout0, biasnone, use_gradient_checkpointingTrue, random_state3407, ) # 后续训练流程类似但速度提升 2~5 倍Unsloth 优势自动融合 kernels、支持梯度检查点、内存优化单卡 24G 可训 70B 模型四、关键超参数调优指南参数推荐值说明r(rank)32 ~ 128越大拟合能力越强但过大会过拟合7B 模型常用 64lora_alpha2×r控制 LoRA 更新幅度通常设为 2*rlora_dropout0.0 ~ 0.1小模型可设 0大模型可加 0.05 防过拟合target_modules见下表必须匹配模型架构learning_rate1e-4 ~ 5e-4比全参数微调高 10 倍batch_size越大越好通过gradient_accumulation_steps模拟大 batch 常见模型的target_modules模型家族target_modulesLlama / Mistral[q_proj, k_proj, v_proj, o_proj]Qwen[q_proj, k_proj, v_proj, o_proj]ChatGLM[query_key_value]Phi-3[q_proj, k_proj, v_proj] 不确定用print(model)查看模块名或设target_modulesall-linearPEFT ≥ 0.10五、微调后如何推理方式 1合并 LoRA 权重推荐用于部署→ 合并后可用vLLM / TGI / Transformers直接加载方式 2动态加载 LoRA适合多 adapter 切换from peft import PeftModel model AutoModelForCausalLM.from_pretrained(Qwen/Qwen-1.5-7B-Chat, ...) model PeftModel.from_pretrained(model, ./qwen-lora) # 推理时自动应用 LoRA⚠️ 注意vLLM 从 v0.4.0 开始实验性支持 LoRA 推理但生产环境仍建议合并。