EWC/KD/ILR/PL

我将结合LoRA微调背景,对大模型训练与微调 中四个截然不同的核心课题:防遗忘(正则化)模型压缩(迁移)优化策略(调参) 和 **课程安排(数据调度)**逐一进行技术拆解,最后再串联它们的协同关系。


1. 弹性权重合并(EWC,Elastic Weight Consolidation)

解决痛点灾难性遗忘(Catastrophic Forgetting)。当模型学完任务A再去学任务B时,更新全量参数会把任务A的"记忆"覆盖掉。

核心数学机制

EWC不冻结参数,而是给每个参数加一根"松紧带"。它通过Fisher信息矩阵(对角近似)来评估每个权重对旧任务(任务A)的"重要程度"。

  • 如果某个权重对旧任务极其重要(Fisher值大),更新它时,损失函数会施加极大的二次惩罚项

  • 如果权重不重要,则可以随意更新。

    损失函数变为

L(θ)=LB(θ)+λ2∑iFi(θi−θA∗)2L(θ)=LB​(θ)+2λ​i∑​Fi​(θi​−θA∗​)2

(其中 FiFi​ 是重要性,θA∗θA∗​ 是旧任务的最优点,λλ 是正则化强度)

与LoRA的区别 :LoRA是"完全不碰旧权重(冻结)",属于硬隔离;EWC是"允许动旧权重,但微调时给关键参数上枷锁",属于软约束。EWC更适合**持续学习(Continual Learning)**场景,但计算Fisher矩阵在百亿参数模型上极其昂贵,因此在LLM微调中,EWC使用率远低于LoRA。


2. 知识蒸馏(KD,Knowledge Distillation)

解决痛点模型太大,推理太慢,或者想把"大模型(教师)的泛化能力"迁移到"小模型(学生)"上。

核心机制

传统的训练是让模型学硬标签(Hard Labels) (即"正确答案是猫")。知识蒸馏的关键在于引入温度系数(Temperature, TT) ,让学生模型去模仿教师模型输出的软概率分布(Soft Labels)

  • 教师模型输出的logits除以温度 TT 后做Softmax,概率分布变得"平滑"(例如,猫的概率0.9,狗0.08,汽车0.02)。这个平滑分布包含了教师对"猫和狗很像"的暗知识(Dark Knowledge)

  • 学生模型不仅要拟合真实标签(硬损失),还要拟合教师输出的软分布(蒸馏损失,通常用KL散度)。

在LLM中的高阶玩法

  • 自蒸馏(Self-Distillation):用自身在充足数据上的输出,去微调自身在稀疏数据上的表现。

  • 上下文蒸馏:把复杂的CoT(思维链)推理过程,蒸馏为直接输出的最终答案,提升推理速度。


3. 增大学习率(Increasing Learning Rate)

重要前提 :在LLM领域,"无脑增大学习率"通常是危险的 ,但它的确是一种关键的策略性操作,主要出现在以下三个特定阶段:

  • ① Warm-up(预热阶段) :这是LLM训练的必修课 。在训练初期(前几百步),学习率从 0 线性增大 到目标值(如 2e-4)。因为初期模型梯度方差极大,如果直接用大学习率,会导致Adam优化器极不稳定。所以这里的"增大"是为了稳定过渡

  • ② 循环退火(Cyclical / Cosine Restart) :如SGDR算法,训练一段时间后学习率衰减到极小值,然后瞬间跳回较大的学习率。目的是让模型跳出当前的"尖锐局部极小值",探索更"平坦"的损失平面(平坦区域泛化能力更强)。

  • ③ 逃离瓶颈期:当Loss长期不动时,手动短时间增大学习率,利用梯度冲击打破优化僵局。

绝对禁忌 :在LoRA微调 后期,如果你的 loss 震荡剧烈,绝对不要增大学习率,否则 AA 和 BB 矩阵会瞬间梯度爆炸,破坏基座能力。


4. 渐进式学习(Progressive Learning)

解决痛点模型一次性接触复杂数据容易不收敛或过度拟合 。核心思想是课程学习(Curriculum Learning),即由易到难、由简到繁。

在LLM中的典型落地场景

  • 数据维度(长度渐进) :先用**短文本(如 512 tokens)**训练模型学习句法和局部语义,待收敛后,再逐步增加上下文长度(如 1024 -> 2048 -> 4096)训练长程依赖。Google的Transformer早期训练常用此招,可节省30%训练时间。

  • 任务维度(难度渐进) :先让模型做选择题(判别式) ,再做简答题(生成式);或者先学小学数学,再学微积分。

  • 模型维度(深度/宽度渐进) :先训练一个12层的小Transformer作为"胚胎",然后将权重复制并堆叠(如把第ii层参数复制给第i+6i+6层),再继续训练扩展成24层大模型。MSRA的StackBERT就是典型代表。


5. 四者横向对比与组合应用

维度 弹性权重合并 (EWC) 知识蒸馏 (KD) 增大学习率 (LR) 渐进式学习
本质归属 正则化 / 约束算法 迁移学习 / 压缩算法 优化器超参调度 数据 / 架构调度策略
操作对象 模型的全量权重 模型的输出Logits 训练的梯度步长 训练的输入批次
主要目标 抵抗灾难性遗忘 提升小模型能力 / 加速推理 逃离局部极小 / 启动训练 稳定训练 / 加速收敛
是否改变模型结构 否(只改变输出目标) 可能(如逐层增加深度)
与LoRA的兼容性 极差(EWC计算量巨大,很少和LoRA一起用) 极好(可在微调时用基座做教师,蒸馏LoRA学生) 一般(仅用Warm-up增大,后期必须衰减) 极好(LoRA微调时先训简单指令,再训复杂推理)

6. 实战组合拳建议(针对LoRA微调项目)

假设你现在要用LoRA微调一个7B的数学推理模型,这四者的配合是:

  1. 先用"渐进式学习":准备数据集时,先喂入3000道简单的一步算术题,模型稳定后,再加入2000道复杂的多步应用题(由易到难),防止早期梯度震荡。

  2. 设置"学习率" :前5%的步数,将LoRA的学习率从 0 缓慢增大 到 1e-4(Warm-up);剩下的95%步数,使用余弦衰减将学习率降至 1e-6(切记:后期是减小,而不是增大)。

  3. 用"知识蒸馏"提效:如果你想把7B模型部署到手机端(换3B小模型),在训练3B小模型时,让7B模型(冻结)同时输出soft labels,辅助3B训练,这样3B模型能达到接近7B的80%能力。

  4. 慎用EWC :如果你是在旧领域模型上硬加新领域知识(如先学法律,再学医疗,且不能遗忘法律),且不方便保留旧数据,此时考虑使用EWC;但如果你的场景允许混训,直接抛弃EWC,用LoRA+数据混合重放更省心。

相关推荐
Shockang12 小时前
AI 智能体安全沙盒实战
人工智能
yuhulkjv33512 小时前
Claude表格复制到word不再崩溃,AI导出鸭批量导出+格式无损一键搞定
人工智能·ai·c#·word·ai导出鸭
大明者省14 小时前
WSL2 Ubuntu22.04 GPU训练环境配置指南
人工智能·算法·计算机视觉
抱抱宝14 小时前
Agent-study项目教程(03):手写 Mini-ReAct Agent(不依赖框架)
javascript·人工智能·gpt·react.js·prompt·agent
抱抱宝14 小时前
大模型应用开发教程08 | 构建完整 RAG 应用(Chroma/FAISS 实战)
人工智能·gpt·prompt·agent
美团技术团队14 小时前
KDD‘26 美团学术论文精选及KDD Cup‘26 DataAgents赛道冠军思路解读
人工智能
AKAMAI14 小时前
当AI模型超出存储增长时
人工智能·云计算
科技绘图15 小时前
快鲸GEO vs 传统AI搜索优化:全链路自动化与高效内容生产在转化闭环上的对比
数据库·人工智能·自动化
DS随心转小程序15 小时前
ChatGPT 文字怎么转为 word?解析各类转换方案,AI 导出鸭成为高效文档转换新选择
人工智能·chatgpt·word·豆包·deepseek·ai导出鸭
乌恩大侠15 小时前
【AI-RAN】硬件产品:DELL 前传交换机
人工智能·spark·aerial·o-ru·ai-ran