第 07 章 · 大模型算法岗
SFT 与参数高效微调
从监督微调数据到 LoRA、QLoRA 与软提示方法,理解参数、显存、质量和部署之间的取舍。
SFT 在大模型后训练中做什么?
30 秒口述版
SFT 用高质量指令-回答样本继续做条件语言建模,让基础模型学会任务格式、指令遵循和目标风格。
原理与推导
它主要模仿数据分布,不能自动解决偏好冲突和事实性,需要数据设计、评测与后续对齐。
公式、代码或工程案例
只对 assistant token 计算 loss,并审计多轮边界。
高频追问
- SFT 与 continued pretraining 有何区别?
- 这个结论在规模、数据或硬件条件变化时,边界会怎样改变?
易错点
不要把更多样本等同于更好,低质量数据会稀释能力。
权威来源
SFT 数据如何构造与清洗?
30 秒口述版
覆盖真实任务、难度和拒答边界,统一模板,去重并检查事实、格式与安全。
原理与推导
应保留任务多样性,避免答案风格单一;合成数据需有生成、过滤和人工抽检闭环。
公式、代码或工程案例
分层划分 train/dev/test,避免同源近重复。
高频追问
- 多轮数据怎样避免角色错位?
- 这个结论在规模、数据或硬件条件变化时,边界会怎样改变?
易错点
不要把测试集提示改写后放回训练集。
权威来源
全参微调与 PEFT 怎样选择?
30 秒口述版
全参微调容量最大但显存、存储和灾难性遗忘风险高;PEFT 只训练少量增量参数,迭代和多任务部署更便宜。
原理与推导
选择取决于数据量、领域差异、资源、目标上限和是否需要合并权重。
公式、代码或工程案例
用同一数据比较质量、训练显存、吞吐与适配器大小。
高频追问
- 小数据全参微调为什么易过拟合?
- 这个结论在规模、数据或硬件条件变化时,边界会怎样改变?
易错点
不要只按可训练参数比例预测效果。
权威来源
LoRA 的核心原理是什么?
30 秒口述版
冻结原权重 W,用低秩矩阵 BA 表示增量 ΔW,并以缩放系数加入前向。
原理与推导
假设任务更新具有低内在秩;训练参数从 d×k 降为 r(d+k),推理前可合并。
公式、代码或工程案例
写出 W’ = W + α/r·BA。
高频追问
- A、B 为什么常一个随机一个零初始化?
- 这个结论在规模、数据或硬件条件变化时,边界会怎样改变?
易错点
不要把 LoRA 说成对原权重做低秩分解。
权威来源
LoRA 的 r、alpha 与 dropout 怎样调?
30 秒口述版
r 控制容量,alpha 控制增量尺度,dropout 提供正则;应从任务难度和验证曲线联合选择。
原理与推导
更大 r 不一定更好,target modules 与数据质量往往更关键。
公式、代码或工程案例
从 r=8/16 起做消融,并报告可训练参数和合并后效果。
高频追问
- alpha/r 为什么常被关注?
- 这个结论在规模、数据或硬件条件变化时,边界会怎样改变?
易错点
不要跨实现直接比较 alpha 数值。
权威来源
LoRA 应该注入哪些层?
30 秒口述版
常见从 attention 的 q/v 投影开始,复杂任务可扩到 k/o 与 FFN 全线性层。
原理与推导
覆盖越广容量和显存越高;不同架构层名不同,应按模块类型确认。
公式、代码或工程案例
打印可训练参数并检查 target_modules 命中。
高频追问
- Embedding 与 lm_head 何时需要训练?
- 这个结论在规模、数据或硬件条件变化时,边界会怎样改变?
易错点
不要因拼写错误导致实际零模块命中。
权威来源
QLoRA 的三项关键技术是什么?
30 秒口述版
用 NF4 量化冻结基座、双重量化减少量化常数开销、paged optimizers 缓解显存峰值,再训练 LoRA。
原理与推导
计算时权重按块反量化到计算 dtype,梯度只更新适配器。
公式、代码或工程案例
区分存储 dtype、计算 dtype 与 LoRA 参数 dtype。
高频追问
- NF4 为什么适合近似正态权重?
- 这个结论在规模、数据或硬件条件变化时,边界会怎样改变?
易错点
不要说 4-bit 基座权重会被梯度更新。
权威来源
Prefix Tuning 与 Prompt Tuning 有何区别?
30 秒口述版
Prompt Tuning 学输入层软 token;Prefix Tuning 通常为各层注意力注入可学习 K/V 前缀。
原理与推导
Prefix 容量更大但开销也高,二者都不修改主体权重。
公式、代码或工程案例
比较新增参数、上下文占用和推理缓存。
高频追问
- P-Tuning v2 做了什么扩展?
- 这个结论在规模、数据或硬件条件变化时,边界会怎样改变?
易错点
不要与自然语言 prompt engineering 混淆。
权威来源
微调学习率为什么通常不同于预训练?
30 秒口述版
微调数据少且基座已在较优区域,过大学习率会遗忘;LoRA 等少量参数又可能容许比全参微调更高的 LR。
原理与推导
最优值受参数范围、batch、训练步数和数据噪声影响。
公式、代码或工程案例
用验证集与基座能力回归共同选 LR。
高频追问
- 怎样检测灾难性遗忘?
- 这个结论在规模、数据或硬件条件变化时,边界会怎样改变?
易错点
不要只监控微调任务指标。
权威来源
多轮对话 SFT 的 Loss Mask 怎样设计?
30 秒口述版
通常只监督目标 assistant 回复,system/user 与 padding 作为条件不计损失;多轮时可监督所有 assistant 回合。
原理与推导
模板解析必须与 tokenizer 特殊 token 对齐,否则会把角色标记或用户文本当标签。
公式、代码或工程案例
解码一条训练样本并可视化每个 token 的 mask。
高频追问
- 是否应训练模型预测 EOS?
- 这个结论在规模、数据或硬件条件变化时,边界会怎样改变?
易错点
不要依靠字符串查找角色边界。
权威来源
如何评估一次微调是否真正有效?
30 秒口述版
同时比较目标任务、通用能力、安全、格式遵循、延迟和稳定性,并与基座及简单 prompt baseline 对照。
原理与推导
自动指标需配合盲测与错误分类,防止只学到模板。
公式、代码或工程案例
建立 held-out 真实样本与回归集,报告置信区间。
高频追问
- 训练 loss 更低为何可能效果更差?
- 这个结论在规模、数据或硬件条件变化时,边界会怎样改变?
易错点
不要在训练数据上展示成功案例作为主要证据。
权威来源
LoRA 适配器怎样部署与合并?
30 秒口述版
可运行时挂载多个适配器,也可把 ΔW 合并进基座得到普通权重。
原理与推导
合并减少运行时分支但失去快速切换;量化模型合并还需注意反量化与再量化误差。
公式、代码或工程案例
合并前后用固定 logits/生成集验证差异。
高频追问
- 多个 LoRA 能直接相加吗?
- 这个结论在规模、数据或硬件条件变化时,边界会怎样改变?
易错点
不要把适配器与错误版本基座配对。
