LLM 是怎么练成的:语言模型训练范式

228 阅读16分钟

前言:大模型的 “学习成长记”

如今的大语言模型(LLM)就像一个个无所不能的 “超级学霸”,能写诗、会编程、懂推理,甚至能和人顺畅聊天。但这些 “学霸” 并非天生就啥都会 —— 它们刚出生时,其实和一张白纸没两样。

如果把大语言模型比作一个学生,它的 “学习生涯” 要经历怎样的过程,才能从 “啥也不会” 变成 “啥都会一点”,最终成为能精准理解指令、输出高质量答案的 “优等生” 呢?今天我们就以 GPT-3 为例,聊聊 LLM 的训练范式,看看这些 “数字大脑” 是怎么 “练成的”。

整体概括:LLM 训练的三个 “学习阶段”

就像人类学生的成长要经历 “启蒙教育→专项训练→实战优化”,大语言模型的训练也有三个核心阶段:

  1. 预训练(Pretraining) :相当于 “广泛阅读” 阶段,通过海量文本学习基础语言知识和世界常识;
  2. 监督微调(SFT,Supervised Fine-Tuning) :相当于 “课堂练习” 阶段,通过有明确答案的任务训练,学会理解并遵循指令;
  3. 强化学习(RLHF,Reinforcement Learning from Human Feedback) :相当于 “模拟考试 + 针对性提升” 阶段,通过人类反馈优化输出,让答案更符合人类偏好。

这三个阶段层层递进,缺一不可。接下来我们一步步拆解每个阶段的 “学习内容” 和 “训练目标”。

第一阶段:预训练 —— 像 “博览群书” 的新生,先学会 “接龙”

预训练是大模型的 “启蒙阶段”。这时候的模型就像刚入学的新生,对世界一无所知,需要通过海量阅读积累基础知识。

核心任务:预测下一个 Token 的概率

预训练的核心目标很简单:给模型一段文本(比如一句话、一个段落),让它预测 “接下来最可能出现的词(或字符)”。这里的 “词(或字符)” 在 AI 领域被称为 “Token”,可以是一个字、一个词,甚至是一个标点符号。

比如给模型输入 “今天天气很”,它需要预测下一个 Token 可能是 “好”“热”“冷” 等,并给每个可能的结果分配概率(比如 “好” 的概率是 60%,“热” 是 30%,“冷” 是 10%)。

段落联合概率:让 “接龙” 更连贯

但模型的目标不止于 “猜对单个词”,而是要让整段话都通顺合理。下一个Token的概率应该怎么评估呢?

一段文本中,每个 Token 出现的概率不是孤立的,而是和前面所有 Token 相关。这就用到了条件概率:在已知前面一系列Token的前提下,计算下一个Token出现的概率。比如 “今天天气很...” 后面应该接什么,如果前文提到是夏天,接 “热” 的概率更高;如果前文提到是冬天,接 “冷” 的概率更高。模型会采用自回归的方式,从左到右依次预测每个Token的概率。在这个过程中,它会不断更新对后续内容的预测,利用已经生成的Token信息来指导下一个Token的预测。

这个条件概率也叫段落联合概率,表示为P(wnw1,w2,...,wn1)P(w_n|w_1, w_2, ..., w_{n-1}),即在段落中已知前面所有词(w1,w2,...,wn1w_1, w_2, ..., w_{n-1})的条件下,当前词wnw_n出现的概率。

模型需要理解上下文逻辑,才能让整段话的 “联合概率” 最大化。

训练过程中,模型会通过不断迭代调整参数,让它预测的段落整体联合概率越来越高 —— 简单说,就是让它 “接龙” 接得越来越顺,生成的文本越来越像人类写的。

预训练数据:从量变到质变

为实现这一目标,需为模型投喂海量文本数据,这些数据覆盖新闻资讯、文学作品、学术文献、网络博客等多元领域、还可以包含多种语言,构成了模型学习的核心素材库。大模型的预训练数据token数量确实常常达到万亿级,比如 Llama 3使用了超过15万亿(15T)个token。通过数万亿 token 的训练,实现语言理解与生成能力的突破。

从信息论的角度来看,更大的数据集提供了更多的信息熵,有助于模型捕捉更复杂的语言结构。研究表明,随着训练数据的 token 数量、模型参数数量的不断增加,模型的语言建模能力和知识捕捉精度显著提升;而当数据规模达到某一临界点后,模型甚至会呈现出“涌现”(emergence)现象——即某些复杂能力在未被显式训练的情况下突然显现并表现出优异性能。

这种“涌现能力”表现为:模型在逻辑推理、多语言处理、代码生成、上下文推理乃至初步的语义抽象等方面展现出远超小规模模型的表现。即便这些任务并非预训练阶段的直接目标,模型仍能通过从海量文本中学习到的语言结构、语义关联与模式规律,实现跨任务的泛化与迁移能力。这种质变并非线性增长的结果,而是在特定规模阈值下发生的跃迁,揭示了大规模语言模型在架构与训练机制上的深层潜力。

这一现象也为人工智能的发展提供了新的方向:持续扩展训练数据规模、提升模型参数量以及优化训练策略,是进一步挖掘通用语言模型智能边界的关键路径。未来,随着计算资源的不断增强与分布式训练技术的进步,基于万亿级乃至更高量级 token 的预训练将成为常态,从而推动大模型向更接近人类认知水平的方向迈进,在自然语言处理及相关领域释放出更大的应用潜能。

预训练过程:在反复刷题中变强

有了海量的预训练数据之后,还要先进行一些预处理:

  • 数据清洗和格式化:去除其中重复无效的内容、噪声数据;对文本进行分词、编码等操作,将其转化为模型能够处理的格式;
  • 划分数据集:将清洗和格式化后的数据分成训练集、测试集和验证集,其中训练集是模型用来“刷题”学习的主要数据;测试集则在模型训练完成后,对其进行最终的评估;而验证集用于在训练过程中评估模型的性能,防止过拟合。
  • 数据分批:需根据模型的计算能力和内存限制,确定每一批数据的大小,就像是把一摞厚厚的习题册拆分成一个个小练习册,方便模型“逐页学习” 。

然后把数据喂给模型,大模型就可以开始“刷题”了。在每一轮的训练中:

  • 猜下一个词的概率:模型会逐段 “读” 文本,然后猜接下来最可能出现的词,预测下一个token的段落联合概率。再把自己猜的和真实文本里的词比对,累计预测误差,这个误差就叫“损失”(loss)。
  • 改参数提成绩:基于这一轮的损失,模型通过反向传播误差、优化算法(如随机梯度下降)等手段调整模型内部参数。这么一改,下次猜词就能更准,从而慢慢缩小和真实文本的差距。为此,我们还引入了“损失函数”,通过构建损失与模型参数之间的函数关系,为参数调优与损失最小化提供了严谨的数学指引,也是优化模型性能的核心工具。

这一训练过程通常需要经历多个迭代周期(epoch),通过持续优化参数,使模型性能逐步收敛至稳定的卓越水平。随着训练轮次的不断推进,模型对文本语义的理解能力持续深化,预测下一个词的精准度也在持续提升。

阶段成果:只会 “顺嘴胡说”,不会 “按要求做事”

预训练结束后,模型已经能像人类一样流畅地 “接龙” 了,比如给一句 “床前明月光”,它能接出 “疑是地上霜”。但这时候的模型有个致命缺点:只会 “自由发挥”,不会 “按指令做事”

如果你问它 “请把‘我爱中国’翻译成英语”,它可能会胡乱接一句 “中国是个美丽的国家”—— 因为它还没学会理解 “翻译” 这个指令的含义。这就像一个博览群书的学生,虽然知识面广,但老师布置具体作业时,它还不知道该怎么 “按要求完成”。

第二阶段:SFT(监督微调)—— 像 “做课堂练习” 的学生,学会 “听话做事”

预训练让模型 “懂语言”,但要让它 “懂指令”,还需要第二个阶段:监督微调(SFT)。这一步就像老师给学生布置 “有标准答案的练习题”,通过明确的任务训练,让模型学会 “听话做事”。

有监督学习 vs 无监督学习

要理解 SFT,先得区分两个概念:

  • 无监督学习:使用无标注数据训练,没有标准答案,全靠模型自己从数据中总结规律;
  • 有监督学习:使用标注数据训练,“标注”相当于标准答案,模型的输出可以和 “标准答案” 对比,从而不断调整参数。

有监督 和 无监督的区别主要在于有没有 “标准答案”。

而预训练阶段其实属于自监督学习—— 它的 “标准答案” 藏在数据里:比如一段话的后半句,就是前半句的 “答案”。模型通过 “自己考自己”,从数据中挖掘规律。

指令微调:针对性训练 “专项技能”

SFT 的核心是 “指令微调(Instruction Tuning)”:如果希望模型擅长某类任务,就用对应任务的数据训练它。比如:

  • 想让它擅长聊天,就用 “对话数据” 微调;
  • 想让它擅长写代码,就用 “代码生成任务数据” 微调;
  • 想让它擅长逻辑推理,就用 “数学题、推理题数据” 微调。

目标只有一个:提升 “指令遵循能力”,让模型理解 “指令的含义”,并输出符合指令要求的结果。很多模型名字带 “Instruct” 后缀(比如 Alpaca-Instruct),就是表示经过了指令微调。

SFT 的训练数据:少量但精,来源在变

SFT 阶段的数据有两个特点:

  • 数据量小:和预训练的 “海量数据” 相比,SFT 的数据量堪称 “迷你”。比如 InstructGPT(GPT-3.5 的前身)在预训练用了 3000 亿个 Token(约 7500 万段落),在SFT 阶段只用了 1.3 万条数据,量级差了上万倍。
  • 数据更有针对性:这些数据经过精心设计和筛选,直指模型需要掌握的特定技能。比如要做“数学题、推理题数据” 微调,就多喂 “数学题指令数据”;甚至还可以让模型模仿某个 “学霸”(优质大模型)的回答风格,用 “学霸” 的输出作为 “标准答案” 来训练,也就是“知识蒸馏”。

SFT使用的标注数据从何而来呢?

  • 数据量少的时候,主要靠人工标注,通过人工给数据打标签、提供正确答案;
  • 随着模型能力提升,需要的数据量变大,采用 “AI 合成数据 + 人工筛选”。

SFT 的本质:还是 “接龙”,但目标更明确

从技术原理看,SFT(监督微调)与预训练一脉相承—— 模型通过预测序列中的下一个词,基于段落联合概率计算损失值,并迭代调整参数优化预测效果。二者的核心差异体现在训练数据的形态:SFT 输入由 "指令 + 问题" 构成,而 “标准答案” 就是 “符合指令的回答”。

以语言翻译任务为例,当输入 "请翻译:我爱中国",模型需要接出“I love China”的标准答案。通过大量这类 “指令 - 答案” 数据的训练,模型逐渐明白:“翻译” 这个词之后,应该接上对应译文。

通过反复接触各种指令及对应答案,模型逐渐掌握不同任务的执行逻辑,在理解指令的基础上,朝着生成对应正确答案的目标不断调整参数。 随着训练的深入,模型对各类指令任务的完成度不断提升,能够 “按指令做任务”。

然而,能完成指令仅满足了基础功能需求。模型输出是否符合人类价值观(如表述是否友好)、是否具备专业准确性等维度,仍需进一步优化。这就引出了关键的第三阶段 —— 强化学习,通过人类反馈机制驱动模型向更理想的表现进化。

第三阶段:强化学习(RLHF)—— 像 “请教练指导” 的学生,学会 “做得更好”

强化学习(RLHF)的全称是“Reinforcement Learning from Human Feedback” ,直译为 “基于人类反馈的强化学习”。在LLM的强化学习阶段中,“人类反馈”成为了模型优化的关键指引,模型的学习目标是生成更符合人类期待的输出。

为了实现这一目标,RLHF引入了奖励机制,通过正向或负向的反馈信号,引导模型调整自身参数。具体来说,当模型输出符合人类预期的内容时,会得到较高的奖励分数;反之,若输出存在问题,奖励分数则会降低。 模型就像学生一样,通过调整参数来获取更高的奖励分。

这种基于人类反馈的机制,让大模型在学习过程中融入了“人的智慧”,使模型输出不仅满足功能需求,更贴合人类情感与价值判断。

奖励模型(RM):给模型当 “裁判”

强化学习的关键,在于以 “人类反馈” 作为标尺,衡量大模型回答的质量高低。但面对海量训练数据,人工逐一批判显然不切实际。为此,奖励模型(Reward Model,RM) 应运而生 —— 它基于预设的评价准则,能够快速精准地为模型输出打分,极大提升了反馈效率。

奖励模型以人类偏好为标尺,化身为智能“裁判教练” 。当模型生成结果时,RM 会依据预设的人类预期标准进行评分,模型就在评分的反馈下持续优化参数,直至达到 “最佳表现”。

LLM 与 RM 的关系,恰似运动员与教练的紧密协作:运动员(LLM)持续进行 “训练”(生成回答),教练(RM)及时给出反馈(打分),运动员根据反馈优化动作细节(调整模型参数),逐步实现性能跃升。

训练奖励模型(RM):先让 “裁判” 懂 “好坏”

首先要基于当前的LLM训练出一个奖励模型(RM),使其学会 “判断答案好坏”。RM的核心目标就是对输入的问答对(prompt-response),能够输出一个打分反馈。

因此,RM 的训练是使用 “比较数据”进行的监督训练。具体步骤如下:

  1. 准备一批 “问题(Prompt)”,让LLM模型针对每个问题生成多个 “答案(Response)”。
  2. 请人(标注者)对这些答案进行 “排序” 或 “打分”(例如,A 答案比 B 答案好,B 比 C 好)。
  3. 利用这些 “问题 + 答案 + 排序 / 打分” 数据训练 RM。具体来说,当输入问答对后,RM 会输出相应打分,并与标注者提供的标准打分进行比对,计算并累积误差(损失值)。通过不断迭代优化,逐步缩小 RM 打分与人工打分之间的差距,实现模型评分向人类判断标准靠拢。

这里的 “标注者” 至关重要:模型的价值观和知识水平会向标注者 “看齐”,所以简单任务可由普通标注者完成,复杂任务可能需要专家(如医生标注医疗问题答案)。

这样得到的奖励模型就可以用于给我们的大模型的回答进行打分:输入一个 Prompt - Response 问答对,就能输出一个回答好坏的打分。

使用强化学习优化策略以对抗奖励模型:追求 “更高分数”

有了 RM 这个 “裁判”,就可以开始对大模型进行强化学习了,核心方法是PPO(近端策略优化)

  1. LLM 针对一批问题生成回答,得到一批Prompt-Response对;
  2. RM 对这些Prompt-Response对进行打分;
  3. LLM 根据这个分数调整参数;
  4. 重复迭代,直到 LLM 生成的回答能稳定获得高分。

当 LLM 的水平超过了 RM,就需要重新训练更强的 RM,再继续优化 —— 这个 “运动员 - 教练” 的升级循环,能不断提升模型能力。

由于奖励模型的打分反馈体现的是人类的偏好,因此使用奖励模型来进行强化学习,就能让模型的输出更符合人类的价值观、表达习惯和质量要求,让大语言模型真正从“会做事”进阶到“把事做好”,更符合人类的预期。

总结:从 “小白” 到 “超级学霸” 的成长之路

回顾 LLM 的训练过程:

  • 预训练阶段让模型 “懂语言”,能流畅 “接龙”;模型学习海量文本数据,掌握语言的基本结构与语义。
  • 监督微调(SFT)阶段让模型 “懂指令”,能按要求 “做任务”;利用标注数据集使模型理解并执行特定指令。
  • 基于人类反馈的强化学习(RLHF)阶段让模型 “懂偏好”,能输出 “高质量答案”;模型学会根据偏好优化输出,确保生成内容的质量与适宜性。

大语言模型经过这三个阶段的训练,实现从广泛知识积累到精准任务执行的能力提升。就像一个学生,从广泛阅读积累知识,到通过习题学会应用,再通过模拟考试和老师反馈不断优化,最终成为 “超级学霸”。

以上是以GPT-3为例的大语言模型训练流程,但不同的模型可能会有不同的变体和改进。例如,一些模型可能会将奖励建模与直接偏好优化(DPO)结合起来,以便更快地收敛到理想的表现。此外,还有研究尝试将强化学习的思想引入到预训练阶段,提出了强化预训练(RPT)的概念,旨在通过内在奖励机制提升模型的推理能力。尽管具体实现细节可能有所不同,但大多数现代大语言模型都会遵循这三个基本步骤,以此来构建出既强大又适应性强的语言处理系统。