大语言模型(LLM)训练的三个阶段
你是否好奇,当在与ChatGPT对话时,它背后究竟隐藏着怎样的“智慧”?这股智慧并非凭空而来,而是源于一个复杂而精妙的训练过程。我们可以将这个过程想象成一个孩子的成长与学习之旅:从海量阅读中汲取知识,到模仿导师学会待人接物,再到独立解决难题、形成自己的“思考”方式。【AI大模型教程】
本文将为你分三步解析一个大语言模型(LLM)是如何从一个只会“背诵”互联网知识的基础模型,成长为一个能够理解、“思考”并与我们高效“对话”的智能助手。
阶段一:预训练 (Pre-training) —— 奠定知识的基石
让我们用一个生动的比喻开始:预训练阶段,就如同让一个学生沉浸在一个巨大的图书馆里,日夜不停地阅读馆内所有的书籍。他的目标不是为了回答某个特定问题,而是为了在潜移默化中理解语言的内在规律、吸收人类文明海量的背景知识。
目标:构建一个“文本模拟器”
此阶段的核心目标是训练出一个“基础模型” (Base Model)。这个模型本质上是一个强大的“文本模拟器”,它通过学习数万亿词元(Token)的文本数据,掌握了语言的统计规律和关于我们这个世界的庞大知识体系。你可以把它想象成一个互联网的“有损压缩包”,将海量信息压缩进了模型的参数之中。
数据:海量的互联网文本
预训练的数据质量和处理流程至关重要,远非简单地“下载整个互联网数据”。其处理步骤通常包括:
- 数据来源:通常是像“Common Crawl”这样的项目,它们收录了数十亿个网页的原始数据。
- 数据清洗:
- URL过滤:屏蔽已知的垃圾、恶意、营销或成人网站,从源头保证数据质量。
- 文本提取:移除网页中的HTML标签、导航栏、广告等无关内容,只保留正文文本。
- 语言筛选:通过语言分类器,筛选出特定语言(如英语)的文档。
- 数据精炼:
- 去重:移除重复或高度相似的文档,提升数据多样性。
- 去除个人身份信息:检测并移除如地址、社保号等个人敏感信息。
经过这一系列复杂的过滤与精炼,最终得到用于训练的高质量文本数据集,以Hugging Face发布的FineWeb数据集为例,它的大小约为44TB,包含约15万亿个Token。
核心任务:预测下一个词元 (Token)
在投喂数据前,文本需要被**“词元化” (Tokenization)**。这是一个关键的转换步骤。计算机的底层语言是字节(256种可能性),但如果直接让模型处理字节流,序列会变得极其漫长,计算效率极低。因此,通过“字节对编码”(Byte-Pair Encoding)等算法,系统会把常见的字节组合(如单词“the”或词根“ing”)合并成一个单独的“词元”(PS:GPT-4模型的词汇表大约包含10万个独一无二的词元)。这是一种巧妙的权衡:通过创建一个更大的词元词汇表,极大地缩短了文本序列的长度,从而提高了训练效率。
预训练的核心任务异常简单却又极其强大:预测序列中的下一个Token。
例如,当模型看到句子 “今天天气真不错,万里无___” 时,它的任务就是通过计算,判断出填空处最可能的词是“云”。通过在数万亿个Token上周而复始地进行这个练习,模型逐渐内化了语法、句法、事实知识乃至语言的内在逻辑。
成果:一个知识渊博但“不听话”的基础模型
预训练结束后,我们得到一个基础模型。它既强大又局限,具体特性如下表所示:
| 能力👍 | 局限👎 |
| 强大的文本补全:像一个超级自动补全工具,能生成流畅、连贯的文本。 | 无法遵循指令:你让它“回答问题”,它可能会续写一个看起来像网页的问题列表。 |
| 存储海量知识:其参数中压缩了大量关于世界的“事实”,如同一个巨大的知识库。 | 缺乏对话能力:它不懂得如何扮演一个“助手”的角色,进行有目的性的问答。 |
基础模型虽然知识渊博,但它就像一个只会自言自语的“书呆子”,缺少与人有效互动的能力。为了让它变得“听话”且“有用”,我们必须进入下一个训练阶段。
阶段二:监督微调 (Supervised Fine-Tuning, SFT) —— 学会像“助手”一样对话
现在,那位读完图书馆所有书的学生开始跟随一位专家导师学习。导师不再让他漫无目的地阅读,而是向他展示了大量“问题和标准答案”的范例,手把手地教他如何运用已有的知识,以一种规范、有帮助的方式来回答具体问题。
目标:从“文本模拟器”到“智能助手”的转变
此阶段的目标非常明确:将那个只会续写文本的基础模型,改造为一个能够理解并遵循人类指令、进行有效对话的“助手模型” (Assistant Model)。这不仅是知识的运用,更是一次核心行为模式的彻底转变。
数据:高质量的“人机对话”范例
SFT阶段使用的数据与预训练阶段截然不同。早期,这些数据完全由人类标注员遵循详尽的**“标注指南”**(例如,要求回答必须有帮助、真实、无害)精心编写而成。
然而,现代SFT数据集(如UltraChat)的构建方式已发生演变。虽然整个过程仍由人类编写的范例和指南作为“种子”,但现在会大规模地使用语言模型来辅助生成数以百万计的对话样本。随后,人类专家再对这些“合成数据”进行编辑、筛选和润色。这种“人机协作”模式极大地提升了高质量训练数据的生产规模和效率。
训练方法:模仿“标准答案”
训练算法与预训练阶段相同(依然是预测下一个词元),但训练数据从互联网文本换成了这些“问题-标准答案”式的对话样本。模型通过模仿这些“标准答案”,迅速学会了助手的口吻、格式和行为模式。值得注意的是,由于SFT的数据集比预训练小得多,这一阶段的计算成本也远低于预训练(例如,在数千台计算机上进行3个月的预训练,SFT可能仅需3小时)。
成果与挑战:一个初步成型的助手
SFT阶段的直接成果,就是创造出我们日常使用的那种对话式AI,模仿一个严格遵循特定指南的专家级人类标注员,知道在面对用户提问时,应如何以助手的身份作出回应。然而,这种模仿式学习也带来了两大核心挑战:
- 幻觉:由于模型总是在模仿训练数据中那种自信、确定的回答风格,当它遇到自己知识范围之外的问题时,它倾向于“编造”一个听起来非常合理的答案,而不是坦诚地承认“我不知道”。
- 认知局限:
- 基于Token的认知盲点:模型的世界是由“Token”构成的,它并不直接“看到”单个字符。这导致它天生不擅长处理需要精确字符操作的任务(如拼写检查、颠倒单词顺序等)。
- 单步(逐词元)计算限制:模型在生成每一个Token时,所能进行的计算量是有限的。对于需要多步复杂推理的问题,它很难在生成第一个Token时就“想好”所有步骤。这种“一步一Token”的生成机制,直接限制了其心算和逻辑推理的可靠性。
监督微调虽然成功地教会了模型“如何回答”,但这种被动的模仿限制了它真正“解决问题”的能力的深度和可靠性。为了突破这一瓶颈,让模型学会主动“思考”,我们需要进入更高级的训练阶段。
阶段三:强化学习 (Reinforcement Learning, RL) —— 探索与完善“思考”能力
现在,这位学生开始独立完成大量的“练习题”。他不再被动地学习唯一的标准答案,而是主动尝试多种解题方法。他通过最终答案的对错来获得“奖励”或“惩罚”,从而在一次次试错中,自己探索出最高效、最可靠的解题思路。
目标:从“模仿”到“探索”
此阶段的最终目标是让模型超越简单的模仿,通过自主探索,发现并掌握解决问题的最优策略。这是模型学习如何真正“思考”的关键一步,它不再仅仅是复述知识,而是开始形成解决问题的内在方法论。
核心机制:在“可验证”领域中的试错与奖励
在数学、编程等有明确正确答案的领域,强化学习的工作流程清晰而强大:
- 生成多种解法 (Generate):针对同一个问题(例如一道数学题),让SFT阶段训练好的模型生成成百上千种不同的解题过程。
- 自动评估对错 (Check):编写一个简单的程序(例如一个Python解释器或数学检查器),自动验证哪些解法最终得出了正确答案。
- 强化成功路径 (Reinforce):对那些通往正确答案的“成功路径”(即Token序列),加大其在模型内部的权重。这就像给走对路的学生发奖学金,让他未来更倾向于采用这些被证明行之有效的“思路”。
特殊情况:在“不可验证”领域中的人类反馈强化学习 (RLHF)
然而,在创意写作、写笑话等没有唯一正确答案的“不可验证”领域,我们无法自动判断哪个结果更好。为此,研究者们设计了巧妙的人类反馈强化学习 (RLHF) 方案:
- 挑战:无法用程序自动判断哪个笑话“更好笑”。
- 方案:训练一个独立的“奖励模型” (Reward Model) 来模仿人类的偏好。
- 具体步骤:
- 让模型针对一个提示生成多个回答(例如,四个不同的笑话)。
- 人类标注员不再需要亲自打分,只需对这四个笑话进行排序(例如,从最好笑到最不好笑)。
- 奖励模型通过学习大量这类排序数据,学会了给不同回答打出符合人类偏好的分数。
- 最终,LLM通过强化学习进行训练,其目标是生成能从这个奖励模型那里获得高分的回答。
成果:一个会“思考”的推理模型
经过强化学习训练后,模型的行为发生了显著变化。在解决复杂问题时,它不再是直接给出一个完美的、专家式的答案,而是会生成一个类似“内心独白”或“草稿”的思考过程,进行自我检查、修正和多角度验证,最后才给出结论。
下面是SFT模型和RL模型对同一个数学问题的回答对比,其解决问题方式的差异一目了然:
SFT模型 (模仿专家):
问题: 艾米丽买了3个苹果和2个橙子,每个橙子2美元,总共花了13美元。问每个苹果多少钱?
回答:
- 计算橙子的总价:2个橙子 * 2美元/个 = 4美元。
- 计算苹果的总价:13美元 – 4美元 = 9美元。
- 计算每个苹果的价格:9美元 / 3个 = 3美元。 因此,每个苹果的价格是3美元。
RL模型 (自主思考):
问题: 艾米丽买了3个苹果和2个橙子,每个橙子2美元,总共花了13美元。问每个苹果多少钱?
回答: 好的,让我来分析一下这个问题。
首先,分解已知信息:
- 苹果数量:3个
- 橙子数量:2个
- 橙子单价:$2
- 总花费:$13
目标是求苹果的单价。
思路一:分步计算法
- 橙子的总花费是 2个 × 4。
- 那么苹果的总花费就是 4 = $9。
- 所以每个苹果的价格是 3。
嗯,这个结果看起来是对的。不过,等等……我最好还是用另一种方法验证一下,以防出错。
思路二:代数方程法
- 设一个苹果的价格为 A。
- 根据题意,可以列出方程:(3 × A) + (2 × 13。
- 简化方程:3A + 4 = 13。
- 两边同时减4:3A = 9。
- 两边同时除以3:A = 3。
很好,两种不同的方法都得出了相同的结果。现在我可以确信答案是正确的了。下面我将为用户整理一个清晰的最终答案。
最终答案: 每个苹果的价格是 3美元。
综上,这三个阶段环环相扣、层层递进,共同构成了现代大语言模型完整且强大的训练流程。
总结:三个阶段的协同作用
下表总结了大语言模型训练三个核心阶段的要素对比:
| 阶段 | 核心目标 | 数据类型 | 形象比喻 |
| 预训练 | 学习语言规律,构建世界知识 | 海量互联网文本 | 读完图书馆里所有的书 |
| 监督微调 | 学会遵循指令,像助手一样对话 | 高质量的人机对话范例 | 学习导师给出的标准解题步骤 |
| 强化学习 | 自主探索,优化解决问题的策略 | “问题+最终答案”的练习题 | 独立完成大量练习题并自我订正 |
从吸收全人类的知识,到学会如何与人沟通,再到发展出解决问题的内在逻辑和策略,这三个阶段缺一不可。它们协同作用,将一个原始的、随机的神经网络,一步步精心雕琢,最终塑造成为我们今天所依赖的、功能强大的AI助手。
Andrej Karpathy把 LLM 的能力形象地比喻成一块奶酪。它在某些领域知识渊博,甚至能解决博士级别的物理难题,但在另一些看似简单的地方却存在着随机、不可预测的“孔洞”——比如简单的数字比较或字符计数。