从预训练到 RLHF:大语言模型训练范式的演进与工程实践
从预训练到 RLHF:大语言模型训练范式的演进与工程实践
摘要
大语言模型(LLM)的训练并非单一过程,而是由预训练(Pre-training)、监督微调(Supervised Fine-Tuning, SFT) 和强化学习(Reinforcement Learning, RL) 三个核心阶段构成的递进式流水线。本文系统阐述各阶段的原理、目标与相互关系,厘清模型训练与模型推理调用的本质区别,并探讨检索增强生成(RAG)作为模型能力补充机制的设计定位。
为了更通俗易懂的解释以下内容,我做了一个HTML网页来说明:
从”读书”到”做人”:大语言模型训练全揭秘
一、三段式训练总览
现代大语言模型的完整训练流水线可抽象为以下三个阶段:
1 | |
核心观点:预训练决定模型的知识上限,SFT 赋予模型实用性,RL 确保模型的可控性与安全性。三者缺一不可。
二、各阶段技术详解
2.1 预训练(Pre-training)
目标:在无标注数据上学习语言的统计规律、语法结构、事实知识与世界常识。
训练方式:自监督学习,核心任务是下一词预测(Next Token Prediction)。给定上文序列 ( x_1, x_2, …, x_{t-1} ),模型预测下一个 token ( x_t ) 的概率分布,损失函数为交叉熵:
$$
\mathcal{L}{\text{PT}} = -\sum{t=1}^{T} \log P(x_t | x_{<t})
$$
数据规模:通常为数 TB 至数十 TB 的文本数据,涵盖网页、书籍、论文、代码等。
关键特征:
- 不需要人工标注,数据获取成本低
- 计算开销极大(数万 GPU 小时)
- 产出模型具备语言生成能力,但无法理解指令意图
2.2 监督微调(Supervised Fine-Tuning, SFT)
目标:使模型学会遵循人类指令,完成问答、翻译、摘要等具体任务。
训练方式:在人工标注的指令-回复对上进行有监督学习。每条数据格式为:
1 | |
模型以 instruction 为输入,以 output 为目标进行最大似然估计:
$$
\mathcal{L}{\text{SFT}} = -\sum{t=1}^{T} \log P(y_t | x, y_{<t})
$$
其中 ( x ) 为指令,( y ) 为标准回复。
数据规模:通常为万级至十万级高质量样本,质量远重要于数量。
关键特征:
- 将“会说话”的模型转变为“会做事”的模型
- 训练成本远低于预训练(千级 GPU 小时)
- 模型可能产生表面服从但实质错误的回复(即“幻觉”)
2.3 强化学习(Reinforcement Learning from Human Feedback, RLHF)
目标:使模型的输出更符合人类偏好——更有用、更无害、更诚实。
训练方式:引入奖励模型(Reward Model) 作为人类偏好的代理,使用 PPO(Proximal Policy Optimization) 算法优化策略模型。
完整流程分三步:
- 收集偏好数据:对同一 prompt,让 SFT 模型生成多个候选回复,由人工标注员排序
- 训练奖励模型:以排序数据训练一个回归模型,为任意回复输出一个标量分数
- 策略优化:使用 PPO 算法,以奖励模型的分数为奖励信号,微调 SFT 模型
PPO 的目标函数简化为:
$$
\mathcal{L}{\text{RL}} = \mathbb{E}{(s,a)}[\min(\frac{\pi_\theta(a|s)}{\pi_{\text{old}}(a|s)} A(s,a), \text{clip}(\dots))]
$$
其中 ( A(s,a) ) 为优势函数,衡量当前动作相对于平均水平的优劣。
关键特征:
- 显著提升模型的有用性和安全性
- 训练稳定性较差,超参数敏感
- 过度优化可能导致“奖励黑客”(reward hacking)现象
三、模型分类思维导图
以下从四个维度对现有大语言模型进行分类:
选型速查表
| 使用场景 | 推荐模型类型 | 示例 |
|---|---|---|
| 文本续写、补全 | Base 模型 | llama-3-base |
| 日常对话、问答 | Instruct 模型 | llama-3-instruct |
| 高安全性场景 | Aligned 模型 | claude-3-opus |
| 代码辅助 | 代码专用模型 | deepseek-coder |
| 私有知识问答 | Base 模型 + RAG | llama-3-base + 向量库 |
四、模型训练与模型调用的关系
模型训练与模型调用是两个性质截然不同的阶段,但在工程实践中紧密关联。
4.1 核心区别
| 维度 | 模型训练 | 模型调用(推理) |
|---|---|---|
| 目标 | 更新模型权重 | 利用已有权重生成输出 |
| 计算负载 | 极高(GPU 密集) | 较低(单卡可运行) |
| 数据流向 | 批量数据 → 梯度更新 → 权重 | 单条输入 → 前向传播 → 输出 |
| 耗时 | 数天至数月 | 毫秒至秒级 |
| 硬件要求 | 多卡集群、高显存 | 单卡甚至 CPU 可运行 |
| 频率 | 低频(一次训练,多次复用) | 高频(每次用户请求触发) |
4.2 两者关系示意图
1 | |
关键认知:
- 训练是一次性的投资,推理是持续的服务
- 同一个模型可以被无数次调用,但权重只在训练阶段改变
- 推理时也可以进行少量参数更新(如 LoRA 适配器),但这属于持续微调,本质上仍是训练行为
4.3 工程实践中的常见模式
1 | |
五、RAG 与大语言模型的关系
检索增强生成(Retrieval-Augmented Generation, RAG)是一种不修改模型权重的能力增强机制,它与模型训练形成互补关系。
5.1 核心定位
RAG ≠ 模型训练。RAG 是在模型推理时引入外部知识源的架构设计,而非对模型本身的训练或微调。
1 | |
5.2 RAG 工作流程
文档片段] E --> F[拼接 Prompt] F --> G[LLM 推理] D --> G G --> H[最终回复] subgraph I[离线索引构建] J[原始文档] --> K[文本分块] K --> L[向量化嵌入] L --> M[(向量数据库)] end M -.-> C
5.3 RAG 与训练增强的对比
| 维度 | RAG | 模型微调(SFT/RL) |
|---|---|---|
| 是否修改权重 | ❌ 否 | ✅ 是 |
| 知识来源 | 外部数据库 | 模型内部参数 |
| 知识更新速度 | 即时(增删文档即可) | 慢(需重新训练) |
| 幻觉控制 | 强(可约束到检索结果) | 弱(依赖训练数据质量) |
| 计算成本 | 低(仅检索 + 推理) | 高(需 GPU 训练) |
| 适用场景 | 动态知识、私有数据 | 固定能力、风格对齐 |
5.4 两者协同的最佳实践
在实际系统中,RAG 与模型训练通常是分层配合的关系:
1 | |
关键结论:
- RAG 解决的是知识的时效性和专有性问题,让模型不必记住所有知识
- 训练解决的是模型的底层能力和行为对齐问题,这是 RAG 无法替代的
- 最佳实践是:用训练打造一个强大的基础模型,用 RAG 为其注入实时和私有的知识
六、全文总结
五句话记住本文核心
- 预训练让模型学会语言规律,产出 Base 模型
- SFT 让模型学会遵循指令,产出 Instruct 模型
- RLHF 让模型学会人类偏好,产出 Aligned 模型
- 训练是离线的一次性投入,调用是在线的持续性服务
- RAG 不修改模型权重,而是在推理时为模型补充外部知识
完整生命周期总览
1 | |
作者注:本文所述流程适用于 GPT-4、Claude、LLaMA 等主流大语言模型。具体实现细节因模型架构和厂商策略而异,建议以各模型官方技术报告为准。