大模型训练全景:预训练与后训练

大模型训练全景:预训练与后训练

AI 核心技能系列 · 第 2 篇


导语

上一篇我们搞清楚了大模型"长什么样"(Transformer 架构),这一篇要搞清楚它"怎么长大的"。

大模型不是天生就聪明的。ChatGPT 不是一上来就能跟你聊天,Claude 也不是一出生就会写代码。它们都经历了一个漫长的"培养"过程——从什么都不懂的随机参数,到能理解人类语言、遵循指令、输出有用内容。

理解这个培养过程有什么用?

  • 做 Fine-tuning 的时候,你知道为什么要这样准备数据
  • 选择模型的时候,你知道为什么有些模型"更听话"
  • 面试的时候,SFT、RLHF、DPO 这些名词你能讲清楚而不是只知道缩写

这篇文章带你走一遍大模型从"白纸"到"产品"的完整旅程。


一、大模型训练的全景图

大模型的训练可以分为三个阶段,每个阶段目标不同、方法不同、成本也差了几个数量级:

┌────────────────────────────────────────────────────────────────────┐
│                    大模型训练全流程                                   │
│                                                                      │
│  阶段一:预训练          阶段二:后训练            阶段三:部署推理     │
│  (Pre-training)        (Post-training)          (Inference)        │
│                                                                      │
│  ┌──────────┐    ┌──────────────────────┐    ┌──────────┐          │
│  │ 海量文本   │    │  SFT → RLHF/DPO      │    │ 用户使用   │          │
│  │ 学习语言   │ →  │  学会听话+对齐人类偏好  │ →  │ 实时生成   │          │
│  └──────────┘    └──────────────────────┘    └──────────┘          │
│                                                                      │
│  目标:理解语言      目标:遵循指令+安全对齐     目标:高效推理         │
│  数据:万亿Token     数据:万~百万条指令数据     数据:用户实时输入      │
│  成本:千万~亿美元   成本:百万~千万美元         成本:按Token计费       │
│  时间:数月          时间:数周                  时间:毫秒级            │
└────────────────────────────────────────────────────────────────────┘

一个关键的类比:

  • 预训练 = 上学(系统学习知识,但不会做具体工作)
  • SFT = 入职培训(学会按公司要求做事)
  • RLHF = 绩效考核(根据反馈持续改进工作方式)

二、预训练:海量数据中学会"语言"

2.1 数据是一切的基础

预训练阶段的核心:用海量文本数据,让模型学会"语言"本身

训练数据的来源:

数据来源 典型规模 特点
网页(Common Crawl) 数万亿 Token 最大来源,需要大量清洗
书籍 数十亿 Token 质量高,覆盖面广
维基百科 数十亿 Token 事实性强,结构化
代码(GitHub) 数千亿 Token 编程能力来源
论文(arXiv) 数十亿 Token 科学推理能力
对话数据 数百亿 Token 对话能力来源

GPT-3 使用了约 3000 亿 Token 的训练数据。到了 Llama 3,训练数据超过 15 万亿 Token。而数据质量往往比数量更重要——DeepSeek 公开表示,他们在数据清洗和过滤上投入了大量工程资源。

数据清洗的关键步骤:

  1. 去重:移除重复内容(文档级 + 段落级 + 句子级)
  2. 质量过滤:移除低质量内容(广告、乱码、机器生成的垃圾文本)
  3. 敏感内容过滤:移除有害、非法内容
  4. 数据配比:控制不同来源数据的比例(网页太多会拉低质量)
  5. 去污染:移除测试集数据,防止数据泄露

2.2 Tokenizer:怎么把文字变成数字

模型不认识文字,只认识数字。Tokenizer 负责把文字转换成数字序列(Token ID)。

主流方法是 BPE(Byte Pair Encoding)

# 一个简单的例子
原始文本: "Hello, how are you?"

# BPE Tokenizer 的处理结果
Tokens:  ["Hello", ",", " how", " are", " you", "?"]
Token IDs: [15496, 11, 703, 527, 499, 30]

# 注意:
# - 常见词(Hello)是一个 Token
# - 不常见的长词可能被拆成多个子词
# - 空格通常和后面的词合在一起

不同模型使用不同的 Tokenizer,这也是为什么同一段文本在不同模型上消耗的 Token 数不同:

Tokenizer 使用模型 词表大小 中文效率
cl100k_base GPT-4/4o 100K 较好
claude-tokenizer Claude 3.5/4 100K+ 较好
SentencePiece Llama, Gemini 32K-256K 一般~较好
Qwen-Tokenizer Qwen 2.5 152K 优秀(中文优化)

实用小技巧:中文平均 1 个汉字 ≈ 1.5-2 个 Token(取决于 Tokenizer),英文平均 1 个单词 ≈ 1-1.5 个 Token。这对估算 API 成本很重要。

2.3 训练目标:Next Token Prediction

预训练的目标极其简单——给定前面的 Token,预测下一个 Token:

输入: "The cat sat on the"
目标: 预测下一个 Token 是 "mat" (概率最高)

具体地:

\[P(\text{"mat"} \mid \text{"The cat sat on the"}) = ? \]

模型通过最小化交叉熵损失来学习:

\[\mathcal{L} = -\log P(x_t \mid x_1, x_2, \ldots, x_{t-1}) \]

就是这么"简单"的目标,当你在万亿 Token 上训练数千亿参数的模型时,涌现出了理解语言、逻辑推理、甚至编程的能力。

这也是为什么有人说大模型的能力是"涌现"的——你没有显式地教它推理,但规模足够大的时候,推理能力自己冒出来了。

2.4 训练基础设施:分布式训练

训练大模型需要的算力是惊人的。以 GPT-3 为例:

  • 参数量:1750 亿
  • 训练数据:3000 亿 Token
  • 训练算力:约 3640 PF-days(每秒千万亿次运算 × 3640 天)
  • GPU:数千张 A100/H100
  • 训练时间:数周到数月

一台机器放不下这么多参数和数据,所以需要分布式训练。主流的并行策略:

并行策略 核心思想 适用场景
数据并行 (DP) 每张 GPU 一份模型副本,各自处理不同数据,梯度同步 模型放得下单卡
张量并行 (TP) 把一个矩阵运算拆到多张 GPU 上 单层太大,放不下一张卡
流水线并行 (PP) 不同层放在不同 GPU 上,数据像流水线一样流过 层数太多
ZeRO 优化器状态/梯度/参数分片存储 内存优化

实际训练通常组合使用多种策略,比如 DeepSeek V3 同时使用了 TP + PP + DP + ZeRO。

2.5 Scaling Law:大力出奇迹的理论基础

2020 年 OpenAI 发表了 Scaling Law(规模定律),核心发现:

模型的性能(损失值)与参数量 N数据量 D算力 C 之间存在幂律关系——三者中任一个增大,模型性能都会平滑提升。

\[L(N, D) \approx \left(\frac{N_c}{N}\right)^{\alpha_N} + \left(\frac{D_c}{D}\right)^{\alpha_D} + L_\infty \]

其中:

  • \(L\) 是损失值
  • \(N\) 是参数量
  • \(D\) 是数据量
  • \(\alpha_N, \alpha_D\) 是缩放指数(约 0.076 和 0.095)
  • \(L_\infty\) 是理论下限

直觉理解:模型越大、数据越多、训练越久,效果越好——而且这个关系是可预测的。这就是为什么各大厂商疯狂堆参数和数据——Scaling Law 告诉你,堆下去一定有回报。

后来 DeepSeek 等团队的实践表明,数据质量训练效率可能比单纯的规模扩大更重要。这引发了行业从 "Scaling Law" 到 "Efficiency Law" 的思考转变。

2.6 预训练的成本:算一笔账

训练一个大模型要多少钱?

模型 估算训练成本 主要开支
GPT-3 (175B) ~$460 万 GPU 集群租用
GPT-4 ~$1 亿+ GPU、数据、人力
Llama 3 405B ~$3000 万+ GPU 集群
DeepSeek V3 ~$560 万(声称) GPU(性价比极高)

DeepSeek V3 的训练成本之所以低得惊人,是因为他们在架构(MoE)、训练框架和工程优化上做了大量工作——这也说明训练大模型不一定要拼钱,拼工程能力也行。

2.7 代码示例:加载和探索预训练模型

from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

# 加载一个开源预训练模型(以 Qwen2.5-7B 为例)
model_name = "Qwen/Qwen2.5-7B"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
    model_name, 
    torch_dtype=torch.float16,
    device_map="auto"  # 自动分配到可用的 GPU
)

# 看看模型结构
print(f"参数量: {sum(p.numel() for p in model.parameters()):,}")
print(f"词表大小: {tokenizer.vocab_size:,}")
print(f"模型层数: {model.config.num_hidden_layers}")
print(f"隐藏维度: {model.config.hidden_size}")
print(f"注意力头数: {model.config.num_attention_heads}")

# 用预训练模型生成文本(注意:纯预训练模型不会"聊天",只会续写)
text = "The future of artificial intelligence is"
inputs = tokenizer(text, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=50, temperature=0.7)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

注意:纯预训练模型只会"续写文本",不会"回答问题"。要让它遵循指令,需要后训练。


三、后训练阶段一:SFT(监督微调)

3.1 SFT 的目标

预训练模型会续写文本,但不会遵循指令。你问它"北京有什么好吃的?",它可能会继续写"北京有什么好玩的?上海有什么好吃的?"——因为它只是在做 Next Token Prediction,不知道你在问问题。

SFT(Supervised Fine-Tuning)的目标:让模型从"续写模式"切换到"指令遵循模式"。

做法很直接:构造大量的 (指令, 回答) 数据对,用监督学习微调模型。

3.2 指令数据的构造

// SFT 训练数据的典型格式
{
  "messages": [
    {"role": "system", "content": "你是一个有帮助的助手。"},
    {"role": "user", "content": "请解释什么是机器学习"},
    {"role": "assistant", "content": "机器学习是人工智能的一个分支,它让计算机能够从数据中自动学习规律和模式,而不需要人为地编写明确的规则..."}
  ]
}

高质量 SFT 数据的来源:

数据来源 成本 质量 规模
人工标注 最高 小(万级)
蒸馏(用强模型生成) 大(十万级)
开源数据集 参差不齐
Self-Instruct

3.3 SFT 的关键技巧

  1. 数据质量 >> 数据数量:1000 条高质量数据 > 100 万条低质量数据
  2. 覆盖多样性:指令类型要丰富(问答、写作、翻译、代码、推理……)
  3. 格式一致性:训练数据的格式要统一
  4. 避免灾难性遗忘:SFT 数据中混入一些预训练数据,防止模型忘掉通用能力

3.4 为什么只做 SFT 还不够

SFT 教会了模型"怎么回答问题",但没教它"什么是好的回答"。

一个只做过 SFT 的模型可能会:

  • 一本正经地胡说八道(自信但错误)
  • 回答有害问题("怎么制造炸弹")
  • 输出冗长废话
  • 对敏感问题不当处理

要解决这些问题,需要对齐(Alignment)——让模型的行为符合人类的价值观和偏好。这就是 RLHF 的工作。


四、后训练阶段二:RLHF(人类反馈强化学习)

4.1 核心思想

RLHF(Reinforcement Learning from Human Feedback)的核心思想:用人类偏好来教模型什么是好的回答。

直觉理解:

想象你在教一个小孩写作文。SFT 相当于给他看了大量范文,他学会了写作的基本套路。RLHF 相当于你改他的作文——"这句话写得好"、"这个论点太弱了"、"这个例子不恰当"——让他不断改进。

4.2 RLHF 的三步流程

Step 1: 收集人类偏好数据
─────────────────────────
给同一个问题,模型生成两个回答(A 和 B),
让人类标注员选择哪个更好。

  问题: "解释量子计算"
  回答A: [详细、准确、易懂]  ← 人类选择这个 ✓
  回答B: [简短、有错误]

Step 2: 训练奖励模型 (Reward Model)
─────────────────────────────────
用人类偏好数据训练一个"评分模型",
它能自动给回答打分,模拟人类判断。

  Reward Model("解释量子计算", 回答A) → 0.85 分
  Reward Model("解释量子计算", 回答B) → 0.32 分

Step 3: 用 PPO 优化策略模型
───────────────────────────
用强化学习(PPO 算法)优化模型,
让它生成的回答得到更高的奖励分数。

优化目标:

\[\max_\pi \; \mathbb{E}\left[R(\text{response})\right] - \beta \cdot D_{KL}\left(\pi_{\text{new}} \| \pi_{\text{ref}}\right) \]

  • \(R(\text{response})\): 奖励模型的分数(要高)
  • \(D_{KL}(\pi_{\text{new}} \| \pi_{\text{ref}})\): 和原始模型的差异(不能太大,防止过度优化)

4.3 RLHF 的工程挑战

RLHF 是出了名的难训:

  1. 奖励模型不完美:人类标注有噪声,奖励模型可能学到错误的偏好
  2. Reward Hacking:模型学会"讨好"奖励模型,但回答质量并没有提高(比如学会输出冗长但没信息量的回答)
  3. 训练不稳定:PPO 算法对超参数敏感,容易训崩
  4. 成本高:需要大量人类标注,一个标注员一天标不了几百条
  5. 四个模型同时运行:策略模型、参考模型、奖励模型、价值模型——GPU 需求巨大

五、后训练阶段三:DPO 与新范式

5.1 DPO:去掉奖励模型的简化方案

RLHF 太复杂了,有没有更简单的方法?2023 年 Stanford 提出了 DPO(Direct Preference Optimization)

核心思想:不需要训练奖励模型和使用 PPO,直接用人类偏好数据优化语言模型。

RLHF:  偏好数据 → 训练奖励模型 → PPO优化策略 → 对齐的模型
DPO:   偏好数据 → 直接优化策略 → 对齐的模型(中间步骤省了!)

DPO 的损失函数(看不懂公式没关系,理解思想即可):

\[\mathcal{L}_{\text{DPO}} = -\mathbb{E}\left[\log \sigma\left(\beta \cdot \left(\log \frac{\pi(y_w \mid x)}{\pi_{\text{ref}}(y_w \mid x)} - \log \frac{\pi(y_l \mid x)}{\pi_{\text{ref}}(y_l \mid x)}\right)\right)\right] \]

其中:

  • \(y_w\): 人类偏好的(winning)回答
  • \(y_l\): 人类不偏好的(losing)回答
  • \(\pi\): 当前模型
  • \(\pi_{\text{ref}}\): 参考模型(SFT 后的初始状态)
  • \(\beta\): 温度参数

直觉理解:DPO 让模型学会"好回答的概率要高,差回答的概率要低",同时不要偏离初始模型太远。

5.2 RLHF vs DPO 对比

维度 RLHF DPO
需要奖励模型
训练稳定性 不稳定,超参数敏感 相对稳定
工程复杂度 高(4个模型同时运行) 低(和 SFT 类似)
GPU 需求 相对低
实际效果 天花板更高 大部分场景足够好
在线学习 支持 不支持
迭代优化 容易持续优化 每轮需要重新收集偏好数据

5.3 其他新兴对齐方法

方法 核心思想 特点
ORPO (Odds Ratio Preference Optimization) 将 SFT 和对齐合并为一步 更简单,不需要参考模型
KTO (Kahneman-Tversky Optimization) 只需要"好/坏"二元标签,不需要成对比较 数据需求更低
SimPO (Simple Preference Optimization) 用序列平均对数概率作为隐式奖励 无需参考模型
GRPO (Group Relative Policy Optimization) DeepSeek 提出,组内相对排序 适合推理任务

行业趋势:DPO 及其变体正在成为主流,RLHF 则在需要极致对齐效果的场景中仍有不可替代的地位。


六、开源训练框架与工具链

你不需要从头写训练代码。以下是主流的训练框架:

框架 适用场景 易用性 功能 特点
Hugging Face TRL SFT + RLHF + DPO ★★★★ ★★★★ 生态最完整,社区活跃
LLaMA-Factory 全流程微调 ★★★★★ ★★★★★ 图形界面,一键微调,支持100+ 模型
Unsloth 高效微调 ★★★★ ★★★ 2x 加速,50% 内存节省
DeepSpeed 大规模分布式训练 ★★ ★★★★★ 微软出品,ZeRO 优化
Megatron-LM 预训练 ★★ ★★★★★ NVIDIA 出品,张量并行
Axolotl 配置化微调 ★★★ ★★★★ YAML 配置,灵活

选择建议

  • 入门者:LLaMA-Factory(有图形界面,上手最快)
  • 日常微调:Hugging Face TRL + Unsloth(生态好 + 效率高)
  • 大规模训练:DeepSpeed + Megatron-LM(工业级)

七、职业视角:理解训练对实际工作的帮助

7.1 面试高频问题

问题 考察点 核心答案要点
SFT 和 RLHF 的区别? 基础概念 SFT 教模型怎么回答问题,RLHF 教模型什么是好的回答
DPO 和 RLHF 的区别? 技术深度 DPO 去掉了奖励模型,直接用偏好数据优化,更简单但天花板略低
Scaling Law 是什么? 前沿认知 模型性能与参数量、数据量、算力之间的幂律关系
预训练用什么目标? 基础理解 Next Token Prediction,通过交叉熵损失优化
什么是灾难性遗忘? 实战经验 微调后模型忘掉预训练学到的通用能力,可通过混合数据缓解

7.2 不同岗位的侧重点

算法岗                              应用岗
├── 需要深入理解训练原理              ├── 理解概念即可,不需要自己训练
├── 要会写训练代码                   ├── 重点在 Fine-tuning 和数据准备
├── 要了解分布式训练                 ├── 用现成框架(LLaMA-Factory 等)
├── Scaling Law 的应用               ├── 知道什么时候该 Fine-tune
└── 对齐技术是核心竞争力              └── 模型选型和效果评估

7.3 工作中的实际应用

  1. 数据质量判断:理解训练过程,你就知道为什么"训练数据的质量比什么都重要"
  2. Fine-tuning 策略选择:知道 SFT/DPO 的区别,才能选对微调方式
  3. 模型能力评估:理解后训练的对齐过程,你能更准确地判断模型在哪些场景下可靠、哪些场景下不可靠
  4. 成本预估:理解训练成本结构,能帮你向老板解释为什么 AI 项目需要多少预算

总结

这篇文章带你走完了大模型从"白纸"到"产品"的完整旅程:

  1. 预训练:用万亿 Token 学会"语言",核心目标是 Next Token Prediction,需要海量算力
  2. SFT:用指令数据教模型"听话",从续写模式切换到指令遵循模式,数据质量是关键
  3. RLHF/DPO:用人类偏好教模型"什么是好的回答",实现价值观对齐
  4. 工具链:LLaMA-Factory、TRL、Unsloth 等框架让训练和微调变得越来越平民化
  5. Scaling Law:参数、数据、算力三者的关系,是行业军备竞赛的理论基础

理解训练过程不是为了让你去训练模型(大部分人不需要),而是为了让你在做 Prompt Engineering、RAG、Fine-tuning 时,知道"为什么"——这就是原理知识的价值。


本文是 AI 核心技能系列 第 2 篇,共 12 篇。上一篇:大模型基础:从 Transformer 到 GPT | 下一篇:Prompt Engineering:与大模型高效对话的艺术

关注公众号「coft」,获取完整系列更新、配套代码和学习路线图。一起交流 AI 转行经验,助力职业跃升,迈向高薪岗位。

posted @ 2026-02-27 14:50  warm3snow  阅读(9)  评论(0)    收藏  举报