大模型预训练到底在训练什么?
大模型预训练到底在训练什么? - 让模型从"随机"到"智能"的参数塑形过程
一句话核心:预训练是通过海量数据和下一个 Token 预测任务,让随机初始化的 Transformer 参数学会语言规律、知识结构和推理模式的过程,它是今天大模型能力的根基,决定了模型的上限。
核心概念(术语表)
- Token(词元):文本的最小处理单元,可以是词、子词或字符。大模型不处理文字本身,而是处理 Token 对应的数字 ID
- Embedding(词嵌入):将 Token ID 映射为低维稠密向量的层,是把人类语言翻译成机器可计算表示的"翻译器"
- Transformer:当前主流大模型的基础架构,通过自注意力机制解决序列建模问题,适合大规模并行训练
- 自注意力机制(Self-Attention):让序列中每个 Token 直接关注其他所有 Token 的机制,通过 Q(查询)、K(键)、V(值)三个矩阵实现
- 下一个 Token 预测(Next Token Prediction):语言模型预训练的核心任务——给定前文预测下一个 Token,驱动模型学会语法、语义、常识、推理
- 参数(Parameters):大模型训练后沉淀的核心产物,本质是巨大的分模块矩阵方程组,包含数十亿到上千亿个数值
- 后训练(Post-training):预训练之后的训练阶段,包括 SFT、RLHF 等技术,让模型从"会说话"变成"按指令回答"
- Transformer 起源:2017 年 Google 在论文"Attention Is All You Need"中提出,Vaswani 等人设计,旨在解决 RNN 的长距离依赖和并行效率问题
- GPT 系列推动:OpenAI 从 GPT-1(2018)到 GPT-3(2020)证明 Scaling Law 有效,预训练成为大模型标配范式
- RLHF 里程碑:2022 年 OpenAI 在 InstructGPT 中首次将 PPO 算法应用于 RLHF,验证了基于人类反馈优化大模型输出的可行性
- DPO 算法:2023 年斯坦福团队提出,简化了 RLHF 流程,降低工程复杂度
工作原理 / 核心机制
整体思路:预训练的本质是将海量互联网文本中的语言规律、知识结构、推理模式"压缩"进 Transformer 的参数矩阵中。模型通过反复做"预测下一个词"这道题,逐渐学会什么词该跟在什么词后面,从而形成对语言的深层理解。
输入输出:
- 输入:原始文本经过分词器切分成 Token 序列,每个 Token 映射为一个数字 ID(如"我想学习 AI Agent" → [1024, 2048, 3096, 8892, 12345])
- 输出:对下一个位置 Token 的概率分布,训练目标让真实下一个 Token 的概率最大化
核心步骤详解:
第一步:向量化(Embedding)
- 输入的 Token ID 进入 Embedding 层,被转换为固定维度的稠密向量
- 这里的 Embedding 矩阵是预训练需要"学会"的参数之一
- 例如:"苹果" → [0.1, -0.3, 0.7, ...](128维/512维/768维等)
第二步:自注意力计算(QKV)
- 每个 Token 的向量生成 Q(查询)、K(键)、V(值)三个向量
- 通过 Q·K^T 计算当前 Token 与所有其他 Token 的相似度
- 归一化后加权求和 V,得到融合上下文信息的输出
- 典型例子:"奖杯放不进箱子,因为它太大了"——"它"需要通过注意力机制找到指代对象
- 多层 Attention 堆叠(GPT-3 有 96 层),逐层抽象语义
第三步:前馈网络处理(FFN)
- 每个 Attention 层后接一个 FFN 层,做"升维→非线性变换→降维"
- FFN 负责将 Attention 聚合的信息进一步处理,过滤噪音,提取特征
- 两个矩阵方程的参数是预训练的核心产物
第四步:预测输出
- 最后一层输出通过线性层映射到词表大小
- Softmax 得到每个 Token 的概率分布
- 训练目标是最大化真实下一个 Token 的概率,最小化交叉熵损失
关键知识点
- 预训练的本质:不是"记知识",而是学会语言分布和推理模式——模型学会的是"巴黎"和"首都"经常相邻,而非直接存储"巴黎是法国首都"
- Tokenization 的影响:分词策略直接影响模型效果和效率——BPE、WordPiece 等算法将文本切分为数万个 Token
- Scaling Law:模型性能随参数量、数据量、算力增加而提升——GPT-3 1750 亿参数,训练数据约 3000 亿 Token
- 涌现能力:当模型规模超过某个阈值时,会突然出现小模型不具备的能力(如推理、代码生成)
- Attention 的计算复杂度:O(n²) 序列长度平方,当上下文超过数万 Token 时计算量巨大
- Position Encoding:Transformer 不天然处理序列顺序,需要额外添加位置编码(绝对位置、相对位置、RoPE 等)
- 预训练 vs 后训练:预训练让模型"有能力",后训练让模型"听指挥"——预训练决定上限,后训练决定用户体验
- SFT 的 Alignment Tax:监督微调可能降低模型的泛化能力和创造力,因为更像"背答案"
- PPO 四模型协作:Actor(学生)、RM(结果打分老师)、Critic(过程打分老师)、Reference(防遗忘的原始学生)
- DPO 的简化:只需 2 个模型(Actor + Reference),不用单独训练 Reward 和 Critic,降低显存占用 60%+
- GRPO 的创新:DeepSeek 2024 年提出,分组内比较代替绝对打分,减少 RM 打错分的影响
- 灾难性遗忘:全量微调时模型可能"为了记住新知识而忘掉旧知识",需要 Reference 模型做 KL 约束
- 冷启动机制:预训练模型需要经过 SFT "冷启动"才能从"续写模型"变成"问答模型"
- 向量化的参数规模:Embedding 层参数量 = 词表大小 × 隐藏层维度(如 50000 × 4096)
应用场景
- 场景 1:OpenAI GPT-4 预训练,使用超大规模语料(约 13 万亿 Token)和超大规模算力,实现通用语言理解和生成能力,支持 GPT-4 API 服务全球数亿用户
- 场景 2:Meta LLaMA 系列开源预训练模型,70 亿到 650 亿参数,让学术机构和中小企业能在消费级 GPU 上微调使用,降低 AI 门槛
- 场景 3:DeepSeek 在 GRPO 算法上的创新,通过分组相对策略优化,仅用 2 个模型实现高效后训练,在数学推理任务上达到业界领先水平
- 场景 4:国内智谱 GLM、百度文心等,基于 Transformer 预训练架构,通过海量中文语料训练,实现中文理解和生成的专业能力
常见误区 / 踩坑
❌ 误区 1:很多人以为预训练是让模型"记住"知识
✅ 正解:预训练学会的是语言分布和推理模式,"记住巴黎是法国首都"这个事实,实际是学会了"巴黎"和"首都"的关联模式❌ 误区 2:认为 Transformer 层数越多越好
✅ 正解:需要在参数量、训练成本、推理延迟间权衡——GPT-3 是 96 层,LLaMA-2 70B 是 80 层,盲目堆层不经济❌ 误区 3:以为 RLHF 能教模型新知识
✅ 正解:RLHF 只调整偏好,不增加知识——它让模型更诚实、更有帮助、更安全,但不教"巴黎在法国"这样的事实❌ 误区 4:全量微调效果最好,应该总是用全量微调
✅ 正解:全量微调容易引发灾难性遗忘,且算力成本极高——实际工程中 LoRA 等参数高效微调更常用❌ 误区 5:DPO 是 SFT 的变体
✅ 正解:DPO 形式类似 SFT(给好坏案例),但目标是让模型自主偏向好答案概率,而非逐字模仿
性能 / 复杂度
时间复杂度:Attention 层 O(n²),其中 n 是序列长度
- 适用场景:n > 512 时计算量显著增长
- 优化方向:FlashAttention 将复杂度降低到 O(n²),但仍是序列长度的瓶颈
空间复杂度:全参数量 O(P),其中 P 是模型参数总数
- 70B 参数模型 fp16 需要约 140GB 显存
- LLaMA-2 70B 推理至少需要 4 张 A100(80GB)
与替代方案对比:
- RNN/LSTM:时间 O(n) 序列长度,但无法并行,长距离依赖处理差
- Transformer:时间 O(n²),但高度可并行,适合大规模训练
- 临界点:n < 100 时 RNN 更高效;n > 1000 时 Transformer 的并行优势完全碾压序列依赖
性能数字:
- GPT-3 训练:约 3640 PetaFLOP/s-day(约 200 万 GPU 小时)
- LLaMA 2 70B 推理:约 40 tokens/s/A100(取决于 batch size)
- DPO 训练:相比 PPO 显存减少约 60%
与相关概念的区别
vs 微调(Fine-tuning):
- 预训练是"通才教育",微调是"专业培训"
- 预训练数据规模:万亿 Token;微调数据规模:数千到数万条
- 怎么选:通用能力选预训练模型,专业任务选微调
vs 提示工程(Prompt Engineering):
- 预训练是"内功修炼",提示工程是"临场发挥"
- 预训练改变模型权重,提示工程只改变输入格式
- 怎么选:简单任务用提示,复杂任务需要微调
vs RAG(检索增强生成):
- 预训练提供"记忆",RAG 提供"查阅资料"的能力
- 预训练知识有截止日期,RAG 可接入实时知识库
- 怎么选:需要实时知识选 RAG,需要推理能力选预训练模型
进阶 / 面试加分项
- 最新进展:2024 年后,混合专家模型(MoE)成为主流——如 GPT-4、Mixtral 8x7B,通过稀疏激活减少计算量,在相同参数规模下实现更高效率
- 业界争议:是否所有能力都能通过 Scale 涌现?是否有比 Next Token Prediction 更高效的自监督任务?大模型是否真正"理解"语言还是只是高级的模式匹配?
- 一句话送给候选人:预训练决定模型"有没有能力",后训练决定模型"听不听话"——理解这两者的边界,你就理解了大模型开发的精髓
面试如何回答
🟢 大模型预训练到底在训练什么?请用通俗的话解释核心任务和最终产物。
回答要点:
预训练的核心任务是"预测下一个 Token"——给模型一段文本,让它预测下一个最可能出现的词。这个任务驱动模型学会语法结构、语义关系、常识推理和代码逻辑。
最终产物是数十亿到上千亿个参数,本质上是一个巨大的矩阵方程组。当我们说"训练一个大模型",实际上是在说:通过海量文本数据,调整这个矩阵方程组里的每一个参数,让它能够准确预测下一个词。
打个比方:如果把大模型比作一个学生,预训练就像让他读了整个互联网的书,最终沉淀在他脑子里的不是具体某句话,而是语言的组织规律——什么词该跟什么词搭配,什么场景该说什么话。
关键理解:预训练不是让模型"记住"巴黎是法国首都,而是学会"巴黎"和"首都"这对概念经常相邻使用。这就是为什么模型能推理、能写作、能翻译——因为它学会的是语言的底层规律,而不是表面的知识点。
🟡 Transformer 的自注意力机制是如何工作的?请详细解释 Q、K、V 三个矩阵的作用。
回答要点:
自注意力机制是 Transformer 的核心,它让序列中每个位置都能直接关注其他所有位置,解决长距离依赖问题。
具体通过三个矩阵实现:
- Q(Query,查询):当前 Token"想问什么"——比如处理"它"时,Q 代表着"我想知道'它'指的是什么"
- K(Key,键):每个 Token"包含什么信息"——相当于给每个词贴上标签
- V(Value,值):每个 Token"的实际内容"——用于加权求和的原始信息
计算流程:首先用 Q 和所有 K 做点积,得到注意力分数;然后 softmax 归一化;最后用归一化的权重对 V 加权求和,得到融合上下文的输出。
经典例子:"奖杯放不进箱子,因为它太大了"——"它"需要通过注意力找到指代对象是"奖杯",而不是"箱子"。模型通过 QKV 计算发现"它"与"奖杯"的注意力分数最高,从而正确理解语义。
多层堆叠(GPT-3 有 96 层)后,底层学会语法,高层学会语义和推理。
🟡 为什么预训练大模型需要海量的计算资源?能否从数据量、参数量、算力三个维度说明?
回答要点:
预训练的代价高昂来自三个维度的叠加效应:
第一,数据量:GPT-3 训练使用了约 3000 亿个 Token,涵盖网页、书籍、代码等。中文大模型如文心、GLM 通常需要数千亿到数万亿 Token 级别。这些数据需要清洗、去重、标注。
第二,参数量:GPT-3 有 1750 亿参数,LLaMA-2 70B 有 700 亿参数。更高的参数意味着更强的表达能力,但也意味着更多的存储和计算。参数以 fp16 存储,每个参数 2 字节。
第三,算力:按 Scaling Law 估算,GPT-3 训练需要约 3640 PetaFLOP/s-day,约等于 200 万 GPU 小时。假设用 1000 张 A100 GPU,需要约 30 天。但实际训练还会遇到硬件故障、数据加载瓶颈等,通常需要数月。
实际成本估算:训练一次 GPT-3 级别模型,电费成本约数百万美元,加上工程人力、运维等,总成本可达数千万美元。这也是为什么只有少数大厂能从头训练大模型。
核心矛盾:要让模型学会通用能力,必须在足够大的数据上训练足够久,这就是算力需求的本质。
🟡 SFT 和 RLHF 在后训练阶段分别解决什么问题?它们各自的优缺点是什么?
回答要点:
SFT(监督微调)和 RLHF(基于人类反馈的强化学习)分别解决后训练的不同问题:
SFT 的核心作用是"冷启动"——把预训练的"续写模型"变成"问答模型"。做法是准备大量高质量的"问题-理想回答"成对数据,让模型模仿学习。例如:用户说"帮我写邮件",SFT 数据中包含完整邮件模板,模型学会按指令完成任务。
SFT 的优点:效果立竿见影,数据量需求相对较小(数千到数万条),工程简单。缺点:模型像在"背答案",遇到训练集外的问题泛化能力差,可能出现"Alignment Tax"——为了对齐牺牲了创造力和泛化性。
RLHF 的核心作用是"教模型人类偏好"——什么回答更好、更诚实、更安全、更有帮助。流程是:让模型生成多个回答→人类标注哪个更好→训练奖励模型→用强化学习优化大模型。
RLHF 的优点:模型能自主探索,不死记硬背,泛化能力强。缺点:需要人类标注、成本高、流程复杂、训练不稳定(可能出现"奖励黑客"——模型找到取巧骗过奖励模型的方法)。
实际工程中,通常先用 SFT 建立基础能力,再用 RLHF 提升偏好质量。
🔴 请比较 PPO、DPO、GRPO 三种后训练算法,它们各自的特点和适用场景是什么?
回答要点:
PPO、DPO、GRPO 是大模型后训练的三代技术,各有权衡:
PPO(近端策略优化)是 OpenAI 2017 年提出、2022 年在 InstructGPT 中验证的经典算法。它需要 4 个模型协作:Actor(被训练的学生)、RM(奖励模型,负责给结果打分)、Critic(价值模型,负责给过程打分)、Reference(参考模型,防止灾难性遗忘)。
PPO 的问题:太重了。4 个模型需要大量显存,训练复杂,调参困难。但它的优势是"主动探索"能力强,适合需要模型自主发现新能力的场景。
DPO(直接偏好优化)是斯坦福 2023 年提出的简化方案。它不需要 RM 和 Critic 两个"打分老师",只需要 Actor 和 Reference 两个模型。做法是直接用"好答案"和"坏答案"的偏好对,让模型提升输出好答案的概率。
DPO 的优势:省显存(减少 60%+),工程简单,训练稳定。缺点是缺少主动探索,更像"指定答案让学生自学"。
GRPO(分组相对策略优化)是 DeepSeek 2024 年的创新。它保留了 RM(可探索),去掉了 Critic(省算力)。核心思想是:让模型一次输出多个答案,RM 给这组答案排序,模型根据每个答案与组内平均分的差距来优化。
GRPO 解决了 PPO 的"RM 打错分导致误导探索"问题——因为是组内相对比较,单个打分错误影响有限。
选择建议:追求极致效果有大厂资源用 PPO;快速落地中小团队用 DPO;需要探索能力又不想要 PPO 的复杂度,用 GRPO。
🟡 预训练模型为什么不能直接给普通用户使用?还需要经过哪些后处理?
回答要点:
预训练模型本质上是一个"高级续写机器",它学会了语言规律,但不会"听话"。直接使用的典型问题:你问"请解释 RAG",模型可能继续模仿网页格式输出,或者给你一段无关内容,或者输出不稳定格式,甚至没有安全边界。
后处理(后训练)需要解决三个层次的问题:
第一层:指令遵循。预训练模型只会"接着写",不习惯"回答问题"。需要通过 SFT 冷启动,用数千到数万条高质量问答数据,让模型学会"用户问,我答"的模式。
第二层:偏好对齐。模型需要知道什么样的回答更好、更诚实、更有帮助、更安全。这通过 RLHF/DPO 实现——用人类反馈数据训练奖励模型,让模型学会拒绝有害请求、承认不知道、给结构化回答。
第三层:安全边界。模型需要学会"什么不能做"——不能生成恶意代码、不能帮助诈骗、不能输出仇恨内容。这需要专门的安全对齐训练,包括红队测试、对抗样本训练等。
打个比方:预训练模型像一本百科全书,有知识但不会回答问题;后训练让它变成一个可靠的助手,能听懂指令、有判断力、守规矩。这也是 GPT-3(预训练)到 ChatGPT(后训练)的本质区别。
🟡 全量微调和 LoRA 等参数高效微调的区别是什么?为什么大多数场景推荐用参数高效微调?
回答要点:
全量微调和参数高效微调的核心区别在于"改多少参数":
全量微调(Full Fine-tuning)会更新模型的所有参数。优点是效果上限高,能完全发挥模型潜力。缺点是:1)显存要求极高,70B 模型需要 4+ 张 A100;2)容易出现灾难性遗忘——模型为了学新任务可能忘掉预训练学到的通用能力;3)训练周期长、成本高。
参数高效微调(Parameter-Efficient Fine-tuning,PEFT)只更新少量参数。最流行的是 LoRA(Low-Rank Adaptation),它的核心思想是:不要直接修改大矩阵,而是用两个小矩阵的乘积来近似参数变化。
LoRA 的原理:假设大模型权重是 W,更新时不是改 W,而是用一个低秩矩阵 A 和 B,让 ΔW = BA。这样原预训练权重 W 被冻结,只训练 A 和 B。70B 模型的 LoRA 可能只训练几百万参数(占总量 0.1%),显存需求降低 90%+。
为什么推荐参数高效微调:1)显存友好,消费级 GPU 也能微调大模型;2)避免灾难性遗忘,预训练知识被保留;3)训练速度快;4)可以针对不同任务训练多个 LoRA 模块,按需加载。
实际应用:大多数场景用 LoRA/QLoRA 足够;只有大厂追求极致效果且有充足算力时,才考虑全量微调。
🔴 大模型预训练阶段学到的知识是"存储"还是"模式"?这有什么实际影响?
回答要点:
预训练学到的是"模式"而非"存储",这是理解大模型能力边界的关键。
很多人以为大模型是一个巨大的数据库,存储了"巴黎是法国首都"这样的事实。但实际上,模型学会的是:"巴黎"和"首都"这对概念在语言中经常相邻使用,模式是"X 是 Y 的首都"。当你问"法国的首都是什么",模型根据学到的模式输出"巴黎"。
这种"压缩"方式的优势:1)参数效率高——一个模式可以泛化到无数类似场景;2)具备推理能力——模型能处理训练集外的问题;3)能处理模糊、歧义的表达。
但也有实际影响:
- 幻觉问题:模型可能将不相关的模式错误组合,产生看似合理但实际错误的"知识"
- 时效性问题:无法像数据库一样直接更新"巴黎不再是法国首都"这样的事实
- 可解释性问题:无法准确说出"你从哪里学到这个",因为知识是分布存储在参数中的
- 边界模糊:模型可能在某些问题上"幻觉"出训练语料中的错误知识
这也解释了为什么 RAG(检索增强生成)变得重要——用外部知识库补充预训练,解决时效性和准确性问题是当前主流方向。
