数据备齐(第十章),该训练了。这一章把训练环节的三个高频名词——SFT、LoRA、偏好对齐——讲到「你能和别人争论方案」的程度。先说一个能消除大半神秘感的事实:这三种方法在做的都是同一个动作——拿一批数据,调整模型的权重,让「理想输出」在这种输入下出现的概率变高。区别只在于调多少权重、用什么标准算「好」。
SFT:照着示范改习惯
SFT(监督微调,supervised fine-tuning)是最基础的一步:把你的「输入 → 理想输出」样例喂给模型,每遇到模型自己的输出和理想输出不一致,就微调权重,把理想输出的概率往上推一点。几万次这样的推拉之后,模型的行为习惯就被掰成了你示范的样子。
理解 SFT 的关键是理解它的边界:它只能教「怎么做」,教不了「新知识」。把公司政策原文当训练数据灌进去,模型不会因此记住政策——它学到的是「这种文字的腔调」,具体事实照样记错、照样幻觉。这就是为什么第九章说知识进上下文、行为进权重。用 SFT 灌知识是最经典的误用。
LoRA:不动本体,只加一层「小抄」
直接调整模型的全部权重(全量微调)有两个现实问题:贵(几十亿参数全部参与训练,显存开销巨大),险(容易把通用能力训坏,即「灾难性遗忘」)。LoRA(低秩适配)是个精巧的绕行:冻结原模型的全部权重,只在关键位置插入一小组新增的小矩阵,训练时只调这些小矩阵。
为什么有效?因为「把一个通用模型调成某个垂直行为」所需的改变,在数学上是低维的——不需要动几十亿个参数,几百万个就够表达这个「差量」。工程上的好处非常实在:显存需求降一个数量级(消费级显卡也能训);训练快;而且原模型权重一个字节没动——训坏了,把小矩阵扔掉就是,还能给不同业务各挂一个 LoRA「插件」切换使用。
大白话:全量微调是给房子重新装修,LoRA 是只换窗帘和摆设。绝大多数「换风格」的需求,换窗帘就够了,而且不满意随时换回来。
偏好对齐:没有标准答案时,用「哪个更好」来教
SFT 需要每条样例有唯一的理想输出。但很多场景不存在唯一标准答案——「回复的语气要温暖但不谄媚」这种东西没法写成一条示范。这时候用偏好对齐:给模型看同一个输入的两个回答,只标注「A 比 B 好」。DPO(直接偏好优化)这类方法直接用这种成对比较来调整权重,让「像 A 那样」的输出概率升高、「像 B 那样」的降低。
偏好数据有个绝妙的低成本来源:你的线上系统每天都在产生。人工客服把 AI 草稿改成终稿——草稿 vs 终稿,就是一对现成的「较差 vs 较好」。把这条数据管道接上,系统的每一次人工修正都在为下一次训练攒料。
第一次微调的实战顺序
- 先拿五十条精选数据在现成平台(或开源脚本加一张显卡)上跑一次 LoRA,目标不是效果,是跑通全流程:数据格式、训练、导出、部署、评估。
- 用留出集(第十章)和线上评估集(第六章)各评一遍——特别注意通用能力有没有退化,这是微调最常见的暗伤。
- 有效,再把数据量加上去;没效,先怀疑数据质量,最后才怀疑超参数。十次里有九次,问题在数据。
微调走到这一步,你已经有算法岗的手感了。下一章上最后一个台阶:什么时候不微调别人的模型,而是自己从头(或从基座)训一个专用的?