模型训练与对齐

是什么

模型训练是将一个随机初始化的神经网络,通过海量数据和计算资源,训练成能够理解和生成人类语言的 LLM 的过程。

一个 LLM 从”白纸”到”AI 助手”,需要经历三个阶段:先学知识,再学对话,最后学做人。

阶段一:预训练        → 学知识(语言、事实、推理)
阶段二:有监督微调 SFT → 学对话(遵循指令、格式化回答)
阶段三:人类偏好对齐   → 学做人(安全、有帮助、诚实)

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

目标

让模型学会语言的统计规律和世界知识。训练结束后得到的是 Base Model(基座模型)

训练任务

Next Token Prediction(下一个 Token 预测)

输入: "法国的首都是"
标签: "巴"

输入: "法国的首都是巴"
标签: "黎"

模型的唯一任务就是:给定前面的所有 Token,预测下一个 Token 是什么。损失函数是预测概率与真实 Token 之间的交叉熵。

训练数据

数据来源规模用途
互联网网页(CommonCrawl)数万亿 Token通用语言和知识
书籍数百亿 Token长文理解和深度知识
代码(GitHub)数千亿 Token编程能力
学术论文(arXiv)数百亿 Token科学知识和推理
维基百科数十亿 Token结构化事实
对话数据(Reddit 等)数百亿 Token对话理解

数据处理流程

原始数据 → 去重 → 清洗(去广告/乱码)→ 质量过滤 → 毒性过滤 → Tokenize → 训练

数据质量对模型性能的影响远超参数量。低质量数据会导致模型学到错误知识和不良表达。

训练规模

模型参数量训练 TokenGPU训练时间
GPT-31750 亿3000 亿1024 × A100~1 个月
Llama 2 70B700 亿2 万亿2048 × A100~2 个月
Llama 3 405B4050 亿15 万亿16384 × H100~3 个月

Scaling Laws

OpenAI 研究发现,模型性能与三个因素之间存在幂律关系:

Loss ∝ N^(-α) × D^(-β) × C^(-γ)

N = 模型参数量
D = 训练数据量(Token 数)
C = 计算量(FLOPs)

意味着:在一定范围内,投入更多参数、数据、算力,性能会可预测地提升。这就是为什么 AI 公司不断”堆大模型”的理论依据。

Base Model 的特性

预训练完成后的 Base Model:

  • 能力:续写文本、知识问答、翻译、代码补全
  • 不能:不会”对话”——你问一个问题,它可能接着写 10 个类似的问题而不是回答
  • 风险:可能生成有害、不准确、偏见性的内容(因为训练数据中就有这些)
用户: "请解释什么是 Docker"
Base Model: "请解释什么是 Kubernetes\n请解释什么是容器化\n请解释什么是微服务..."
(它在"续写"类似的问题列表,而不是"回答"你的问题)

阶段二:有监督微调(SFT)

目标

教 Base Model 理解和遵循人类指令,将其从”文本续写器”变成”对话助手”。

训练数据

高质量的指令-回答对(Instruction-Response Pairs)

{
  "instruction": "请解释什么是 Docker,用通俗的语言",
  "response": "Docker 是一种容器化技术。你可以把它想象成一个轻量级的虚拟机..."
}

数据来源:

  • 人工标注(成本高、质量高)
  • 从强模型蒸馏(用 GPT-4 生成训练数据给小模型)
  • 开源数据集(ShareGPT、OASST 等)

训练方式

SFT 本质上是在 Base Model 基础上继续训练,但只用指令-回答数据:

输入: [System Prompt] + [用户指令]
标签: [期望的回答]

模型学会了:

  • 理解不同类型的指令(问答、摘要、翻译、代码等)
  • 以合适的格式回复(不再续写无关内容)
  • 遵循特定的行为规范(礼貌、结构化、承认不确定性)

参数高效微调(PEFT)

全量微调(修改所有参数)成本极高。PEFT 方法只修改少量参数:

方法原理可训练参数占比
LoRA在注意力层插入低秩矩阵~0.1%-1%
QLoRALoRA + 4bit 量化~0.1%
Prefix Tuning在输入前添加可训练的”虚拟前缀”~0.1%
Adapter在 Transformer 层间插入小型网络~1-5%

LoRA 原理

原始权重矩阵 W (d×d):不修改
添加低秩分解:ΔW = A × B
  A: d×r 矩阵(r << d,通常 r=8 或 16)
  B: r×d 矩阵

推理时:W' = W + ΔW

LoRA 让在消费级 GPU(如单张 24G 显卡)上微调 7B-70B 模型成为可能。


阶段三:人类偏好对齐

为什么需要对齐

SFT 之后的模型已经能”对话”,但仍存在问题:

  • 可能生成有害、歧视性内容
  • 可能泄露用户隐私
  • 可能”过度帮忙”(帮用户做危险的事)
  • 回答质量参差不齐——有些很好,有些很差

对齐(Alignment) 的目标是让模型的行为符合人类价值观,通常遵循 HHH 原则

  • Helpful(有帮助):尽可能有效地回答用户问题
  • Honest(诚实):不确定时坦诚承认,不编造事实
  • Harmless(无害):拒绝执行有害请求,不输出偏见内容

RLHF(基于人类反馈的强化学习)

最经典的对齐方法,由 OpenAI 在 InstructGPT 论文中提出。

三步流程

Step 1:收集人类偏好数据

对于同一个 Prompt,让 SFT 模型生成多个回答,由人类标注员排序:

Prompt: "如何学习编程?"

回答 A: "先学 Python,因为它语法简单..." ← 人类评分:8/10
回答 B: "随便学一个语言就行了"           ← 人类评分:3/10
回答 C: "建议先学 C 语言打基础..."       ← 人类评分:7/10

偏好排序:A > C > B

Step 2:训练奖励模型(Reward Model)

用偏好数据训练一个模型,学习”人类喜欢什么样的回答”:

奖励模型:输入 (Prompt, Response) → 输出一个分数

RM("如何学编程", 回答A) = 0.85
RM("如何学编程", 回答B) = 0.21
RM("如何学编程", 回答C) = 0.72

Step 3:强化学习优化

用 PPO(Proximal Policy Optimization)算法,让 SFT 模型的输出向高奖励方向优化:

while 训练未结束:
    生成回答 = SFT_模型(Prompt)
    奖励分数 = 奖励模型(Prompt, 生成回答)
    更新 SFT_模型 → 让它生成更多高奖励的回答
    约束:不要偏离 SFT 模型太远(KL 散度惩罚)

KL 散度惩罚防止模型为了”刷分”而退化(比如学会写讨好但无实质的回答)。

DPO(Direct Preference Optimization)

DPO 是对 RLHF 的简化——直接从偏好数据优化模型,省去了训练奖励模型和强化学习两步:

RLHF:偏好数据 → 训练奖励模型 → 强化学习 → 对齐模型
DPO:  偏好数据 → 直接优化 → 对齐模型

DPO 的核心思想

对于每对 (好回答, 差回答):
  增加生成"好回答"的概率
  降低生成"差回答"的概率

DPO 的优势:

  • 不需要训练奖励模型(节省成本)
  • 不需要强化学习(训练更稳定)
  • 实现简单,效果与 RLHF 相当甚至更好

目前 DPO 和其变体(如 IPO、KTO)正在逐步替代 RLHF 成为主流对齐方法。


训练完成后:推理与部署

模型量化

训练时用 FP32/BF16(32/16 位浮点),但推理时可以压缩:

精度每参数字节70B 模型大小质量损失
FP16/BF162B~140 GB
INT81B~70 GB极小
INT4 (GPTQ/AWQ)0.5B~35 GB
GGUF Q4_K_M~0.5B~40 GB小(CPU 友好)

量化让在消费级硬件上运行大模型成为可能。配合 Ollama 等工具可以在本地笔记本电脑上运行。

推理优化

技术原理
KV Cache缓存已计算的注意力键值,避免重复计算
Flash Attention优化注意力计算的内存访问模式
Continuous Batching动态调度多个请求共享 GPU
Speculative Decoding用小模型快速生成草稿,大模型验证
MoE(专家混合)每次推理只激活部分参数(DeepSeek V3 使用)

开源 vs 闭源生态

维度开源模型闭源模型
代表Llama、Qwen、DeepSeekGPT-4、Claude、Gemini
成本一次性硬件投入按 Token 付费
定制化可微调、可修改只能通过 API 调用
隐私数据本地处理数据发送到云端
性能正在快速追赶目前顶尖仍领先
门槛需要 GPU 和工程能力开箱即用

趋势:开源模型正在快速缩小与闭源模型的差距,尤其在特定领域(如代码、中文)已经非常接近甚至超越。


关键术语速查

术语全称含义
SFTSupervised Fine-Tuning有监督微调
RLHFReinforcement Learning from Human Feedback基于人类反馈的强化学习
DPODirect Preference Optimization直接偏好优化
LoRALow-Rank Adaptation低秩适配(参数高效微调)
PPOProximal Policy Optimization近端策略优化(强化学习算法)
MoEMixture of Experts混合专家(稀疏激活架构)
KL 散度Kullback-Leibler Divergence衡量两个概率分布差异的指标

延伸阅读