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+数据混合重放更省心。

相关推荐
100个铜锣烧8 小时前
高级提示技术:Chain-of-Thought与ReAct——让大模型学会“思考”和“行动”
人工智能·大模型·提示词工程
JackHCC8 小时前
快手OneRetrieval:可编辑生成式电商召回
人工智能·机器学习
前端之虎陈随易8 小时前
编程语言级别的Skill市场,AI Agent 的未来形态
前端·vue.js·人工智能·typescript·node.js
QiLinkOS8 小时前
第三视觉理解徐玉生与他的商业活动(30)
大数据·c++·人工智能·算法·开源协议
武汉唯众智创9 小时前
当汉字成为心理CT:AI汉字联想投射分析的技术实现与心理评估价值
人工智能·ai心理健康·ai心理评估·本土化心理测评·校园心理健康解决方案·ai心理监测·多模态情绪模型
Longvox9 小时前
Agent为什么会死循环?
人工智能·ai编程
陈天伟教授9 小时前
FreeCAD 启动后小窗口闪现即退的解决思路
人工智能·机器人·工业设计
酒旅Agent开发实战9 小时前
AI 旅行规划助手如何接入真实酒旅数据:从自然语言到酒店预订的全流程 MCP 实战
人工智能·ai·旅游·skill·酒店api·机票api
workflower10 小时前
设备单元级(L1)实施路径
人工智能·线性代数·矩阵·机器人·开源