深度解析语言模型训练范式:从预训练到对齐的完整旅程

随着ChatGPT、Claude等大语言模型的崛起,越来越多人开始关注:这些强大的AI模型究竟是如何训练出来的?今天,我将基于最新的技术资料,为大家系统梳理大语言模型的完整训练流程,从基础预训练到最终对优化的全过程。

一、训练阶段的总体架构

现代大语言模型的训练并非一步到位,而是分为多个递进的阶段。目前主流的训练范式主要分为两大流派:

GPT系列训练流程

1. Pretrain(预训练)

2. SFT(Supervised Fine-Tuning,有监督微调)

3. Reward Model(奖励模型)

4. PPO(Proximal Policy Optimization,近端策略优化)

Llama系列训练流程

1. Pretrain(预训练)

2. Reward Model(奖励模型)

3. Rejection Sampling(拒绝采样)

4. SFT(有监督微调)

5. DPO(Direct Preference Optimization,直接偏好优化)

虽然两大流派的顺序略有不同,但核心组件基本一致。接下来,我们逐一深入每个阶段。

二、Pretrain:奠定语言能力的基石

2.1 Pretrain的核心目标

预训练是整个模型训练过程中最耗资源、最基础的阶段。它的核心目标非常简单:

持续阅读海量的人类文本资料

一字一句地学习人类如何使用语言

掌握最丰富的人类知识和文字表达方式

2.2 惊人的数据规模

为了让大家对预训练的数据量有个直观认识,来看一组对比数据:

数据量级

数值

m(百万)

1,000,000

b(十亿)

1,000,000,000

t(万亿)

1,000,000,000,000

具体到实际模型:

Llama 3:使用了 15万亿 Tokens

Llama 4 Scout:使用了 40万亿 Tokens

Llama 4 Maverick:使用了 22万亿 Tokens

假设每4000个Tokens构成一个段落,那么Llama 3在预训练阶段阅读了约 37.5亿个段落

2.3 预训练的学习机制

预训练采用自监督学习(Self-Supervised Learning)的方式。其核心原理是:给定一串文本序列,模型需要预测下一个词是什么,通过最大化整个序列的联合概率来学习。

数学表达:

其中:

$u_{i}$ 是第i个token

$k$ 是上下文窗口大小

$\Theta$ 是模型参数

直观理解:

模型不是真的在"输出"下一个字,而是输出所有候选字及其概率分布。例如:

输入:"人类" → 预测下一个字可能是"类"、"们"、"工"等

输入:"人类简" → 预测下一个字可能是"史"、"介"、"介"等

继续输入:"人类简史" → 预测下一个字可能是":"、"的"、"讲"等

通过这种方式,模型学会了语言的概率分布模式,理解了词与词之间的语义关联。

2.4 预训练的硬件代价

预训练需要巨额的算力投入:

Llama 2 65B:1.4万亿 Tokens,2048个A100 GPU,训练21天

Llama 3.1 405B:15万亿 Tokens,16384个H100 GPU,训练54天(单块H100约25万人民币)

2.5 预训练完成后的模型能力

预训练完成后,我们得到一个:

阅读过海量人类文献的模型

语言能力接近人类水平的模型

猜测下一个字的能力与人类相似的模型

但存在核心问题:预训练模型说话更像"接话茬",而不是在"完成特定任务"。这就是为什么需要后续的微调阶段。

三、SFT:让模型学会完成任务

3.1 什么是有监督学习?

在深入SFT之前,先理清几个关键概念:

有监督学习(Supervised Learning):使用带标签的数据进行训练。例如:

"商家送货速度棒棒哒!" → 标签:正向

"送货速度可太慢了,差评。" → 标签:负向

"这可太好吃了"、"味道确实是真不错" → 标签:相似

"多吃水果对身体有好处"、"痛风病人不要吃海鲜" → 标签:不相似

无监督学习(Unsupervised Learning):使用无标签的数据进行训练。

自监督学习(Self-Supervised Learning):Pretrain阶段使用的方式,模型自己从数据中构造监督信号(预测下一个token)。

半监督学习(Semi-Supervised Learning):Pretrain + SFT的组合,既利用了大量无标签数据,又使用了少量高质量的标注数据。

3.2 SFT解决的核心问题

预训练模型虽然掌握了语言能力,但它更像是"接话茬高手",而非"任务执行专家"。SFT的核心目标就是:将预训练模型转化为能够完成特定任务的助手

3.3 指令微调(Instruction Tuning)

SFT的核心方法是"指令微调"。原理很简单:

你希望模型完成什么类型的任务,就用什么样的任务数据去训练它。

常见任务类型包括:

对话任务

分类任务

判断任务

推理任务

代码生成任务

Instruction Tuning本质上是Fine-Tuning的一种,基本都采用有监督学习方式,因此也叫SFT(Supervised Fine-Tuning)。

3.4 SFT的数据量

与预训练相比,SFT使用的数据量非常小:

Llama 3:SFT数据量约几十万条,约为预训练阶段的1/5000

InstructGPT

预训练:3000亿Tokens(约7500万段落)

SFT数据集:约13k训练提示词

RM数据集:约33k训练提示词

PPO数据集:约31k训练提示词

这揭示了一个重要事实:高质量的小数据,在微调阶段往往比大数据更有效

四、Reward Model:学习人类的偏好

4.1 为什么需要奖励模型?

SFT之后,模型已经能够完成各类任务,但"能完成任务"和"能优秀地完成任务"之间存在巨大差距。

评估模型回答的质量是一个非常困难的问题:

评估整体能力很难

评估单个回答的质量也很难

继续训练需要对每一条数据进行评估

奖励模型(Reward Model)就是为了解决这个问题而生。

4.2 奖励模型的训练流程

训练奖励模型需要以下步骤:

1. 准备Prompt集合:收集几万到几十万个Prompt

2. 生成多个Response:对每个Prompt,让模型生成多个不同的回答

3. 设计标注方案:选择打分、评级还是排序?

4. 人工标注:招聘标注人员对回答进行排序

5. 训练Reward Model:利用标注数据训练奖励模型

6. 目标达成:给定任意Prompt-Response对,奖励模型能够给出一个质量分数

InstructGPT的标注流程:

标注员对模型输出进行排序,从最好到最差

Llama 2的标注方式更加精细,将偏好强度分为四个等级:

显著更好(significantly better)

更好(better)

稍好(slightly better)

勉强更好(marginally better)

还包含编辑步骤,标注员可以直接修改优选答案或通过反馈提示模型自我改进

标注成本:早期OpenAI在肯尼亚招聘标注员,日薪约2美元。这也侧面反映了RLHF训练的人力成本。

4.3 奖励模型的价值

有了奖励模型后,我们就有了一个自动化的质量评估器,它可以:

自动评估模型输出的质量

为后续的强化学习提供奖励信号

在大规模训练中替代人工评估

五、PPO:强化学习对齐

5.1 PPO的核心思想

PPO(Proximal Policy Optimization)是强化学习中的一种算法,在大语言模型对齐中扮演关键角色。

其工作原理是:

1. 将当前大语言模型视为"策略网络"

2. 将训练好的奖励模型视为"价值评估器"

3. 使用强化学习优化策略,使其生成更高奖励的回复

目标:调整模型参数,使模型生成更符合人类偏好的内容。

5.2 PPO训练的优势

稳定更新:PPO算法设计上保证了训练的稳定性

样本效率高:相比传统RL算法,PPO在同等效果下需要更少的样本

避免剧烈变化:通过近端约束,避免策略在一次更新中变化过大

六、Llama系列的创新:Rejection Sampling与DPO

6.1 Rejection Sampling(拒绝采样)

Llama系列引入了Rejection Sampling技术,其核心思想:

1. 对于每个Prompt,生成多个候选回复

2. 使用奖励模型对每个回复打分

3. 只保留得分最高的回复

4. 用这些优质回复重新训练模型

这种方法的优势在于:

简单直接,无需复杂的RL训练

可以利用已有的奖励模型

适用于批量数据筛选

6.2 DPO(Direct Preference Optimization)

DPO是一种更简洁的偏好优化方法,它绕过了显式训练奖励模型的步骤。

核心思想:

直接基于偏好数据进行优化

不需要单独训练奖励模型

将偏好信息直接编码到模型更新中

DPO的优势:

训练更简单,避免了奖励模型的训练和调优

不需要PPO这样的复杂RL算法

训练更稳定,收敛更快

这也是为什么Llama系列能够更高效地进行对齐训练的原因之一。

七、训练范式对比:GPT vs Llama

特性

GPT系列

Llama系列

训练顺序

Pretrain → SFT → RM → PPO

Pretrain → RM → Rejection Sampling → SFT → DPO

核心算法

PPO强化学习

DPO直接偏好优化

奖励模型

必须训练

可以通过Rejection Sampling替代

训练复杂度

较高

相对简化

开源友好性

闭源

开源,社区贡献大

八、总结与展望

大语言模型的训练是一个多阶段、精细化的过程:

1. Pretrain:构建语言能力的基础,需要海量的数据和算力

2. SFT:让模型学会完成任务,需要高质量的任务数据

3. Reward Model:学习人类偏好,需要精心设计的标注流程

4. PPO/DPO:实现对齐,使模型更符合人类价值观

关键洞察:

预训练决定下限:模型的基础语言能力和知识储备

对齐决定上限:模型能否真正理解并满足人类需求

数据质量比数量更重要:尤其在微调阶段

人类偏好是核心:奖励模型和偏好优化都是为了对齐人类价值观

随着技术发展,我们看到了训练范式的不断演进:从早期的GPT式多阶段训练,到Llama式的更高效对齐方法。未来,我们可能会看到:

更高效的预训练方法

更简化的对齐流程

更智能的奖励学习

更少的数据需求

但无论技术如何演进,理解人类的偏好和价值观,始终是大语言模型训练的核心所在。

参考资料:

InstructGPT论文

Llama 2技术报告

Llama 3.1技术报告

RLHF相关工作

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐