适配与对齐模块五 · 微调优化设置公式约 11 分钟
微调优化设置:目标函数与训练细节
SFT 具体怎么算 loss
学完这节你能:
- 写出 SFT 的损失(仅回答部分)
- 理解多指令合并/packing
- 了解资源消耗估算
SFT 的目标函数还是交叉熵,但有个关键细节:只在「回答」token 上算损失,指令部分只作为条件、不计损失(loss mask)。
指令/输入部分被 mask 掉,不参与损失,模型只学「怎么答」。
- loss mask:只对 output 计损失,避免模型去「预测指令」。
- 样本打包(packing):把多条短指令拼进一个序列填满 seq_len,提高训练效率(注意用 attention mask 隔开)。
- 资源估算:SFT 数据量小,用前面 6ND 与显存公式即可估出成本,通常远小于预训练。
自测SFT 训练时对指令(instruction)部分通常:
// 带走一句话
SFT loss=交叉熵但只在回答部分计(指令 mask 掉);用 packing 提效,成本远小于预训练。
独立练习
做到这些,才算完成本节
- 不看正文重写公式,并逐项说明符号、形状和单位。
- 改变一个条件,判断公式结果应增大、减小还是不变。
学习记录
记录本节阅读进度
建议先独立回答自测。读完记录不等于已经掌握。