在上篇文章:从白纸到对话:一文看懂大模型训练的完整技术栈与学习路径(一)
中,我们走完了大模型训练的“第一阶段”——预训练。我们花了数千块GPU和数千万美元,喂给模型数万亿Token的文本,最终锻造出了一个知识渊博的基座模型

但问题也来了:这个“博士”满腹经纶,却完全不懂怎么跟人聊天。你问它“怎么做红烧肉”,它从五花肉讲到白切鸡,再扯到满汉全席,根本停不下来——因为它只会“续写”,不会“回答”。

怎么办?

答案是:监督微调(Supervised Fine-Tuning,简称SFT)。这就是本章的主角。

如果预训练是“上学读书”,那监督微调就是“入职培训”。下面我就带你们看看:如何用几十万条高质量的“对话范例”,让模型一夜之间从“续写机器”变成“对话助手”。

让我们开始吧,Let’s go。



监督微调(Supervised Fine-Tuning,简称 SFT)

如果预训练是“上完所有学”,那 SFT 就是“入职培训”。那该如何用几十万条高质量的“对话范例”,让模型一夜之间学会“听懂人话、说人话”的。


1. 为什么基座模型不够用?

让我们先明确一下,预训练结束后的基座模型到底有什么问题。表面上看,它只是“不会对话”,但拆开来看,其实有三个层面的缺失:

问题一:格式错位。 基座模型的核心训练任务,还记得吗?是“预测下一个 Token”。这个任务本质上是 “续写” ——给你一段文本,你接着往下写。但用户跟 AI 助手的交互模式,不是“我给你开个头,你接着写下去”,而是 “我给你一个指令,你直接给我答案” 。基座模型没有学过任何一条“指令→答案”格式的数据,它压根不知道“回答”这件事意味着什么。

问题二:行为缺失。 基座模型不知道何时应该停下来。它被训练的目标就是“一直预测下去”,所以它会像写小说一样,开头精彩,中间跑题,结尾不知所云。它也不懂什么叫“遵循指令”——你让它“用一句话总结”,它可能给你三段话;你让它“用李白的口吻写诗”,它可能给你一个学术论文式的分析。

问题三:领域盲区。 预训练数据来自全网,覆盖面虽广,但特定领域的专业表述可能不够深入。一个通用的基座模型可能在中医学、法律文书、特定行业的术语使用上不够精准。

SFT 的核心目标,就是用高质量的“指令-回答”数据对,一次性解决这三个问题


2. SFT 的“教材”是怎么编出来的?

既然要教模型学会“问答”,那首先得有高质量的“教材”。这个教材,就是 “指令-回答”数据对

一条标准的 SFT 数据长这样:

{
  "instruction": "用李白的口吻写一首关于月亮的诗,五言绝句,四句。",
  "input": "",
  "output": "床前明月光,疑是地上霜。举头望明月,低头思故乡。"
}

看起来很简单,对吧?但构建一个真正能用的 SFT 数据集,远比这复杂得多。你需要的不是几十条,而是几万到几十万条这样的高质量范例。而且,这些范例的质量,直接决定了微调后模型的上限——垃圾进,垃圾出。

那么,这些数据从哪来?

来源一:人工标注——最贵,但最可靠

让人类专家手写高质量的“指令-回答”对。比如,OpenAI 在训练 ChatGPT 早期版本时,雇佣了大量标注员来编写指令和理想回答。优点是质量极高,缺点是贵且慢。一条高质量的标注可能花费几美元到几十美元,构建一个数万条的数据集,成本轻松达到数十万美元。

来源二:合成数据——用 AI 生成数据来训练 AI

这是当前最主流、最高效的方案。基本思路是:让一个已有的强大模型(比如 GPT-4 或 Claude)来批量生成“指令-回答”对。

但这里有一个关键问题:指令本身的质量决定了回答的上限。如果只是让 AI 随机生成一堆泛泛的问题,比如“写一篇文章”“翻译一下”,那训练出来的模型也只能处理泛泛的任务。

2025 年 ICLR 的一项研究提出了一个名为 Instruct-SkillMix 的方案,思路很巧妙:

  1. 技能抽取:先让一个强大的 LLM 分析大量的真实对话,从中提取出核心的“技能”——比如“类比解释”“分步推理”“创意写作”“代码调试”。
  2. 混合生成:然后,让 LLM 基于这些技能的随机组合,生成多样化的指令。比如,把一个“分步推理”技能和一个“创意写作”技能混合起来,可能产生“用童话故事的方式解释为什么天是蓝的,要求分三步说明”这样的指令。

这种方法生成的指令,多样性和覆盖度远超人工设计

不过,指令只是故事的一半,回答的质量同样关键。一篇发表于 COLM 2025 的研究揭示了一个重要发现:用人类手写的指令,配合 LLM 生成的回答,训练出的模型效果优于完全由 LLM 生成指令-回答对的数据集。这说明,人类在“提问”这件事上的创造力和真实感,仍然是 AI 难以完全替代的。最佳方案是“人类提问题,AI 写答案”——既保证了指令的真实性和多样性,又利用 AI 的高效来生成高质量回答。

来源三:开源数据集——站在巨人的肩膀上

如今,业界已经积累了大量公开可用的高质量 SFT 数据集。比如:

数据集 规模 特点
Alpaca 5.2 万条 由 GPT-3.5 生成,经典的指令微调数据集
ShareGPT 约 9 万条 真实用户与 ChatGPT 的对话记录,对话感极强
OpenHermes 约 24 万条 涵盖代码、数学、创意写作等多个领域
Tulu-3-SFT-Mix 约 93 万条 综合性指令数据集,覆盖广泛任务

2025 年 IBM 的研究团队对 Tulu-3-SFT-Mix 和 SmolTalk 等主流开源数据集进行了系统的质量标注和分析,发现数据质量指标(如回答的相关性、信息完整性、格式规范性)与模型最终表现之间存在强相关。

数据构建的核心结论就一句话:质量比数量更重要,多样性比规模更关键。 一个精心设计的 5 万条高质量数据,效果往往好过 50 万条平庸数据。


3. SFT 是怎么训练的?

有了教材,接下来就是“上课”环节。SFT 的训练过程,在技术上有两条截然不同的路线。

路线一:全参数微调——全员上岗

最直接的方法:把基座模型的所有参数都放开,用 SFT 数据集从头到尾训练一遍。模型根据“指令-回答”对,调整每一个参数,直到它能够稳定地输出与示例相似的答案。

这种方法的优点是效果最好,理论上没有信息损失。但缺点也很明显:。对于一个千亿参数的模型,全参数微调需要加载整个模型到 GPU 显存中,一块 H100 的 80GB 显存放不下,需要多卡并行,算力成本和时间成本都不低。

路线二:参数高效微调——只派核心骨干

这是目前更主流、更经济的做法。核心理念是:冻结原模型的大部分参数,只微调一小部分新增参数。

其中最具代表性的是 LoRA(Low-Rank Adaptation,低秩适应) 技术。

LoRA 的核心原理非常优雅:它不直接修改原模型的权重矩阵,而是在旁边添加两条“旁路”——两个很小的矩阵。训练时,只有这两条旁路的参数在更新,原模型的参数保持冻结。训练完成后,把旁路的参数合并回原模型即可。

这样做的好处是惊人的:

  • 显存占用大幅降低:不需要存储所有参数的梯度和优化器状态
  • 训练速度更快:需要更新的参数量从“千亿级”降到“百万级”
  • 可以多任务复用:同一个基座模型,可以训练多个不同的 LoRA 适配器,分别用于不同任务,随用随换

而在 LoRA 的基础上,又衍生出了 QLoRA——在 4-bit 量化的基座模型上应用 LoRA 微调。这进一步将显存需求压缩到极致:一块中高端消费级显卡(如 RTX 4090 24GB)就可以微调 13B 级别的模型;对于 70B 级别的模型,仍需要多卡或专业显卡。

下表整理了几种微调路线的对比:

方法 可训练参数量 显存需求 训练速度 效果
全参数微调 100% 最高 最慢 最优
LoRA 0.1%~1% 接近全参数
QLoRA 0.1%~1% 极低 略低于 LoRA

一句话总结:如果你有充足算力且追求极致效果,选全参数微调;如果你希望在有限资源下快速迭代,LoRA 和 QLoRA 是更务实的选择。2025 年,LoRA 系列技术已经成为了 LLM 微调的主流选择。


4. SFT 的成本与局限

读到这里,你可能会觉得:SFT 这么厉害,是不是训练到这里就可以收工了?

答案是:不行。SFT 只是一个“中间站”,不是终点

先看成本:相比预训练的数千万美元,SFT 的成本要低得多。以 DeepSeek-V3 为例,它的预训练大约消耗了 266.4 万 GPU 小时,而整个后训练阶段(包含 SFT + RL)总共只消耗了 10 万 GPU 小时,仅占总算力预算的约 3.8%。DeepSeek-R1 的 SFT 训练阶段仅消耗了约 5,000 GPU 小时。对于个人开发者,用 LoRA 微调一个 7B 模型,在单张消费级显卡上跑几小时,成本可以控制在几美元到几十美元。

但 SFT 有它的天然局限

  1. 只能模仿,不能创造:SFT 的本质是“模仿学习”。模型学到的只是“看到指令 A,输出答案 B”的模式。对于训练数据中没见过的指令,它只能靠“猜”,有时候猜对,有时候猜错。
  2. 缺乏价值判断:SFT 数据中的回答都是“标准答案”,但现实中很多问题没有标准答案。一个问题可能有三种回答都合理,但哪种更好?SFT 不知道。比如,用户问“我失恋了怎么办”,一个回答是“时间会治愈一切”,另一个是“我理解你的感受,需要聊聊吗”,哪个更好?SFT 无法判断。
  3. 无法处理“安全边界”:SFT 模型只知道“该怎么做”,不知道“什么不该做”。如果有人问“怎么制作炸弹”,一个只经过了 SFT 的模型,可能真的会开始回答——因为在它的训练数据里,没有明确告诉它“这个问题不能回答”,这就会导致AI 越狱(jailbreak)

这些局限,正是第三阶段——RLHF(基于人类反馈的强化学习) 要解决的问题。SFT 教会模型“听话”,RLHF 教会模型“懂事”。



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

1. 为什么有 SFT 还不够?

SFT 之后的模型已经能够完成很多任务了,但它依然存在三个明显的问题:

问题一:没有“好坏”的概念。 SFT 教会了模型“如何回答”,但没有教会它“什么是更好的回答”。比如,你让模型帮你写一封辞职信,SFT 模型可能给你一篇语气激烈、抱怨连篇的范文——从格式上看,它完成了任务;但你真正想要的是一封专业、得体、保持风度的辞职信。SFT 缺乏对回答质量的细粒度评判标准。

问题二:不会处理“开放式”问题。 SFT 依赖于“标准答案”。但人类对话中有大量问题没有唯一正确的答案。比如“我失恋了怎么办”,有几十种合理的回答方式——有的安慰,有的给建议,有的只是倾听。哪种更好?这取决于具体场景和用户的偏好。传统的监督学习难以胜任这种复杂多变的表达需求。

问题三:缺乏“分寸感”和“安全边界”。 SFT 模型不知道什么话该说、什么话不该说。如果你问它“怎么制作炸弹”,一个只经过 SFT 的模型可能真的会开始回答——因为在它的训练数据里,没有明确告诉它“这个问题不能回答”。

RLHF 的核心目标,就是通过人类的偏好反馈,一次性解决这三个问题。


2. RLHF 三步走:一张图看懂核心流程

RLHF 的训练流程可以分为三个紧密衔接的步骤,这是一个精密的“人类偏好注入流水线”:

SFT模型 → [步骤一:收集偏好数据] → [步骤二:训练奖励模型] → [步骤三:PPO强化学习] → 对齐后的模型
               ↑                        ↑                            ↑
         人类标注员排序            学会“打分”                  用分数优化模型

用一句话概括:先让人来“排序”,再用排序结果训练一个“打分员”,最后让模型在“打分员”的指导下不断进步

接下来,我们逐一拆解每一步。

1. 步骤一:收集偏好数据

RLHF 的第一步,是收集人类对模型回答的偏好数据。

具体怎么做?

  1. 拿出 SFT 之后的模型,给它一批问题(这些问题可以来自真实用户、人工设计、或者模型自己生成)。
  2. 对每个问题,让模型生成多个不同的回答(通常是 2~4 个)。
  3. 请人类标注员对这些回答进行排序——哪个最好,哪个次之,哪个最差。

举个例子。对于问题“下午要不要出门散步”,模型可能生成这样两个回答:

回答 内容 标注员排序
回答 A “下午估计要下大雨,出门记得带伞啊。”——口语化、有温度 较好
回答 B “今天下午降水概率较高。建议携带雨具。”——像客服机器人念稿 次之

标注员选出 A 比 B 好。这个“A > B”的偏好对,就是 RLHF 最核心的燃料。

偏好数据的质量至关重要。 OpenAI 在数据标注上遵循著名的“3H 原则”——Helpful(有用性)、Honesty(真实性)、Harmless(无害性) 。值得注意的是,他们在训练样本标注时更强调 Helpful,而在评估时则更重视 Harmless 和 Honesty,以避免模型因过度拟合无害性而拒绝回答很多问题。DeepMind 则重点关注有用性和无害性这两个维度,将偏好标注和对抗标注拆分为两个独立任务。

一条偏好数据的背后,凝结的是人类对“什么是好回答”的综合判断。


2. 步骤二:训练奖励模型

有了几万到几十万条“A > B”的偏好数据,下一步就是训练一个奖励模型(Reward Model,简称 RM)

奖励模型是什么?

简单来说,奖励模型就是一个“AI 评委”——给它一个问题和一个回答,它能输出一个分数,代表这个回答“有多好”。分数越高,说明这个回答越符合人类的偏好。

怎么训练?

奖励模型通常用一个较小的模型(比如 6B 参数)作为起点,在偏好数据上进行训练。训练的目标是:对于标注员说“A 比 B 好”的每一对回答,奖励模型给 A 的分数必须显著高于给 B 的分数。

RLHF 的核心就是奖励建模——将人类反馈(成对比较或排名)转化为模型训练的可测量目标。传统的 RLHF 框架通常分为两个阶段:先用成对比较数据训练奖励模型来预测人类偏好,再用强化学习算法优化语言模型。

奖励模型的质量直接决定了 RLHF 的上限。 如果奖励模型本身有偏差(比如错误地认为“啰嗦的回答就是好回答”),那后续的强化学习会把模型带偏。这就是所谓的“奖励黑客”问题——模型刻意迎合奖励模型,而非真正贴合人类需求。


3. 步骤三:PPO 强化学习

有了奖励模型这个“AI 评委”,就可以开始最核心的一步了:用强化学习来优化 SFT 模型。

强化学习是什么?

强化学习的核心思想是“试错-奖励”机制:让模型自己去尝试生成回答,如果回答质量高(奖励模型给高分),就“奖励”它——加强这种生成策略;如果回答质量低(低分),就“惩罚”它——调整策略。通过大量试错,模型逐渐掌握生成高质量回答的技巧。

这就像训练一只小狗:做对了给零食奖励,做错了批评惩罚,久而久之小狗就能学会各种技能。

为什么选择 PPO?

在众多强化学习算法中,RLHF 选择的“教练”叫 PPO(Proximal Policy Optimization,近端策略优化) 。PPO 由 OpenAI 在 2017 年提出,因其在稳定性和效率之间的出色平衡,成为大模型对齐的核心引擎。

PPO 的核心创新在于 “策略限制”机制:它在每次更新模型参数时,都会限制更新的幅度,确保模型不会“一夜之间性情大变”。这就像教一个学生学习,如果学习方法突变太多,可能导致成绩不升反降。PPO 通过限制新旧策略之间的差异,确保每次更新都是温和的、渐进式的,从而保证训练过程的稳定性。

PPO 训练的四个“演员”

在 PPO 训练中,需要同时维护四个模型:

角色 作用 比喻
策略模型(Actor) 我们要训练的核心模型,负责生成回答 正在学习表演的“海豚”
奖励模型(Reward Model) 给回答打分,代表人类偏好 手里拿着小鱼的“驯兽师”
价值模型(Critic) 预测当前状态“将来能得多少分” 场边的“预测员”
参考模型(Reference Model) 原始的 SFT 模型,用于约束不跑偏 海豚的“本能”

同时维护四个模型,意味着巨大的显存消耗。以一个 70B 参数的模型为例,仅仅加载这四个模型(FP16)就需要大约 560 GB 的显存(140GB × 4),这还没有算上梯度、优化器状态和中间激活值。这也是为什么 PPO 训练如此“吃资源”的原因。

PPO 的训练过程

有了这四个角色,PPO 的训练流程如下:

  1. 生成回答:策略模型针对一个问题生成一个回答。
  2. 获取奖励:奖励模型给这个回答打分。
  3. 计算优势:价值模型预估“这个回答比预期好多少”。
  4. 温和更新:在参考模型的约束下,用奖励分数和优势值来更新策略模型——让高分回答的生成概率提高,低分回答的生成概率降低,但不能偏离原始模型太远。
  5. 重复迭代:这个过程不断重复,模型在“驯兽师”的引导下逐渐学会生成更符合人类偏好的回答。

3. RLHF 的迭代

RLHF 不是一次性的工作。真正落地的 RLHF 系统是一个持续迭代的过程:

  1. 部署初版 RLHF 模型,收集真实用户的反馈(点赞、点踩、用户行为数据)。
  2. 用这些新反馈扩充偏好数据集,重新训练或微调奖励模型。
  3. 用更新后的奖励模型对策略模型进行新一轮 PPO 优化。
  4. 重复 1-3。

OpenAI 在 RL 微调过程中,通过多次迭代收集用户反馈,不断优化奖励模型和微调模型。这种“在线学习”的方式,让模型能够持续适应不断变化的用户需求和价值观。


4. PPO 的挑战与替代方案

PPO 的三大痛点

尽管 PPO 效果出众,但它的挑战也非常明显:

  1. 流程繁琐:需要额外训练奖励模型,步骤多、周期长(比后文要讲的 DPO 长 2-3 倍)。
  2. 资源消耗大:需要同时加载四个模型,显存需求极高。训练 GPT-4 级别的模型,RLHF 环节可能吃掉总成本的 35%-50%
  3. 调参困难:PPO 有多个敏感的超参数(如 KL 惩罚系数、学习率、clip 范围等),新手容易踩坑。

轻量级替代方案:DPO

正因为 PPO 的高成本和高复杂度,业界一直在寻找更简洁的方案。2023 年,一种叫 DPO(Direct Preference Optimization,直接偏好优化) 的方法横空出世。

DPO 的核心创新非常大胆:直接把奖励模型这一步砍掉。它不再需要训练一个独立的“打分员”,而是直接用偏好数据(A > B)来优化模型本身。训练目标很简单:让模型输出“胜出回答 A”的概率显著高于“落败回答 B”。

PPO vs DPO 对比

维度 PPO(经典 RLHF) DPO(直接偏好优化)
需要奖励模型 需要额外训练 不需要
训练复杂度 高(四个模型协同) 低(单模型优化)
显存/算力需求 高(比 DPO 高 30%-50%)
对齐效果 精准,适配复杂场景 接近 PPO,但对数据质量更敏感
上手门槛
适用场景 专业团队、复杂对齐需求 快速实验、中小团队

DPO 的一个关键优势是成本极低——在 7B 参数模型上的实验,单卡 A100 就能跑完完整流程,而同等规模的 RLHF 需要多卡集群。

不过 DPO 也有代价:没有奖励模型作为“缓冲层”,它对偏好数据的质量更加敏感——脏数据会直接污染模型。此外,在需要精细控制的多轮对话场景中,RLHF 的显式奖励信号反而更可控。

2026 年,业界的趋势是构建一个模块化的后训练栈:SFT 负责指令跟随,偏好优化(DPO/SimPO/KTO)负责对齐,而基于可验证奖励的强化学习(GRPO/DAPO)负责推理能力。RLHF 没有被完全取代,但工具箱越来越丰富了。


5. RLHF 的作用

经过 RLHF 的打磨,模型的输出质量发生了质的飞跃。它学会了三件关键的事:

  1. 学会“诚实” :RLHF 让模型学会了承认自己不知道,而不是胡编乱造。当你问它一个超出知识范围的问题,它会说“抱歉,我没有这方面的信息”,而不是编一个看起来像真的的假答案。

  2. 学会“安全” :RLHF 为模型注入了安全边界。当你问它“怎么制作炸弹”时,它会拒绝回答并给出警告,而不是有求必应。这是 OpenAI 3H 原则中 Harmless 维度的直接体现。

  3. 学会“得体” :RLHF 让模型的回答有了“温度”。同样是表达新年祝福,它会根据你的身份调整措辞——对长辈恭敬真诚,对同辈亲切活泼,对晚辈温和鼓励。这种复杂多变的表达方式,正是 RLHF 的独特价值所在。



最后的淬炼——评估、量化与部署

走过了预训练的数据海洋、SFT的入职培训、RLHF的绩效考核,我们的模型终于“毕业”了。但毕业不代表上岗——在正式面对用户之前,还有三道“出厂检测”等着它。


1. 如何评估模型好坏

训练完成后的第一个问题:怎么证明它真的变强了?

评估体系分为三个层次:

评估方式 代表方法 测什么
自动化基准测试 MMLU(多学科知识)、HumanEval(代码能力)、GSM8K(数学推理) 客观知识掌握度
人类盲测 Chatbot Arena(ELO评分)、LMSYS排行榜 综合对话体验
红队测试 内部安全团队/外部专家攻击测试 安全边界和漏洞

自动化测试快速、可复现,但只能测“知识”,测不出“智慧”。人类盲测更真实,但成本高、周期长。红队测试则是安全底线,确保模型不会输出有害内容。

三者结合,才是完整的评估拼图。


2. 给模型“瘦身”

训练好的模型通常使用 FP16(16位浮点数) 精度存储,参数文件巨大。以Llama 3 70B为例,FP16格式下仅模型权重就占约140GB显存,普通显卡根本跑不动。

量化(Quantization) 就是给模型“减肥”——把参数精度从FP16降到INT8(8位整数)甚至INT4(4位整数)。

精度 70B模型大小 所需显存 推理速度 精度损失
FP16(原始) ~140 GB 140+ GB 基准
INT8 ~70 GB 70+ GB 约2倍 极小
INT4 ~35 GB 35+ GB 约3-4倍 轻微

注:实际部署时还需考虑 KV Cache 等额外开销,单卡 24GB 一般仅适合 13B 以下的 INT4 模型。例如 70B INT4 模型虽权重约 35GB,但加上 KV Cache 和激活后,通常需要 2×24GB 或单卡 A100 80GB。

量化后,一个原本需要多块专业显卡的70B模型,可能一块消费级显卡(如RTX 4090 24GB)就能跑起来。这是大模型“飞入寻常百姓家”的关键技术。


3. 让模型真正“上岗”

最后一步,把量化好的模型部署到服务器上,通过API对外提供服务。

核心挑战是推理速度与成本的平衡。部署阶段的关键技术包括:

  • KV Cache:缓存已计算的注意力结果,避免重复计算
  • 批处理:同时处理多个请求,提高GPU利用率
  • 模型并行:大模型切分到多张卡上协同推理


系列总结:一张路线图走到终点

终于结束了,让我们回到标题——《从白纸到对话:一文看懂大模型训练的完整技术栈与学习路径》。现在,这张图终于完整了:

阶段 核心任务 比喻 成本占比
预训练 海量数据中自学语言规律 上学读书 ~95%
SFT 模仿高质量问答范例 入职培训 ~1%
RLHF 根据人类偏好对齐价值观 绩效考核 ~4%
评估与部署 测试、压缩、上线 上岗考核

从一张白纸到能跟你聊天的AI助手,大模型的“成长史”就是这四个阶段的接力。每一步都不可或缺,每一步都在前一步的基础上叠加新的能力。

希望这份技术路线图,能成为你理解大模型的一把钥匙。AI的进化永不眠,而这,只是故事的开始。

(全文完)

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐