大语言模型训练全流程原理解析

作者:沙与沫2026.11.03 18:05浏览量:0

简介:本文系统拆解大语言模型从预训练到对话能力对齐的完整训练链路,重点讲清单向注意力、归一化、位置编码、奖励模型等关键机制的设计动机与运行逻辑,帮助读者建立“为什么这样训练、底层如何协作”的整体认知。

大语言模型训练全流程原理解析

一、原理概述:训练一个会“对话”的模型到底要做哪些事

大语言模型(Large Language Model,LLM)的训练并非一次性完成,而是一条分阶段、逐层对齐的训练流水线。它的目标可以概括为:先让模型学会“说话”(生成通顺文本),再让模型学会“好好说话”(按人类偏好回答问题)。

从机制上看,这条流水线通常包含以下几个阶段:

  1. 预训练阶段(Pre-training) :用海量无标注语料训练一个语言模型基座,使其具备通用续写能力;
  2. 有监督微调阶段(Supervised Fine-Tuning,SFT) :用人工整理的问答语料对基座进行指令式训练,使其具备对话能力;
  3. 奖励模型训练阶段(Reward Model,RM) :用人类排序数据训练一个打分模型,学会判断“哪个回答更好”;
  4. 强化学习对齐阶段(如 RLHF 类方法) :用奖励模型的分数作为反馈信号,进一步优化生成策略,使模型输出更符合人类偏好。

本文重点围绕前三个阶段的底层机制展开,尤其是模型结构、注意力掩码、归一化方式、位置编码和奖励模型的工作原理,回答“为什么这样设计”和“内部如何运行”这两个核心问题。


二、背景问题:为什么不能一步到位训练出对话模型

如果直接用人工标注的对话数据训练一个模型,会遇到两个瓶颈:

  • 数据量瓶颈:高质量人工问答对数量有限,无法支撑模型学习语言的通用规律;
  • 泛化瓶颈:模型容易记住标注样本,而非学到语言本身的统计结构。

因此,业界普遍采用“先无监督预训练、后有监督对齐”的两段式思路:先用海量文本让模型学到词与词之间的概率关系,再用少量高质量数据教它“按指令行事”。

这就引出第一个关键问题:基座模型的结构是如何设计的?为什么它只能看到左侧信息?


三、核心概念:单向 Transformer 解码器结构

3.1 结构组成

基座模型通常以 Transformer 的 解码器(Decoder) 部分作为语言模型框架,并去掉其中用于跨序列交互的多头注意力层,只保留自注意力(Self-Attention)和前馈网络(Feed-Forward Network)。其典型结构可描述为:

  1. 输入词序列 → 词嵌入 → [自注意力 + 前馈网络] × N 层 → 输出概率分布

每一层的核心计算过程为:

  1. 对输入做自注意力计算,得到上下文表示;
  2. 经过前馈网络做非线性变换;
  3. 残差连接 + 归一化,稳定梯度传播。

3.2 掩码机制:为什么模型“看不见未来”

在解码器的自注意力计算中,会引入 Mask(掩码)机制。具体做法是:在计算每个位置的注意力权重时,将当前位置右侧(未来位置)的权重置为负无穷,使其经过 Softmax 后概率为 0。

这样做的结果是:

  • 预测第 t 个词时,模型只能利用第 1 到第 t-1 个词的信息;
  • 模型无法“偷看”答案,训练目标与推理时的生成方式保持一致。

这种结构被称为 单向 Transformer。与同时利用左右上下文的其他结构相比,单向设计的优势在于:

  • 生成一致性:训练时和推理时都按从左到右的顺序预测,不存在信息泄露;
  • 泛化能力更强:模型必须真正学会从历史信息推断下一个词,而不是依赖未来信息“作弊”。

一句话总结:掩码不是为了限制模型,而是为了让训练目标与生成任务严格对齐。


四、关键机制:归一化与位置编码的改良

4.1 前归一化与训练稳定性

在 Transformer 的层结构中,归一化的位置会影响梯度传播。常见做法有两种:

方式 归一化位置 特点
Post-Norm 残差相加之后 表达能力强,但深层时易梯度消失
Pre-Norm 子层输入之前 梯度传播更稳定,深层训练更易收敛

采用前归一化(Pre-Norm)后,残差路径上的梯度可以更直接地回传,整体上更难出现梯度消失问题,使模型在层数加深时训练更加稳定。这也是当前大模型普遍采用的设计。

4.2 旋转位置编码与外推性

位置编码用于让模型感知词序。常见方案包括绝对位置编码和相对位置编码。旋转位置编码(RoPE)通过将位置信息编码为旋转矩阵作用于注意力计算中,具有更好的 外推性。

所谓外推性,是指模型在训练时见过的序列长度与推理时输入的序列长度不一致时,仍能保持较好表现的能力。相比传统相对位置编码,旋转位置编码在长度外推场景下衰减更平缓,因此更适合长文本场景。


五、工作流程:从基座到对话能力的两步走

第一阶段虽然常被称为“有监督学习阶段”,但在实际操作中通常分为两个步骤:

第一步:无监督预训练,得到语言模型基座

  • 输入:海量无标注文本语料;
  • 目标:最小化下一个词预测的交叉熵损失;
  • 产出:具备续写能力的基座模型。

这一能力对外表现为模型的 generate(生成) 方法:给定一段前缀,模型逐词生成后续内容。

第二步:有监督微调,得到对话能力

  • 输入:人工整理的问答语料(指令 + 期望回答);
  • 目标:在给定指令下最大化期望回答的生成概率;
  • 产出:具备对话能力的 SFT 模型。

这一能力对外表现为模型的 chat(对话) 方法:模型能够理解指令并给出结构化回答。


六、奖励模型训练:让模型学会“哪个回答更好”

6.1 为什么需要奖励模型

对于同一个问题,模型可以生成多个不同答案。这些答案没有绝对分数,但人类很容易判断“哪个更好”。因此,训练目标从“打绝对分”转为“学相对排序”。

6.2 奖励模型的结构

奖励模型通常以 SFT 模型为底座,将最后一层替换为一个输出标量的神经元,使其成为一个 回归模型:

  1. 输入:问题 + 回答 → 输出:一个实数分数

6.3 训练数据的构造与损失

对同一问题,人工标注员对多个回答进行排序。例如三个回答 A1、A2、A3,标注结果为:

  1. A2 > A1 > A3

将排序拆成两两对比样本:

  • (A2, A1):A2 为 chosen,A1 为 rejected;
  • (A2, A3):A2 为 chosen,A3 为 rejected;
  • (A1, A3):A1 为 chosen,A3 为 rejected。

其中 c 表示排名较高的回答,r 表示排名较低的回答。训练目标是让排名靠前的回答得分更高。

6.4 反向传播过程

将每一对 (c, r) 输入奖励模型,分别得到分数 score(c) 和 score(r),构造损失函数使 score(c) 尽量大于 score(r)。通过反向传播更新模型参数,最终实现:

  1. score(A2) > score(A1) > score(A3)

这样,奖励模型就学会了用分数表达人类偏好,为后续强化学习阶段提供反馈信号。


七、示例说明:一次完整的训练链路

假设我们要训练一个能回答“苹果是什么”的对话模型:

  1. 预训练:模型在海量文本中见过“苹果是一种水果”等句子,学会续写;
  2. SFT:用“问:苹果是什么?答:苹果是一种水果。”微调,模型学会按问答格式输出;
  3. 奖励模型:对同一问题生成多个回答,人工排序后训练打分模型;
  4. 强化学习:用奖励模型分数优化生成策略,使模型更倾向输出高分类回答。

八、技术优势与限制

优势:

  • 分阶段训练兼顾通用语言能力与任务对齐能力;
  • 掩码机制保证生成任务训练与推理一致;
  • 前归一化与旋转位置编码提升深层训练稳定性和长度外推能力;
  • 奖励模型将难以量化的“好坏”转化为可优化的相对分数。

限制:

  • 奖励模型依赖人工排序数据,成本高且可能存在偏好偏差;
  • 奖励模型只是人类偏好的近似,可能被过度优化;
  • 外推能力有限,超长输入仍可能性能下降。

九、常见误区

  • 误区一:掩码让模型“看不到未来”,所以能力更弱。实际上这是为了让训练目标与生成方式一致;
  • 误区二:有监督阶段完全是监督学习。实际上它通常先做无监督预训练,再做有监督微调;
  • 误区三:奖励模型直接给回答打绝对分。实际上它学的是相对排序,通过成对比较训练。

十、总结

大语言模型的训练是一条从“会说话”到“说得好”的渐进式流水线:单向 Transformer 解码器通过掩码机制保证生成一致性,前归一化和旋转位置编码提升训练稳定性与长度外推能力;预训练赋予模型续写能力,有监督微调赋予对话能力,奖励模型则将人类偏好转化为可优化的分数信号。理解这条链路中每个模块的设计动机与协作方式,才能真正理解大模型为何能表现出对话与推理能力。