
深入浅出大模型:预训练、监督微调、强化学习、RLHF
2025年年初随着DeepSeek的爆火,人们对LLM(Large Language Model,大语言模型)兴趣与日激增,很多人觉得LLM常常显得近乎魔法般神奇。接下来我们就来揭开LLM的神秘面纱。我想退一步,拆解一下LLM的基本原理——深入探讨这些模型是如何构建、训练和微调,最终成为我们今天所使用的AI系统的。这篇深入解析是我一直想做的,如果你有时间,本文绝对值得一看。
2025年年初随着DeepSeek的爆火,人们对LLM(Large Language Model,大语言模型)兴趣与日激增,很多人觉得LLM常常显得近乎魔法般神奇。接下来我们就来揭开LLM的神秘面纱。
我想退一步,拆解一下LLM的基本原理——深入探讨这些模型是如何构建、训练和微调,最终成为我们今天所使用的AI系统的。
这篇深入解析是我一直想做的,如果你有时间,本文绝对值得一看。
本文分为两大部分:
-
第1部分: 涵盖LLM的基础知识,包括从预训练到后训练、神经网络、幻觉现象(Hallucinations)以及推理过程。
-
第2部分:人工智能/人类反馈强化学习(RLHF)、o1模型研究、DeepSeek R1、AlphaGo。
让我们开始吧!首先,我们来看LLM是如何构建的。
第1部分
从整体上看,训练LLM主要包括两个关键阶段:预训练(Pre-training)和后训练(Post-training)。
1. 预训练(Pre-training)
在LLM能够生成文本之前,它首先必须学习语言的工作方式,而这一过程就是预训练——一个极其计算密集的任务。
步骤1:数据收集与预处理
训练LLM的第一步是收集尽可能多的高质量文本数据。目标是创建一个庞大且多样化的数据集,涵盖广泛的人类知识。
一个常见的数据来源是Common Crawl**,这是一个免费的、开放的网页爬取数据存储库,包含过去18年间约2500亿个网页的数据。然而,原始网页数据往往比较嘈杂——其中包含垃圾信息、重复内容和低质量文本,因此数据预处理至关重要。**
https://commoncrawl.org/
如果你对经过预处理的数据集感兴趣,FineWeb提供了一个整理后的Common Crawl版本,并已在Hugging Face上公开可用。
https://huggingface.co/spaces/HuggingFaceFW/blogpost-fineweb-v1
一旦文本语料库经过清理,就可以进行分词(Tokenization)处理。
步骤2:分词(Tokenization)
在神经网络处理文本之前,文本必须先转换为数值形式。这一过程就是分词,它将单词、子词或字符映射为唯一的数值token。
可以把token想象成构建语言模型的基本单元——所有语言模型的核心组件。在GPT-4中,可能的token数量为100277个。
一个常见的分词工具是Tiktokenizer,它允许你进行分词实验,并查看文本是如何被拆解为token的。
https://tiktokenizer.vercel.app/
你可以尝试输入一句话,看看每个单词或子词是如何被分配一系列数值ID的。
步骤3:神经网络训练(Neural Network Training)
一旦文本被分词处理,神经网络就会学习根据上下文预测下一个token。模型会接收一串输入token(例如“我正在烹饪”),然后通过一个庞大的数学表达式——即模型的架构——进行处理,以预测下一个token。
一个神经网络主要由两个关键部分组成:
-
参数(参数权重,Weights):通过训练学习得到的数值。
-
架构(数学表达式,Architecture):定义输入token如何被处理以生成输出的结构。
最初,模型的预测是随机的,但随着训练的进行,它逐渐学会为可能的下一个token分配概率。
当正确的token(例如“食”)被识别后,模型会通过反向传播(Backpropagation)来调整数十亿个参数(权重)。这是一个优化过程,通过提高正确预测的概率、降低错误预测的概率来强化模型的学习。
这个过程会在海量数据集上重复数十亿次。
基础模型(Base Model):预训练的产物
在这一阶段,基础模型已经学会了:
- 单词、短语和句子之间的关联
- 训练数据中的统计模式
然而,基础模型并未针对真实世界任务进行优化。你可以将其类比为一个高级自动补全系统——它能够基于概率预测下一个token,但缺乏良好的指令跟随能力。
基础模型有时会逐字复述训练数据,并且可以通过上下文学习(In-Context Learning)进行特定应用,即在提示(Prompt)中提供示例来引导模型的响应。但为了让模型真正有用且可靠,它还需要进一步训练。
2. 后训练(Post-Training):让模型更实用
基础模型是未经打磨的。为了让它更加实用、可靠、安全,需要进行后训练(Post-Training),即在更小、更专业的数据集上进行微调。
由于神经网络无法像传统软件那样被显式编程,我们只能通过训练它来“编程”它,即让它学习有结构的、带标注的数据集,这些数据代表了理想的交互示例。
后训练的方式
后训练阶段会创建专门的数据集,这些数据集包含结构化的示例,指导模型在不同情况下的回应方式。
-
指令/对话微调(Instruction/Conversation Fine-Tuning)
目标让模型学会遵循指令、执行任务、进行多轮对话、遵守安全规范、拒绝恶意请求等。例如,InstructGPT(2022),OpenAI聘请了约40名合同工来创建这些标注数据集。这些人工标注者编写提示(Prompts)并提供基于安全指南的理想响应。如今,许多数据集由AI自动生成,再由人工审核和编辑以确保质量。
-
领域特定微调(Domain-Specific Fine-Tuning)
目标使模型适应特定领域,如医学、法律、编程等。
此外,后训练还会引入特殊token——这些token在预训练阶段并未使用,它们有助于模型理解交互的结构。这些token可以标记用户输入的起始与结束,以及AI响应的起始位置,确保模型能够正确区分提示(Prompt)和回答(Reply)。
3. 推理(Inference)——模型如何生成新文本
推理(Inference)可以在任何阶段进行,甚至可以在预训练中途执行,以评估模型的学习效果。
当模型接收到一组输入token后,它会根据在训练过程中学到的模式,为所有可能的下一个token分配概率。
但模型并非总是选择最可能的token,而是会在概率分布中进行采样——类似于抛掷一个带偏向的硬币,其中高概率的token更有可能被选中。
这个过程会迭代进行,每个新生成的token都会成为下一次预测的输入。
由于token选择是随机的,即使相同的输入也可能产生不同的输出。随着推理的进行,模型可以生成并未直接出现在训练数据中,但符合统计模式的文本。
4. 幻觉(Hallucinations)——当LLM生成错误信息
幻觉(Hallucination)是指LLM生成虚假或错误的信息。
其根本原因在于:LLM并不“知道”事实——它只是根据训练数据预测最可能的单词序列。
在早期,LLM的幻觉问题十分严重。
例如,在下图的案例中,如果训练数据包含大量类似“谁是…”的问题,并且这些问题都有明确答案,那么模型会学习到:这类查询应该总是有一个自信的回答,即使它并没有相关知识。
因此,当被问到一个未知人物时,模型不会默认回答“我不知道”,因为这种模式在训练过程中并未被强化。相反,它会基于已有模式生成最可能的猜测,这往往会导致编造的信息。
如何减少幻觉?
方法一:说“我不知道”
提高事实准确性需要明确地训练模型去识别它不知道的内容——这比看起来要复杂得多。
这是通过自我询问(Self-Interrogation)来完成的,这是一个帮助定义模型知识边界的过程。
自我询问可以通过另一个AI模型来自动化,该模型生成问题以探测知识盲点。如果它生成了错误的答案,就会加入新的训练示例,其中正确的回应是:“我不确定。能否提供更多上下文?”
如果模型在训练中多次看到一个问题,它将为正确答案分配较高的概率。
如果模型以前没有遇到过这个问题,它会在多个可能的token之间更均匀地分配概率,从而使输出更加随机。没有单一token被认为是最可能的选择。
微调显式地训练模型处理低置信度的输出,并用预定义的回答来应对。例如,当我问ChatGPT-4o,“谁是 sjuehaxucwq xewdqdqw?”时,它正确地回应:“我不确定那是谁。能否提供更多上下文?”
方法二:进行网络搜索
一种更先进的方法是通过给予模型访问外部搜索工具,从而扩展模型的知识范围,超出其训练数据。
从高层来看,当模型检测到不确定性时,它可以触发一次网络搜索。然后,搜索结果会被插入到模型的上下文窗口中——本质上允许这些新数据成为模型的工作记忆的一部分。模型在生成响应时会参考这些新信息。
5. 模糊记忆与工作记忆
一般来说,LLM有两种知识访问方式。
-
模糊记忆模型在预训练过程中存储的知识。这是基于从大量互联网数据中学到的模式,但并不精确,也不可搜索。
-
工作记忆模型上下文窗口中的信息,在推理过程中可以直接访问。提供的任何文本都作为短期记忆,使模型能够在生成响应时回忆细节。
在上下文窗口中加入相关事实显著提高了响应的质量。
6. 自我认知
当被问到“你是谁?”或“是什么构建了你?”等问题时,LLM会根据它的训练数据生成一个统计上最合适的猜测,除非被显式地编程以准确回应。
LLM没有真正的自我意识,它们的回应依赖于训练过程中看到的模式。
为模型提供一致身份的一种方式是使用系统提示(System Prompt),通过设置预定义的指令来描述模型自身、其能力以及其局限性。
7. 结束语
第一部分就到这里!希望这能帮助你建立起对LLM工作原理的直觉。在第二部分,我们将深入探讨强化学习以及一些最新的模型。
第2部分
之前,我们讨论了训练LLM的前两个主要阶段:
现在,我们将深入探讨下一个主要阶段:RL**(Reinforcement Learning,强化学习)**。尽管预训练和SFT已经是成熟的方法,但RL仍在不断发展,并且已成为训练流程中的关键环节。
RL的目的是什么?
人类和LLM处理信息的方式不同。对于我们来说——像基本的算术——是直观的,但LLM只将文本看作一串token序列,这对LLM来说并不直观。相反,LLM能够在复杂的主题上生成专家级的回答,仅仅因为它在训练过程中见过足够多的示例。
这种认知差异使得人类注释者很难提供一组“完美”的标签,能够持续地引导LLM找到正确的答案。
RL弥补了这一差距,它允许模型从自身的经验中学习。
模型不仅仅依赖显式的标签,而是探索不同的token序列,并根据哪些输出最有用来获得反馈——奖励信号。随着时间的推移,模型学会了更好地与人类意图对齐。
RL背后的直觉
LLM是随机的——意味着它们的回答并不是固定的。即使是相同的提示,输出也会有所不同,因为它是从一个概率分布中采样的。
我们可以利用这种随机性,通过并行生成成千上万,甚至数百万个可能的响应。可以把它看作是模型在探索不同的路径——有些是好的,有些是差的。我们的目标是鼓励它更多地选择较好的路径。
为了做到这一点,我们让模型训练在那些导致更好结果的token序列上。与监督微调不同,在监督微调中,人类专家提供标签数据,强化学习则允许模型从自身的学习中获得进步。
模型发现哪些响应最有效,并在每个训练步骤后更新它的参数。随着时间的推移,这使得模型在未来收到相似提示时,更有可能生成高质量的答案。
但是,如何确定哪些响应是最好的?我们应该进行多少RL训练?这些细节是很复杂的,要做到精准并不简单。
RL并不是“新”的——它能超越人类专业水平(AlphaGo,2016)
RL的强大力量的一个很好的例子是DeepMind的AlphaGo,它是第一个击败职业围棋选手的AI,并最终超越了人类水平。
在2016年的《自然》杂志论文中(如下图所示),当一个模型纯粹通过SFT训练(给模型大量好的例子让其模仿)时,模型能够达到人类水平的表现,但永远无法超越它。
虚线代表韩国围棋选手李世石的表现。这是因为SFT关注的是复制,而非创新——它不能让模型发现超越人类知识的新策略。然而,RL使AlphaGo能够与自己对弈,改进策略,并最终超越人类的专业水平(蓝线)。
RL代表了AI的一个令人兴奋的前沿——在我们将模型训练在一个多样且具有挑战性的问题池中时,模型能够探索超越人类想象的策略,从而优化其思维策略。
RL基础回顾
让我们快速回顾一下典型RL设置的关键组成部分:
-
Agent(智能体) 学习者或决策者。它观察当前的状态(state),选择一个动作(action),然后根据结果(reward)更新其行为。
-
Environment(环境)智能体所操作的外部系统。
-
State(状态)在给定时间步t的环境快照。
在每个时间戳,agent在环境中执行一个动作,该动作将环境的状态改变为新的状态。智能体还会收到反馈,表明该动作的好坏。这个反馈称为奖励(reward),并以数字形式表示。正奖励鼓励该行为,负奖励则不鼓励该行为。
通过使用来自不同状态和动作的反馈,智能体逐渐学习出最佳策略,以便在时间上最大化总奖励。
策略
策略是Agent的决策规则。如果Agent遵循一个好的策略,它将始终做出正确的决策,从而在多个步骤中获得更高的奖励。
用数学术语来说,策略是一个函数,它确定给定状态下不同输出的概率:(πθ(a|s))。
价值函数
估计处于某个状态下的好坏程度,考虑长期期望奖励。对于LLM(大语言模型)而言,奖励可能来自人类反馈或奖励模型。
Actor-Critic架构
这是一个流行的强化学习设置,结合了两个组件:
-
Actor(演员)学习并更新策略(πθ),决定在每个状态下应该采取哪个动作。
-
Critic(评论者)评估价值函数(V(s)),为演员提供反馈,告知其选择的动作是否导致了好的结果。
工作原理:
-
演员基于当前策略选择一个动作。
-
评论者评估结果(奖励 + 下一个状态)并更新其价值估计。
-
评论者的反馈帮助演员优化策略,使未来的动作能够获得更高的奖励。
将其与LLM结合
状态可以是当前的文本(提示或对话),而动作则是生成的下一个token(词或子词)。奖励模型(例如人类反馈)告诉模型它生成的文本是好是坏。
策略是模型选择下一个token的策略,而价值函数则估计当前文本上下文在最终生成高质量响应方面的有益程度。
DeepSeek-R1
为了强调RL的重要性,接下来我们将探索DeepSeek-R1,这是一种推理模型,在保持开源的同时达到了顶尖的性能。该论文介绍了两个模型:DeepSeek-R1-Zero和DeepSeek-R1。
-
DeepSeek-R1-Zero仅通过大规模的RL进行训练,跳过了SFT。
-
DeepSeek-R1在此基础上构建,解决了遇到的挑战。
让我们深入探讨一下这些关键点。
1. RL算法:GRPO
一个关键的改变游戏规则的RL算法是GRPO (Group Relative Policy Optimisation,群组相关策略优化),它是广受欢迎的PPO(Proximal Policy Optimisation,近端策略优化)的变种。GRPO在2024年2月的《DeepSeekMath》论文中被引入。
为什么选择GRPO而不是PPO?
PPO在推理任务中的表现较差,原因如下:
-
依赖于评论者模型(Critic model)。
-
PPO需要一个单独的评论者模型,实际上会增加内存和计算开销。
-
训练评论者模型在处理细致或主观任务时可能变得复杂。
-
高计算成本,因为RL流水线需要大量资源来评估和优化响应。
-
绝对奖励评估。
当依赖于绝对奖励时——即只有一个标准或度量来判断答案是“好”还是“坏”——它很难捕捉到不同推理领域中开放性任务的细微差别。
GRPO是如何解决这些挑战的?
GRPO通过使用相对评估而消除了评论者模型——响应是在一个组内进行比较,而不是通过固定标准来判断。
可以想象学生在解决问题。与其让老师单独批改每个学生的作业,不如让他们比较答案,从中学习。随着时间的推移,表现会趋向于更高质量。
GRPO如何融入整个训练过程?
GRPO通过修改损失计算方式,而保持其他训练步骤不变:
1. 收集数据(查询 + 响应)
对于LLM,查询就像是问题。
旧策略(模型的旧快照)为每个查询生成多个候选答案。
2. 分配奖励——每个组中的响应都会被评分(即“奖励”)。
3. 计算GRPO损失通常,你会计算损失——这显示了模型预测与真实标签之间的偏差。然而,在GRPO中,你测量的是:
3.1 新策略生成过去响应的可能性有多大?
3.2 这些响应相对更好还是更差?
3.3 应用裁剪以防止极端更新。
这将得到一个标量损失。
4. 反向传播 + 梯度下降
反向传播计算每个参数对损失的贡献。
梯度下降更新这些参数以减少损失。
经过多次迭代,这会逐渐调整新策略,使其更倾向于产生高奖励响应。
5. 偶尔更新旧策略,使其与新策略匹配。这为下一轮比较刷新了基准。
2. CoT(Chain of Thought,思维链)
传统的LLM训练流程是预训练 → SFT → RL。然而,DeepSeek-R1-Zero跳过了SFT,允许模型直接探索CoT推理。
就像人类在思考一个棘手问题时,CoT使得模型能够将问题分解为中间步骤,从而增强复杂的推理能力。OpenAI的o1模型也利用了这一点,正如其2024年9月报告中所指出的:o1的表现随着更多RL(训练时计算)和更多推理时间(测试时计算)的增加而提升。
DeepSeek-R1-Zero表现出反思性倾向,能够自我精炼推理过程。论文中的一个关键图表显示,随着训练的进行,思考的深度增加,导致了更长(更多token)、更详细且更优的响应。
在没有显式编程的情况下,它开始重新审视过去的推理步骤,从而提高了准确性。这突显了思维链推理作为RL训练的一种涌现特性。
模型还经历了一个“啊哈时刻”(见下图)——这是一个令人着迷的例子,展示了RL如何导致意想不到且复杂的结果。
注意:与DeepSeek-R1不同,OpenAI没有在o1中展示完整的推理链条,因为他们担心蒸馏风险——即有人试图模仿这些推理痕迹,通过模仿恢复大量的推理性能。相反,o1只会总结这些思维链条。
RLHF(Reinforcement learning with Human Feedback,带有人工反馈的强化学习)
对于具有可验证输出的任务(例如数学问题、事实问答),AI的回答可以轻松评估。但对于像总结或创意写作这样没有单一“正确”答案的领域,如何处理呢?
这就是人工反馈的作用所在——但是天真的强化学习方法是不可扩展的。
让我们用一些任意数字来看一下朴素的方法。
这需要十亿次人工评估!这太昂贵、缓慢且不可扩展。因此,一个更智能的解决方案是训练一个AI“奖励模型”来学习人类的偏好,从而大大减少人工工作量。
与绝对评分相比,对响应进行排名也更容易且更直观。
RLHF的优点:
-
可以应用于任何领域,包括创意写作、诗歌、总结以及其他开放性任务。
-
对输出进行排名比人工标签生成创意输出更容易。
RLHF的缺点:
-
奖励模型是近似的——它可能无法完美反映人类的偏好。
-
RL擅长利用奖励模型的漏洞——如果运行时间过长,模型可能会利用这些漏洞,生成荒谬的输出但仍获得高分。
需要注意的是,RLHF与传统的RL不同。
对于可以进行经验验证的领域(例如数学、编程),RL可以无限运行并发现新的策略。而RLHF则更像是一个微调步骤,用来将模型与人类的偏好对齐。
黑客/网络安全学习路线
今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。
网络安全学习资源分享:
下面给大家分享一份2025最新版的网络安全学习路线资料,帮助新人小白更系统、更快速的学习黑客技术!
一、2025最新网络安全学习路线
一个明确的学习路线可以帮助新人了解从哪里开始,按照什么顺序学习,以及需要掌握哪些知识点。
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
读者福利 |
CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享 (安全链接,放心点击)
我们把学习路线分成L1到L4四个阶段,一步步带你从入门到进阶,从理论到实战。
L1级别:网络安全的基础入门
L1阶段:我们会去了解计算机网络的基础知识,以及网络安全在行业的应用和分析;学习理解安全基础的核心原理,关键技术,以及PHP编程基础;通过证书考试,可以获得NISP/CISP。可就业安全运维工程师、等保测评工程师。
L2级别:网络安全的技术进阶
L2阶段我们会去学习渗透测试:包括情报收集、弱口令与口令爆破以及各大类型漏洞,还有漏洞挖掘和安全检查项目,可参加CISP-PTE证书考试。
L3级别:网络安全的高阶提升
L3阶段:我们会去学习反序列漏洞、RCE漏洞,也会学习到内网渗透实战、靶场实战和技术提取技术,系统学习Python编程和实战。参加CISP-PTE考试。
L4级别:网络安全的项目实战
L4阶段:我们会更加深入进行实战训练,包括代码审计、应急响应、红蓝对抗以及SRC的挖掘技术。并学习CTF夺旗赛的要点和刷题
整个网络安全学习路线L1主要是对计算机网络安全的理论基础的一个学习掌握;而L3 L4更多的是通过项目实战来掌握核心技术,针对以上网安的学习路线我们也整理了对应的学习视频教程,和配套的学习资料。
二、技术文档和经典PDF书籍
书籍和学习文档资料是学习网络安全过程中必不可少的,我自己整理技术文档,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,(书籍含电子版PDF)
三、网络安全视频教程
对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的网安视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。
四、网络安全护网行动/CTF比赛
学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。
五、网络安全工具包、面试题和源码
“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。
面试不仅是技术的较量,更需要充分的准备。
在你已经掌握了技术之后,就需要开始准备面试,我们将提供精心整理的网安面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。
如果你是要找网安方面的工作,它们绝对能帮你大忙。
这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。
参考解析:深信服官网、奇安信官网、Freebuf、csdn等
内容特点:条理清晰,含图像化表示更加易懂。
内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…
**读者福利 |**
CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享 (安全链接,放心点击)
更多推荐
所有评论(0)