资讯动态

27届大模型面试准备(二十七):模型融合与蒸馏——SLERP、TIES、DARE 与知识蒸馏

发布时间:2026/8/13 10:23:12 来源:尧图企业网站定制
27届大模型面试准备二十七模型融合与蒸馏——SLERP、TIES、DARE 与知识蒸馏之前讲完参数高效微调A18 LoRA/PEFT和 MoE 稀疏激活A21解决的都是怎么在有限算力下训出更强模型。但 2024 年以来社区冒出一个更省事、更便宜的思路与其从头训练不如把已经训好的多个模型捏在一起或者让小模型去学大模型的思考方式。这就是模型融合model merging与知识蒸馏knowledge distillation。这是本系列第二十七篇。本文按为什么需要融合 → 权重空间平均与 SLERP → 任务算术与 TIES/DARE → 融合方法对比 → 知识蒸馏原理软标签/温度/KL→ 黑盒与白盒蒸馏 → 上下文蒸馏 → 常见坑展开结尾给面试速答和高频追问清单。如果把大模型技术栈想象成一个工厂预训练A17 分布式训练是挖矿后训练A16 SFT/RLHF是冶炼微调A18是定制MoEA21是把多个专家塞进一个模型。那么融合和蒸馏就是装配车间——前者把现成的多个定制件拼成一件更全能的产品后者把老师傅的手艺压缩进年轻工人的肌肉记忆。它们都不产生新的知识只是对已有能力做更聪明地重新组织。理解这一点你就不会把融合/蒸馏当成训练平替而会把它当成工业化交付手段。一、为什么要模型融合与蒸馏1.1 训练一个模型太贵组合多个模型很便宜传统路线需求 A、B、C 各训一个专家模型 - 3 份算力、3 套部署 融合路线先各自训好专家再在权重空间平均 - 1 个模型同时拥有 A、B、C 能力 蒸馏路线大模型(教师) 很贵小模型(学生) 很 cheap 让小模型模仿大模型的输出分布 - 小模型获得接近大模型的能力核心动机就一句话用远低于训练的成本获得接近集成的效果。一条命令把多个 7B 模型融成一个 7B推理成本不变却同时具备代码、数学、对话三种能力——这对资源有限的中小团队极具吸引力。1.2 两类技术的定位差异技术输入输出典型目的模型融合多个同架构权重一个同尺寸权重能力组合、无需训练知识蒸馏教师模型 学生模型训练好的学生压缩、提速、降本面试时要把这两类讲清楚融合是横向拼能力蒸馏是纵向压尺寸它们解决的问题不同但经常配合使用先用融合造个强教师再蒸馏给学生。1.3 一笔账融合/蒸馏 vs 从头训练假设要做一个会代码会数学会对话的 7B 助手 从头训练 7B约需数百张 A100 跑数周成本百万级且要自建数据管线 分别微调 3 个 7B每个约 1~2 张卡跑几天然后 model souping 几分钟融好 蒸馏若已有 70B 教师用其生成几十万条 SFT 样本训 7B成本主要在 API/推理 结论融合把多能力的成本从多份训练降到几次微调一次平均 蒸馏把强能力的成本从训练降到采样微调。这笔账是面试官最爱追问的为什么不用训练的回答基础融合和蒸馏不是比训练更强而是性价比更高、迭代更快。在小团队里今天发现数学弱了明天加个数学专家融合进去就能补而不必重新训练这个敏捷性是它们的真正价值。1.4 典型误区误区1融合一定能涨点 - 错融合可能在某些维度退化见第六章 误区2模型越大融合越好 - 错融合要求同架构与绝对大小无关 误区3蒸馏学生必然弱于教师 - 不一定学生若容量足够且数据够好 可在特定任务追平甚至超过教师 误区4融合和集成是一回事 - 集成是推理时跑多个取平均贵 融合是训练时合成一个便宜这四条误区基本覆盖了八成面试里对这两个概念的常见误解建议逐条能举出反例。二、模型融合的基础权重空间平均2.1 最朴素的融合——模型汤Model Soups给定同一初始化、不同超参/数据种子训出的 N 个权重 W_1..W_N 均匀平均W_avg (W_1 W_2 ... W_N) / N 前提假设这些权重落在同一个低损失盆地里平均后仍在盆地内 所以平均后的损失不会爆炸。模型汤的关键洞察是如果多个微调只是在同一个平坦最优解附近小幅偏移那么加权平均几乎不会损精度连一步梯度更新都不用。但 uniform 平均有个隐患——当模型在某一层差异很大时直接相加会互相抵消。一个常被忽略的前提是这些模型必须真的来自同一盆地。如果其中一个微调因为学习率过大跑偏到了另一个局部最优把它 averaging 进来反而会拉高整体损失。所以在生产里用模型汤前通常会先把候选权重各自评测一遍剔除那些已经走偏的再对剩下的做平均。换句话说模型汤不是无脑平均而是先筛选、再平均——筛选这一步往往比平均本身更影响最终结果。2.2 SLERP球面线性插值普通线性插值LERPW (1-λ)·W_a λ·W_b 问题权重向量长度范数被拉小相当于做了一次隐式缩放破坏表征。 SLERP球面插值在单位球面上插值保持向量范数不变 W sin((1-λ)Ω)/sinΩ · W_a sin(λΩ)/sinΩ · W_b Ω arccos( W_a, W_b / (|W_a||W_b|) )SLERP 适合融合两个差异较大的模型因为它不会把权重缩水。实践中很多人发现 SLERP 比 LERP 在融合两个异质模型时更稳定。一个经验法则是差异小的模型用加权平均差异大的用 SLERP或者干脆用下面更精细的方法。关于 SLERP 还有个直觉值得记住它本质上是在两个权重向量张成的弧上取点而不是在连接两点的直线段上取点。当这两个向量长度差异大、且夹角接近 90 度时直线插值会严重偏离球面结果等价于把一个模型拉瘦再和另一个拼在一起表征被破坏而弧上插值始终保持在合理的长度尺度内。这也解释了工程经验里先确认两模型权重范数接近再融合的必要性——范数相差过大的两个模型无论 LERP 还是 SLERP 都容易出问题往往需要先把它们各自归一化或做幅度对齐。2.3 为什么平均能工作平坦最优解的几何直觉要理解融合为什么有效得先接受一个反直觉的事实神经网络的最优解不是孤立的一个点而是一片广阔平坦的低损失盆地。同一个基座用不同随机种子、不同数据顺序微调得到的权重虽然数值不同但都落在这个盆地里彼此可以用一条低损失走廊相连。模型汤之所以只做平均就有效正是因为多个微调权重都在同一个盆地内平均值也大概率仍落在盆地里损失不会跳变。这带来一个重要的工程启示融合的稳定性取决于这些权重是否同源。同源同基座、同数据分布、相似超参的权重容易落在同一盆地融合几乎无损而异源权重不同基座、差异巨大的能力可能分处不同盆地简单平均会落到两个盆地之间的山脊上损失飙升。这也是为什么 SLERP、TIES、DARE 这些方法要花心思处理方向和符号——它们本质都是在找一个能连起不同盆地的、损失仍然低的路径。面试时如果能把这个盆地直觉讲出来会比单纯罗列公式更有深度。三、任务算术与 TIES / DARE3.1 任务向量Task Vectors任务向量τ W_task - W_base 即微调后权重减去基座权重得到这次微调带来的增量。 任务算术Task Arithmetic W_new W_base λ_1·τ_1 λ_2·τ_2 ... 用不同 λ 控制每种能力的强弱甚至可以减去某个 τ 做遗忘负向算术。任务向量的好处是把能力看成一个可加可减的向量给了很强的可控性。但它也暴露了直接相加的问题不同任务的增量会在同一维度上互相打架符号冲突、幅值掩盖。3.2 TIES解决符号冲突直接加任务向量时同一维度上不同 τ 的更新方向可能相反 - 抵消或噪声。 TIES 三步 1) Trim剪枝只保留每个 τ 中幅值最大的前 k%如 20%参数其余置 0 2) Elect选符号对每个维度按多数投票决定保留正还是负方向 3) Merge合并只在同一方向上的幅值做平均TIES 的核心思想是先约掉噪声、再统一方向、最后才合并幅值显著减少了任务向量相互抵消的问题是 2023-2024 年融合效果最好的方法之一。值得强调Trim 为什么有效大多数微调带来的参数变化其实集中在少数几个维度上绝大部分维度的增量幅值极小、接近噪声。直接平均时这些噪声维度会和真正重要的维度混在一起既引入随机扰动又稀释了有效信号。Trim 通过只保留幅值最大的前 k%相当于做了一次信号提纯让后续的符号投票和幅值合并都建立在更干净的基础上。这也是为什么 TIES 在多个差异较大任务上明显优于朴素平均——它显式地处理了哪些维度值得合并这个被朴素方法忽略的问题。3.3 DARE随机丢弃再 rescaleDARE 做法 1) 对任务向量 τ 随机丢弃 p% 的参数置 0只保留 (1-p)% 的有意义增量 2) 对保留部分 rescaleτ τ / (1-p)补偿被丢弃的那部分幅值 3) 再丢进 TIES 或平均里融合 直觉大部分增量其实是冗余的丢掉 90% 也不影响反而降低冲突概率。DARE 经常和 TIES 组合DARE-TIES在 Llama/Mistral 系的多专家融合里是事实标准配方。一篇经典的选 3 个 13B 专家融成 1 个 13B效果超过各自单独的实验就让这套方法出圈。3.4 融合方法对比方法是否需要训练关键操作适用场景模型汤平均否uniform 平均同初始化多副本SLERP否球面插值两个异质模型Task Arithmetic否任务向量加权可控增减能力TIES否剪枝选符号合并多任务融合、去冲突DARE否随机丢弃rescale与 TIES 组合降冗余线性/DELLA否幅值重排/自适应大规模多模型3.5 融合的落地工作流step by step1) 选基座所有待融合模型必须同一基座同架构/同词表/同层数 2) 训专家在基座上分别微调出 code / math / chat 等专家可不同超参 3) 算任务向量τ_i W_expert_i - W_base 4) 选定方法 同初始化多副本 - 直接 souping 两个异质模型 - SLERP 多任务组合 - TIES / DARE-TIES 5) 融合按方法合并权重产出单个合并权重 6) 评测 diff跑合并前各专家 合并后的多维度评测对比每个维度 7) 迭代 λ / k% / p% 等超参直到各维度不退化且目标能力增强下面给一个简化的 numpy 示意把加权平均与SLERP落到可运行的代码帮助理解范数为什么重要import numpy as np def lerp(Wa, Wb, lam0.5): return (1 - lam) * Wa lam * Wb # 线性插值可能缩小范数 def slerp(Wa, Wb, lam0.5, eps1e-8): na, nb np.linalg.norm(Wa), np.linalg.norm(Wb) Wa, Wb Wa / (na eps), Wb / (nb eps) # 先归一化到单位球面 dot np.clip(np.dot(Wa, Wb), -1.0, 1.0) omega np.arccos(dot) if omega eps: # 几乎同向退化为 lerp return lerp(Wa * na, Wb * nb, lam) s1 np.sin((1 - lam) * omega) / np.sin(omega) s2 np.sin(lam * omega) / np.sin(omega) return s1 * Wa * na s2 * Wb * nb # 保持各自范数后插值 # 实践建议先算 Wa 与 Wb 的余弦相似度 # 相似度高 - lerp/souping 足够相似度低 - 用 slerp 避免塌缩。这段代码的价值在于把范数从概念变成可见的操作lerp 直接对原始权重相加若两向量长度不同结果会被拉向较短那一侧slerp 先各自归一化再插值最后乘回原范数保证了方向混合、尺度不变。面试时能徒手写这一步会比只背名词有力得多。3.6 融合与 MoE 是一回事吗常被拿来对比模型融合本文训练后把多个完整模型的权重平均成一个模型。 专家是静态合并的推理时只跑一个融合后的网络。 MoEA21训练时就把多个专家子网络放进一个模型靠路由器动态选专家。 专家是动态激活的推理时按 token 选 top-k 个专家。 关键区别 融合的多专家在权重空间已经叠在一起无法再分开 MoE 的多专家在结构上仍然独立推理时按需调度。 相同点都试图一个模型拥有多种能力且都避免了为每个能力单独部署。一句话区分融合是把专家揉成一个MoE 是把专家装进一个盒子但还分着用。融合的推理成本等于单个模型MoE 的推理成本约等于被激活的少数专家但总参数更大、显存更高。面试时被问我到底该用融合还是 MoE答案取决于你是否还想要动态选专家的能力以及能否承担 MoE 的训练与显存开销——很多场景其实用融合就够因为并不需要在一次前向里切换专家。四、知识蒸馏让小模型学大模型4.1 蒸馏的基本形式教师 T大、强 学生 S小、快 目标让学生 S 的输出分布逼近教师 T 硬标签蒸馏naive用 T 的 argmax 当标签等价于普通监督 软标签蒸馏经典 Hinton 2015用 T 的 softmax 概率带温度当监督信号知识蒸馏的精髓在于软标签携带了类间相似性信息比如教师说猫 0.7 / 狗 0.25 / 车 0.05学生从猫和狗接近里学到的比单纯这是猫多得多。这就是黑暗知识dark knowledge。4.2 温度与 KL 散度import torch, torch.nn.functional as F def distill_loss(student_logits, teacher_logits, labels, T4.0, alpha0.7): # 软标签损失学生与教师在升温后的分布上对齐 soft_s F.log_softmax(student_logits / T, dim-1) soft_t F.softmax(teacher_logits / T, dim-1) kd F.kl_div(soft_s, soft_t, reductionbatchmean) * (T * T) # 硬标签损失学生也要答对比真实标签 ce F.cross_entropy(student_logits, labels) # alpha 平衡两者T 越大分布越软、越平滑 return alpha * kd (1 - alpha) * ce温度 T 的作用是把教师的尖锐分布拉软暴露类间关系KL 散度衡量两个分布的接近程度。升温后的 KL 要乘以 T² 补偿梯度量级这是 Hinton 原论文的修正项面试常考。4.3 黑盒蒸馏 vs 白盒蒸馏维度白盒蒸馏黑盒蒸馏能否拿到教师权重能不能只有 API监督信号logits / 隐藏层 / 注意力仅最终输出文本典型用法开源大模型训小模型用 GPT-4 等 API 造数据训小模型成本需教师在线前向只调 API便宜但信息少黑盒蒸馏现在极常见用强闭源模型生成大量问题, 回答对再去微调开源小模型这就是蒸馏数据/SFT 数据合成的核心。很多所谓小模型达到大模型水平的宣称背后都是这套流程与 A23 数据工程、A16 后训练一脉相承。4.4 一个具体算例软标签到底多有用三分类任务真实标签是猫。 硬标签 [1, 0, 0] - 只告诉学生是猫 教师软标签 [0.80, 0.18, 0.02] - 还透露狗比车更像猫 学生学硬标签只知道猫遇到模糊样本易过拟合 学生学软标签还学到类间结构泛化更稳且对噪声更鲁棒这就是为什么同样的数据量下蒸馏学生常常比普通监督学生更稳。软标签相当于免费的数据增强——它把教师的归纳偏置灌进了学生。需要注意的是软标签的类间相似性只有在教师的判断本身靠谱时才有用如果教师自己就错得离谱学生学到的就是错得一致反而更难纠正。4.5 黑盒蒸馏的数据工程实践现实里最常见的是用闭源强模型(教师)批量生成 (prompt, response) 对 再用这些数据去 SFT 一个开源小模型。要点 1) 覆盖度数据要覆盖目标能力的分布不能只在简单题上刷 2) 多样性同一类问题用不同问法避免学生记住模板 3) 质量过滤教师也会出错/幻觉需做拒绝采样或人工抽检 4) 难度分层混入少量难题防止学生只会简单题 5) 系统提示剥离生成时带的系统提示不要写进训练样本否则学生学会依赖它这套流程和 A23 数据工程、A16 后训练高度重合本质上黑盒蒸馏 ≈ 用教师造高质量 SFT 数据。区别在于蒸馏还可以额外利用教师的概率分布白盒而不仅是文本答案。面试常问你怎么做小模型对齐大模型答案往往就是这五条数据工程纪律。五、更进阶的蒸馏上下文与过程蒸馏5.1 上下文蒸馏Context Distillation场景推理时用了很长的思维链(CoT)提示才答对但线上不想每次带长提示。 做法 1) 用长 CoT 提示让教师产出正确答案 中间推理 2) 把问题 - 最终答案直接作为学生训练样本丢掉中间过程 3) 学生学会不依赖长提示也能给出同样答案上下文蒸馏把提示工程带来的增益固化进权重是降低推理成本的有效手段。它和 A22 推理时扩展Test-Time Scaling刚好互补一个把推理时收益搬进权重一个继续留在推理时。一个容易混淆的点是上下文蒸馏丢掉中间过程看似和过程蒸馏矛盾其实二者针对不同阶段。上下文蒸馏解决的是推理时提示太长、太贵的部署问题目标是让小模型脱离长提示也能答对过程蒸馏解决的是学生只会猜答案、不会走正路的学习问题目标是让学生的推理路径本身正确。生产里常见组合是先用过程蒸馏让学生学会正确推理路径再用上下文蒸馏把长提示的依赖去掉两步叠加既准又便宜。5.2 过程蒸馏Process Distillation / Step-level普通蒸馏只对齐最终答案过程蒸馏对齐每一步推理。 例子数学题教师给出 5 步推导学生不仅学最终答案 还学第 3 步为什么要这么换元。 实现用教师的中间步骤作监督或训练奖励模型判断学生每步好坏。过程蒸馏对数学、代码这类步骤敏感任务尤其重要能避免学生猜对答案但推理全错的伪成功。5.3 蒸馏、微调、预训练三者的关系很多初学者会把蒸馏和微调混为一谈其实它们的区别在监督信号从哪来预训练的信号来自无标注语料的下一 token微调SFT的信号来自人工编写的指令, 回答对蒸馏的信号来自另一个模型的输出可能是 logits也可能是文本。换句话说蒸馏是一种特殊的微调——它的数据由教师模型生成而非人工标注。这也解释了为什么现在大量 SFT 数据其实是蒸馏来的先用强模型造数据再在这份数据上做普通监督微调工程上和蒸馏等价只是没有用到教师的软标签而已。理解了这一层你就能看穿市面上一半自研小模型的真实技术路径。5.4 一个常被追问的细节蒸馏会损害学生的创造力吗担忧学生过度模仿教师可能变得只会复读教师风格丧失多样性。 事实取决于温度与数据多样性。 低温硬学 - 学生收敛到教师的窄分布输出更保守 高温多样数据 - 学生保留一定多样性 折中用教师做能力兜底再混入一定量真实数据防止风格坍缩。这和 A23 提到的模型坍缩model collapse是同一类风险如果训练数据全由模型生成、且模型又是从被训练模型蒸馏来的分布会一代比一代窄。所以健康的蒸馏管线一定会保留一部分非蒸馏来源的真实数据作为分布锚点。这一点在面试里提到会显得你对数据飞轮有真实体感。六、常见坑与面试陷阱6.1 容量差距Capacity Gap现象当学生和教师能力差距过大如 0.5B 学 70B 学生学不动蒸馏反而比直接监督更差。 解释教师的软标签太难学生表示能力不足过拟合到噪声。 对策用中等教师、或分阶段蒸馏70B-7B-0.5B 的蒸馏链。容量差距是蒸馏里最常被忽视的坑面试问为什么我的小模型蒸馏后变差了时第一反应就应该是它。6.2 融合的架构约束模型融合大多要求相同架构、相同词表、相同层数/隐维度。 跨架构/跨词表直接融 - 张量形状对不上无法相加。 对策先对齐 tokenizer合并词表或在同族模型内融合。这也是为什么融合生态集中在 Llama/Mistral/Qwen 这些同架构家族里——它们天然可加。6.3 融合后的评测盲区坑融合后整体分数涨了但某一单项如安全拒答悄悄退化。 对策融合前后跑同一套多维度评测diff 每个维度不能只看平均分。这与 B20 可观测性、A20 评测体系的思路一致聚合指标会掩盖维度退化必须分层看。6.4 融合 蒸馏的组合实战先造教师再压学生现实 production 里最稳的流水线往往是融合在前、蒸馏在后 1) 用 TIES/DARE 把多个专家融成一个强教师如 70B 级、能力全面 2) 用这个教师做白盒/黑盒蒸馏产出 7B 学生 3) 对学生再走一轮轻量融合补某单项弱项形成闭环 优势 - 教师比单一模型更均衡学生学到的分布更干净 - 融合补能力宽度蒸馏补推理成本各取所长 风险 - 教师若有融合引入的隐性缺陷会被蒸馏原样传给学生缺陷继承 - 必须对学生也做维度级评测防止教师有的毛病学生全学会这条流水线把本文两半内容串了起来也是目前很多开源小模型以弱胜强故事的真实底稿。面试时如果能把为什么先融后蒸、各自解决什么、风险在哪讲清楚比单独背两种方法得分高得多。6.5 选型决策表我该用融合还是蒸馏你的目标优先手段理由已有多个同架构专家想合并能力模型融合TIES/DARE零训练成本分钟级要把大模型能力搬到一个小模型上知识蒸馏唯一能压缩尺寸的途径小模型某单项弱想快速补融合补丁再融一个专家比重训快几个数量级没有教师权重只有 API黑盒蒸馏白盒不可行时的替代既要能力广、又要成本低融合蒸馏组合各取所长production 首选这张表是给面试官看的工程判断不是哪个技术新用哪个而是目标决定手段。能把技术映射到业务目标是 senior 和 junior 的关键分野。6.6 局限总览别神话这两项技术融合的边界 - 不能创造新知识只会重组已有能力 - 受限于同架构跨家族融合基本不可行 - 融合后难以解释哪个专家贡献了哪部分行为 蒸馏的边界 - 学生上限被教师能力封顶除非引入额外真实数据 - 容量差距会让学生学不动过强的教师 - 软标签可能把教师的偏见/错误一并传下去把这两个边界讲清楚反而会让面试官觉得你用过、踩过坑、有边界感而不是只会喊口号。真正成熟的回答往往是这两项技术很省但它们不是银弹——融合解决不了知识缺失蒸馏解决不了能力天花板该训练的时候还是得训练。这种收尾比罗列十个方法名更像是做过生产的人会说的话。七、面试速答 高频追问清单面试速答60 秒版模型融合是把多个同架构权重在权重空间组合无需训练就能合并能力常见做法有均匀平均模型汤、SLERP、任务向量算术以及 TIES剪枝选符号合并和 DARE随机丢弃rescale来化解符号冲突与冗余。知识蒸馏是让小模型学生模仿大模型教师的输出分布核心是带温度的软标签与 KL 散度分白盒拿 logits/隐藏层和黑盒只用 API 输出两种。上下文蒸馏把长提示的收益固化进权重过程蒸馏对齐每一步推理。注意容量差距与架构对齐两个大坑。高频追问清单SLERP 相比 LERP 解决了什么具体问题为什么权重范数重要TIES 的选符号Elect步骤在解决什么冲突如果不选会怎样DARE 随机丢弃 90% 参数为什么不崩rescale 项在补什么蒸馏里的温度 T 是什么为什么 KL 损失要乘 T²黑盒蒸馏和白盒蒸馏的信息差在哪里黑盒能蒸馏隐藏层吗容量差距是什么为什么 0.5B 学 70B 容易失败怎么缓解模型融合为什么通常要求同架构同词表跨词表怎么处理任务向量做负向算术能实现遗忘吗和机器遗忘A28有什么区别上下文蒸馏和推理时扩展A22是替代关系还是互补关系融合后只看平均分有什么风险你怎么做维度级回归检查

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价