先这样答
现在的大语言模型基本都是三步走:预训练、监督微调(SFT)、基于人类反馈的强化学习(RLHF)。预训练把互联网规模的文本喂给模型,训练目标只有一个:给前文,预测下一个 token。这一步花掉绝大部分算力,产出是一个会语言、有知识、但不会对话的基座模型。
SFT 用人工写的高质量问答对继续训练,数据量比预训练小好几个数量级,作用是让基座模型学会以助手身份回应指令:知道该直接回答,而不是续写。RLHF 分两步:先让人对同一个问题的多个回答排序,用排序数据训练一个奖励模型,让它学会给回答打分;再用强化学习让主模型朝高分方向调整。后来出现的 DPO(直接偏好优化)跳过了单独训练奖励模型这步,直接用偏好数据微调,目标相同,路线更简单。
给面试官收一句:预训练解决「会不会语言和知识」,SFT 解决「会不会按指令对话」,RLHF 解决「回答合不合人的偏好」。按这个分工讲,层次就清楚了。
面试官会怎么追问
- 「为什么不直接用预训练模型?」 基座模型的本质是续写器,你问它问题,它可能续写出另一个问题,或模仿网文语气往下写,因为它没学过「该以什么身份怎么答」。SFT 和 RLHF 就是把续写能力改造成对话能力的步骤。
- 「RLHF 里的奖励模型是干什么的?」 把「人觉得哪个回答好」变成一个能自动打分的函数。训练时人不可能盯每一次更新,奖励模型学会人的偏好后,就能在强化学习里给主模型的输出持续打分,替代人工。
- 「SFT 和 RLHF 都是微调,只做一个行吗?」 行,很多开源模型只做 SFT 就可用。但只做 SFT 容易学成「模仿标注答案的表面格式」,RLHF 用真实的偏好比较来调,回答质量上限更高;代价是流程更复杂,也更依赖奖励模型本身的可靠性。
回答的坑
- 把三个阶段说成「同一个模型训三遍,越训越聪明」。三步的数据、目标函数、训练方法都不同,解决的是三个不同的问题,不是简单重复。
- 说 SFT 是把标注数据「背下来」。SFT 教的是行为模式,不是记忆题库;这个阶段质量远比数量重要,低质量数据会让模型学到坏习惯。
同系列的题
—— 本题完 ——