从 Base Model 到 Chat Model:理解指令微调、偏好学习、奖励模型、RLHF、DPO、RLVR 和对齐副作用怎样改变模型行为
| 阶段 | 它主要学习什么 | 输入信号 | 常见风险 |
|---|---|---|---|
| 预训练 | 语言、知识、代码、推理痕迹和世界统计结构 | 海量文本 / 代码 / 多模态 tokens | 污染、偏差、版权、幻觉基础 |
| SFT | 怎样按指令回答、怎样遵守格式、怎样成为助手 | 指令-回答样本 | 模板化、风格变窄、学到错误示范 |
| Reward Model | 多个回答之间哪个更符合偏好 | 偏好对、排序、rubric、人工标注 | 标注口径漂移、奖励模型误判 |
| RLHF / PPO | 让模型输出更接近奖励模型偏好的分布 | 奖励分数、KL 约束、策略更新 | 奖励黑客、过度迎合、训练不稳定 |
| DPO / 偏好优化 | 直接让 chosen 比 rejected 更可能出现 | 偏好对和参考模型 | 偏好数据差会被直接放大 |
| RLVR | 在可验证任务上强化正确路径或答案 | 单元测试、数学验证器、工具执行结果 | 只对可验证子集有效,验证器会被过拟合 |
预训练让模型“会语言和知识模式”,SFT 让模型“会听指令”,偏好优化让模型“更像人类想要的助手”。这三件事相关,但不是同一件事。
| 机制 | 直觉 | 它擅长改变什么 | 它不擅长什么 |
|---|---|---|---|
| 监督微调 | 给模型大量“输入指令 → 理想回答”的示范 | 格式、语气、任务步骤、领域表达 | 处理偏好冲突、发现事实错误、自动建立安全边界 |
| Instruction Tuning | 让模型学会把自然语言当作任务说明 | 问答、改写、分类、抽取、代码解释 | 缺少示例分布外的鲁棒性 |
| Multi-task SFT | 用多种任务保持泛化 | 通用助手能力和格式迁移 | 特定组织策略和细粒度偏好 |
| Domain SFT | 用领域样本塑造专业表达 | 术语、文档格式、固定流程 | 如果知识本身不在上下文或权重里,仍会幻觉 |
SFT 更像“教示范”,不是“教价值判断”。如果两个回答都可行,但你想让模型长期偏向其中一种,就进入偏好学习和对齐问题。
| 偏好类型 | 优化方向 | 可能副作用 | 治理方法 |
|---|---|---|---|
| 有帮助 | 更完整、更主动、更贴近问题 | 过度自信、编造细节 | 引用、校验、不确定性表达 |
| 安全 | 拒绝危险请求、避免敏感泄露 | 过度拒答、正常任务被拦 | 风险分级、拒答评测、人工复核 |
| 简洁 | 减少废话、节省 token | 解释不足、漏掉前提 | 按任务区分短答和长答 |
| 风格 | 更符合品牌、行业或组织语气 | 形式漂亮但事实薄弱 | 风格评测和事实评测分开 |
偏好对、奖励模型和 DPO 的上限高度依赖 rubric、标注者一致性、复核校准和候选集质量;这条数据链路可继续看 人类反馈、标注质量与偏好数据。
| 方法 | 核心想法 | 优点 | 风险与限制 |
|---|---|---|---|
| RLHF / PPO | 先训练奖励模型,再用强化学习让策略模型获得更高奖励,同时用 KL 控制别偏离太远 | 可以直接优化复杂偏好,历史上塑造 Chat Model 很关键 | 训练复杂、容易不稳定、奖励模型可能被钻空子 |
| DPO | 绕开奖励模型和在线 RL,把偏好对直接变成让 chosen 更可能、rejected 更不可能的目标 | 流程更简单,工程上更容易落地 | 高度依赖偏好数据质量,难处理标注冲突和场景差异 |
| IPO / KTO 等偏好变体 | 调整偏好优化目标,试图改善稳定性、校准或数据利用方式 | 给不同数据形态和偏好噪声提供更多选择 | 方法名不等于效果,必须用任务评测验证 |
| RLVR | 用可验证奖励优化模型,例如数学答案、代码测试、工具执行结果 | 在有客观验证器的任务上更容易形成可靠反馈 | 开放式任务难以适用,验证器质量决定上限 |
偏好数据回答“人更喜欢哪个”,可验证奖励回答“哪个真的对”。数学、代码、检索引用、工具执行和格式校验这类任务,一旦能引入验证器,就能减少只靠主观偏好的不确定性。
| 评测层 | 看什么 | 为什么重要 |
|---|---|---|
| 任务成功率 | 分类、抽取、代码测试、工具执行、业务流程完成率 | 证明模型真的更能完成目标 |
| 偏好胜率 | 人工偏好、LLM-as-Judge、成对比较 | 证明回答更符合人类或组织偏好 |
| 事实与引用 | 引用是否存在、答案是否忠实于材料、是否承认不知道 | 防止“更像好答案”的幻觉 |
| 安全边界 | 拒答准确率、误拒率、越狱样本、敏感信息泄露 | 防止对齐只改善表面礼貌 |
| 通用能力回归 | 数学、代码、长文本、多轮对话、基础知识 | 防止为了局部偏好损伤大盘能力 |
| 成本与延迟 | 输出长度、推理模型命中率、上下文长度、单位任务成本 | 后训练可能改变回答长度和推理负载 |
后训练不是让模型“看起来更好”,而是让它在明确任务、明确偏好、明确安全边界和明确成本约束下,稳定地更值得使用。
| 证据节点 | 必须记录的字段 | 用来判断什么 |
|---|---|---|
| SFT 数据 | sft_dataset_id、instruction_mix、response_template、assistant_loss_mask、quality_review | 模型学到的是任务执行能力,还是模板化话术和重复风格? |
| 偏好数据 | preference_pair_id、judge_policy、annotator_group、win_reason、disagreement_rate | “更好”的标准是否稳定,是否混入风格偏好、长度偏好或标注噪音? |
| 优化信号 | method、reward_model_id、dpo_beta、rl_reward_trace、kl_to_base | 行为改变是被奖励塑形,还是过度偏离底座能力? |
| 副作用评测 | helpfulness_delta、truthfulness_delta、refusal_precision、capability_regression | 更礼貌、更安全或更会推理的同时,哪些能力被压坏? |
| 发布连接 | post_train_run_id、model_card_version、redteam_report_id、release_gate_id | 后训练结果是否足够进入灰度、回滚和线上反馈闭环? |
| 问题类型 | 优先看哪里 | 原因 |
|---|---|---|
| 模型不知道最新事实或内部资料 | RAG / 知识检索 | 知识应先从可更新、可引用的外部材料进入 |
| 模型格式不稳定、任务说明不清 | Prompt / 上下文 | 很多问题来自指令和上下文组织,而不是权重 |
| 模型长期不理解特定任务风格 | 微调 / 对齐 | 稳定样本和明确目标适合参数层定制 |
| 多个可行答案里总选错风格或边界 | 偏好优化 / DPO / RLHF | 这是排序和行为倾向问题,不只是示范问题 |
| 数学、代码、工具执行需要正确性 | 推理模型 / Test-time Compute、RLVR | 能验证的任务应尽量使用验证器,而不是只靠偏好 |
训练 / 推理 / Scaling 解释模型能力如何形成,微调 / 对齐 解释工程项目怎么做;这一页夹在中间,解释后训练究竟通过什么信号改变模型行为,以及为什么“更像好助手”也会带来新的风险。