面试官问“SFT 之后还要训练什么”只回答“RLHF”并不完整。更重要的是讲清楚三件事谁来判断回答好不好、这个判断怎样变成训练信号、模型最后怎样被更新。可以把大模型想成一名刚读完很多书的新人。预训练让它见多识广SFT 教它按照指令答题但它还不一定知道哪种答案更受欢迎也不一定能稳定处理安全边界、事实不确定和复杂要求。Post-Training 做的就是继续纠正和塑造它的回答习惯。先记住一句话Post-Training 不是一种算法而是一套组合方法面对一堆缩写不用先背公式。只要顺着下面三个问题看就不会混乱。谁来打分是人类、另一个更强的 AI还是程序规则训练数据怎么来直接写标准答案、比较一好一坏两个答案还是一次生成很多答案再挑好的模型怎么学继续像做练习册一样模仿好答案还是边生成、边拿奖励、边更新所以这些名词并不在同一层。RLAIF 主要回答“谁来反馈”DPO、PPO、GRPO 主要回答“模型怎么更新”拒绝采样主要回答“怎样从很多候选中挑出好数据”。真实训练流程通常会把它们组合起来。一、SFT 之后模型究竟还差什么从广义上说预训练之后的训练都可以叫 Post-TrainingSFT 也包括在内。不过在面试和工程讨论里大家常把重点放在“SFT 之后还要做什么”因此本文主要讲偏好学习、强化学习和数据迭代。SFT 的做法很像老师给学生看标准答案模型看到“问题—答案”样本后学习怎样组织语言、遵守格式和完成任务。它擅长模仿却不会自动总结出一套稳定的“好答案排序规则”。同一个问题往往不止一种正确答案。有的简洁有的更完整有的会诚实说明不确定有的语气很肯定却夹着错误还有些答案虽然看似有用却越过了安全边界。SFT 数据没有明确展示这些差别时模型很难自己学会取舍。用一句话区分SFT 教模型“答案应该长什么样”后续的偏好训练和强化学习再教它“多个答案里应该优先选哪一个”。二、RLHF最经典也最重的一条路线RLHF 的中文意思是“基于人类反馈的强化学习”。经典流程可以理解成三步先用 SFT 打好基础再让人类比较多个回答训练一个会打分的奖励模型最后用 PPO 让大模型逐渐生成更高分的回答。1. 奖励模型把“我更喜欢这个回答”变成分数训练奖励模型时人类通常不必纠结“这个回答到底是 82 分还是 85 分”。更简单的方式是同一道题给出两个或多个回答只判断哪个更好。奖励模型据此学习让好回答的分数高于差回答。最直观的目标好回答的奖励分数 差回答的奖励分数不过奖励模型不是裁判真理它只是学会了模仿标注偏好。假如标注数据总是偏爱长答案它可能把“字多”误认为“质量高”假如某类危险问题几乎没出现过它也可能判断失误。2. PPO 阶段为什么看起来像同时养了四个模型Policy 模型真正要训练的模型负责生成回答。Reference 模型冻结不动的旧版本用来提醒新模型“别改得太过头”。Reward Model像评委一样给完整回答打分。Value Model像赛前估分器帮助判断这次结果比预期好还是差。PPO 不是让模型只顾着刷高分。它还会比较新模型与参考模型的差距奖励提高是好事但回答风格和语言能力不能突然跑偏。KL 约束就是这根“安全绳”。拉得太松模型可能钻奖励漏洞拉得太紧模型又几乎学不到新东西。优化直觉最终得分 回答奖励 − 偏离原模型的惩罚RLHF 的优势在于“边练边探索”。模型会用当前能力不断生成新答案再根据奖励更新因此可能找到训练数据里没有直接出现过的更好策略。缺点也很明显要生成大量样本还要同时维护多个模型显存、速度、调参和系统复杂度都更高。3. RLHF 常见问题分数变高不代表回答真的变好奖励投机模型抓住评分器的漏洞分数上涨真实体验反而下降。越来越啰嗦评审器如果偏爱长答案模型可能把简单问题也写成小论文。越训越跑偏模型离原来的回答分布太远后奖励模型面对陌生输出评分会变得不可靠。安全与有用打架限制太严会动不动拒答限制太松又可能提供危险内容。因此训练曲线上的 reward 上升只能说明“更会讨好评分器”。真正上线前还要检查任务是否完成、事实是否可靠、回答是否安全、格式是否正确以及真实用户是否更满意。三、DPO把偏好对齐变回监督学习DPO 的中文意思是“直接偏好优化”。它把原本较复杂的 RLHF 目标变成一种更像普通监督学习的训练方式不用单独训练奖励模型也不用在训练中反复在线采样和跑 PPO。每条 DPO 数据都很直观一个问题、一条更好的回答和一条较差的回答。训练目标不是机械背诵好回答而是让模型以后遇到相似问题时更倾向于生成好回答同时降低差回答的概率。# 一条标准的 DPO 偏好数据sample{prompt:为什么 MySQL 联合索引有时不会被使用,chosen:先看最左前缀、范围条件、函数操作和统计信息……,rejected:因为优化器觉得全表扫描更快。}L_DPO −E[ log σ( β · ((log πθ(y⁺|x) − log πref(y⁺|x)) − (log πθ(y⁻|x) − log πref(y⁻|x))) ) ]β 可以理解成“不要偏离旧模型太远”的力度。β 越大约束通常越强模型改动得更谨慎β 太小则可能学得更激进。它没有一个适合所有任务的固定答案需要结合偏好胜率、KL、长度和能力回归一起调。用 Hugging Face TRL 跑一个最小 DPO 示例下面代码使用真正的文本代码块可以直接复制。示例只展示基本结构实际训练时还要根据显存、模型大小、样本长度和数据格式调整参数。from datasetsimportDataset from trlimportDPOConfig, DPOTrainer train_datasetDataset.from_list([{prompt:[{role:user,content:解释缓存击穿。}],chosen:[{role:assistant,content:热点 Key 失效时……}],rejected:[{role:assistant,content:缓存坏了就叫击穿。}],}])argsDPOConfig(output_dir./outputs/dpo-demo,learning_rate5e-7,per_device_train_batch_size1,gradient_accumulation_steps8,beta0.1,max_length2048,logging_steps5,report_tonone,)trainerDPOTrainer(modelQwen/Qwen3-0.6B,argsargs,train_datasettrain_dataset,)trainer.train()DPO 很省事但不能把它理解成 PPO 的万能替代品它主要从已有偏好数据里学习。数据没有覆盖到的新策略DPO 通常不会主动探索出来。“chosen 比 rejected 好”只代表相对更好不代表 chosen 本身就完全正确。好样本质量不高模型上限也会被压住。偏好对太简单模型学不到明显差别偏好对太模糊标注员都意见不一训练信号又会很乱。评估时不要只盯 loss。还要看模型选中好回答的比例、好坏回答的分数差、与参考模型的距离、回答长度以及独立测试集上的真实效果。四、GRPO砍掉 Value Model用组内相对奖励估计优势GRPO 的中文意思是“组相对策略优化”。它可以看作 PPO 的一种改造仍然让模型在线生成答案、根据奖励更新但不再单独训练 Value Model而是让同一道题的多个候选互相比较。具体做法是同一个问题一次生成 G 个回答每个回答都得到一个奖励分数然后看它在这一组里高于还是低于平均水平。优势值直觉某个回答的分数 − 同组平均分再除以同组分数波动可以把它想成同一道题让 8 名学生同时作答。高于本组平均水平的答案得到正向鼓励低于平均水平的答案被压低。这样便不必再养一个专门的 Value Model。数学、代码、SQL、工具调用等任务有明确对错时还可以直接用单元测试、执行结果或规则来打分。最小 GRPO 示例让程序直接检查答案是否正确importre from datasetsimportDataset from trlimportGRPOConfig, GRPOTrainer train_datasetDataset.from_list([{prompt:[{role:user,content:计算 17 × 23只输出整数。}],answer:391,}])def accuracy_reward(completions, answer, **kwargs): rewards[]forcompletion, targetinzip(completions, answer): textcompletion[content]ifisinstance(completion, list)elsecompletion numbersre.findall(r-?\d, text)rewards.append(1.0ifnumbers and numbers[-1]targetelse0.0)returnrewards argsGRPOConfig(output_dir./outputs/grpo-demo,learning_rate1e-6,per_device_train_batch_size8,num_generations8,max_completion_length128,logging_steps1,report_tonone,)trainerGRPOTrainer(modelQwen/Qwen3-0.6B,argsargs,reward_funcsaccuracy_reward,train_datasettrain_dataset,)trainer.train()现在的 TRL GRPOTrainer 可以接收一个或多个奖励函数也可以使用模型评审。num_generations 表示每道题一次生成多少个候选设置时要同时考虑有效批次大小和显存不能只照搬示例参数。GRPO 最常见的四个坑一组答案全对或全错大家分数都一样几乎没有“谁更好”的比较信号。题目难度需要有梯度。奖励规则有漏洞例如只检查最后一个数字模型可能前面胡说一通最后碰巧写对。奖励规则必须同时检查正确性、格式和必要约束。推理越来越长长答案有时更容易撞到正确结果也可能只是浪费 token。要同时统计正确率、长度和效率。生成速度成为瓶颈在线强化学习要为每个问题生成多条答案真正耗时的往往不是反向传播而是大量生成和验证。五、拒绝采样不做 RL也能让模型一轮比一轮好拒绝采样微调可以理解成“海选”。模型先对同一个问题生成很多候选再由规则、人类、AI 评审器或奖励模型挑出最好的把入选答案重新放进 SFT 数据里继续训练。整个过程没有策略梯度核心就是“生成—筛选—再模仿”。它的优点是稳定、直观、容易排查问题。训练人员能直接看到哪些文本被选中也不用同时维护价值模型和复杂的在线强化学习流程。因此它经常被用来先把模型推到一个更好的起点再接 DPO、PPO 或 GRPO。它的限制也很直接模型必须先“有能力生成好答案”筛选器才能选出来如果候选里一个好答案都没有再强的评委也无能为力。筛选规则有偏差时错误还会被当成新教材反复强化。六、RLAIFAI 可以当标注员但仍然需要人类校准RLAIF 的意思是“由 AI 提供反馈的强化学习”。这里真正变化的是评委原来由人类比较回答现在先让更强的模型完成大批量初审。AI 评审结果可以用来训练奖励模型、制作 DPO 偏好对也可以在在线强化学习中直接提供分数。Constitutional AI 和 RLAIF 经常一起出现但并不是同一个概念。Constitutional AI 会先写出一组明确的原则让模型按原则自我批评、自我修改RLAIF 则是一个更宽的说法只要反馈主要由 AI 产生都可以归到这条路线。研究表明在部分摘要和对话任务上RLAIF 可以接近 RLHF 的效果。但这不等于“以后不用人工”。教师模型同样可能偏爱长答案、受位置影响或判断错误而且一旦错了可能一次性污染大量训练数据。更稳妥的做法是AI 负责大批量初审人类用一小批高质量样本做校准高风险和有争议的样本继续人工复核。七、五类常见路线到底怎么选算力有限、手里已经有质量不错的偏好对通常可以先从 DPO 开始任务有明确可验证结果而且希望模型自己探索新的推理方法可以考虑 GRPO 或其他基于可验证奖励的强化学习希望先建立稳定基线可以先做拒绝采样再 SFT完整的 PPO/RLHF 更适合奖励体系、评测系统和算力调度都比较成熟的团队。还有一个比算法名字更重要的问题答案能不能可靠打分。新闻写作、客服语气、创意内容和安全边界很难写成一条死规则通常需要人类或强模型评审数学结果、单元测试、SQL 执行和工具调用成功率则更适合程序直接验证。奖励信号不可靠再先进的算法也会把模型带偏。八、两个公开训练案例真正的方案往往是组合拳案例一Llama 2-ChatLlama 2-Chat 的公开路线不是只用一种方法。它先做 SFT再通过拒绝采样不断挑出高质量回答后期又叠加 PPO 做强化学习。因此把它简单说成“一个 DPO 模型”并不准确。案例二DeepSeek-R1DeepSeek-R1 更能说明多阶段组合的价值先用少量冷启动数据把回答格式和可读性扶正再进行推理强化学习接着从大量生成结果里筛出高质量推理过程和通用数据一起做 SFT最后再做覆盖推理、帮助性和安全性的强化学习。公开论文描述的拒绝采样阶段收集了约 60 万条推理样本和约 20 万条非推理样本合计约 80 万条再用于后续 SFT。这个流程很好理解在线强化学习负责“探索新解法”拒绝采样负责“挑出好解法”SFT 负责“把好解法稳定学进去”。九、落地关键算法只占一半数据与评测同样重要1. 先把数据分成四个池避免混在一起SFT 数据像教材答案必须正确、清楚并覆盖主要场景。偏好数据同一个问题配好回答和差回答最好同时记录为什么更好、标注员有多确定。Prompt-only 数据只提供问题让 PPO、GRPO 或拒绝采样流程自己生成候选。冻结评测集只用于考试永远不能偷偷回流到训练集否则模型只是背题。2. 奖励不要只压成一个总分可以把奖励拆成任务正确性、格式遵循、事实可靠性、安全性、简洁度和工具调用成功率。每个维度都保留原始分数出了问题才知道到底是哪一项把模型带偏。多个奖励合并时还要统一量纲防止“最容易刷的分数”盖过真正重要的目标。3. 评测不能只看一个 Benchmark 平均分能力回归知识、推理、代码、工具调用和多轮对话有没有退步。偏好胜率和旧模型匿名对比避免评审器只因为答案更长或排在前面就判它更好。安全评测越狱、隐私、诈骗、危险操作以及是不是出现了过度拒答。稳定性同一问题多次生成是否忽好忽坏格式失败率和长上下文表现怎样。线上指标用户是否频繁重试、是否更常转人工、任务是否真正完成、投诉有没有增加。4. 每一轮训练都必须能解释也必须能回滚保存数据版本、奖励规则、初始模型、训练参数、随机种子、评测结果和代表性样本。上线时先做小流量灰度一旦发现安全回退、格式异常或用户体验变差就能快速切回旧版本。所以可靠的 Post-Training 不是“一次训练出一个更强模型”而是一条持续循环的生产线收集问题、生成数据、校准评分、训练模型、做离线测试、小流量上线再把新出现的难题收回来。十、面试时可以这样用大白话回答SFT 让基础模型学会按指令回答但它还不一定知道多个正确答案里哪个更好也不一定有稳定的安全边界。所以SFT 之后还会继续做偏好学习、奖励建模、强化学习和高质量数据迭代。经典 RLHF 是先让人类比较答案再训练奖励模型最后用 PPO 优化大模型并用参考模型限制它不要跑偏DPO 直接使用“好回答—差回答”数据训练省掉显式奖励模型和在线 PPOGRPO 让同一道题的多个回答在组内比较省掉 Value Model特别适合数学、代码等容易验证对错的任务拒绝采样是从很多候选里挑好答案再拿去做 SFTRLAIF 则是让 AI 参与打分它可以和前面几种训练方法组合。真实项目通常不会只选一种方法。Llama 2-Chat 把 SFT、拒绝采样和 PPO 串在一起DeepSeek-R1 则组合了冷启动 SFT、推理强化学习、拒绝采样、再 SFT 和后续强化学习。最后怎么选取决于任务能否可靠打分、偏好数据好不好、算力够不够以及团队有没有成熟的评测和上线机制。
图解大模型 Post-Training:从 SFT 到 RLHF、DPO、GRPO 与拒绝采样
发布时间:2026/7/12 12:22:15
面试官问“SFT 之后还要训练什么”只回答“RLHF”并不完整。更重要的是讲清楚三件事谁来判断回答好不好、这个判断怎样变成训练信号、模型最后怎样被更新。可以把大模型想成一名刚读完很多书的新人。预训练让它见多识广SFT 教它按照指令答题但它还不一定知道哪种答案更受欢迎也不一定能稳定处理安全边界、事实不确定和复杂要求。Post-Training 做的就是继续纠正和塑造它的回答习惯。先记住一句话Post-Training 不是一种算法而是一套组合方法面对一堆缩写不用先背公式。只要顺着下面三个问题看就不会混乱。谁来打分是人类、另一个更强的 AI还是程序规则训练数据怎么来直接写标准答案、比较一好一坏两个答案还是一次生成很多答案再挑好的模型怎么学继续像做练习册一样模仿好答案还是边生成、边拿奖励、边更新所以这些名词并不在同一层。RLAIF 主要回答“谁来反馈”DPO、PPO、GRPO 主要回答“模型怎么更新”拒绝采样主要回答“怎样从很多候选中挑出好数据”。真实训练流程通常会把它们组合起来。一、SFT 之后模型究竟还差什么从广义上说预训练之后的训练都可以叫 Post-TrainingSFT 也包括在内。不过在面试和工程讨论里大家常把重点放在“SFT 之后还要做什么”因此本文主要讲偏好学习、强化学习和数据迭代。SFT 的做法很像老师给学生看标准答案模型看到“问题—答案”样本后学习怎样组织语言、遵守格式和完成任务。它擅长模仿却不会自动总结出一套稳定的“好答案排序规则”。同一个问题往往不止一种正确答案。有的简洁有的更完整有的会诚实说明不确定有的语气很肯定却夹着错误还有些答案虽然看似有用却越过了安全边界。SFT 数据没有明确展示这些差别时模型很难自己学会取舍。用一句话区分SFT 教模型“答案应该长什么样”后续的偏好训练和强化学习再教它“多个答案里应该优先选哪一个”。二、RLHF最经典也最重的一条路线RLHF 的中文意思是“基于人类反馈的强化学习”。经典流程可以理解成三步先用 SFT 打好基础再让人类比较多个回答训练一个会打分的奖励模型最后用 PPO 让大模型逐渐生成更高分的回答。1. 奖励模型把“我更喜欢这个回答”变成分数训练奖励模型时人类通常不必纠结“这个回答到底是 82 分还是 85 分”。更简单的方式是同一道题给出两个或多个回答只判断哪个更好。奖励模型据此学习让好回答的分数高于差回答。最直观的目标好回答的奖励分数 差回答的奖励分数不过奖励模型不是裁判真理它只是学会了模仿标注偏好。假如标注数据总是偏爱长答案它可能把“字多”误认为“质量高”假如某类危险问题几乎没出现过它也可能判断失误。2. PPO 阶段为什么看起来像同时养了四个模型Policy 模型真正要训练的模型负责生成回答。Reference 模型冻结不动的旧版本用来提醒新模型“别改得太过头”。Reward Model像评委一样给完整回答打分。Value Model像赛前估分器帮助判断这次结果比预期好还是差。PPO 不是让模型只顾着刷高分。它还会比较新模型与参考模型的差距奖励提高是好事但回答风格和语言能力不能突然跑偏。KL 约束就是这根“安全绳”。拉得太松模型可能钻奖励漏洞拉得太紧模型又几乎学不到新东西。优化直觉最终得分 回答奖励 − 偏离原模型的惩罚RLHF 的优势在于“边练边探索”。模型会用当前能力不断生成新答案再根据奖励更新因此可能找到训练数据里没有直接出现过的更好策略。缺点也很明显要生成大量样本还要同时维护多个模型显存、速度、调参和系统复杂度都更高。3. RLHF 常见问题分数变高不代表回答真的变好奖励投机模型抓住评分器的漏洞分数上涨真实体验反而下降。越来越啰嗦评审器如果偏爱长答案模型可能把简单问题也写成小论文。越训越跑偏模型离原来的回答分布太远后奖励模型面对陌生输出评分会变得不可靠。安全与有用打架限制太严会动不动拒答限制太松又可能提供危险内容。因此训练曲线上的 reward 上升只能说明“更会讨好评分器”。真正上线前还要检查任务是否完成、事实是否可靠、回答是否安全、格式是否正确以及真实用户是否更满意。三、DPO把偏好对齐变回监督学习DPO 的中文意思是“直接偏好优化”。它把原本较复杂的 RLHF 目标变成一种更像普通监督学习的训练方式不用单独训练奖励模型也不用在训练中反复在线采样和跑 PPO。每条 DPO 数据都很直观一个问题、一条更好的回答和一条较差的回答。训练目标不是机械背诵好回答而是让模型以后遇到相似问题时更倾向于生成好回答同时降低差回答的概率。# 一条标准的 DPO 偏好数据sample{prompt:为什么 MySQL 联合索引有时不会被使用,chosen:先看最左前缀、范围条件、函数操作和统计信息……,rejected:因为优化器觉得全表扫描更快。}L_DPO −E[ log σ( β · ((log πθ(y⁺|x) − log πref(y⁺|x)) − (log πθ(y⁻|x) − log πref(y⁻|x))) ) ]β 可以理解成“不要偏离旧模型太远”的力度。β 越大约束通常越强模型改动得更谨慎β 太小则可能学得更激进。它没有一个适合所有任务的固定答案需要结合偏好胜率、KL、长度和能力回归一起调。用 Hugging Face TRL 跑一个最小 DPO 示例下面代码使用真正的文本代码块可以直接复制。示例只展示基本结构实际训练时还要根据显存、模型大小、样本长度和数据格式调整参数。from datasetsimportDataset from trlimportDPOConfig, DPOTrainer train_datasetDataset.from_list([{prompt:[{role:user,content:解释缓存击穿。}],chosen:[{role:assistant,content:热点 Key 失效时……}],rejected:[{role:assistant,content:缓存坏了就叫击穿。}],}])argsDPOConfig(output_dir./outputs/dpo-demo,learning_rate5e-7,per_device_train_batch_size1,gradient_accumulation_steps8,beta0.1,max_length2048,logging_steps5,report_tonone,)trainerDPOTrainer(modelQwen/Qwen3-0.6B,argsargs,train_datasettrain_dataset,)trainer.train()DPO 很省事但不能把它理解成 PPO 的万能替代品它主要从已有偏好数据里学习。数据没有覆盖到的新策略DPO 通常不会主动探索出来。“chosen 比 rejected 好”只代表相对更好不代表 chosen 本身就完全正确。好样本质量不高模型上限也会被压住。偏好对太简单模型学不到明显差别偏好对太模糊标注员都意见不一训练信号又会很乱。评估时不要只盯 loss。还要看模型选中好回答的比例、好坏回答的分数差、与参考模型的距离、回答长度以及独立测试集上的真实效果。四、GRPO砍掉 Value Model用组内相对奖励估计优势GRPO 的中文意思是“组相对策略优化”。它可以看作 PPO 的一种改造仍然让模型在线生成答案、根据奖励更新但不再单独训练 Value Model而是让同一道题的多个候选互相比较。具体做法是同一个问题一次生成 G 个回答每个回答都得到一个奖励分数然后看它在这一组里高于还是低于平均水平。优势值直觉某个回答的分数 − 同组平均分再除以同组分数波动可以把它想成同一道题让 8 名学生同时作答。高于本组平均水平的答案得到正向鼓励低于平均水平的答案被压低。这样便不必再养一个专门的 Value Model。数学、代码、SQL、工具调用等任务有明确对错时还可以直接用单元测试、执行结果或规则来打分。最小 GRPO 示例让程序直接检查答案是否正确importre from datasetsimportDataset from trlimportGRPOConfig, GRPOTrainer train_datasetDataset.from_list([{prompt:[{role:user,content:计算 17 × 23只输出整数。}],answer:391,}])def accuracy_reward(completions, answer, **kwargs): rewards[]forcompletion, targetinzip(completions, answer): textcompletion[content]ifisinstance(completion, list)elsecompletion numbersre.findall(r-?\d, text)rewards.append(1.0ifnumbers and numbers[-1]targetelse0.0)returnrewards argsGRPOConfig(output_dir./outputs/grpo-demo,learning_rate1e-6,per_device_train_batch_size8,num_generations8,max_completion_length128,logging_steps1,report_tonone,)trainerGRPOTrainer(modelQwen/Qwen3-0.6B,argsargs,reward_funcsaccuracy_reward,train_datasettrain_dataset,)trainer.train()现在的 TRL GRPOTrainer 可以接收一个或多个奖励函数也可以使用模型评审。num_generations 表示每道题一次生成多少个候选设置时要同时考虑有效批次大小和显存不能只照搬示例参数。GRPO 最常见的四个坑一组答案全对或全错大家分数都一样几乎没有“谁更好”的比较信号。题目难度需要有梯度。奖励规则有漏洞例如只检查最后一个数字模型可能前面胡说一通最后碰巧写对。奖励规则必须同时检查正确性、格式和必要约束。推理越来越长长答案有时更容易撞到正确结果也可能只是浪费 token。要同时统计正确率、长度和效率。生成速度成为瓶颈在线强化学习要为每个问题生成多条答案真正耗时的往往不是反向传播而是大量生成和验证。五、拒绝采样不做 RL也能让模型一轮比一轮好拒绝采样微调可以理解成“海选”。模型先对同一个问题生成很多候选再由规则、人类、AI 评审器或奖励模型挑出最好的把入选答案重新放进 SFT 数据里继续训练。整个过程没有策略梯度核心就是“生成—筛选—再模仿”。它的优点是稳定、直观、容易排查问题。训练人员能直接看到哪些文本被选中也不用同时维护价值模型和复杂的在线强化学习流程。因此它经常被用来先把模型推到一个更好的起点再接 DPO、PPO 或 GRPO。它的限制也很直接模型必须先“有能力生成好答案”筛选器才能选出来如果候选里一个好答案都没有再强的评委也无能为力。筛选规则有偏差时错误还会被当成新教材反复强化。六、RLAIFAI 可以当标注员但仍然需要人类校准RLAIF 的意思是“由 AI 提供反馈的强化学习”。这里真正变化的是评委原来由人类比较回答现在先让更强的模型完成大批量初审。AI 评审结果可以用来训练奖励模型、制作 DPO 偏好对也可以在在线强化学习中直接提供分数。Constitutional AI 和 RLAIF 经常一起出现但并不是同一个概念。Constitutional AI 会先写出一组明确的原则让模型按原则自我批评、自我修改RLAIF 则是一个更宽的说法只要反馈主要由 AI 产生都可以归到这条路线。研究表明在部分摘要和对话任务上RLAIF 可以接近 RLHF 的效果。但这不等于“以后不用人工”。教师模型同样可能偏爱长答案、受位置影响或判断错误而且一旦错了可能一次性污染大量训练数据。更稳妥的做法是AI 负责大批量初审人类用一小批高质量样本做校准高风险和有争议的样本继续人工复核。七、五类常见路线到底怎么选算力有限、手里已经有质量不错的偏好对通常可以先从 DPO 开始任务有明确可验证结果而且希望模型自己探索新的推理方法可以考虑 GRPO 或其他基于可验证奖励的强化学习希望先建立稳定基线可以先做拒绝采样再 SFT完整的 PPO/RLHF 更适合奖励体系、评测系统和算力调度都比较成熟的团队。还有一个比算法名字更重要的问题答案能不能可靠打分。新闻写作、客服语气、创意内容和安全边界很难写成一条死规则通常需要人类或强模型评审数学结果、单元测试、SQL 执行和工具调用成功率则更适合程序直接验证。奖励信号不可靠再先进的算法也会把模型带偏。八、两个公开训练案例真正的方案往往是组合拳案例一Llama 2-ChatLlama 2-Chat 的公开路线不是只用一种方法。它先做 SFT再通过拒绝采样不断挑出高质量回答后期又叠加 PPO 做强化学习。因此把它简单说成“一个 DPO 模型”并不准确。案例二DeepSeek-R1DeepSeek-R1 更能说明多阶段组合的价值先用少量冷启动数据把回答格式和可读性扶正再进行推理强化学习接着从大量生成结果里筛出高质量推理过程和通用数据一起做 SFT最后再做覆盖推理、帮助性和安全性的强化学习。公开论文描述的拒绝采样阶段收集了约 60 万条推理样本和约 20 万条非推理样本合计约 80 万条再用于后续 SFT。这个流程很好理解在线强化学习负责“探索新解法”拒绝采样负责“挑出好解法”SFT 负责“把好解法稳定学进去”。九、落地关键算法只占一半数据与评测同样重要1. 先把数据分成四个池避免混在一起SFT 数据像教材答案必须正确、清楚并覆盖主要场景。偏好数据同一个问题配好回答和差回答最好同时记录为什么更好、标注员有多确定。Prompt-only 数据只提供问题让 PPO、GRPO 或拒绝采样流程自己生成候选。冻结评测集只用于考试永远不能偷偷回流到训练集否则模型只是背题。2. 奖励不要只压成一个总分可以把奖励拆成任务正确性、格式遵循、事实可靠性、安全性、简洁度和工具调用成功率。每个维度都保留原始分数出了问题才知道到底是哪一项把模型带偏。多个奖励合并时还要统一量纲防止“最容易刷的分数”盖过真正重要的目标。3. 评测不能只看一个 Benchmark 平均分能力回归知识、推理、代码、工具调用和多轮对话有没有退步。偏好胜率和旧模型匿名对比避免评审器只因为答案更长或排在前面就判它更好。安全评测越狱、隐私、诈骗、危险操作以及是不是出现了过度拒答。稳定性同一问题多次生成是否忽好忽坏格式失败率和长上下文表现怎样。线上指标用户是否频繁重试、是否更常转人工、任务是否真正完成、投诉有没有增加。4. 每一轮训练都必须能解释也必须能回滚保存数据版本、奖励规则、初始模型、训练参数、随机种子、评测结果和代表性样本。上线时先做小流量灰度一旦发现安全回退、格式异常或用户体验变差就能快速切回旧版本。所以可靠的 Post-Training 不是“一次训练出一个更强模型”而是一条持续循环的生产线收集问题、生成数据、校准评分、训练模型、做离线测试、小流量上线再把新出现的难题收回来。十、面试时可以这样用大白话回答SFT 让基础模型学会按指令回答但它还不一定知道多个正确答案里哪个更好也不一定有稳定的安全边界。所以SFT 之后还会继续做偏好学习、奖励建模、强化学习和高质量数据迭代。经典 RLHF 是先让人类比较答案再训练奖励模型最后用 PPO 优化大模型并用参考模型限制它不要跑偏DPO 直接使用“好回答—差回答”数据训练省掉显式奖励模型和在线 PPOGRPO 让同一道题的多个回答在组内比较省掉 Value Model特别适合数学、代码等容易验证对错的任务拒绝采样是从很多候选里挑好答案再拿去做 SFTRLAIF 则是让 AI 参与打分它可以和前面几种训练方法组合。真实项目通常不会只选一种方法。Llama 2-Chat 把 SFT、拒绝采样和 PPO 串在一起DeepSeek-R1 则组合了冷启动 SFT、推理强化学习、拒绝采样、再 SFT 和后续强化学习。最后怎么选取决于任务能否可靠打分、偏好数据好不好、算力够不够以及团队有没有成熟的评测和上线机制。