大模型训练经常被概括为“预训练获得知识,后训练学会对话”。这个说法便于入门,但容易掩盖几个重要事实:基础模型已经能够生成流畅文本,后训练也不只是 SFT 和强化学习,RAG、工具调用更不是某种训练算法的自然升级。

本文建立一套更准确的后训练学习框架,重点回答以下问题:

  1. 预训练、继续预训练、SFT、偏好优化和强化学习分别改变什么;
  2. SFT 为什么有效,又为什么可能造成能力退化;
  3. PPO 与 GRPO 的真实差异是什么;
  4. 什么场景值得引入强化学习;
  5. 小团队如何建立一条可评测、可回滚的后训练链路。

本文讨论的是方法论和工程决策,不提供某个框架的固定参数配方。训练参数必须根据基座模型、数据规模、上下文长度和目标硬件重新实验。

一、先给结论

  1. 预训练决定能力底座,后训练负责能力激发、行为塑造和偏好对齐。 后训练可以显著改变模型表现,但不能凭空补齐预训练阶段完全缺失的知识和能力。
  2. 后训练不等于 SFT 加强化学习。 后训练通常还包含偏好优化、安全对齐、工具轨迹训练和蒸馏;继续预训练则是进入后训练前的可选过渡阶段。
  3. SFT 学的是示范答案的条件分布。 它适合教格式、风格、流程和任务行为,但可能过拟合窄分布,引起通用能力回退。
  4. 高质量数据优先于盲目扩量,但覆盖度仍然重要。 一千条高质量数据可能胜过大量噪声数据,不代表所有任务都只需要一千条数据。
  5. DPO 等偏好优化不能从框架中省略。 当目标是“回答 A 比回答 B 更好”,偏好数据往往比单一标准答案更自然,也比在线强化学习更容易落地。
  6. GRPO 不是 GPO。 GRPO 使用组内相对奖励估计优势,省去了 PPO 中单独学习的价值模型,但不意味着所有实现都固定只需两个模型。
  7. 在线采样不自动消除遗忘。 强化学习的数据更接近当前策略分布,但仍可能出现奖励投机、分布坍缩、长度偏置和基础能力回退。
  8. 非必要不引入强化学习。 只有当奖励可稳定计算、SFT 或偏好优化已经触顶,并且收益覆盖采样和训练成本时,RL 才值得进入生产路线。

二、大模型训练阶段的完整地图

2.1 从基础模型到可用模型

一条常见但并非唯一的训练链路如下:

flowchart LR
    A[原始语料与代码] --> B[预训练]
    B --> C[基础模型 Base]
    C --> D{是否需要补充领域或长上下文能力}
    D -->|需要| E[继续预训练或中期训练]
    D -->|不需要| F[SFT 指令微调]
    E --> F
    F --> G[指令模型]
    G --> H{是否有偏好数据}
    H -->|有| I[DPO 等偏好优化]
    H -->|无| J{是否有可靠奖励}
    I --> J
    J -->|有且值得| K[PPO / GRPO 等强化学习]
    J -->|没有| L[评测与发布]
    K --> L
    L --> M[线上反馈与数据闭环]
    M --> F

继续预训练常被称为领域预训练或中期训练,它仍然使用语言建模目标,严格来说不属于 SFT、偏好优化和 RL 所构成的狭义后训练。安全训练、拒答边界、工具调用和多语言平衡也不一定对应独立阶段,它们可以通过数据配比、SFT、偏好优化或 RL 贯穿多轮训练。

2.2 各阶段解决的问题不同

阶段 主要数据 典型目标 主要产出 常见风险
预训练 大规模文本、代码、多模态数据 下一个 Token 预测 基础模型 数据污染、偏见、训练不稳定、成本极高
继续预训练 领域原始语料、长文本或新语言语料 继续做语言建模 领域或能力增强的基础模型 领域过拟合、通用能力退化
SFT 指令与理想回答、工具轨迹 模仿目标行为 指令模型 分布收窄、格式过拟合、灾难性遗忘
偏好优化 chosen/rejected 偏好对 提高偏好回答的相对概率 更符合人类偏好的模型 偏好偏差、过优化、离线数据失配
强化学习 Prompt、模型采样、奖励信号 最大化期望奖励 推理或行为进一步优化的模型 奖励投机、训练不稳定、Rollout 成本高

这些阶段不是越多越好。例如,企业分类任务若已有清晰标签,SFT 或普通分类模型可能已经足够;为了“技术完整”再加入 GRPO,通常只会增加成本和故障面。

三、预训练与后训练的边界

3.1 预训练到底学到了什么

自回归语言模型通过最小化下一个 Token 的负对数似然学习参数:

1
L_pretrain = -Σ log P(token_t | token_1, ..., token_(t-1))

这个目标看似只是续写,却迫使模型从大规模数据中学习词法、语法、事实关联、代码模式和一定程度的推理结构。把基础模型称为“互联网语料的压缩包”可以帮助理解参数中保存了统计规律,但它不是严格定义:

  • 模型不是可以无损解压的数据库;
  • 参数记忆、模式泛化和推理能力混合在一起;
  • 输出来自条件概率分布,不保证事实可追溯;
  • 训练语料中的知识不等于模型能在任意提示下稳定调用这些知识。

基础模型通常已经能生成流畅文本,甚至能通过少样本提示完成任务。它真正欠缺的是稳定的指令遵循、对话模板、拒答边界、工具协议和人类偏好,而不是“完全没有对话能力”。

3.2 只有头部厂商才能做预训练吗

如果指的是从零训练前沿通用模型,这个判断基本成立。Meta 的 Llama 3.1 公开资料披露,405B 模型使用超过 15 万亿 Token,并将训练扩展到超过 1.6 万张 H100,数据治理、集群网络、并行训练、容错和评测都远超普通团队的资源范围。

但“预训练”本身并不只属于头部厂商:

  • 小参数模型可以在较小集群上从零训练;
  • 企业可以对开源基础模型做继续预训练;
  • 科研团队可以用受控规模研究数据配比和训练算法;
  • 垂直领域通常无需复刻前沿通用模型的完整投入。

因此,更准确的表述是:从零训练前沿通用基础模型需要超大规模资源,而继续预训练和小模型预训练仍有现实应用空间。

3.3 后训练的价值不能归因于单一算法

InstructGPT展示了 SFT 加人类反馈强化学习可以显著改善指令遵循;Qwen2.5 技术报告则公开了大规模 SFT 与多阶段强化学习带来的综合提升。这些结果说明后训练具有很高杠杆,但不能据此声称某个模型的能力“只来自后训练”。

模型升级可能同时包含预训练数据、Tokenizer、架构、上下文、合成数据、SFT 和 RL 的变化。若官方没有消融实验,就无法把最终指标提升归因到某一个阶段。

四、SFT 的运行逻辑

4.1 SFT 不是背答案,而是条件分布拟合

SFT 数据通常包含输入 x 和理想回答 y。训练时采用 Teacher Forcing:给定正确的历史 Token,最小化目标回答各 Token 的负对数似然。

1
L_SFT = -Σ mask_t × log P(y_t | x, y_<t)

mask_t 决定哪些 Token 参与损失。常见指令微调只对 Assistant 回答计算损失,也有多轮对话训练会选择性地计算多个 Assistant 回合。这里没有一种适合所有任务的固定做法,关键是训练模板必须与推理模板一致。

SFT 能有效教会模型:

  • 遵循系统指令和输出格式;
  • 使用特定语气、语言和术语;
  • 执行固定业务流程;
  • 生成结构化 JSON 或函数调用参数;
  • 在给定证据时按目标方式组织回答;
  • 模仿示范中的推理或工具使用轨迹。

但 SFT 不保证:

  • 新知识被稳定写入并能准确召回;
  • 模型在分布外输入上仍遵循同一行为;
  • 模型学会验证答案而非模仿答案表面;
  • 工具真实可用、参数合法且执行结果可信;
  • 幻觉被彻底消除。

4.2 RAG、思维链和工具调用不是同一层技术

将幻觉治理描述成“SFT 之后依次出现 RAG、CoT、工具调用”会混淆训练层和系统层:

方法 所属层 解决的问题 不能保证的事情
SFT 模型训练 学习回答模式、格式和任务行为 事实一定正确
CoT 提示与训练行为 给复杂任务更多中间计算空间 推理过程一定忠实、结论一定正确
RAG 外部检索系统 提供可更新、可引用的外部证据 模型一定采用正确证据
工具调用 模型与执行系统 让模型请求搜索、计算、数据库或业务 API 工具选择和参数一定正确

生产系统需要把这些能力组合起来:SFT 教模型遵循工具协议,运行时负责鉴权、参数校验、超时、重试和结果注入,评测再检查模型是否真正使用了工具结果。任何单一组件都不能独立“解决幻觉”。

五、SFT 数据工程

5.1 数据质量优先,但不能忽略覆盖度

LIMA使用 1000 条精心筛选的示范展示了少量高质量对齐数据的价值。它支持“质量优先”,但不能推出“所有业务只需要少量样本”。所需数据量仍取决于:

  • 基础模型是否已经具备目标能力;
  • 任务类型、语言和输入形态有多少;
  • 输出格式和安全边界有多少组合;
  • 长尾错误是否被训练集覆盖;
  • 是教行为,还是补充模型很陌生的领域知识。

高质量数据至少应同时满足正确性、相关性、一致性、覆盖度和可追溯性。只有“答案写得漂亮”,但缺少真实线上难例,仍然不是好数据集。

5.2 一条可执行的数据流水线

flowchart LR
    A[定义任务与验收标准] --> B[采集真实请求和专家规则]
    B --> C[去重、脱敏与格式统一]
    C --> D[人工标注或受控合成]
    D --> E[事实、格式和安全校验]
    E --> F[按来源和时间切分数据集]
    F --> G[难度、长度与场景配比]
    G --> H[SFT 训练]
    H --> I[错误聚类与回归评测]
    I --> J[补充高价值样本]
    J --> D

数据记录不应只有 promptanswer,还应保存:

字段 作用
sample_id 去重、追踪和删除
source / license 数据来源与合规审计
task_type 控制任务配比和分层评测
language / domain 检查语言与领域分布
difficulty 难度采样和错误分析
messages 完整对话与角色结构
tools / tool_calls 固定工具 Schema 和调用轨迹
quality_status 人工复核、规则校验和拒绝原因
created_at 防止训练集与未来测试集时间穿越

5.3 特定词缺失不一定只是样本占比问题

若微调后出现专有名词缺失、错别字或某类格式消失,应依次检查:

  1. 原始样本中该词是否真实存在,是否在清洗时被替换;
  2. Unicode、全半角、简繁体和大小写是否被错误归一化;
  3. Tokenizer 是否把词拆成异常长的 Token 序列;
  4. 目标 Token 是否被 Loss Mask 排除;
  5. 截断或 Packing 是否切掉了关键答案;
  6. 相互冲突的写法在数据中各占多少;
  7. 推理时的模板、采样参数和约束解码是否改变输出;
  8. 问题是否只出现在某个场景、长度或语言分组。

样本均衡是可能的修复手段,但在确认根因前盲目过采样,可能让模型在无关场景也频繁输出该词。

六、SFT 为什么会遗忘,以及如何控制

6.1 灾难性遗忘的来源

当训练数据集中在狭窄领域时,梯度会持续把概率质量推向该领域的表达和答案。学习率过大、训练轮次过多、数据重复、全参数更新以及训练分布单一,都会放大这种变化。

所谓“遗忘”也需要拆开测量:

  • 知识遗忘:原本会回答的通用事实答错;
  • 能力遗忘:数学、代码、翻译或长上下文能力下降;
  • 行为覆盖:知识还在,但固定模板让模型拒绝或不再展示;
  • 分布偏移:旧评测提示格式与新对话模板不兼容;
  • 安全回退:新任务效果提升,但拒答和越权边界恶化。

只有先区分这些现象,才能选择正确的修复方式。

6.2 常见防遗忘手段

手段 作用 代价与边界
降低学习率、轮次和有效更新步数 减少参数漂移 也可能学不充分,需要验证集早停
混入通用数据做 Replay 维持旧分布并提供通用梯度 增加训练量,配比不当会稀释新任务
LoRA、Adapter 等 PEFT 限制可训练参数并保留基础权重 不保证无遗忘;Adapter 仍可能覆盖输出行为
KL、蒸馏或 Logit 约束 限制新模型偏离参考模型 约束太强会压制新能力
多任务和分层采样 保持场景、语言和难度覆盖 需要可靠的标签体系和采样器
冻结部分层或模块 保护部分表示 可能限制领域适应上限
Checkpoint 选择或模型合并 在新旧能力间寻找折中 合并不是万能平均,仍需完整回归评测

InstructGPT曾将预训练梯度混入 PPO 目标以缓解公开 NLP 任务回退。2026 年的预训练数据 Replay 研究进一步表明,通用数据回放在受控实验和部分 8B 任务中不仅能减轻遗忘,也可能提高目标数据效率。具体收益仍依赖任务和配比,不能直接复制论文比例。

LoRA的核心价值是减少可训练参数和训练资源,并允许保留基础权重。它降低了不可逆修改基础模型的风险,但只要 LoRA 在推理时改变输出分布,就仍可能造成行为层面的通用能力回退。

6.3 低资源团队的优先方案

在没有外部强模型参与标注时,可以采用以下闭环:

  1. 用基础模型在真实 Prompt 上生成多个候选;
  2. 使用确定性规则、单元测试、数据库对照或人工抽检筛选;
  3. 按当前模型通过率估计样本难度;
  4. 保留能够产生有效梯度的中等难度样本,同时保留必要的简单锚点和困难边界样本;
  5. 将失败类型聚类后定向补数,而不是无限自我生成;
  6. 每轮都对固定通用回归集和目标任务集评测;
  7. 只有上一轮通过门槛,才允许新模型继续生成下一轮数据。

这属于课程学习、主动数据选择、自训练和持续学习思想的组合,不应包装成一个未经确认的“万能算法”。自生成数据若没有外部验证,会不断放大模型原有错误,形成模型坍缩或错误闭环。

七、偏好优化:SFT 与强化学习之间缺失的一层

7.1 为什么需要偏好数据

很多任务没有唯一标准答案,但可以判断两个回答哪个更好。例如:

  • 哪个回答更有帮助且不啰嗦;
  • 哪个总结保留了更多关键事实;
  • 哪个拒答边界更符合安全规范;
  • 哪个工具调用计划风险更低;
  • 哪段代码更易维护。

此时可以构造 (prompt, chosen, rejected) 偏好对,让模型提高 chosen 相对 rejected 的概率。

7.2 DPO 的定位

DPO将经典 RLHF 目标转化为直接作用于偏好对的分类式损失,不需要在训练过程中在线采样,也不需要先训练一个独立奖励模型。它通常比 PPO 更容易实现和调试。

但 DPO 不是“无风险的 SFT”:

  • 偏好对来自旧模型时,可能与当前模型分布失配;
  • 标注员可能偏爱更长、更自信或特定风格的回答;
  • 相对偏好不等于答案事实正确;
  • 训练过度仍可能降低被偏好回答本身的概率;
  • 离线数据覆盖不到的新行为无法被可靠约束。

7.3 三类方法怎么选

目标 优先方法 原因
学会固定格式、流程或标准答案 SFT 直接、稳定、样本结构简单
学习主观偏好或多个可接受答案的排序 DPO 等偏好优化 偏好对比单一答案更自然
优化可执行、可计算的结果奖励 GRPO、PPO 等 RL 可以从模型自己的探索结果中学习
补充大量领域事实 继续预训练或 RAG,必要时再 SFT SFT 不是高效知识库替代品
解决实时知识和可追溯问题 RAG 或工具调用 模型权重不适合持续更新的事实

八、强化学习的核心运行逻辑

8.1 模型从自己的输出中学习

在语言模型强化学习中:

  • 状态是 Prompt 加已经生成的 Token;
  • 动作是下一个 Token;
  • 策略是当前语言模型;
  • 一条完整回答构成 Rollout;
  • 奖励来自人工偏好模型、规则、执行器或环境反馈;
  • 优化目标是在约束模型不要漂移过远的同时,提高期望奖励。

基本循环如下:

flowchart LR
    A[采样一批 Prompt] --> B[当前策略生成多条回答]
    B --> C[规则、验证器或奖励模型打分]
    C --> D[估计每条回答的优势]
    D --> E[更新策略参数]
    E --> F[检查 KL、熵、长度和能力回归]
    F --> G{是否通过停止条件}
    G -->|否| A
    G -->|是| H[冻结 Checkpoint 并离线评测]

与固定示范数据的 SFT 相比,RL 的回答来自当前策略,因此能不断暴露当前模型真实会生成的成功和失败路径。这种 On-policy 或近 On-policy 特性可以减少一部分训练与推理分布失配,但不能推出“RL 不会遗忘”。

模型可能为了奖励而牺牲未进入奖励函数的能力。训练中仍需通用回归集、KL 约束、早停和多目标评测。

九、PPO:经典但较重的 RLHF 路线

9.1 “四个模型”更准确地说是四类逻辑组件

经典 PPO 式 RLHF 经常包含以下组件:

组件 作用 是否更新
Policy / Actor 生成回答并被优化
Value / Critic 估计状态价值,降低策略梯度方差
Reward Model / Grader 给完整回答打分 通常冻结
Reference Model 计算 KL,限制策略偏离初始模型 冻结

因此“PPO 需要四个模型”可以作为资源估算的入门说法,却不是严格的部署要求:Policy 和 Value 可以共享 Backbone,参考模型可以通过 Adapter 或参数共享降低显存,奖励也可能来自规则而非神经网络。

真正让 PPO 较重的是:

  • 需要生成 Rollout,训练与推理交替;
  • 需要训练和校准 Value;
  • Actor、Critic、Reference 和 Reward 的显存与通信复杂;
  • PPO Clip、KL、GAE、奖励尺度等超参数相互影响;
  • 奖励模型不完美时容易发生 Reward Hacking。

9.2 奖励上升不等于真实质量上升

代理奖励只能压缩表达真实目标的一部分。当训练持续寻找奖励模型漏洞时,可能出现:

  • 为获得高分而变得冗长;
  • 生成貌似严谨但事实错误的解释;
  • 迎合评审模型的固定措辞;
  • 利用格式或判题脚本漏洞;
  • 在奖励覆盖的 Benchmark 上过拟合。

奖励过优化研究显示,无论经典 RLHF 还是直接偏好优化,都可能在优化过强时出现代理指标继续上升、真实质量反而下降的现象。训练必须同时观察外部评测、KL、输出长度、熵和失败类型,而不是只看 Reward 曲线。

十、GRPO:省去 Critic,不是省去所有复杂度

10.1 GRPO 的组内相对评价

DeepSeekMath提出 Group Relative Policy Optimization(GRPO)。对同一个 Prompt,当前策略采样一组回答,得到奖励 r_1 ... r_G,再用组内均值和标准差计算相对优势:

1
A_i = (r_i - mean(r_1 ... r_G)) / (std(r_1 ... r_G) + ε)

随后使用类似 PPO 的裁剪目标更新策略,并通过 KL 等方式限制策略漂移。因为组内奖励本身提供了 Baseline,GRPO 不需要单独训练一个 Value / Critic 模型,能够降低显存和训练复杂度。

10.2 GRPO 不是固定“两个模型”

GRPO 至少需要正在更新的策略。除此之外还可能需要:

  • 用于 KL 约束的参考策略;
  • 学习型 Reward Model;
  • 数学判题器、代码沙箱或业务环境;
  • 专门负责高吞吐 Rollout 的推理副本;
  • 训练与推理权重同步组件。

如果奖励完全由规则或执行器计算,就不需要神经奖励模型;如果实现采用其他正则方式,参考模型的物理部署也可能变化。因此应按“逻辑组件、显存占用和调用路径”做容量评估,不能只数模型名字。

10.3 GRPO 的收益和边界

优点:

  • 省去学习型 Critic;
  • 同一 Prompt 内相对比较,降低绝对奖励标定要求;
  • 适合数学、代码和其他可验证奖励任务;
  • 可以从多次采样中探索 SFT 数据没有覆盖的解法。

限制:

  • 一组回答奖励完全相同时,组内缺少有效学习信号;
  • 每个 Prompt 生成多条回答,Rollout Token 成本很高;
  • 奖励稀疏时,大量采样没有有效梯度;
  • 训练效果依赖基础模型已有的探索能力;
  • 组大小、采样温度、Clip、KL 和奖励尺度仍需联合调试;
  • 仍会出现奖励投机、长度偏置和训练不稳定。

DeepSeek-R1展示了大规模 RL 能激发推理行为,也同时报告 R1-Zero 存在可读性差和语言混杂等问题,最终 R1 使用了冷启动数据和多阶段训练。这个结果更支持“RL 需要与数据和评测协同”,而不是“只要上 GRPO 就能涌现推理”。

10.4 长度与准确率的关系不能写成算法定律

复杂问题有时需要更长推理,训练早期也可能观察到正确回答平均更长。但相关不等于因果,奖励模型还可能天然偏爱长回答。

R1-Zero-like 训练分析指出,GRPO 的目标设计可能带来响应长度偏置,尤其会让错误回答变长。生产训练应分别监控:

  • 正确与错误回答的长度分布;
  • Reward 与长度的相关性;
  • 单位 Token 的正确率增益;
  • 超长回答占比和截断率;
  • 在固定推理预算下的准确率。

不要把“越长越准”写进奖励函数,也不要简单加入长度惩罚。两者都可能让模型钻空子。

十一、什么场景值得使用强化学习

11.1 三个必要条件

引入 RL 前至少确认:

  1. 奖励可靠:能够自动、稳定、低歧义地判断输出质量;
  2. 探索有价值:模型可能通过多次采样找到示范数据中没有的更优策略;
  3. 收益覆盖成本:SFT 或偏好优化已经触顶,RL 的质量提升足以覆盖 Rollout、沙箱和训练基础设施成本。

11.2 场景判断

场景 RL 适用性 更低成本的优先方案
数学推理,答案可自动判定 先做高质量 CoT SFT 基线
代码生成,有隔离沙箱和测试用例 先做代码 SFT 与 Rejection Sampling
Agent 完成多步任务,环境能返回成功信号 中到高 先做轨迹 SFT、工具约束和离线回放
固定 JSON、SQL 语法或格式检查 约束解码、SFT 通常更便宜
普通分类,有完整标签 监督学习或 SFT
开放式写作和主观风格 低到中 偏好优化和人工评测
事实问答、知识需要频繁更新 RAG、搜索和工具调用
医疗、法律等高风险开放任务 谨慎 专家标注、规则系统、检索与人工复核

“分类检测类任务适合 RL”不是普遍规则。若标签已经明确,监督学习能直接利用每条样本,通常比在线采样更高效。只有当目标是长期序列决策、不可微环境反馈或复杂组合指标时,RL 才可能体现额外价值。

十二、奖励设计的最低要求

即使不深入具体算法,也要先把奖励拆成可审计的信号:

奖励类型 示例 主要风险
结果奖励 数学答案正确、测试用例通过 稀疏、无法区分推理质量
过程奖励 中间步骤合法、工具选择正确 标注贵,过程评审也会出错
格式奖励 JSON 可解析、字段齐全 模型只优化格式,不优化内容
成本奖励 Token、工具次数、执行时长 过度压缩导致能力下降
安全奖励 无越权、无危险操作 可能诱发过度拒答

不要把所有指标简单线性相加后只观察总分。至少保留每个子奖励、原始验证结果和失败原因,否则 Reward 上升时无法知道模型优化了什么。

奖励验证器还必须防止投机:代码在隔离沙箱运行,测试用例包含隐藏集,SQL 只读且限制资源,外部工具使用最小权限,评审模型需要交换候选顺序并抽样人工复核。

十三、小团队的后训练落地路线

13.1 先选择正确的问题层级

flowchart TD
    A[当前模型不满足需求] --> B{缺的是实时或私有事实吗}
    B -->|是| C[RAG、搜索或业务工具]
    B -->|否| D{缺的是领域语言建模能力吗}
    D -->|是| E[评估继续预训练]
    D -->|否| F{有明确标准答案或轨迹吗}
    F -->|是| G[SFT]
    F -->|否| H{能稳定比较回答优劣吗}
    H -->|是| I[DPO 等偏好优化]
    H -->|否| J{能自动计算可靠奖励吗}
    J -->|是| K[在 SFT 基线上评估 GRPO / PPO]
    J -->|否| L[先改任务定义、数据和评测]

13.2 分阶段设置准入门槛

阶段 0:建立基线

  • 固定基座模型、Tokenizer、Chat Template 和推理参数;
  • 建立目标任务集、通用回归集、安全集和性能集;
  • 保存每条样本的输入、期望、评分逻辑和来源;
  • 先测试 Prompt、RAG、约束解码和工具编排是否已经够用。

阶段 1:完成 SFT

  • 从 LoRA 和小规模高质量数据起步;
  • 对学习率、数据配比和训练步数做最小对照实验;
  • 同时观察目标任务增益与通用能力回退;
  • 聚类错误后补数,不根据单一 Loss 继续堆 Epoch。

阶段 2:评估偏好优化

  • 确认偏好准则可重复,标注员一致性达到要求;
  • 检查长度、语气、位置和品牌等偏差;
  • 让偏好数据尽量接近当前策略会产生的回答;
  • 使用独立人工集验证 DPO 收益,而不是只看隐式 Reward。

阶段 3:受控引入 RL

  • 从可验证、低风险、短 Rollout 的任务开始;
  • 先运行 Reward 和数据管线,不更新模型,确认评分可信;
  • 监控 KL、熵、Reward、准确率、长度、无效 Rollout 和 OOM;
  • 设置最大训练步数、最大 Token 成本和自动停止门槛;
  • 任何目标指标提升都必须通过通用与安全回归集。

13.3 最小实验矩阵

实验 目的 必须保持不变的变量
Base vs SFT 判断示范学习收益 测试集、模板、推理参数
SFT vs SFT + Replay 测防遗忘 目标数据、训练 Token 预算
Full FT vs LoRA 测能力上限和回退 数据顺序、优化步数
SFT vs DPO 测偏好优化收益 基础 Checkpoint、人工评测集
SFT vs GRPO 测在线探索收益 Prompt 集、最终评测预算
不同 Reward 版本 测奖励可靠性 Rollout 样本和策略 Checkpoint

不要一次同时更换基座模型、数据、模板、算法和推理参数。最终效果即使上升,也无法知道是哪一个变量产生作用,更无法在回退时定位问题。

十四、评测、发布与回滚

14.1 训练 Loss 不能作为上线依据

完整评测至少包含:

维度 指标示例
目标任务 Accuracy、F1、Pass@K、任务成功率、格式通过率
通用能力 语言、数学、代码、知识、长上下文回归集
偏好与质量 人工盲评胜率、成对偏好、一致性
事实与证据 事实正确率、引用支持率、无答案拒答率
工具与 Agent 工具选择、参数正确率、任务完成率、越权率
安全 有害请求、Prompt Injection、隐私与权限测试
稳定性 多次采样方差、异常输入、超长输入、语言混杂
性能 Token/s、P50/P95/P99、显存、Rollout 成本

评测集要按用户、文档、时间或任务来源切分,避免同一问题的改写同时进入训练集和测试集。合成数据使用的生成模型和 Judge 也要记录版本,防止评测标准静默变化。

14.2 版本指纹

每个训练产物至少绑定以下信息:

1
2
3
4
5
6
7
base_model_id + base_revision
tokenizer_revision + chat_template_hash
dataset_version + sampling_config
training_code_commit + framework_version
algorithm + hyperparameters + random_seed
reward_version + grader_version
checkpoint_hash + evaluation_report

只记录“某 7B 模型 + LoRA”不足以复现结果。模板、Loss Mask、数据顺序和 Reward 变化都可能显著改变行为。

14.3 灰度和回滚

上线前先做离线固定集,再做 Shadow 双跑,最后小流量 Canary。新旧模型必须接收同一输入和同一工具环境,才能比较真实差异。

回滚时需要同时恢复:

  • 模型或 LoRA 权重;
  • Chat Template 和 System Prompt;
  • Tokenizer 与推理引擎配置;
  • Reward 或路由策略;
  • 工具 Schema、权限和超时配置。

模型 Checkpoint 可回滚,不代表其依赖的 Prompt 和工具协议可以任意混用。

十五、常见错误认知修正

常见说法 更准确的表述
基础模型只是互联网压缩包,不会流畅对话 “压缩”只是比喻;基础模型能生成流畅文本,但指令遵循和对话边界不稳定
只有头部大厂能做预训练 从零训练前沿通用模型门槛极高,小模型和继续预训练仍可落地
后训练只有 SFT 和 RL 狭义后训练还包括偏好优化、蒸馏、安全训练等;继续预训练是可选的前置过渡阶段
SFT 就是强制逐 Token 复制答案 SFT 在 Teacher Forcing 下最小化目标 Token 的负对数似然
RAG、CoT、工具调用逐步解决了 SFT 幻觉 它们属于不同层,只能协同降低特定错误,不能保证无幻觉
数据质量高就不需要关注数量 质量优先,但任务覆盖、长尾和安全边界仍需要足够样本
LoRA 能避免灾难性遗忘 LoRA 保留基础权重并限制更新参数,但仍可能覆盖模型行为
RL 使用当前模型采样,所以不会遗忘 分布失配可能更小,但奖励投机和未覆盖能力退化依然存在
PPO 必须独立部署四个模型 它有四类常见逻辑组件,物理实现可以共享参数或使用规则奖励
GPO 只需两个模型 正确术语通常是 GRPO;组件数量取决于参考策略和奖励实现
GRPO 证明回答越长越准确 长度可能与任务难度相关,也可能是算法或奖励偏置
分类任务天然适合强化学习 有明确标签时,监督学习通常更直接、更稳定、更省样本
某个“RFD”算法可以直接解决低资源防遗忘 RFD 无法唯一对应这一描述;确认论文前,应分别讨论 Replay、持续学习、课程学习和自训练

十六、总结

大模型后训练不是把所有算法依次跑一遍,而是根据问题类型选择最小充分方案:

  1. 预训练建立知识、语言和能力底座;
  2. 继续预训练补充领域分布或特定基础能力;
  3. SFT 用高质量示范教会模型任务行为;
  4. 偏好优化学习多个可接受答案之间的取舍;
  5. 强化学习在奖励可靠时利用模型自己的探索结果继续优化;
  6. RAG 和工具系统负责模型权重不适合承担的实时事实与可执行能力;
  7. 通用回归、安全评测、版本指纹、灰度和回滚贯穿所有阶段。

对多数团队而言,最稳妥的路线是:先用 Prompt、RAG 或工具解决系统问题,再用 LoRA SFT 建立可复现基线;有可靠偏好对时尝试 DPO;只有具备可验证奖励、足够 Rollout 预算和严格评测闭环时,才进一步采用 GRPO 或 PPO。

下一步深入学习时,可以分别拆解 SFT 的数据混合与 Loss Mask、DPO 的偏好损失、PPO/GRPO 的目标函数、Reward 设计、Rollout 系统和分布式训练。算法公式只有放回数据、评测和生产约束中,才具有真正的工程意义。


参考资料