模块九 · 强化学习
AlphaGo 赢李世石靠的就是它。今天大模型对齐用的 RLHF,底层就是这一套。不理解 RL,就理解不了 ChatGPT 最后一步怎么"学做人"的。
上一模块让模型会用工具,这一模块讲它怎么"学做人"。为什么需要?ChatGPT 最后那点"有用无害、说人话",底层就是强化学习 RLHF。不理解 RL,就理解不了大模型对齐的最后一步。学完你能说清 MDP、策略梯度和 PPO/DPO。下一模块讲模型怎么打分、怎么上线。
9.1 马尔可夫决策过程 MDP
Markov Decision Process · RL 的数学骨架想五元组
MDP = (S, A, P, R, γ):
S 状态空间,A 动作空间。P(s'|s,a) 在状态 s 做动作 a 后到 s' 的转移概率。R(s,a) 奖励。γ 折扣因子(0~1),越远的奖励越不重要。
马尔可夫性质:下一个状态只依赖当前状态和动作,跟历史无关。这是 RL 数学可解的前提。
目标:学一个策略 π(a|s),最大化期望累计折扣回报 E[∑ γt rt]。
① MDP 五元组 S/A/P/R/γ。② 马尔可夫=未来只看现在。③ 目标是最大化折扣累计奖励。
9.2 Q-Learning
Q-Learning · 给每个"状态-动作"打分想核心思想
Q(s,a):在状态 s 做动作 a,往后最多能拿多少分。学完这个表,每次选 Q 最大的动作就行。
更新公式(贝尔曼方程):
Q(s,a) ← Q(s,a) + α [r + γ · maxa' Q(s',a') − Q(s,a)]
括号里的项叫 TD 误差:实际拿到的 r + 下一步最优 Q − 旧估计 Q。α 是学习率,γ 是折扣。
问题:状态空间一大,Q 表存不下(棋盘 1000 格就 1000×动作数,雅达利游戏画面直接爆炸)。于是有了 DQN——用神经网络逼近 Q 函数。
① Q(s,a) 是动作价值。② 贝尔曼更新:旧 Q + 学习率×TD误差。③ 状态多了用神经网络逼近(DQN)。
9.3 策略梯度与 DQN、PPO
Policy Gradient / DQN / PPO · 从学 Q 到学策略想从值函数到策略
策略梯度:不学 Q 表,直接学策略网络 πθ(a|s)(给定状态,输出动作概率)。梯度:
∇θ J(θ) = E[ ∇θ log πθ(a|s) · A(s,a) ]
A 是优势函数(这个动作比平均好多少)。直觉:好动作概率调大,坏动作概率调小。
DQN:用 DeepMind 的 DQN(2015),DQN = Q-Learning + 神经网络 + 经验回放 + 目标网络。首次让 AI 玩雅达利游戏超过人类。
PPO(Proximal Policy Optimization):OpenAI 2017 提出,RLHF 的默认算法。核心是"每次别改策略太多",用 clip 限制新旧策略比率:
L(θ) = E[ min( rt(θ)·At, clip(rt(θ), 1−ε, 1+ε)·At ) ]
rt(θ) = πnew/πold 是新旧策略动作概率比。ε 通常 0.2。简单、稳定、效果好,这就是它统治 RLHF 的原因。
① Q-Learning 学值,策略梯度学策略。② DQN=深度Q网络。③ PPO=clip 约束步幅,RLHF 标配。
9.4 RLHF 全流程
RLHF · 让大模型学会"做人"想三步对齐
第一步:SFT。用人工标注的问答对微调。
第二步:训奖励模型(RM)。让 SFT 模型对同一问题生成多个回答,人排序。训练一个 RM 给回答打分,越符合人偏好分越高。
第三步:PPO 强化学习。把 LLM 当策略网络,RM 当奖励,用 PPO 优化让 LLM 输出 RM 高分的回答。同时加一个 KL 惩罚项,防止模型跑偏(离 SFT 太远)。
DPO 替代:如上所述,跳过 RM 和 PPO,直接用偏好对优化。简单稳定,2024 年后成为主流。
① SFT → RM → PPO 三步对齐。② KL 惩罚防跑偏。③ DPO 是简化版,现在更流行。
① 用自己的话解释:用"训练小狗"的比喻讲清奖励信号怎么让模型学会行为。
② 举个反例 / 生活例子:反例——为什么 RLHF 要加 KL 惩罚项?不加会发生什么?
③ 哪里还说不清:DPO 相比 PPO 省掉了哪两步,为什么现在更流行?