Skip to main content
LLM 训练我按阶段记:预训练给语言和知识,SFT 给格式,RLHF/DPO 给偏好。数据量级和成本差在哪,比背三个缩写更有用。

Q1: LLM 训练的完整流程是什么?

LLM 的训练不是一步到位的,而是一个多阶段的渐进式能力塑造过程。Andrej Karpathy 在其 “State of GPT” 演讲中将这个流程清晰地划分为四个阶段 [1]:
1

预训练 (Pre-training): 学习语言和知识

在海量互联网文本上训练基座模型,让模型学会语言的统计规律、世界知识和基础推理能力。这一步消耗了 95% 以上的训练算力,产出的是一个”会补全文本但不会回答问题”的基座模型。
2

监督微调 (SFT): 学会按指令回答

用高质量的”指令-回答”对微调基座模型,让它学会按人类期望的格式和风格回答问题。这一步把”文本补全机器”变成”对话助手”。
3

奖励模型 + RLHF: 对齐人类偏好

训练奖励模型学习人类对回答质量的排序偏好,再用强化学习(PPO)优化模型输出,使其更符合人类期望——更有帮助、更安全、更诚实。
4

DPO 等新方法: 简化对齐流程

2023-2025 年,DPO(Direct Preference Optimization)等方法跳过了奖励模型训练,直接从偏好数据中优化模型,大幅简化了对齐流程 [2]。
LLM 训练解决的核心问题:
LLM 训练是一个从”学习语言”到”学习做人”的多阶段过程——预训练学知识,SFT 学格式,RLHF/DPO 学偏好。

🚫 没有 SFT 和 RLHF

基座模型像一个读过所有书但从没跟人交流过的学者——它知识渊博,但不会用对话的方式表达,可能答非所问甚至编造信息。你问它”今天天气怎么样”,它可能续写成一首关于天气的诗。

✅ 引入 SFT 和 RLHF

经过 SFT 和 RLHF 训练的模型像一个既博学又善于沟通的顾问——它用清晰的格式回答问题,知道什么该说什么不该说,能根据你的需求给出有用的建议。
回答时用 Andrej Karpathy 的”四阶段”框架作为主线,先说每个阶段”解决什么问题”,再说”怎么解决”。想听的是你对训练流程设计动机的理解,而不是背诵步骤名称。

Q2: 预训练(Pre-training)—— 基座模型是怎么炼成的?

预训练是 LLM 训练中成本最高、耗时最长的阶段。它的核心任务是让模型在海量文本数据上学习”预测下一个 token”,从而掌握语言规律、世界知识和基础推理能力 [1]。
预训练的成本极其惊人,以 GPT-4 级别模型为参考:
  • 数据量:数万亿 tokens(约几十 TB 文本数据)
  • GPU 需求:数千张 A100/H100 GPU,训练数月
  • 成本:GPT-3 训练成本约 $4.6M,GPT-4 估计超过 $100M
  • 电力消耗:训练期间消耗数百万度电
这也是为什么只有少数大厂能从零训练基座模型,大多数团队基于开源基座做微调。
预训练就像一个人花十年时间读完整个图书馆——他积累了海量知识,语言表达流畅,什么话题都能聊几句。但他从未学过”怎么当客服”——你问他问题,他可能开始背书、写诗、或者反过来问你问题。这就是基座模型的状态:知识渊博,但不会按人类期望的格式回答。

预训练数据的质量与配比

预训练数据不是”越多越好”,数据的质量和配比直接影响模型能力:

从 GPT-1 到 GPT-4 的训练演进


Q3: SFT(Supervised Fine-Tuning)—— 让模型学会回答问题

SFT 是 LLM 训练的第二阶段,用高质量的”指令-回答”对微调基座模型,把它从”文本补全机器”变成”对话助手” [1]。
SFT 阶段的核心原则是”数据质量远比数据数量重要”。1 万条精心标注的高质量数据,效果往往优于 100 万条低质量数据 [1]。
  • 质量标准:回答准确、格式规范、逻辑清晰、无有害内容
  • 多样性:覆盖不同任务类型(问答、代码、翻译、摘要等)
  • 一致性:同类型任务的回答风格和格式保持一致
  • 来源:通常由专业标注团队或强模型(如 GPT-4)生成后人工审核
SFT 就像给新员工做岗前培训。基座模型是一个知识渊博但没有工作经验的毕业生——他什么都知道一点,但不知道怎么写报告、怎么回邮件、怎么跟客户沟通。SFT 就是给他看几百份优秀的”报告范例""邮件模板""客户沟通记录”(高质量数据),让他学会按公司的规范和格式来工作。培训的关键不是数量——看 1 万份低质量的报告不如看 100 份优秀的报告。

前端工程师关注的 SFT 响应格式

SFT 不仅教会模型”回答什么”,还教会它”怎么格式化回答”。对前端工程师来说,以下格式尤为重要:

SFT 与预训练的关键区别


Q4: RLHF(Reinforcement Learning from Human Feedback)—— 对齐人类偏好

RLHF 是 LLM 训练的第三阶段,通过人类反馈的强化学习,让模型的输出更符合人类期望——更有帮助、更安全、更诚实 [1] [2]。
RLHF 中最关键的工程细节是 KL 散度约束。如果没有这个约束,模型会学会”欺骗”奖励模型——生成奖励模型给高分但人类并不喜欢的回答(Reward Hacking)。KL 散度惩罚确保模型不会偏离 SFT 模型太远 [2]。
  • Reward Hacking 的例子:模型发现回答中加”根据权威专家的说法”会得到更高分数,于是所有回答都加上这句话,但内容质量并没有提升
  • KL 约束的作用:限制新模型与 SFT 模型的差异,保持回答的自然性
RLHF 就像制定考试阅卷标准的过程。第一步(偏好数据):请一批老师对学生的答卷进行排序——“这份答得好,那份答得差”。第二步(奖励模型):把这些排序结果总结成一套评分标准(“开头要明确、逻辑要清晰、举例要具体”)。第三步(PPO 优化):让学生按照评分标准来改进自己的答卷——每写一版就请评分标准打分,不断迭代直到得高分。KL 约束就像告诉学生”你可以改进,但不能完全变成另一个人”——保持你原有的知识和风格,只是在表达方式上优化。

PPO 算法的核心思想

PPO(Proximal Policy Optimization)是 RLHF 中最常用的强化学习算法:

RLHF 需要解决的三个核心挑战


Q5: DPO(Direct Preference Optimization)—— RLHF 的简化版本

DPO 是 2023 年提出的 RLHF 替代方案,它的核心创新是跳过奖励模型训练,直接从偏好数据中优化模型 [2]。2024-2025 年,DPO 及其变体(IPO、KTO、SimPO、ORPO)已成为主流对齐方法。
DPO 的核心洞察是:RLHF 中的奖励模型可以被解析求解,从而跳过奖励模型训练。DPO 直接优化一个损失函数,使模型更偏好 chosen 回答、更不偏好 rejected 回答 [2]。
  • 优势:训练更稳定(不需要调 PPO 超参数)、计算成本更低(不需要维护奖励模型)
  • 局限:不支持在线学习(不能实时从新反馈中学习)、对偏好数据质量更敏感
  • 2025 趋势:DeepSeek 等模型使用 GRPO(Group Relative Policy Optimization)结合两者优点
RLHF 就像学做菜的”标准流程”:先请美食评论家写一本《评分标准手册》(训练奖励模型),然后你做一道菜,请手册打分,根据分数改进(PPO 优化)。DPO 就像”直接看对比视频”:不需要评分手册,直接看两道菜的对比视频——“这道比那道好吃”——然后记住差异,下次改进。DPO 更简单直接,但如果视频质量不高(偏好数据不好),学到的东西可能不准确。

DPO vs RLHF 全面对比

DPO 的变体(2024-2025 年)


Q6: 微调方法(LoRA、QLoRA、全量微调)—— 前端工程师最实用的技能

对于前端工程师来说,从零训练基座模型不现实,但基于开源模型做微调是完全可以落地的。LoRA 和 QLoRA 让消费级 GPU 也能微调大模型 [3]。
LoRA 的效果取决于几个关键超参数 [3]:
  • r (rank):低秩矩阵的秩,通常取 4-64。r 越大,能力越强,但参数越多
  • alpha (缩放因子):控制适配器的影响力,通常设为 r 的 1-2 倍
  • target_modules:应用 LoRA 的层(通常是 Attention 的 Q/K/V/O 投影层)
  • dropout:LoRA 层的 dropout,防止过拟合
LoRA 训练完成后,适配器权重可以合并回原始模型(W' = W + B × A),推理时没有额外延迟。
LoRA 就像给汽车装改装件。全量微调是”把整辆车拆了重新造”——成本高、时间长,但效果最好。LoRA 是”保留原车不动,加装涡轮增压和运动悬挂”——原车的发动机、底盘都不动(冻结权重),只加几个改装件(低秩矩阵)。改装件很小(参数量只有 0.06%),但能显著提升性能。QLoRA 更进一步——“用更便宜的材料做改装件”(4-bit 量化),效果几乎一样,但成本更低。

三种微调方法全面对比

微调数据准备的最佳实践


Q7: 高频面试题

LLM 训练的四个阶段对应学生成长的四个阶段。预训练是”上学读书”——从小学到大学,学习语言、知识和基础推理(花 16 年,成本最高)。SFT 是”岗前培训”——看优秀范例,学会按规范格式工作(花几个月,成本中等)。RLHF 是”导师指导”——导师不断给反馈,告诉你”这样做更好""那样做不对”(持续迭代,成本中等)。DPO 是”看对比案例自学”——不需要导师实时指导,直接看好坏案例的对比就能学到标准(更高效,但不如导师指导精准)。

基础梳理

专家视角深度剖析

很多人能背出”预训练 → SFT → RLHF”的流程,但实际更在意的是:每个阶段的设计动机是什么?为什么不能跳过某个阶段?这些权衡对前端工程师意味着什么? 预训练阶段的核心价值不是”让模型知道很多东西”,而是”让模型学会语言的内在结构”。基座模型在预训练后学到的不仅是知识,更是一种”语言直觉”——它知道什么样的句子是通顺的、什么样的推理是合理的。这种能力无法通过 SFT 从零教会——就像你无法通过岗前培训让一个不会中文的人写出流畅的中文文章。 SFT 阶段的核心价值是”格式对齐”而非”知识注入”。很多人的误区是认为 SFT 是在”教模型新知识”——实际上,SFT 的数据量(1-10 万条)远不足以注入新知识。SFT 真正做的是教会模型”按什么格式回答”和”什么场景下该说什么话”。这也是为什么 SFT 数据质量如此重要——一条高质量的示例,能让模型学到一种回答模式。 RLHF/DPO 阶段的核心价值是”价值对齐”——教会模型什么是”好的回答”。这是一个比”格式对齐”更深层的问题。一个好的回答不仅要格式正确,还要准确、安全、有帮助。RLHF 通过人类反馈让模型学会这种”品味”,DPO 则通过偏好对比实现同样的目标 [1] [2]。 对于前端工程师来说,理解这些阶段的实际意义是:当你用 LLM 构建应用时,你需要知道哪些能力来自哪个阶段。模型的知识来自预训练(所以它可能不知道最新的 API),回答格式来自 SFT(所以你可以通过 prompt 调整格式),回答质量来自 RLHF/DPO(所以不同模型的”品味”不同)。

🔍 底层源码:LoRA 的矩阵运算

LoRA 在 Transformer 的 Attention 层中注入低秩适配器(详见 LoRA 论文):
LoRA 通常应用在 Attention 的 Q/K/V/O 四个投影层上。以 Llama 7B 为例:每个 Attention 层有 4 个投影矩阵,共 32 层,所以总共 128 个 LoRA 适配器。每个适配器只有几千个参数,但组合起来能有效适配模型行为。

Q8: 满分回答 vs 及格回答

问题:“请描述 LLM 从零到可用的完整训练流程”

及格回答(60-70分):
“先预训练,用海量数据训练基座模型。然后 SFT 微调,用高质量数据教模型回答问题。最后 RLHF,用人类反馈优化模型输出。”
问题出在:知道流程但不理解每个阶段的设计动机和权衡。 满分回答(90-100分):
“LLM 训练是一个从’学习语言’到’学习做人’的多阶段过程,核心分为四个阶段。预训练阶段在数万亿 tokens 的互联网文本上训练,目标是 next-token prediction,让模型学会语言结构和世界知识。这一步消耗了 95% 以上的训练算力,GPT-3 级别的训练成本约 $4.6M。产出的基座模型会续写文本但不会回答问题。[1]”
“SFT 阶段用 1-10 万条高质量的指令-回答对微调基座模型。关键原则是数据质量远比数量重要——1 万条精心标注的数据效果优于 100 万条低质量数据。SFT 真正做的是’格式对齐’而非’知识注入’,教会模型按人类期望的格式回答问题。[1]”
“RLHF 阶段训练奖励模型学习人类对回答质量的排序偏好,再用 PPO 算法优化策略模型。关键工程细节是 KL 散度约束——防止模型学会’欺骗’奖励模型(Reward Hacking)。2023 年后 DPO 跳过了奖励模型训练,直接从偏好数据优化模型,训练更稳定、成本更低,已成为 2024-2025 年的主流方法。[2]”
“对于前端工程师来说,最实用的技能是 LoRA/QLoRA 微调。LoRA 通过低秩矩阵分解,只训练 0.06% 的参数就能接近全量微调的效果。QLoRA 在此基础上加 4-bit 量化,让 RTX 3090 就能微调 7B 模型。这意味着前端工程师可以在自己的开发机上定制领域模型,比如专门用于前端代码审查的 LLM。[3]“

常见追问

答题要点: 用具体数字说明规模,对比不同模型。高分回答: “GPT-3 的预训练数据是 300B tokens(约 45TB 文本),使用了 1024 张 V100 GPU 训练了约 34 天,成本约 $4.6M。GPT-4 的具体数据未公开,但业界估计训练数据在 10T+ tokens 级别,使用了 25000 张 A100 GPU,训练成本超过 $100M。Llama 3 405B 的训练数据是 15T+ tokens,使用了 16000 张 H100 GPU。数据来源主要是互联网网页(Common Crawl,占比 60-70%)、书籍和论文(10-15%)、代码(10-15%)、维基百科(3-5%)。数据质量和配比比数据量更重要——Meta 在 Llama 3 的技术报告中详细描述了数据清洗和去重流程,这比简单堆数据量有效得多。”
答题要点: 从准确性、格式、多样性三个维度回答。高分回答: “SFT 数据的质量标准有三个维度:
  1. 准确性:回答内容必须事实正确、逻辑清晰。一条错误的示例可能教会模型一种错误的回答模式。所以 SFT 数据通常需要人工审核或用强模型(GPT-4)生成后人工校验。
  2. 格式一致性:同类任务的回答格式必须统一。如果 10 条代码审查示例中,5 条用 JSON 格式、5 条用 Markdown 格式,模型学到的格式就会不稳定。
  3. 多样性:覆盖不同任务类型和难度。如果所有示例都是简单的代码解释,模型遇到代码审查任务就不知道怎么处理。数据集需要覆盖问答、代码、翻译、摘要等多种任务。
典型的数据量是 1-10 万条。Alpaca 项目用 52K 条 GPT-4 生成的数据就实现了不错的 SFT 效果,说明数据质量比数量重要得多。”
答题要点: 解释偏好数据收集、奖励模型架构、训练目标。高分回答: “Reward Model 的训练分三步:
  1. 收集偏好数据:对同一个问题,让 SFT 模型生成 4-9 个不同的回答(通过不同的温度/采样参数),然后由人类标注员对这些回答进行排序。例如:‘回答 A 最好,回答 C 次之,回答 B 最差’。每两个回答构成一个偏好对 (chosen, rejected)。
  2. 模型架构:Reward Model 通常基于 SFT 模型初始化,去掉最后的语言模型头,换成一个线性层输出标量分数。输入是 (问题, 回答) 的拼接,输出是一个浮点数表示回答质量。
  3. 训练目标:对于每对偏好数据,优化 Bradley-Terry 模型——让 chosen 的分数高于 rejected 的分数。损失函数是 -log(sigmoid(r_chosen - r_rejected))。训练数据通常有 10-50 万对偏好数据。”
答题要点: 解释 PPO 的核心机制和 KL 约束。高分回答: “PPO 在 RLHF 中的工作流程:
  1. 采样阶段:SFT 模型(策略模型)对一批 prompt 生成回答。
  2. 评分阶段:Reward Model 对每个回答打分,得到奖励值。
  3. KL 惩罚:计算当前策略模型与参考模型(SFT 原始模型)的 KL 散度,防止偏离太远。
  4. 优势估计:用 GAE(Generalized Advantage Estimation)估计每个 token 的优势函数。
  5. PPO 更新:用 Clip 机制限制策略更新幅度——新策略概率与旧策略概率的比值被裁剪在 [1-ε, 1+ε] 范围内(ε 通常取 0.2)。
Clip 机制的核心作用是防止策略更新太剧烈。如果某次回答得到很高奖励,没有 Clip 的话模型可能会大幅调整参数去复现这种回答,导致训练不稳定。Clip 确保每次更新都是’小步快跑’。”
答题要点: 解释 DPO 的数学推导核心思想。高分回答: “DPO 能跳过奖励模型的原因是它发现了一个数学等价关系:RLHF 中奖励模型的最优解可以被解析求解,从而把奖励模型的参数用策略模型的参数表示出来。具体来说,RLHF 的目标是最大化奖励的同时保持与参考模型的 KL 散度约束。这个优化问题的最优解有一个闭合形式:最优策略的概率比(chosen vs rejected)与奖励差成指数关系。DPO 直接把这个关系代入损失函数,用策略模型自身的概率来隐式表达奖励。所以 DPO 的损失函数只需要两样东西:策略模型的概率和参考模型的概率。不需要单独训练奖励模型,直接从偏好数据中优化策略模型。这不仅简化了流程,还消除了奖励模型这个’中间商’可能引入的误差。”
答题要点: 解释 r 的选择与任务复杂度的关系。高分回答: “LoRA 的秩 r 的选择取决于任务复杂度和数据量:
  1. r = 4-8:适合简单的格式对齐任务(如让模型用 JSON 格式输出、调整回答风格)。参数量极少,训练快。
  2. r = 16-32:适合中等复杂度的任务(如领域知识注入、代码审查)。大多数场景的推荐值。
  3. r = 64-128:适合复杂任务(如数学推理、复杂代码生成)。接近全量微调效果。
经验值:r=8 + alpha=16 是一个很好的起点。如果效果不够好,先检查数据质量,再考虑增大 r。增大 r 的收益是递减的——从 r=8 到 r=16 提升明显,从 r=64 到 r=128 提升很小。另外,target_modules 的选择也很重要。只对 Q/V 投影层应用 LoRA(2 个模块)效果已经不错,对 Q/K/V/O 全部应用(4 个模块)效果更好但参数量翻倍。”
答题要点: 这是一个争议性问题,需要展示辩证思维。高分回答: “表面上看,预训练最重要——没有预训练就没有后面的一切。但这个答案太浅了。反面的证据:2023 年的研究表明,用 GPT-3.5 做 SFT 和 RLHF 的效果,可能超过用更好的基座模型但不做对齐。Alpaca 项目用 Llama 7B + 52K 条 SFT 数据,效果接近 GPT-3.5,说明 SFT 和对齐的价值可能被低估。我的判断是:三个阶段缺一不可,但重要性取决于你的起点。如果你从零开始,预训练最重要(没有基座,后面都是空中楼阁)。如果你基于开源模型做应用,SFT 最重要(它决定了模型在你的场景下的表现)。如果你追求极致品质,RLHF/DPO 最重要(它决定了模型的’品味’和安全性)。升华:这个问题的本质是’数据、算法、对齐哪个更重要’。答案是:它们是乘法关系而非加法关系——任何一个阶段做不好,整体效果都会大打折扣。”
答题要点: 从实际工作场景出发,说明前端工程师了解训练流程的价值。高分回答: “前端工程师了解 LLM 训练流程有三个实际价值:
  1. 更好地使用 LLM API:理解模型的能力边界。预训练决定了模型的知识截止日期(不知道最新 API),SFT 决定了模型的回答格式(可以通过 prompt 调整),RLHF 决定了模型的安全限制(某些内容模型会拒绝回答)。理解这些,你就能更精准地设计 prompt,避免踩坑。
  2. 微调领域模型:LoRA/QLoRA 让前端工程师也能微调模型。比如微调一个专门用于前端代码审查的模型,或微调一个能准确解析你的项目代码风格的 Copilot。理解 SFT 数据格式和微调流程,是实现这些的前提。
  3. 架构 LLM 应用:当你用 LangChain 构建 RAG 或 Agent 时,理解模型的训练方式能帮你做出更好的架构决策。比如:模型的知识来自预训练(所以 RAG 需要注入最新文档),模型的格式偏好来自 SFT(所以 prompt 要匹配模型的训练方式),模型的安全边界来自 RLHF(所以某些任务需要特殊的 prompt 来绕过限制)。”

📚 延伸阅读与引用参考