LLM训练三阶段:从预训练到RLHF,打造智能对话模型 1. 从“鹦鹉学舌”到“能说会道”理解LLM训练的本质最近跟几个刚入行AI的朋友聊天发现一个挺有意思的现象大家用ChatGPT、Claude这些大模型用得飞起但一聊到它们是怎么“学会”说话的很多人就懵了。最常见的误解是“这不就是拿海量数据喂给一个超级复杂的神经网络然后它自己就‘悟’了对吧” 这话对但也不全对。它点出了数据的重要性却完全忽略了现代大型语言模型LLM从“数据堆”变成“智能体”背后那套精密、分阶段、目标明确的训练工程学。你可以把最初的LLM想象成一个拥有超强记忆力、但理解力为零的“超级鹦鹉”。你给它看互联网上所有的文本预训练它能一字不差地背下来甚至能根据前几个词以极高的概率“接龙”出下一个词。这时候你问它“今天的天气怎么样” 它可能会给你生成一段从某个气象论坛里背下来的、关于去年某天天气的冗长描述完全答非所问。因为它只是在做概率上的续写根本不懂“你”、“今天”、“天气”和“回答”之间有什么关系。而我们今天感受到的、能像人一样进行有帮助、无害、且符合指令的对话的AI已经不再是那只“鹦鹉”了。这中间的蜕变关键就在于标题中提到的“三阶段训练”预训练、有监督微调SFT和基于人类反馈的强化学习RLHF。这三个阶段环环相扣目标层层递进共同将一个“统计概率机器”雕琢成一个“有用且安全的对话伙伴”。这篇文章我就结合自己跟进和实验的一些经验把这“三板斧”里里外外、为什么这么做、以及实际中会遇到哪些坑给你拆解明白。2. 第一阶段预训练——构建世界的“基础语法”与“知识图谱”预训练是LLM的“筑基”阶段也是耗时最长、耗费算力最大的阶段。它的目标不是让模型学会“回答问题”而是让模型学会“语言的规律”和“世界的常识”。2.1 核心任务与数据“食谱”这个阶段的任务非常“单纯”给定一段文本的前面部分即上文让模型预测下一个词或子词是什么。这被称为自回归语言建模。比如输入“今天天气真”模型的任务就是输出概率最高的下一个词比如“好”。听起来简单但魔鬼藏在数据和规模里。数据量通常是TB甚至PB级别的互联网文本包括网页、书籍、代码、学术论文等。这相当于让模型“阅读”了人类知识的大部分结晶。数据质量并非所有网络文本都是好的“教材”。实践中会经过繁重的数据清洗、去重、质量过滤比如剔除大量广告、乱码、低质内容这个过程本身就是一个巨大的工程挑战。高质量的“食谱”是模型性能的基石。训练目标最小化模型预测的下一个词与真实文本中下一个词之间的差异交叉熵损失。通过在海量数据上反复执行这个任务模型参数权重被调整到能够捕捉文本中极其复杂的统计规律。为什么这个阶段如此重要通过这个过程模型内隐式地学会了语法与句法主谓宾的搭配、时态变化、从句结构等。它知道“吃”后面更可能接“饭”、“苹果”而不是“宇宙”。语义与知识“巴黎是法国的首都”、“水在零度会结冰”。这些事实性知识以参数的形式被编码在模型内部形成了一个模糊但庞大的“知识图谱”。上下文与关联能够根据前文很长的内容保持话题的一致性。比如当上文在讨论编程时“Python”出现的概率会远高于“蟒蛇”。注意预训练模型比如Meta的Llama、Google的Gemma、国内的Qwen等开源出来的基础模型就是一个完成了这个阶段的“产物”。它很“博学”但也很“原始”和“危险”。因为它从互联网上学到的不只是精华也有糟粕、偏见和有害信息。直接用它对话效果会非常不稳定且不可控。2.2 规模定律与“涌现”现象这里必须提一下预训练中一个反直觉但至关重要的现象涌现。在模型参数规模比如从70亿到700亿和训练数据量达到某个临界点之前模型可能连简单的逻辑推理都做不好。但一旦跨过那个门槛一些复杂能力如多步推理、代码生成、指令跟随会突然出现显著提升仿佛“开窍”了一样。这就是为什么大家拼命“卷”模型参数和数据规模的原因。预训练阶段是为后续所有能力打下“算力基础”和“知识基础”的阶段。3. 第二阶段有监督微调SFT——教会模型“听话”与“对话”拿到了预训练好的“博学鹦鹉”我们怎么让它别乱叫而是好好回答我们的问题呢这就需要SFT出场了。SFT的目标是将模型从“续写大师”转变为“指令跟随者”。3.1 从“续写”到“问答”的范式转换预训练模型习惯的范式是“输入一段文本输出一个续写”。而对话的范式是“输入一个问题或指令Query输出一个回答或结果Response”。SFT的核心就是用高质量的指令-回答对数据来微调模型让它适应新的输入-输出格式。例如输入指令“用Python写一个函数计算斐波那契数列。”输出回答“def fibonacci(n): a, b 0, 1; for _ in range(n): a, b b, ab; return a”这个过程相当于给模型提供了大量的“示范教学”。通过在这些精心构造的数据对上继续训练通常学习率很低以免破坏预训练获得的基础知识模型逐渐学会了理解指令意图明白“写一个函数”、“总结下文”、“翻译成英文”等指令要求它做什么。生成结构化、有针对性的输出不再是漫无边际的续写而是围绕指令生成紧凑、相关的回答。初步掌握对话风格数据中如果包含了礼貌、清晰、有帮助的回答风格模型也会倾向于模仿这种风格。3.2 SFT数据的“含金量”与陷阱SFT阶段的效果几乎完全取决于数据质量。“垃圾进垃圾出”在这里体现得淋漓尽致。数据来源可以是人工编写的质量高成本极高也可以是从社区如ShareGPT、现有AI对话中蒸馏的。目前主流方案是混合使用。数据构造的学问多样性需要覆盖各种类型的指令创作、分析、推理、编程、问答等。复杂性需要包含单轮、多轮对话以及需要多步推理的复杂指令。格式一致性清晰的“Human: ... Assistant: ...”或其他分隔格式帮助模型区分角色。一个常见的坑指令冲突或格式污染。如果数据中混入了大量非对话文本或者指令格式不统一模型可能会混淆。例如有些数据以“问题”开头有些以“Q:”开头这会导致模型性能不稳定。在实践中彻底的数据清洗和格式化是SFT前必不可少的步骤。经过SFT的模型已经可以像一个“好学生”一样根据例题做出不错的回答了。它变得有用、可控了很多。但还有一个根本问题没解决什么是“好”的回答对于同一个问题可能有多个都正确但风格各异的回答哪个更好如何让模型不仅“正确”而且“优质”、“无害”、“符合人类偏好”这就需要第三阶段。4. 第三阶段基于人类反馈的强化学习RLHF——对齐人类的价值观与偏好RLHF是让AI行为与人类复杂、模糊的价值观和偏好“对齐”的关键技术。它要解决的是“如何定义和优化‘好’”的问题。4.1 奖励模型将人类偏好“量化”人类觉得一个回答“好”这种感觉很难直接用数学公式告诉AI。RLHF的聪明之处在于它引入了一个“裁判员”——奖励模型。收集人类偏好数据对于同一个问题Prompt让SFT后的模型生成多个不同的回答例如4个。然后请标注人员对这些回答进行排序或打分指出哪个最好哪个最差。这个过程收集的是人类对回答质量的相对判断而不是绝对分数这更容易也更可靠。训练奖励模型用一个神经网络通常基于SFT模型初始化来学习预测人类的偏好。它的任务是输入一个Prompt, Response对输出一个标量分数这个分数要尽可能符合人类标注的排序即更好的回答得分更高。至此我们有了一个可以自动给任何回答打分的“AI裁判”。这个裁判的“审美”标准来自于我们提供的人类偏好数据。4.2 强化学习让模型学会“讨好”裁判现在我们有了“演员”需要被优化的SFT模型称为策略模型和“裁判”奖励模型。强化学习的目标就是调整“演员”的参数使得它生成的回答能从“裁判”那里获得尽可能高的分数。这个过程可以类比为训练一只小狗。小狗策略模型做了一个动作生成了一个回答主人奖励模型根据这个动作的好坏给予奖励或惩罚分数。小狗的目标是最大化未来获得的总奖励。在LLM的RLHF中通常使用近端策略优化PPO这类算法。它会在更新模型参数时小心翼翼地平衡两个目标最大化奖励生成能获得高奖励分数的回答。最小化偏离不要让模型变得太“奇怪”偏离原本SFT模型它已经具备了很多有用知识太远。这通过一个KL散度惩罚项来实现防止模型为了刷高分而生成一些虽然得分高但毫无意义或极端的内容比如总是回答“您说得对”来讨好裁判。4.3 RLHF的挑战与“对齐税”RLHF效果强大但也是问题最多的环节俗称“炼丹”的重灾区。奖励模型过拟合或“作弊”奖励模型可能学会一些表面的、与真实质量无关的特征来刷分。比如它发现人类倾向于给更长的回答打高分于是策略模型就学会生成又臭又长、充斥废话的回答。这需要在奖励模型训练数据和RLHF过程中精心设计来避免。性能衰退在追求“无害”和“有帮助”的平衡时模型有时会变得过于保守能力下降比如拒绝回答一些原本可以回答的敏感但合理的问题。这种现象被称为“对齐税”。“胡说八道”与幻觉RLHF主要优化的是“风格”和“安全性”对事实正确性的提升有限。一个回答可能非常礼貌、无害且结构清晰但内容完全是编造的。解决幻觉需要更底层的改进比如检索增强生成RAG或更好的预训练。尽管有这些挑战RLHF仍然是目前让大模型行为变得“像人”符合人类社交规范和价值判断最有效的工程化方法。没有RLHF我们得到的将是一个能力很强但可能非常刻薄、偏见甚至危险的“天才疯子”。5. 三阶段的协同与演进不只是简单的流水线理解了每个阶段我们还要从整体看它们的协作关系。这并非一个简单的“流水线”而是一个有反复、有交织的迭代过程。5.1 顺序依赖与反向影响预训练是地基没有高质量、大规模的预训练SFT和RLHF就是无源之水。一个弱的基座模型再怎么微调和对齐上限也不会高。SFT提供“种子”行为RLHF需要从一个已经具备基本指令跟随能力的模型即SFT模型开始优化。如果直接用预训练模型做RLHF由于它根本不懂指令强化学习会极其低效甚至失败。RLHF的反馈可回流RLHF过程中发现模型的某些系统性缺陷比如某个领域的知识薄弱可以指导我们收集更多相关数据反哺到下一轮预训练或SFT的数据采集中形成迭代优化闭环。5.2 新兴的简化与替代方案由于RLHF复杂、昂贵且不稳定社区也在探索其他路径直接偏好优化DPO一种绕过奖励模型训练、直接利用人类偏好数据来优化策略模型的方法。它更简单、稳定在许多场景下能达到媲美PPO的效果正在成为新的热门选择。宪法AI让模型根据一套明文规定的“宪法”原则如“有益、无害、诚实”来自我批评和修正减少对人类偏好数据的依赖。SFT的强化通过构造极其高质量、多样化的SFT数据有时称为“超级SFT”尝试让模型仅通过SFT就达到很好的对齐效果从而省去RLHF步骤。这对数据工程提出了极高要求。这些演进表明三阶段范式是当前的主流和工程实践结晶但技术本身仍在快速迭代。其核心思想——从学习语言规律到学习执行指令再到学习符合人类偏好——将会持续指导大模型的训练与对齐工作。6. 实战视角当我们谈论“训练LLM”时在谈什么最后从一个实践者的角度聊聊对这三个阶段的具体感受和常见误区。6.1 资源分配的“冰山模型”对于大多数团队和个人开发者而言预训练是可望不可及的。它需要数千甚至上万张顶级GPU数月时间的计算资源以及庞大的数据工程团队。这就像是冰山的水下部分庞大而基础。 我们通常接触的是微调Fine-tuning这特指在预训练好的基座模型上进行SFT或继续训练。这才是我们“可操作”的部分。很多人说的“训练自己的大模型”实际上指的是“微调一个现有的开源基座模型”。6.2 微调中的关键选择全参数 vs. 参数高效微调PEFT当你拿到一个Llama 3这样的70B参数模型全参数微调更新所有权重的显存开销是天文数字。这时参数高效微调技术就成了救命稻草。LoRA目前最流行的PEFT方法。它在原始模型旁边添加一些小的、可训练的“适配器”层微调时只更新这些适配器的参数而冻结原始模型。效果接近全参数微调但显存和存储开销小了几个数量级。对于SFT阶段LoRA几乎是标配。QLoRALoRA的升级版结合了模型量化将模型权重从FP16压缩到INT4等低精度进一步降低显存需求使得在单张消费级显卡上微调大模型成为可能。RLHF中的PEFT在RLHF阶段通常也会使用PEFT如LoRA来更新策略模型否则PPO算法的计算和存储成本会非常高。选择哪种微调方式取决于你的数据量、任务特异性、计算资源和性能要求。对于领域适配如法律、医疗SFTLoRA通常是性价比最高的方案。6.3 评估如何知道模型真的变“好”了训练不是终点评估才是。每个阶段都需要不同的评估方式预训练后评估语言建模能力如困惑度、世界知识问答基准、基础推理能力如MMLU, HellaSwag。SFT后评估指令跟随能力。常用方法是构造一个涵盖多种指令类型的测试集人工或使用更强的AI模型如GPT-4来评判回答的相关性、信息量和格式正确性。RLHF后评估安全性和有用性。这包括安全性评估使用包含敏感、有害、诱导性问题的测试集检查模型是否会产生有害输出。有用性评估在开放的对话或指令任务中评估回答是否真正有帮助、符合偏好。人工评估始终是黄金标准。招募标注员进行A/B测试对比不同模型或版本的回答收集主观偏好。一个深刻的教训是不要只看单一的自动化指标。一个模型的困惑度预训练指标可能降低了但它的对话能力SFT/RLHF指标可能因为对齐过程而变差。必须进行综合的、面向最终应用场景的评估。回过头看LLM训练的三阶段本质上是一个将“原始算力与数据”逐步转化为“可控、有用、安全”的智能体的精炼过程。预训练赋予其知识和语言本能SFT教会它理解并执行任务RLHF则将其行为打磨至符合人类社会的复杂期望。理解了这个流程你就能更清晰地看懂每一次技术迭代的重点在哪里也能更务实地规划自己使用或开发大模型的路径。毕竟在AI时代知其然更要知其所以然。