爆肝万字干货!大模型强化学习全解析:从PPO到GRPO,小白也能掌握
本文系统介绍了强化学习与监督学习的差异,详细解析了RL的核心要素和三大主流方法,并聚焦大模型RL的特殊性。重点阐述了RLHF和DPO两大主流对齐方法,以及最新的GRPO和GSPO等优化算法。通过数学推导和实例说明,帮助读者理解从传统RL到大模型RL的演进过程,为开发者提供了完整的理论框架和实践指导。
一、强化学习 vs 监督学习
1. 监督学习(Supervised Learning, SL)
你对监督学习一定再熟悉不过。它的核心逻辑很直观:我们收集一堆"问题-答案"对,让模型学习模仿标准答案。
比如,给模型看一张猫的图片(输入 ),告诉它这"是猫"(标签 ),模型的目标就是学会这种从输入到输出的映射关系。
其核心目标是最小化预测误差,用数学语言表达就是最小化损失函数 :
这个公式可以这样拆解理解:
-
损失函数,衡量模型 的预测错误程度,越小越好
-
对整个数据集 的期望,实际训练中用mini-batch平均来近似
-
一个训练样本,x 是输入,y 是真值标签
-
对输入 x 的预测输出
-
单样本的损失计算(如交叉熵、MSE等)
总结一下:监督学习的核心是"拟合一个固定分布的数据集"。数据是静态的、有明确标签的,模型学习的是一个"一步到位"的预测任务,它不会影响数据本身。模型就像一个被动学习者,努力记住标准答案,却无法改变学习环境。
2. 强化学习(Reinforcement Learning, RL)
而强化学习则彻底改变了这种学习范式。它关注的不是"标准答案"本身,而是如何在动态环境中做出最优的序列决策。
想象一下教一个机器人走迷宫:你不会给它每一步的"标准答案",而是让它自己去探索。
它在某个位置(状态 )决定走一步(动作 ),然后你告诉它这一步走得好不好(奖励 ),比如撞墙了就扣分,离终点近了就加分。
机器人需要通过不断试错,学会在不同位置做出最佳选择,最终成功走出迷宫。
与监督学习的关键区别在于:智能体既是学习者,也是行动者。
它的每个选择都会改变环境状态,从而影响后续的学习数据。
这种"行动-反馈-再行动"的闭环,正是强化学习的精髓所在。
其核心目标是学习一个策略 ,来最大化在整个“生命周期”内获得的累积奖励,用数学语言表达就是最大化目标函数 :
这个公式可以这样拆解理解:
1.:目标函数,衡量策略 - 的"优秀程度",越大越好
2.:在策略 - 生成的轨迹上取期望,与SL的关键不同在于数据分布由策略本身决定
3.:折扣累积奖励, 是时刻的即时奖励, 是折扣因子
- • 接近 0:只关心眼前奖励(短视)
- • 接近 1:重视长期收益(有远见,如下棋时为了最终胜利牺牲当前利益)
为什么需要折扣因子?
折扣因子的设置背后有着深刻的数学、经济学和现实考量。从数学角度看, 确保无限长轨迹的累积奖励有界收敛,避免奖励值趋向无穷大。具体来说,几何级数 只有在 时才收敛。
从现实角度考虑,未来充满了不确定性。环境可能随机变化,智能体可能意外"死亡",或者任务可能提前终止。就像在现实世界中,今天到手的100元比明天承诺的100元更有价值,因为前者是确定的,后者存在风险。这种"时间偏好"在经济学中被称为贴现率,比如年利率5%意味着今天的100元相当于一年后的105元。
从智能决策的角度,折扣因子还能避免"无限延迟奖励"的悖论。想象一下,如果没有折扣,AI可能为了等待某个"最大奖励"而永远不采取行动,这显然不合理。折扣因子迫使智能体在合理时间内寻求奖励,平衡当前收益与未来可能性。
举个例子:假设智能体在玩迷宫游戏,每走一步都能获得1分,到达终点还能额外获得10分。
如果 ,智能体可能选择在迷宫里无限徘徊,永远不走到终点,因为每多走一步都能多得1分,累积奖励没有上限。
但如果 ,每多走一步获得的奖励都会被打折(比如第10步的奖励权重只有 ),这样智能体就会倾向于尽快到达终点,避免奖励被过度折扣。
这体现了折扣因子在实际决策中的作用:让智能体权衡“现在行动”与“未来收益”,防止拖延和奖励膨胀。
值的选择直接影响智能体的"远见程度"。当 时,10 步后的奖励权重仍有约 0.904,适合需要长期规划的任务如游戏AI;而 时,10 步后的奖励权重降至约 0.348,更适合关注中短期收益的场景如推荐系统。
实际应用中,机器人控制通常使用 ,股票交易可能选择 来平衡短期波动和长期趋势。
总结一下:如果说监督学习像是在做"填空题"——给定固定的问题,寻找标准答案;那么强化学习就像是在下棋——不仅要考虑当前这一步,还要权衡长远利益,在充满不确定性的环境中寻找最优策略。
3. 核心差异总结

二、RL的核心要素
让我们从一个简单的例子开始理解RL的核心框架。想象一下你在训练一个AI玩迷宫游戏:AI需要从起点找到出口,每次可以向上下左右四个方向移动一格,碰到墙壁会停留原地,找到出口就获胜。
在这个例子中,AI就是智能体(Agent),迷宫就是环境(Environment)。
智能体与环境的每一次交互都构成了一个时间步:AI观察当前的迷宫位置,选择一个移动方向,环境告诉AI这个移动的结果(新位置和是否获得奖励)。
这个过程可以用马尔可夫决策过程(Markov Decision Process, MDP) 来精确描述,它包含了五个核心要素。
状态空间 定义了智能体可能所处的所有情况。在迷宫游戏中, 就是迷宫中的所有格子位置;对于深度学习背景的读者,这相当于DL中的输入空间。
在围棋AI中, 是所有可能的棋局状态(约有 个);在机器人控制中, 是传感器的读数(位置、速度、角度等);在大模型文本生成中,是当前可用于指导决策的所有信息,通常包括指令(prompt)+ 已生成的token序列 + 相关上下文。
动作空间 定义了智能体可以执行的所有操作。迷宫游戏中的 是 {上、下、左、右} 四个离散动作;这对应着DL中的输出空间。
动作空间分为两种类型:离散动作空间(如游戏操作、文本生成的下一个token选择)和连续动作空间(如机器人的关节角度、自动驾驶的方向盘转角)。
状态转移概率
描述了环境的动态规律:如果在状态 执行动作 ,转移到新状态 的概率。
在迷宫游戏中,如果AI在位置A选择向右移动,可能到达位置B(如果没有墙)或停留在A(如果有墙)。
这个概率函数类似于DL中的条件概率模型,但关键区别在于它通常是未知的——我们不知道环境的确切运行规律。
更重要的是,MDP假设了马尔可夫性:下一状态只依赖于当前状态和动作,与历史路径无关。
奖励函数 定义了行动的即时反馈。在迷宫游戏中,到达出口可能获得+100分,撞墙可能-1分,普通移动0分。这类似于DL中损失函数的相反数,但我们要最大化奖励而不是最小化损失。
奖励函数的设计充满挑战:它往往是稀疏的(大多数步骤奖励为0,只有关键时刻才有反馈)和延迟的(好动作的效果可能在很远的未来才体现)。
如何设计合理的奖励函数来引导智能体学习期望的行为,是RL中的核心难题。
折扣因子 平衡了当前奖励与未来奖励的重要性,我们前面已经详细讨论过。
第六个核心要素:轨迹
在理解了上述五个MDP要素后,我们还需要介绍轨迹(Trajectory)的概念。
轨迹是指智能体从开始到结束的完整交互序列:
其中:
- • :时刻 的状态
- • :在状态 下执行的动作
- • :执行动作 后获得的奖励
- • :轨迹的结束时刻
轨迹的直观理解:
- • 在迷宫游戏中,一条轨迹就是AI从起点到终点的完整移动路径记录
- • 在下棋游戏中,一条轨迹就是整盘棋的落子序列
- • 在对话系统中,一条轨迹就是一次完整对话的交互过程
轨迹与MDP要素的关系:
- • 轨迹由MDP的五要素自然生成:智能体根据策略 选择动作,环境根据状态转移概率 更新状态,根据奖励函数 给出奖励
- • 轨迹的概率:
- • 轨迹的总奖励:
理解了这六个要素后,智能体的核心任务就很清楚了:学习一个策略,将状态映射到动作。在DL的视角下,策略就是一个神经网络:输入状态 s,输出动作的概率分布。
对于离散动作(如迷宫游戏),网络使用softmax输出四个方向的概率;对于连续动作(如机器人控制),网络输出高斯分布的均值和方差,从中采样具体动作。
这里体现了RL与DL的根本区别:DL中模型是被动的,输入数据分布固定;RL中智能体是主动的,它的动作会改变环境状态,从而影响未来的数据分布。
这就形成了一个"动作-状态-奖励"的闭环,智能体必须在这个闭环中学习最优的决策策略。同时,RL还面临着DL中不存在的探索与利用困境:是尝试未知但可能更好的动作,还是选择已知能获得奖励的动作?
马尔可夫性假设是整个框架的基石,它大大简化了问题复杂度。就像DL中的特征工程一样,如何构造包含充分信息的状态表示是RL中的关键挑战。
对于序列决策问题,我们可能需要使用RNN或LSTM来将历史信息压缩到当前状态表示中,以满足马尔可夫性要求。
三、RL的三大主流方法
让我们继续用迷宫游戏的例子来理解RL算法的设计思路。想象一下,如何让AI学会走迷宫?有三种不同的思路:
- • 第一种是先评估"在每个位置,往哪个方向最好",然后选择最好的方向;
- • 第二种是直接学习"在什么位置应该怎么选择";
- • 第三种是结合前两种,既评估方向的好坏,又直接学习选择策略。
这三种思路对应着RL的三大主流方法。
基于值函数的方法
基于值函数的方法核心思想是学习一个"评分函数",告诉我们在每个状态下每个动作有多好。在迷宫游戏中,这相当于学习一个"迷宫地图的评分表":在格子上选择向左走能得到多少分,向右走能得到多少分,等等。
这个评分函数在RL中被称为Q函数,表示在状态 下执行动作 后,按照某个策略继续行动能获得的期望累积奖励。
Q-Learning是最经典的值函数方法,它通过一个简单的迭代规则来逼近最优的Q函数:
这个公式的美妙之处在于其层次化的结构,让我们从内到外逐层解析:
最内层: - 对未来的最优估计
这是对未来状态 的价值评估。在当前位置执行动作 后,我们到达了新状态 。从这个状态开始,我们会选择最优的动作来获得最大价值。
在迷宫游戏中,这意味着:“到了下一个格子后,从那里开始我们能获得的最大价值是多少”。
第二层: - 即时奖励 + 未来价值
这部分结合了当前的即时奖励和未来的折算价值。 是执行动作 后立即获得的奖励(比如在迷宫中撞墙了-1分,接近出口了+1分)。 是未来价值的折算,因为未来的奖励不如现在的有价值(前面讨论的折扣因子)。
整个表达式代表了对"在状态 执行动作 的总价值"的新估计。
第三层:
- 预测误差
这是核心的时间差分(TD)误差。它比较了"我们对 价值的新估计"和"我们之前的估计 "之间的差距。
如果这个误差为正,说明我们之前低估了这个动作的价值;如果为负,说明我们高估了。这就像在迷宫中,你原以为向左走价值是5分,但实际探索后发现它其实值8分,那么误差就是3分。
最外层:误差 - 价值更新
最后,我们用学习率 来控制更新的幅度。 通常是一个较小的数(如0.1),表示我们不会完全相信单次经验,而是逐步调整价值估计。这就像在迷宫中,即使你某次向左走获得了很好的结果,你也不会完全改变对"向左走"的判断,而是稍微调整一下。
完整的理解链条:
1.探索未知:在状态 选择动作
2.获得反馈:环境给出即时奖励 和新状态
3.展望未来:从新状态出发,选择最优动作的价值
4.形成新判断:结合即时和未来,得到新的总价值估计
5.对比学习:计算新判断与旧判断的差距(TD误差)
6.渐进更新:用学习率控制,逐步调整Q值
这个公式的天才之处在于它实现了自举(Bootstrapping):不需要等待游戏结束就能更新价值估计,每一步都能学习,这大大提高了学习效率。同时它保持了最优性原理:最优策略的子策略也是最优的,从任何状态开始的决策都应该是最优的。
为了更直观地理解Q值表格,让我们来看一个具体的迷宫例子。假设有一个3×3的简单迷宫:
S . .. # .. . E
其中 S 是起点,E 是终点,# 是墙壁,. 是可通行的格子。动作空间是 {上、下、左、右}。
在这个迷宫环境中,我们假定如果智能体撞到墙壁,并不会导致游戏结束或“死亡”。相反,智能体会停留在原地,状态保持不变。同时,系统会给予智能体一个负奖励(例如-1分)作为惩罚,以此引导其学习避免撞墙。之后,智能体继续进行下一步的决策。
初始Q值表格可能如下(假设初始值为0):

学习过程中的Q值更新:
假设智能体在起点(0,0),随机选择向右移动到(0,1),获得奖励0。根据Q-Learning公式:
向右向右向右
由于所有Q值初始为0,所以更新后 向右。
经过几次(不充分)探索后,智能体发现到达终点(2,2)能获得+100奖励,Q值表格变成:

Q值的意义:
- • 在起点(0,0),向下走的价值最高(80),因为这条路径离终点最近
- • 终点(2,2)的Q值为0,因为游戏结束,没有未来奖励
- • 墙壁位置(1,1)不在表格中,因为无法到达
决策过程:
当智能体在起点(0,0)时,它查看Q值表格:
- • 向上:64(撞墙,会留在(0,0)并扣分)
- • 向下:80 ✅ 选择这个(可以移动到(1,0))
- • 向左:64(撞墙,会留在(0,0)并扣分)
- • 向右:64(可以移动到(0,1))
实际上,经过充分学习后,撞墙动作的Q值应该很低,因为它们会导致负奖励且无法前进。比如正确的收敛Q值可能是:

这样设计的好处在于,它更贴近现实生活中“撞墙会受惩罚”的情境,使得智能体能够在不断试错中明确学会规避错误行为,同时不会因为一次失误就导致游戏提前结束,从而有机会从错误中持续学习和改进。
Q值表格的最大优势在于其显式性和可解释性:每一个状态-动作对的价值都被明确记录,决策时只需查表并比较即可,便于分析和理解智能体的行为选择。
然而,这种方法也存在明显的局限。
首先,Q值表格的内存消耗随状态和动作空间的增大而迅速膨胀,对于大规模环境几乎不可行;
其次,它缺乏泛化能力,无法对未见过的状态做出合理推断;
最后,随着状态空间维度的增加,Q值表格面临“维数灾难”,完全无法扩展到复杂任务。
这正好解释了为什么需要用深度神经网络来近似Q函数,解决Q值表格的扩展性问题。
但直接将神经网络用于Q-Learning会遇到两个严重问题。
样本相关性问题:RL中交互数据是按时间顺序产生的,连续的游戏画面非常相似,这就像用未打乱的数据集训练神经网络,会导致过拟合和训练不稳定。
目标不稳定问题:更新Q网络时,目标值本身依赖于网络的参数,就像在追逐一个移动的目标,训练很难收敛。
DQN提出了两个精妙的解决方案。经验回放:将游戏交互数据存储在缓冲池中,训练时随机采样,打破时序相关性,这就像DL中打乱数据集一样。
目标网络:维护一个旧版本的Q网络专门用于计算目标值,定期更新,这就像DL中冻结预训练模型的部分参数进行微调,确保训练稳定性。
基于策略的方法
基于策略的方法跳过了"评估价值"这一步,直接学习"在什么状态下应该怎么选"。
在迷宫游戏中,这相当于直接训练一个网络,输入当前位置,输出四个方向的选择概率。
策略网络的优化目标是最大化期望累积奖励,但直接计算这个梯度很困难。策略梯度定理给出了一个优雅的解决方案。
让我们从简单到复杂,一步步理解这个重要的公式。
第一步:我们想要什么?
我们的目标很简单:如果某个动作能获得高奖励,就增加选择它的概率。
用数学语言表达,我们想要计算:
和DL里的优化算法类似,这个公式的意思是:如何调整参数 才能最大化期望累积奖励?
第二步:从期望到具体计算形式
目标函数 是在策略 生成的轨迹上取期望。一个轨迹 的概率是:
因此目标函数可以写成:
其中 是轨迹 的总奖励。
第三步:对目标函数求导
核心困难: 依赖于 ,因为动作选择概率 依赖于参数。
这个问题体现了强化学习与监督学习的本质区别。在监督学习中,数据分布是固定的,我们可以直接对损失函数求导;但在强化学习中,轨迹概率
完全由策略参数 决定,意味着调整参数会全局性地改变整个轨迹的概率分布。更重要的是,被期望的量(概率分布本身)依赖于求导的变量,这违反了常规期望运算的条件独立性假设,我们不能简单地交换期望和梯度的顺序。
这个困难反映了RL"在交互中学习"的本质:智能体的每个决策都会影响后续的学习数据,形成复杂的反馈循环。
第四步:应用概率梯度的对数恒等式
这是最关键的一步,因为它巧妙地化解了第三步中的核心困难。对任何概率分布 ,我们有:
为什么这一步如此关键?
1.这个恒等式将"对概率求导"转化为"对对数概率求导"。对数函数的导数计算更简单,更重要的是,它将复杂的概率梯度问题转化为可以直接处理的形式。
2.通过这个变换,我们将 表达为 。
这样,原问题中的参数依赖性被巧妙地分离了出来—— 作为权重,而梯度计算只针对对数项。
3.将这个变换代入原梯度公式后,求和问题转化为了期望问题,而期望可以通过采样来估计,彻底解决了轨迹空间指数爆炸的计算困难。
4.这个变换使得我们不再需要枚举所有可能的轨迹,而是可以通过从策略 中采样实际轨迹来估计梯度。这正是强化学习"在交互中学习"的数学基础。
直观理解:这个恒等式将一个看似无法解决的数学难题,转化为一个可以通过实际采样经验来学习的可计算问题。
第五步:应用对数概率技巧
现在我们将第四步的对数概率技巧应用到第三步的梯度表达式中:
这一步的核心作用是将对概率的求导转化为对对数概率的求导,同时将求和形式转化为期望形式:
但这还不够,我们需要进一步分解 才能得到可计算的梯度表达式。
第六步:分解轨迹概率的对数
轨迹概率的对数可以分解为:
对参数求导时,只有策略项依赖于 :
第七步:得到轨迹形式的最终结果
现在将前面的所有步骤整合起来:
首先,应用对数概率技巧将轨迹概率梯度转化为期望形式:
然后,将步骤6中分解的轨迹对数概率代入:
这就是REINFORCE算法的理论基础!
第八步:从轨迹奖励到动作价值(让奖励更精准)
在第七步得到的REINFORCE算法中,我们需要用整个轨迹的总奖励 来更新轨迹中每一个动作的决策。这就像给一个团队的所有成员打同样的评分,无论每个人表现如何,这显然有问题。
让我们用一个具体的数值例子来说明这个问题:
假设在迷宫游戏中,智能体走了3步到达终点,获得+10分奖励, = 0.9。
- • 轨迹:
- • 整条轨迹的累积奖励:
按照REINFORCE算法,我们会用24.7来更新所有三个动作:
- •
- •
- •
这公平吗? 显然不公平:
- • 是起点(离终点最远),它的贡献应该最小
- • $a_24 是最后一步(直接到达终点),它的贡献应该最大
- • 但现在三者都被赋予了同样的权重24.7
问题的本质是什么?
REINFORCE算法的问题在于它混淆了两个概念:
- • “从某个时刻开始的未来奖励”(我们真正想要的)
- • “整条轨迹的总奖励”(REINFORCE实际使用的)
一个自然的改进思路:既然我们关心的是"在状态 下选择动作 能带来多少未来奖励",为什么不直接计算这个值呢?
这就引出了动作价值函数(Action-Value Function) 的概念。
什么是动作价值函数?
的定义非常自然:在状态 s 下执行动作 a 后,按照策略 继续行动能获得的期望累积奖励
回到我们的例子:
- • = 从起点开始的期望累积奖励 ≈ 24.7
- • = 从中间位置开始的期望累积奖励 ≈ 19
- • = 从终点前一步开始的期望累积奖励 ≈ 10
注意这里的递归关系:
- •
- •
为什么 比 更合理?
回答的是:“在某个特定状态下选择某个特定动作,长期来看能得到多少奖励?”
这个概念与我们的直觉完全一致:
- • 它只关注从当前决策点开始的未来奖励
- • 它是一个期望值,考虑了所有可能的情
况 - • 它能够公平地评估每个决策点的贡献
数学上的联系:
轨迹总奖励 可以看作是从每个状态-动作对开始的未来奖励之和,因此:
其中 是从时刻 到轨迹结束的部分轨迹。
替换后的梯度公式:
用 替代 后,策略梯度变成了:
直观理解:
如果在状态 s 下选择动作 a 的长期价值为正(),就增加这个动作的概率
如果长期价值为负 (),就减少这个动作的概率
每个动作都根据自己的实际贡献得到更新,而不是被整条轨迹的表现"绑架"
这样做的好处:
- • 更精准的归因:每个动作的更新基于其自身的长期价值,而不是整条轨迹的价值
- • 更低的方差:避免了"好动作被坏轨迹连累"的问题(就像好学生因为小组其他成员表现差而得低分)
- • 更高效的学习:智能体能够准确识别哪些决策是真正有价值的,学习速度更快
第九步:最终公式及其意义
经过上述完整的推导,我们得到了策略梯度定理的最终形式:
这个公式的直观解释:
- • :告诉我们如何调整参数来增加在状态 下选择动作 的概率
- • :告诉我们这个动作的长期价值有多高
期望符号:对所有可能出现的状态-动作对进行平均
核心思想:如果某个动作的长期价值为正(),我们就朝着增加其选择概率的方向调整参数;如果价值为负,就减少其选择概率。
这就像在迷宫学习中:如果某个方向最终让你走到了出口(高价值),下次遇到相同情况时就更倾向于选择这个方向;如果某个方向让你撞墙(低价值),就避免选择它。
推导过程的关键洞察总结:
- • 从期望到梯度:将最大化期望的问题转化为计算梯度的问题
- • 对数概率技巧:用 来处理概率分布的参数依赖
- • 轨迹分解:将复杂的轨迹概率分解为简单的策略概率乘积
- • 期望转采样:将求和期望转化为从策略中采样的经验平均
- • 简化计算:用动作价值 替代整个轨迹奖励
这样,我们就从理论目标得到了可以实际计算的梯度公式!
REINFORCE是最经典的策略梯度算法,它用完整轨迹的累积奖励来估计动作价值。虽然方法简单直接,但策略梯度存在高方差问题:单次轨迹的奖励可能充满随机性,使得梯度估计很不稳定。
比如在一个迷宫中你可能因为偶然找到了一条近路而获得高奖励,但这并不意味着你过去选择的每一步都是最优的。
尽管如此,基于策略的方法有其独特优势。它天然适合连续动作空间,比如机器人控制中需要精确控制关节角度,策略网络可以直接输出动作的均值和方差。
它还能学习随机策略,在某些需要随机性的任务中很重要,比如石头剪刀布游戏必须随机出招。
Actor-Critic方法
Actor-Critic方法取两者之长,用值函数评估动作好坏来指导策略学习,从而降低策略梯度的方差。在这个框架中,有两个网络:Actor网络负责选择动作,Critic网络负责评估动作的价值。
但在介绍接下来的内容之前,我们需要先理解另一个重要概念:状态价值函数(State Value Function)。
什么是状态价值函数?
表示在状态 下,按照策略 继续行动能获得的期望累积奖励:
与 的关键区别:
:回答的是"如果我现在处于状态 s,长期来看能获得多少奖励?"(不指定具体动作)
:回答的是"如果我现在处于状态 s 并选择动作 a,长期来看能获得多少奖励?"(指定了具体动作)
让我们用一个迷宫例子来说明:
假设智能体在一个3×3迷宫的某个位置(1,1),有四个可能的动作:

那么这个状态的期望价值就是所有动作价值的加权平均:
向上向下向左向右
如果策略 在每个方向上的选择概率都是0.25(均匀分布),那么:
数学关系:
与 之间存在以下关系:
也就是说,状态价值是所有动作价值按照策略概率的加权平均。
为什么要引入 ?
- • 降低方差: 作为基准值(baseline),可以减少梯度估计的方差
- • 相对评估:在某些情况下,我们更关心"这个动作比平均水平好多少",而不是它的绝对价值
- • 计算效率:在某些算法中,学习 比学习所有 更高效
优势函数(Advantage Function)
有了 的概念,我们就可以理解为什么要用优势函数了:
优势函数的直观含义:
- • :动作 a 在状态 s 下比平均水平要好
- • :动作 a 在状态 s 下比平均水平要差
- • :动作 a 在状态 s 下表现平平
继续我们的迷宫例子:
- • (平均期望价值)
- • 向右 = 20
- • 因此:向右(比平均好7.5)
- • 向下
- • 因此:向下(比平均差7.5)
为什么优势函数更有效?
优势函数告诉我们"这个动作比平均水平好多少"。这在实际决策中非常有用:
1.在不同场景下做出合理选择:
- • 在一个"所有选择都很差"的状态下(比如迷宫的死胡同),一个"相对不那么差"的动作仍然值得选择
- • 在一个"所有选择都很好"的状态下(比如即将到达终点),即使是一个不错的动作,如果比平均水平差,也应该避免
2.更稳定的训练:
- • 使用优势函数可以减少梯度估计的方差
- • 因为它减去了基准值 V^\pi(s),专注于评估"额外收益"
A2C算法
A2C(Advantage Actor-Critic)是现代深度强化学习中最重要的算法之一。它的核心思想是用优势函数(Advantage Function)来指导策略更新,从而降低方差并提高学习效率。
优势函数的核心价值
在传统的Actor-Critic方法中,我们直接用动作价值 来指导策略更新,但这存在一个问题:高方差。
想象一下在迷宫游戏中,即使你选择了"向右"这个好动作,但由于环境的随机性(比如随机生成的奖励),你获得的实际奖励可能时高时低。这种波动会使得训练变得不稳定。
优势函数通过减去基准值(baseline),也就是前文介绍的状态价值函数来解决这个问题:
直观理解:
- • :动作 比平均水平更好
- • :动作 比平均水平更差
- • :动作 表现平平
这就像评分系统中,我们不仅关心"这个学生考了多少分",更关心"他比班级平均分高多少"。
A2C的具体实现
A2C算法包含两个关键组件:
1.Actor网络(策略网络):
- • 输入:状态 (如迷宫中的位置)
- • 输出:动作概率分布
- • 更新目标:最大化优势加权的策略梯度
2.Critic网络(价值网络):
- • 输入:状态 s
- • 输出:状态价值估计 V_\phi(s)
- • 更新目标:最小化价值估计误差
训练流程:
1.数据收集:用当前策略 在环境中收集轨迹数据
2.价值更新:用时间差分(TD)误差更新Critic网络:
误差
3.策略更新:用优势函数更新Actor网络:
其中
A2C的数学优势
使用优势函数的好处是显著降低方差。让我们用一个具体例子来说明:
假设在迷宫的某个位置,四个动作的Q值都为10,但这是因为在那个位置环境本身就很友好(比如离终点很近)。如果我们直接用Q值指导策略,可能会过度鼓励所有动作。但如果使用优势函数:
- • 如果 (这个位置的平均价值)
- • 那么
- • 这意味着虽然这些动作看起来不错,但只是"占了位置的光"
相反,如果某个动作确实比其他动作更好:
- • 向右,其他动作Q值为10
- • (加权平均)
- • 向右(确实更好)
- • 其他(相对较差)
A3C算法
A3C(Asynchronous Advantage Actor-Critic)[1]
是DeepMind在2016年提出的突破性算法,它解决了传统深度强化学习的两个核心问题:数据相关性和训练效率。
异步并行机制
A3C的核心创新是多个工作智能体(Worker)并行探索:
- • 全局网络:维护一份共享的参数(全局Actor和Critic)
- • 工作智能体:每个智能体拥有独立的网络副本,在不同的环境实例中探索
- • 异步更新:每个工作智能体定期将梯度更新到全局网络,无需等待其他智能体
直观类比:想象训练一个团队走迷宫。传统方法就像让一个人反复练习,而A3C就像让多个人同时在不同迷宫中练习,然后定期分享经验。这样不仅效率更高,还能避免"只在一个迷宫中形成的偏见"。
A3C的完整算法流程
1.初始化:创建全局网络参数 ,启动 N 个工作线程
2每个工作线程执行:
- • 同步参数:从全局网络复制最新参数到本地副本
- • 环境交互:用本地策略在环境中探索 步或到达终端状态
- • 计算优势:使用本地Critic计算优势函数
- • 梯度计算:计算Actor和Critic的梯度
- • 异步更新:将梯度应用到全局网络
3.重复:所有工作线程持续这个过程
A3C的关键优势
A3C算法通过异步并行机制带来了三个核心优势。
它有效打破了数据相关性这一传统RL的难题。在传统的强化学习中,连续的状态-动作对往往高度相关.
比如相邻的游戏画面非常相似,这会导致训练过程不稳定,模型容易过拟合到连续的模式中。
A3C通过让多个工作智能体在不同的环境实例中独立探索,天然产生了更加多样化且相对独立的数据分布,就像让多个人同时在不同的迷宫中练习,避免了"只在一个迷宫中形成的偏见"。
并行训练显著提高了训练效率和硬件利用率。传统方法中,每次只能从一个环境中顺序收集数据,而A3C可以同时从多个环境中并行收集经验,大大加速了数据获取过程。
这种并行架构充分利用了现代计算硬件的多核特性,使得训练时间大幅缩短,特别适合大规模分布式训练环境。
A3C的并行探索机制带来了更好的探索多样性和鲁棒性。不同的工作智能体会在各自的探索过程中尝试不同的策略,访问不同的状态空间,这种多样性类似于机器学习中的集成学习思想。
即使某些智能体不幸陷入局部最优策略,其他智能体可能通过不同的路径发现更优的解决方案,从而提高了整个系统找到全局最优策略的概率。
A3C vs A2C:关键区别

现代实践中,A2C往往更受欢迎,因为:
- • 在GPU上更容易实现和优化
- • 同步更新保证了训练的稳定性
- • 通过多环境并行,仍然可以获得类似的数据多样性
实际应用中的改进
A2C的常见改进版本:
A2C算法虽然在理论上已经很完善,但在实际应用中仍有改进空间。研究者和工程师们提出了多种改进版本,主要解决优势估计的偏差-方差权衡、策略收敛稳定性等问题。
1. GAE(广义优势估计)—— 更智能的优势计算
传统A2C使用简单的TD误差作为优势估计:
这种方法虽然无偏,但方差很大,因为单步的TD误差容易受到随机奖励的干扰。
GAE通过结合多步TD误差来解决这个问题。它的核心思想是:在偏差和方差之间找到最佳平衡点。GAE的计算公式是:
其中
是单步TD误差, 是关键的衰减参数。
为什么GAE更有效?
当 时,GAE退化为单步TD误差(高偏差、低方差);当 时,GAE变成了累积奖励(无偏、高方差)。通过选择合适的 值(通常为0.95),GAE能够在保持相对无偏的同时显著降低估计方差。
直观理解:想象你在评估一个投资策略的价值。单看一天的收益波动很大(高方差),但看一个星期的平均收益会更稳定。GAE就像是这样:它不只看单步的TD误差,而是考虑了一个"时间窗口"内的多步误差,并给近期的误差更高的权重。
2. 熵正则化—— 保持探索的"好奇心"
在训练过程中,策略网络容易过早收敛到确定性策略,即在某些状态下总是选择同一个动作。这就像一个人总是走同一条路去上班,可能错过了更好的路线。
熵正则化通过在目标函数中添加策略熵来解决这一问题:
其中
是策略的熵, 是控制探索强度的超参数。
为什么熵有助于探索?
策略的熵衡量了动作选择的"随机性"或"不确定性":
- • 高熵:策略倾向于均匀分布,鼓励探索各种可能的动作
- • 低熵:策略高度集中,倾向于选择某个特定动作
通过奖励策略保持较高的熵,我们鼓励智能体保持"好奇心",不会过早陷入局部最优。这就像在迷宫探索中,即使找到了一条还不错的路径,也要偶尔尝试其他方向,看看有没有更好的路线。
实际应用中的参数调节:
- • GAE的参数:通常设置为0.9-0.99,值越接近1,考虑的时间步数越多,估计越平滑
- • 熵系数:通常设置为0.01-0.1,值越大鼓励探索的力度越强,但过大会影响收敛
- • 动态调节:一些高级实现会随着训练进行逐渐降低,前期鼓励探索,后期偏向利用
这些改进使得A2C在实际任务中表现更加稳定,成为现代深度强化学习的基石算法之一。GAE和熵正则化的思想也被广泛采用到其他算法中,成为RL工具箱的标准组件。
A3C的实际部署考虑:
- • 通信开销:频繁的参数同步可能成为瓶颈
- • 硬件配置:需要支持多进程/多线程的环境
- • 超参数调优:工作线程数量、更新频率等需要仔细调整
从A2C/A3C到现代RL算法
A2C/A3C为现代深度强化学习奠定了重要基础,它们的创新思想延续到了许多后续算法中:
PPO(Proximal Policy Optimization):可以看作A2C的改进版,通过限制策略更新幅度来保证训练稳定性,目前是大模型RLHF的主流算法之一。
SAC(Soft Actor-Critic):结合了最大熵强化学习的思想,在连续控制任务中表现优异。
IMPALA:继承了A3C的分布式思想,但采用了更高效的架构,适合大规模分布式训练。
A2C/A3C的核心遗产:
- • 优势函数的概念现在已成为Actor-Critic算法的标准组件
- • 并行训练的思想启发了所有现代分布式RL算法
- • 异步/同步的权衡仍在影响算法设计决策
这些算法展示了深度强化学习如何从单一智能体的简单交互,发展到多智能体协同学习复杂策略的演进过程,为后来大模型的强化学习训练提供了重要的技术基础。
从值函数到策略梯度再到Actor-Critic,RL算法的发展体现了一个清晰的脉络:从简单的价值评估,到直接策略学习,再到两者的结合。每一种方法都有其适用场景,理解它们的差异和联系,是掌握RL的关键。
四、大模型RL
传统RL主要解决小规模状态/动作空间的决策问题(如游戏、机器人控制),而大模型(如LLM)的RL需处理高维离散序列生成问题:状态 s 是文本上下文(如“今天天气…”),动作 a 是下一个token(如“很好”),目标是让模型生成的序列符合人类偏好(如有帮助、无害、诚实)。
1. 大模型RL的特殊性
- • 状态/动作空间巨大:LLM的词表 可达数万(如DeepSeek-V3的129280个、Qwen3的151669、GLM-4.6的151552个),状态 s 是长文本(上下文长度可达模型支持的最大上下文,如DeepSeek-V3的64k、Qwen3的128k、GLM-4.6的200k),传统值函数方法(如DQN)无法处理;
- • 奖励函数定义难:文本生成的“好坏”无客观标准(如“这篇文章写得好”需结合流畅性、准确性、安全性等多维度),无法像游戏一样简单定义 +1/-1;
- • 训练不稳定:大模型参数量极大(百亿-千亿级),RL本身的高方差(如策略梯度)会被放大,容易导致模型“崩溃”(生成无意义文本)。
2. RLHF 基于人类反馈的强化学习
RLHF(Reinforcement Learning from Human Feedback)是大模型RL的主流范式,核心是用人类偏好训练奖励模型(RM),再以RM为奖励函数优化LLM,解决“奖励定义难”问题。
RLHF的三个步骤(以InstructGPT为例):
Step 1:监督微调(SFT)—— 初始化策略
- • 目标:让LLM学会“遵循指令”(而非单纯续写);
- • 数据:人工标注“指令-期望输出”对(如“请你解释量子力学”→“量子力学是…”);
- • 方法:用SL训练LLM,得到初始策略 (类似DL中的“预训练+微调”)。
Step 2:训练奖励模型(RM)—— 学习人类偏好
- • 目标:让模型学会“判断生成文本的好坏”(替代人类实时打分);
- • 数据:收集人类偏好数据:让LLM对同一指令生成多个回复(如 ),人类标注“哪个更好”(如 );
- • 方法:训练一个偏好模型(通常是LLM+线性层),输入“指令+回复”,输出奖励 r(y),优化目标是让偏好模型的排序与人类一致:
其中 是sigmoid函数, 时,希望 (类似DL中的“排序学习”)。
Step 3:RL优化—— 对齐人类偏好
- • 目标:以RM为奖励函数,优化SFT模型 ,使其生成高奖励(高人类偏好)的文本;
- • 策略:用PPO(Proximal Policy Optimization,近端策略优化)算法——Actor-Critic的改进版,核心是限制策略更新幅度,防止大模型训练不稳定。
PPO的核心机制(DL视角)
要理解PPO的精妙设计,我们需要从传统策略梯度算法的问题开始,一步步推导出最终的解决方案。
第一步:传统策略梯度的问题回顾
在第三部分我们学过,标准的策略梯度公式是:
这个公式在理论上是完美的,但在实际应用中有一个致命缺陷:没有限制策略更新的幅度。
想象一下:如果某个动作偶然获得了很高的优势值,梯度会变得很大,导致策略参数发生剧烈变化。这种"激进学习"可能导致:
训练不稳定:策略在两个极端之间来回跳跃
灾难性遗忘:突然忘记之前学到的有用知识
收敛困难:很难稳定在最优策略附近
第二步:直观的解决方案——限制更新幅度
一个自然的想法是:我们能不能给策略更新的幅度设置一个上限?
这就像给学习过程加上一个"刹车系统":
- • 如果某次经验告诉我们要大幅调整策略,我们就适当减速
- • 如果经验告诉我们要小幅调整,我们就正常进行
第三步:如何量化"策略变化的幅度"?
这里的关键洞察是:我们可以用新旧策略的概率比来衡量策略变化的幅度。
对于某个状态-动作对 ():
重要性采样比
这个比值告诉我们:
- • 比值 > 1:新策略更倾向于选择这个动作
- • 比值 < 1:新策略更不倾向于选择这个动作
- • 比值 = 1:策略没有变化
第四步:构造受限的梯度估计
现在我们可以构造一个"受限"的策略梯度:
受限梯度重要性采样比优势
但这里有个问题:如何限制这个值?
第五步:引入截断函数
PPO的精妙之处在于使用了一个截断函数:
截断后的概率比
其中 是一个小的正数(通常取0.1或0.2)。
这个函数的作用是:
- • 如果概率比在 [ 1 − ϵ , 1 ϵ ] [1-\epsilon, 1 \epsilon] [1−ϵ,1ϵ] 范围内,保持不变
- • 如果概率比超过 ,限制为
- • 如果概率比低于 ,限制为
第六步:两种更新方式的对比
现在我们有两种梯度估计方式:
方式1(未截断):
- • 这是"理想"的更新幅度
- • 可能过于激进
方式2(截断后):
- • 这是"安全"的更新幅度
- • 保证不会更新得太剧烈
第七步:PPO的保守选择——取最小值
现在的问题是:我们应该选择哪种方式?
PPO选择了最保守的策略:总是选择两者中较小的绝对值。
为什么?因为:
- • 当优势为正时(好动作),我们希望增加其概率,但不要增加得太快
- • 当优势为负时(坏动作),我们希望减少其概率,但不要减少得太快
这就得到了PPO的核心优化目标:
第八步:理解公式的含义
现在我们再来看这个公式,每个部分都有了明确的含义:
- • :新策略相比旧策略的变化程度
- • :这个动作的好坏程度(优势)
- • :限制策略变化幅度的安全机制
- • :保守地选择更稳定的更新
这个公式完美地解决了传统策略梯度算法的核心问题:在保持学习效率的同时,确保训练的稳定性。
作用:若新策略的动作比旧策略好(),但概率比过大(超过 ),则截断梯度,避免策略"突变"(类似DL中的"梯度裁剪",防止参数更新过猛);反之,若动作不好(),也限制概率比下限,防止策略"退化"。
更深入的理解:为什么PPO如此有效?
让我们从更深层次理解PPO的设计哲学。这个算法的精妙之处在于它解决了传统策略梯度算法的根本矛盾:学习效率与训练稳定性的权衡。
概率比和min函数的技术作用
重要性采样比
量化了新策略相对于旧策略的变化程度:比值为2.0表示新策略选择该动作的意愿是旧策略的2倍,比值为0.5表示减半,比值为1.0表示无变化。
PPO的 min 函数通过比较两种更新量来确保训练稳定性:未截断项代表基于当前经验的理想更新幅度,截断项代表考虑安全限制的最大允许更新幅度。
选择两者的较小值可以有效避免单次经验导致的策略参数剧变,防止模型因为个别异常样本而破坏已学到的知识。
为什么需要这种稳定化机制?
考虑训练过程中的两种极端情况:
- • 过度更新:如果某个动作偶然获得很高的优势值,会导致策略参数大幅调整,可能破坏之前学到的有用知识
- • 稳定更新(PPO):根据优势值适度调整策略参数,保持模型性能的连续性和可预测性
这种机制确保了训练过程的稳定性,避免了因为个别异常样本导致的模型性能剧烈波动。
与大模型训练的关系
在大模型RLHF中,PPO的这种保守显得尤为重要:
1.防止灾难性遗忘:避免模型因为少数奖励高的样本就忘记了之前学到的有用知识
2.保持语言连贯性:限制策略变化幅度有助于保持生成文本的流畅性和一致性
3.训练稳定性:大模型参数空间巨大,没有保守机制很容易导致训练崩溃
与深度学习的类比
PPO的截断机制可以类比为深度学习中的多个技术:
- • 梯度裁剪:防止梯度爆炸
- • 学习率调度:控制更新速度
- • 正则化:防止过拟合
- • Batch Normalization:稳定训练过程
PPO将这些都融合在一个简洁的数学公式中。
额外技巧:KL散度惩罚
在PPO的实际应用中,除了截断机制外,还需要一个更精细的控制来防止模型过度优化。这就是KL散度惩罚的作用。
什么是KL散度?
KL散度(Kullback-Leibler Divergence)是衡量两个概率分布差异的指标。对于两个离散分布 和 ,KL散度定义为:
KL散度的数学原理
从数学角度看,KL散度可以分解为:
其中 是分布 的熵, 是交叉熵。
为什么交叉熵减去熵能衡量分布差异?
这个分解的含义需要从信息论的角度理解:
熵 的含义:
熵衡量的是分布 本身的不确定性或信息量。 回答的问题是:“按照分布 生成样本,平均需要多少信息量?”
交叉熵 的含义:
交叉熵衡量的是当我们用分布来编码实际来自分布 的数据时,需要的平均信息量。 回答的问题是:“如果数据真实分布是,但我们错误地认为它服从分布,编码时平均需要多少信息量?”
两者的差异就是KL散度:
这个差异的含义是:用错误的分布 Q 来编码真实的分布 P 数据时,额外需要的信息量。
- • 当 时,我们使用了正确的分布来编码,所以没有额外的信息损失,
- • 当 时,我们使用了错误的分布来编码,必然产生效率损失,
数学证明:
对于任意两个分布,根据Jensen不等式:
因此:
直观理解:
- • 是理论上的最优编码长度(用真实分布编码)
- • 是实际使用的编码长度(用近似分布编码)
- • 是编码效率的损失
因此,KL散度通过量化信息编码效率的差异,有效地衡量了两个概率分布的偏离程度。分布差异越大,用错误分布编码的效率损失就越大,KL散度值也就越大。
在RLHF中的应用
在大模型RLHF中,KL散度惩罚的具体形式是:
这里 衡量的是:如果用原始SFT策略的分布来解释新策略的行为,平均会产生多少差异?
为什么需要KL散度惩罚?
考虑一个具体的问题:模型为了追求奖励模型的最高分,可能会发现生成"我很棒,我很棒,我很棒…"这样的重复文本能获得很高的奖励分数,但这显然违背了语言模型的基本要求。
KL散度惩罚通过以下方式解决这个问题:
- • 防止语言退化:保持与原始SFT模型的相似性,避免生成无意义的重复内容
- • 保持知识完整性:确保模型不会为了奖励最大化而忘记预训练阶段学到的有用知识
- • 提供平滑约束:与硬约束不同,KL散度提供了可微分的信息约束,便于梯度优化
KL散度惩罚的实际效果
让我们用一个具体的例子来说明KL散度惩罚如何工作。假设输入为“哈基米”上下文下模型可以生成两种回复:
原策略生成的token分布:
- • “南北绿豆”:概率 0.01
- • 其他正常回复:概率 0.99
新策略的token分布:
- • “南北绿豆”:概率 0.3
- • 其他正常回复:概率 0.7
如果奖励模型对"南北绿豆"给出很高的奖励值,新策略为了最大化奖励会大幅增加生成这个短语的概率。但是,这种变化会导致KL散度惩罚:
新
其中第一项 很大,因为新策略将"南北绿豆"的概率从1%提升到了30%,这是一个30倍的变化。
惩罚机制的作用:
- • 当新策略偏离SFT策略太远时,KL散度项会变得很大
- • 最终的PPO目标函数会减去这个大的惩罚项,抵消奖励模型带来的高奖励
- • 模型因此不会过度追逐奖励信号,而是保持在SFT策略附近的合理范围内
平衡的结果:
经过KL散度惩罚的调节,模型会找到一个新的平衡点——既能够提升回复质量以获得更高奖励,又不会过度偏离原始的语言建模能力。这确保了RL优化过程是在保持模型基础能力的前提下进行的精细调整,而不是破坏性的重写。
参数调节的重要性
是关键的超参数,需要在两个目标之间找到平衡:
- • 太小:模型可能过度优化奖励,生成低质量内容
- • 太大:模型过于保守,无法有效学习人类偏好
实践中,通常会采用自适应的KL惩罚机制:当KL散度超过某个阈值时,动态调整\beta值,实现更精细的控制。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

更多推荐



所有评论(0)