10 SFT、PEFT、LoRA 与蒸馏
板书明确提到;现有正式课件主要概览与预告。此章按标准原理补齐,老师后续课件给出的变体、符号和实现细节应再逐项对齐。
10.1 SFT 解决“会续写但不一定会回答”
预训练模仿宽泛文本分布,SFT以指令/上下文x和期望回答y为监督:
通常只对assistant回答token计loss,prompt仍作为输入可被attention读取。mask loss不表示把prompt从输入删除。多轮对话中可对全部assistant轮次或只对最后一轮监督,取决于数据方案;角色边界和EOS/EOT目标要保持一致。
SFT流程:清理/去重/划分指令数据→套正确chat template→分词与截断→构造assistant loss mask→选择全参或PEFT→训练/验证→保存参数和tokenizer/template配置→用实际生成评测。截断可能把答案尾部或终止符切掉,不应忽略。
训练teacher forcing条件下的token准确率高,不代表自由生成整题正确率高:前一步生成错后,后续条件偏离训练分布。SFT仍可使用和预训练相同的交叉熵,区别主要在条件数据分布、mask和目标行为。
10.2 PEFT 是训练方式的集合
全参微调更新所有允许训练的参数;PEFT只更新一小部分或新增参数。LoRA低秩更新,adapter插入小模块,prompt tuning学习输入软向量,prefix tuning学习层内前缀状态;它们都不是简单的人工写prompt,但具体参数插入点不同。
PEFT省可训练参数、梯度和优化器状态,不会消除base权重与全部激活。冻结某层参数不意味着该层forward都可no_grad:若还需向前面的可训练adapter传梯度,其对输入的梯度仍重要。
10.3 LoRA 从矩阵更新推出来
列向量约定:W0:[d_out,d_in],冻结;学习A:[r,d_in]、B:[d_out,r]:
低秩假设针对微调增量ΔW,不要求W0自身低秩。rank(BA)≤r;r越大自由度越多,但存储与训练成本增大,效果不是必然单调。LoRA能应用到Q/K/V/O、FFN等选定线性层,具体选哪些是配置,不是只能Q/V。
全矩阵参数d_out*d_in,LoRA为r(d_in+d_out)。例4096×4096、r=8:131,072个,原16,777,216,比例1/128;这是单矩阵比例,不是整个模型自动减少128倍。
常见A随机、B零初始化,让初始ΔW=0不扰动base。令G=∂L/∂W,则
∂B=s G Aᵀ,∂A=s BᵀG。
初始B=0时∂A=0,∂B通常不为0;B更新后A便可学习。如果A/B都0,则这条双线性路径两边梯度同时0,无法启动。A/B初始化角色也可对换,需保持逻辑一致。
训练后可把sBA合并到W0,推理不必多两次adapter矩阵乘法;不合并则方便切换多个adapter。量化base上的merge需要数值处理,不能直接对低bit整数编码相加。LoRA原论文。
10.4 QLoRA 和量化不是同一层概念
QLoRA以低bit形式保存冻结base,通过较高精度的LoRA路径更新,并在计算时按需重建/使用base近似值;其经典方法还包含特定量化格式与内存处理。它不是“把A/B和全部梯度都变4bit”。更少base存储与更少可训练状态是两项不同来源的节省。QLoRA原论文。
误差来自量化近似、低秩容量与数据等多方面;高bit全参或更大r不是在每个实验中都自动更好,需固定预算与评价条件比较。
10.5 为什么蒸馏要看整个分布
one-hot只告诉学生“这一项正确”,教师soft distribution还表达次优token之间的相似性与相对可能性。用小学生模型学习教师行为,可降低服务成本;教师也可能是集成或推理预算更大的同规模系统,不一定只是参数更多。
token级soft蒸馏先在相同上下文、对齐词表/目标空间下取得teacher/student logits:
经典目标示意:
此处λ是hard目标权重,别与其他教材相反约定混用。教师固定时KL(q||p)=H(q,p)-H(q),H(q)对student是常数,因此优化forward KL等价优化soft-target CE。KL方向不能随意交换。
10.6 KL 为什么非负,为什么不对称
用-ln u≥1-u,令u=p_i/q_i,在支持合适时:
Σq_i ln(q_i/p_i) ≥ Σq_i(1-p_i/q_i)=0。
等号在p=q时成立;q_i>0而p_i=0会导致无穷惩罚。KL不是距离度量,不满足对称/三角不等式。自然对数单位nats;若改log2单位bits。
例q=[.8,.2]、p=[.5,.5]:KL(q||p)≈.192745,KL(p||q)≈.223144。不能把它写成Σ(p-q)²或把CE当KL本身。
对student原始logit的soft CE梯度为(p^τ-q^τ)/τ;高温下概率差也常缩小约1/τ,经典乘τ²是补偿其尺度的动机,不是对任意分布的精确不变性。τ增大软化分布,暴露次要类别关系;训练后推理通常回到正常temperature设置,而不是强制一直用训练蒸馏温度。
10.7 Soft distillation 与 sequence distillation
soft:要有teacher分布/logits、词表与位置对齐;每个有效位置匹配分布;teacher通常eval+no_grad。
hard/sequence:让teacher生成高质量答案或推理轨迹,筛选后作为学生SFT数据;不必能访问完整logits,适合只提供文本API的教师。但生成错例会传播、样本分布会限制学生覆盖。学生训练在teacher序列上与在自己rollout序列上匹配teacher,是不同数据分布。
跨tokenizer模型不能直接按同下标KL,因为同一ID可能不是同一文本单位;需做目标空间对齐或改用序列/文本级方法。蒸馏不保证学生绝不超过教师在某个指标上的表现,也不保证无损压缩所有能力。
10.8 这些概念可以组合,不能互相替代
SFT描述监督训练目标;LoRA描述参数化/更新方式;distillation描述监督信号来源/匹配方法;quantization描述数值表示;RLVR描述奖励来源;GRPO描述策略优化方法。可以对量化base用LoRA进行teacher答案SFT,也可以在可行实现里用LoRA做RL,但这些词不是同义词。
闭卷检验:给d_in=1024、d_out=4096、r=16、α=32,写A/B形状、可训练参数量、初始输出、首步A/B梯度性质;再说明teacher只给最终答案时能做哪种蒸馏。