HelloAI
L4 第 1 篇 🐣 难度 🕒 16 分钟

LLM 是怎么炼成的:Pretrain → SFT → RLHF 全流程

"训练一个 ChatGPT" 不是一步,是三步。每一步用完全不同的数据和目标。看完你能跟工程师对话。

阿莱
2026/7/4

L0/L1/L3 你已经学完所有”前置知识”。这一篇打开 LLM 训练的黑盒——看 ChatGPT 是怎么从随机参数变成”无所不知的助手”的。

一个秘密训练 LLM 是 3 个完全不同的阶段,每个阶段用不同的数据、不同的目标、不同的成本。

阶段 1:预训练(Pre-training)

目标

让模型学会”语言本身”——语法、事实、推理、世界常识。

数据

整个互联网。 字面意思。

  • Common Crawl(互联网抓取,数十 TB)
  • Wikipedia(高质量百科)
  • 书籍(数百万本)
  • 代码(GitHub)
  • 学术论文(arXiv)
  • ……

GPT-3 训练数据约 45TB 文本(去重后约 570GB)。GPT-4 估计是这个的几倍。

训练目标:预测下一个 token

就这一件事——给一段文本,让模型预测下一个 token 是什么。

"今天天气真" → 模型预测下一个 token 是 "好" / "不错" / ... 的概率

损失:交叉熵(L1-04 我们详讲过)。

这就是 自监督学习——数据本身就构造了标签(每个位置的”真实下一个 token”)。不需要任何人工标注——这是 LLM 能上规模的核心原因。

训练规模

  • 计算量:以 FLOPs(浮点运算次数)计——GPT-3 约 3×10233 \times 10^{23} FLOPs
  • 时间:几周到几个月(数千张 GPU 并行)
  • 成本:GPT-3 估约 460GPT4估约460 万**,GPT-4 估约 **1 亿

这是 LLM 最贵的阶段——绝大多数计算成本都在这里。

产物:基础模型(base model)

预训练完,你得到一个只会”续写”的模型。它能写出像样的句子,但不会按你的指令做事

如果你问基础模型”写一首诗”——它可能会续写:“写一首诗,需要灵感和……”它把你的指令当成了”待续写文本的开头”。

所以还不能直接用。

阶段 2:监督微调(SFT, Supervised Fine-Tuning)

目标

让模型学会遵循指令

数据

人工写的高质量”指令-回答”对:

指令:写一首关于春天的短诗。
回答:花开三月暖,
      微风燕子翻,
      青山何处有,
      春色入诗篇。

指令:用 Python 写一个判断素数的函数。
回答:def is_prime(n):
          if n < 2: return False
          for i in range(2, int(n**0.5)+1):
              if n % i == 0: return False
          return True

通常 5 万-50 万条这种数据。

关键:这些数据要很高质量——通常雇专业写作者、领域专家撰写。OpenAI 雇过博士做 GPT-4 的 SFT 数据。

训练

仍然是”预测下一个 token”——但只在回答部分计算损失,不在指令部分(你不想让模型学会”模仿用户提问”)。

成本和规模:

  • 数据量比预训练少 10000+ 倍
  • 训练时间:几小时-几天
  • 成本:几千-几万美元

产物:SFT 模型

到这一步,模型已经能按指令做事了——能写诗、写代码、回答问题。

但还有问题:

  • 它仍然可能输出有毒/有害/无用的回答
  • 它没”风格偏好”——可能给你一个对的答案,但说话方式很机械

所以还需要第三步

阶段 3:RLHF(人类反馈强化学习)

这是 ChatGPT 之所以好用的核心步骤。

目标

让模型学会”什么样的回答让人喜欢”——不只是正确,还要有用、安全、礼貌、详尽得当

流程(分三小步)

步骤 3.1:收集”哪个回答更好” 的偏好数据

给同一个指令,让模型生成 4-5 个候选回答,让人类标注员排序

指令:解释一下为什么天空是蓝色的。

候选 A:天空是蓝色的因为光线和大气层散射有关。
候选 B:天空看起来是蓝色的,是因为阳光由各种颜色组成。短波长(蓝色)
       的光更容易被大气分子散射……(详细,准确)
候选 C:因为水反射的颜色。(错误)
候选 D:天空一片蔚蓝,让人想到童年的夏天,那些无忧无虑的午后……(跑题)

人类标注:B > A > D > C

收集几万到几十万这样的偏好对。

步骤 3.2:训练奖励模型(Reward Model)

用偏好数据训一个小模型,输入”指令+回答”,输出”这个回答有多好”(一个数值):

RewardModel(指令, 回答) → 分数

这个奖励模型是用偏好数据训出来的——它学到了”什么样的回答会被人类喜欢”。

步骤 3.3:用 PPO 算法优化主模型

现在用强化学习(PPO 算法)——主模型生成回答,奖励模型给分,鼓励高分回答、惩罚低分回答

LLM 生成回答 → RewardModel 评分 → 高分 → 增强这种行为

                                低分 → 减弱这种行为

这一步技术上极其复杂——PPO 在 LLM 上的稳定性是个工程难题。

成本

RLHF 比 SFT 贵 10-100 倍——主要是人工标注成本

GPT-4 据估算 RLHF 阶段花了几百万美元——其中大部分是给标注员的工资。

产物:你最终用到的 ChatGPT / Claude / Gemini

到这一步,模型变得:

  • 听话(遵循指令)
  • 有礼貌(不出粗话)
  • 详尽(不偷懒只回答一行)
  • 安全(拒绝有害请求)
  • 风格统一(“我能怎么帮您?“这种)

一张图总结

原始 Transformer 架构

[阶段 1 · Pretrain]
   数据:互联网海量文本
   目标:预测下一个 token
   产物:基础模型(会续写但不听话)
   成本:千万-亿美元

[阶段 2 · SFT]
   数据:5-50 万高质量指令-回答
   目标:学会按指令做事
   产物:SFT 模型(会做事但风格机械)
   成本:万级

[阶段 3 · RLHF]
   数据:几万-几十万偏好对
   目标:风格化、对齐人类偏好
   产物:你用的 ChatGPT / Claude
   成本:百万级
💡 一个反直觉

预训练学的是 99% 的能力,SFT + RLHF 改的是 1% 的”行为”

这就是为什么 GPT-3 基础模型只要稍微 SFT 一下,就能变出 ChatGPT—— 它本来就什么都会了,只是不知道该怎么用。

现代变种:DPO / ORPO 等

RLHF 工程复杂、成本高。2023-2024 年出现了更简单的替代:

DPO(Direct Preference Optimization)

核心想法:跳过”奖励模型 + PPO”,直接从偏好数据用一个简化的损失函数训。

效果接近 RLHF,但工程简单 10 倍。Llama 3、Mistral 等很多开源模型用 DPO

ORPO / KTO 等

更激进的简化——边 SFT 边对齐,一阶段搞定。

趋势:RLHF 仍然是”金标准”,但开源生态因为成本压力,越来越多用 DPO 等替代。

开源 vs 闭源训练

阶段开源(Llama 3)闭源(GPT-4)
Pretrain 数据量15T tokens估约 13T tokens
模型参数70B / 405B估约 1.7T (MoE)
SFT数十万人写 + 合成几十万-上百万
偏好对齐DPO 为主RLHF + 多轮迭代
总成本~$50M$100M+

闭源模型的优势主要在 RLHF 的精细打磨——架构和预训练数据没那么神秘。

一些”奇怪的”事实

LLM 不知道自己被训过

你问 ChatGPT “你怎么训出来的”——它的回答都是它读过的关于 OpenAI 公开博客的内容不是它实际的训练记忆。它没有”自传”。

训练数据决定一切

为什么 GPT 中文比 Claude 中文略好?为什么 Llama 中文不好?——完全取决于训练数据里中文占比

模型架构都差不多,差距在数据。

微调比预训练便宜 10000 倍

这是为什么你也能”微调一个 LLM”(L4-05 详讲 LoRA)——不需要重新预训练,在现成基础模型上微调几小时就行。

大型公司开放基础模型(如 Llama 3),就是让全世界帮它做 SFT 和应用——它们提供”通用底座”,社区做”垂直化”。

一句话总结

LLM 训练 = 让模型先”读完互联网”,再”学会听话”,最后”被人调教得讨喜”

每一步用完全不同的数据、目标、方法。 三步缺一不可。

下一篇:《RAG 从 0 到 1》 —— 你已经知道 LLM 是怎么炼成的,下一步是怎么用它做产品。

📬

读到这里说明你认真在学 🎯

订阅每周精选 —— 下一篇新文章 / 新可视化第一时间送到邮箱。

💬

讨论区

· 用 GitHub 账号登录评论
⚠️ Giscus 评论未配置 —— 在 src/components/Comments.astro 顶部填入 仓库 ID 和分类 ID(见组件注释里的配置步骤)。