首页 文章 精选 留言 我的

精选列表

搜索[LLM],共5762篇文章
优秀的个人博客,低调大师

LLM蒸馏与微调·第四章:蒸馏与微调的组合策略

CHAPTER 04 · COMBINED STRATEGIES # 蒸馏与微调的组合策略 *先蒸馏再微调 · 同步蒸馏 · 法律领域端到端案例 · 电商客服资源受限案例* 在实际落地中,蒸馏和微调几乎不会单独使用——你需要的是**"先蒸馏再微调"**或**"微调阶段同步蒸馏"**的组合策略。本章是全书最核心的实操章节,提供两种策略的完整链路和两个端到端案例。 ## 4.1 策略一:先蒸馏再微调 ### 4.1.1 为什么这是最常见的落地路径 **选择A:直接微调7B** 用领域数据微调Qwen2.5-7B-Instruct。问题:7B通用能力有限,微调后可能"够专但不够强" **选择B:先蒸馏再微调 ★** 先从72B蒸馏到7B(获得通用能力),再用领域数据微调(适配业务场景)。7B既"够强"又"够专" *核心逻辑:**蒸馏解决"够不够强"的问题,微调解决"够不够专"的问题。*** ### 4.1.2 完整实操链路(四步走) **第一步:蒸馏(72B→7B)** 用黑盒或白盒蒸馏将72B能力迁移到7B。推荐LoRA r=32, 4个目标模块, 2 epochs。蒸馏数据用72B生成的10K条通用指令数据。 **第二步:合并蒸馏适配器** llamafactory-cli export 合并LoRA权重,得到蒸馏后的7B完整模型。 **第三步:微调蒸馏后的7B** 以蒸馏后7B为基座做领域微调。LoRA r=16, 2个目标模块, 3 epochs。学习率3e-5(低于直接微调,保护蒸馏能力)。 **第四步:合并微调适配器** 最终得到领域专用7B模型。 蒸馏阶段配置 lora_rank: 32 # 蒸馏用更大rank lora_alpha: 64 lora_target: q_proj,k_proj,v_proj,o_proj # 4个目标模块 dataset: distill_data_from_72b learning_rate: 5.0e-5 num_train_epochs: 2 # 蒸馏通常2轮 微调阶段配置 model_name_or_path: /path/to/7b-distill-merged # 蒸馏后的7B lora_rank: 16 # 微调用较小rank lora_target: q_proj,v_proj dataset: my_medical_dataset learning_rate: 3.0e-5 # 低于直接微调,保护蒸馏能力 num_train_epochs: 3 ### 4.1.3 关键注意事项 **蒸馏阶段用更大的rank** 蒸馏需学习教师通用能力,信息量大,rank=32~64。微调只需适配领域,rank=16通常够用 **微调阶段用更低的学习率** 3e-5 vs 5e-5,避免"冲掉"蒸馏获得的能力 **微调数据混入通用数据** 10~20%通用指令数据防止灾难性遗忘 **每一步都要评估** 蒸馏后评估通用能力是否提升,微调后评估领域能力是否达标 ## 4.2 策略二:微调阶段同步蒸馏 "先蒸馏再微调"是两步走,"同步蒸馏"是一步到位——在微调学生模型的同时,用教师模型的输出作为额外的监督信号。学生在学习领域知识的同时,持续受到教师"指导",不会偏离太远。 损失函数 L_total = α · L_KD(教师, 学生) + β · L_CE(硬标签) + γ · L_SFT(领域数据) 领域数据batch:只计算SFT损失 | 通用数据batch:同时计算KD损失和CE损失 | 交替训练 ### 4.2.3 Loss权重调参 KD=0.1, SFT=0.9 → 偏向领域适配,教师指导弱 **★KD=0.3, SFT=0.7** → 推荐起点,平衡领域适配和通用能力 KD=0.5, SFT=0.5 → 教师、领域各半 KD=0.7, SFT=0.3 → 偏向教师指导,领域数据少时适用 ### 4.2.4 调参实验记录 实验1:KD_WEIGHT的影响(法律领域,72B→7B) KD=0.1 → 法律79%,C-Eval 66 ✅ | 领域好,通用退化 **★KD=0.3** → 法律77%,C-Eval 69 ✅ | 最佳平衡 KD=0.5 → 法律74%,C-Eval 71 ✅ | 通用好,领域不够 KD=0.7 → 法律70%,C-Eval 72 ⚠️ | 教师信号太强,领域适配弱 实验2:温度参数(KD_WEIGHT=0.3) τ=1 → 法律76%,C-Eval 68 | 暗知识不足 **★τ=2** → 法律77%,C-Eval 69 | 推荐 τ=3 → 法律77%,C-Eval 70 | 通用略好 τ=5 → 法律75%,C-Eval 69 | 过度软化,噪声增多 实验3:领域数据与通用数据的比例 领域:通用 = 2:1 → 法律78%,C-Eval 67 | 偏向领域 **★1:1(交替训练)** → 法律77%,C-Eval 69 | 推荐 1:2 → 法律73%,C-Eval 71 | 偏向通用 调参路径:起点KD=0.3, τ=2, 领域:通用=1:1 → 领域不够就降低KD或增大领域比例 → 通用退化就增大KD或增大通用比例 → 不稳定就降低学习率 ## 4.3 案例一:法律领域7B模型(标准配置) 场景定义 目标:面向法律领域的7B对话模型,部署在律师事务所内网 推理硬件:1×RTX 4090(24GB) 训练硬件:2×A100 80GB(云GPU) 领域数据:5000条法律问答对 | 时间:1周 7天执行计划 **Day 1-2** 数据准备:5000条法律数据(ShareGPT格式)+ 10K条通用蒸馏提示(UltraChat子集) **Day 3-4** 蒸馏:72B生成10K条回答 → 过滤 → 训练7B(LoRA r=32, 2ep)→ 合并 → 评估C-Eval **Day 5-6** 微调:5000条法律数据 + 10%通用数据 → 微调蒸馏后7B(LoRA r=16, lr=3e-5, 3ep)→ 合并 **Day 7** 对比评估:vs 直接微调 / vs 纯蒸馏 → 确认最终模型 预期效果对比 原始7B-Instruct → 法律60~64%,C-Eval 67~69 直接微调7B → 法律75~81%,C-Eval 63~67 ↓ | 领域提升,通用退化 纯蒸馏7B → 法律65~71%,C-Eval 70~73 ↑ | 通用提升,领域不够 **★先蒸馏再微调7B** → 法律**79~85%**,C-Eval **68~72** | 领域+通用都好 *组合策略的价值:**蒸馏保住了通用能力的底线,微调拉高了领域能力的上限。*** ## 4.4 案例二:电商客服7B模型(资源受限) 资源约束 训练硬件:仅1×RTX 4090(24GB)——只有一张消费级显卡 领域数据:2000条客服对话(质量参差不齐) 时间预算:3天 | 预算:尽量免费 白盒蒸馏72B→7B不可能(72B教师4bit推理需36GB显存)。选择**"黑盒蒸馏 + 微调"**——利用云GPU做教师推理(按小时计费),本地4090做学生训练。 3天执行计划 **Day 1上午** 数据清洗:去除敏感信息、统一格式、去重。2000条原始数据 → 约1500条可用 **Day 1下午** 租用云GPU(1×A100,约10元/小时),用72B教师对5K条通用提示生成回答,约3~4小时完成 **Day 2** 本地4090训练:用5K条蒸馏数据做黑盒蒸馏(LoRA r=16, 3ep),约4~6小时。合并适配器 **Day 3** 本地4090微调:1500条客服数据 + 150条通用数据(LoRA r=16, lr=3e-5, 3ep),约2小时。评估部署 与法律案例对比 法律案例:2×A100 80GB | 白盒蒸馏 | 5K领域数据 | 7天 | 成本约2000元 电商案例:1×RTX 4090 | 黑盒蒸馏 | 2K领域数据 | 3天 | 成本约50元(云GPU 3~4小时) 关键洞察:**资源受限不等于效果受限。**黑盒蒸馏+微调的组合,在单卡4090上也能做出不错的领域模型。核心是把教师推理和学生学习分开——教师用云GPU按需租用,学生在本地训练。 本章小结 - 先蒸馏再微调:最稳妥的落地路径,蒸馏保通用,微调拉领域 - 同步蒸馏:一步到位但调参复杂,起点KD=0.3, τ=2, 领域:通用=1:1 - 蒸馏阶段用大rank(32~64),微调阶段用小rank(16)+ 低学习率(3e-5) - 法律案例(2×A100):先蒸馏再微调,法律79~85%,C-Eval 68~72 - 电商案例(1×4090):黑盒蒸馏+微调,3天完成,成本约50元 PAPER & INK · AI EDITION · CHAPTER 04. #得到大脑 #《日更者联盟》 14天打卡活动---Day04

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册