找回密码
 立即注册
首页 业界区 业界 LLM 场景下的强化学习技术扫盲

LLM 场景下的强化学习技术扫盲

珠尿娜 3 天前
1. 强化学习基础:行业黑话

想象你正在和一个刚训练好的语言模型聊天。你问:“今天过得怎么样?”
模型可能回:“还行。” 也可能回:“我是个 AI,没有感情。”
人类觉得前者更自然、更友好——这就是偏好反馈。强化学习(RL)在 LLM 中的核心任务,就是让模型学会生成“人类更喜欢”的回复。
为了做到这一点,我们需要一套语言来描述这个过程。下面我们以 LLM 场景为基础介绍几个 RL 的“行业黑话”。
1.1 基本概念


  • 时刻 \(t\) :就是对话的第几步。比如:

    • \(t=0\):用户输入 “今天过得怎么样?” → 这是初始状态 \(s_0\)
    • \(t=1\):模型输出第一个词 “今” → 动作 \(a_0 = \text{“今”}\)
    • \(t=2\):模型输出第二个词 “天” → 动作 \(a_1 = \text{“天”}\)
    • … 直到生成完整回复,比如 “今天过得不错!”

  • 在 LLM 中,状态 \(s_t\) 通常就是到第 \(t\) 步为止已生成的 token 序列(包括用户输入和模型已输出的部分)
  • 动作 \(a_t\) 就是模型在第 \(t\) 步选择的下一个 token
  • 奖励 \(r_t\):这是人类(或奖励模型)对模型行为的真实反馈信号。比如:

    • 如果模型最终生成了“今天过得不错!”,人类觉得回答的不错,打 5 分 → 这个分数会折算成一个最终奖励 \(r_T\)(通常只在序列结束时给,即最后一个 token)
    • 中间步骤一般没有即时奖励(\(r_t = 0\) for \(t < T\))

  • 价值 \(v\):奖励 \(r\) 是真实的、来自外部的信号(比如人类打分),相对应的,价值(value)是对未来奖励的估计——因为模型不能预知未来,只能靠猜。
1.2. 价值(Value):对未来奖励的“预判”

既然模型不能看到未来,它就需要一个“预判能力”:我现在处在某个状态,未来大概能拿多少分?
这就引出了两个核心函数:
1) 状态价值函数 \(V(s_t)\)


\[V(s_t) = \sum_{a \in \mathcal{A}} \pi(a|s_t) \, Q(s_t, a)\]
它表达的是:在当前已生成的对话上下文 \(s_t\)(比如用户刚问完 “今天过得怎么样?”,而模型还没开始回答,或已输出“今”),模型按照当前策略继续生成后续内容,平均能获得多少人类打分

  • \(\pi(a|s_t)\) 是模型在状态 \(s_t\) 下选择下一个词 \(a\) 的概率(例如在“今天过得怎么样?”之后,选“今”还是“还”);
  • \(Q(s_t, a)\) 表示如果此刻选了某个具体词 \(a\),最终能拿到的预期总分;
  • 把所有可能的下一个词按模型当前的偏好加权平均,就得到了该状态的整体“预期得分”——也就是 \(V(s_t)\)。
举个例子:当模型已经输出 “今天过得”,它会评估:“按我现在的风格继续回答,人类大概率会觉得自然,可能打 4 分”,于是 \(V(s_t) \approx 4\)。
2) 动作价值函数 \(Q(s_t, a)\)


\[Q(s_t, a) = r_t + \gamma V(s_{t+1}) + \gamma^2 V(s_{t+2}) + \cdots\]
它表达的是:如果我现在处于状态 \(s_t\)(比如上下文是“今天过得”),并选择动作 \(a\)(比如生成“不”),那么我能获得当前的真实奖励 \(r_t\)(通常是 0,因为回复还没结束),再加上未来所有状态价值的折扣和
对应到 LLM 应用场景就表示:
“如果我现在在‘今天过得’后面接‘不’,形成‘今天过得不’,那接下来我大概率会说‘错!’,组成一句完整、积极的回复,最终人类可能会打 5 分。”
其中:

  • \(r_t\) 是真实发生的奖励,但在 LLM 生成过程中,只有完整回复结束后才有非零值(例如人类打分 \(r_T = 5\));在中间步骤(如生成“今”“天”时),\(r_t = 0\);
  • \(V(s_{t+1}), V(s_{t+2}), \dots\) 是模型自己估计的未来价值(比如生成“不”之后,预估“今天过得不错!”能拿 4.9 分);
  • \(\gamma \in [0,1]\) 是折扣因子(如 0.95),表示“未来的分不如现在的分值钱”——越靠后的 token 对当前决策的影响越小。
虽然中间每一步的 \(r_t = 0\),但 \(Q(s_t, a)\) 依然非常关键:它通过 \(V(s_{t+1})\) 等未来价值,把对最终人类反馈的预判传递回当前决策。这正是 LLM 在生成每个词时具备“前瞻能力”的来源——它不是随机选词,而是基于“这样说人类会不会喜欢”的长期预期来做选择。
为什么估计的价值函数 Q 里包含真实的 \(r_t\)?
因为 RL 的目标是用真实奖励来校准价值估计。模型通过不断对比“预测的未来得分”和“实际拿到的奖励”,来修正自己的 \(V\) 和 \(Q\) 函数。
2. PPO:RLHF 的“老大哥”

PPO(Proximal Policy Optimization)是传统 RLHF(基于人类反馈的强化学习)流程中的核心算法,是 openai 在 2016年左右提出来的。原来 closeAI 的成功在那个时候就开始蓄力了。PPO的目标很直接:让语言模型生成更受人类欢迎的回复
PPO 中的几个关键角色

模型是否训练输入输出输出维度说明Policy Model \(\pi_\theta\)✅ 是prompt \(x\)(token IDs,长度 \(L_x\))生成回复 \(y = (a_1,\dots,a_T)\),以及每个 token 的 log-prob \(\log \pi_\theta(a_t | s_t)\)\(y\): \([T]\)
logprobs: \([T]\)Reference Model \(\pi_{\text{ref}}\)❌ 冻结同上 \(x\)同上 log-prob \(\log \pi_{\text{ref}}(a_t | s_t)\)\([T]\)Critic Model \(V_\psi\)✅ 是状态序列 \(s_t = x \oplus y_{\le t}\)(token IDs,长度 \(L_x + t\))价值估计 \(V_\psi(s_t)\)标量(或 \([1]\)),对每个 \(t=0,\dots,T\) 输出一个值 → 总输出 \([T+1]\)Reward Model \(r_\phi\)❌ 冻结\((x, y)\)(完整 prompt + response)标量奖励 \(R = r_\phi(x, y)\)标量(或 \([1]\))
注:\(\oplus\) 表示 token 拼接;\(T\) 是生成回复的长度(可变,但训练时通常 padding 到固定长度)。
PPO 的两阶段训练流程

PPO通过分阶段解耦“数据生成”和“策略学习”,在保证训练稳定性的同时,让模型逐步学会生成更符合人类偏好的回复。整个流程分为如下两个阶段:
阶段 1:采样与反馈(Sample + Label)

✅ 目标

当前策略模型生成一批回复,并利用冻结的奖励模型打分,再结合当前评论家模型估计价值,最终为每个 token 动作计算出优势(Advantage)回报(Return),作为后续训练的监督信号。
<blockquote>

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册