IT从从业七八年有余,先后经历百度、腾讯大厂,深耕搜索业务五六年,对架构设计、大数据处理、AI均匀涉猎。现从事自动驾驶领域,平时技术管理工作之余,针对前沿技术定期follow up,关注我,分享AI或数据挖掘全维度知识。
本文主要聚焦强化学习背景、常用强化学习算法、应用举例
强化学习在DeepSeek-V3发挥了关键作用,现阶段LLM的发展已经离不开 强化学习这一核心技术了,从大模型对齐到推理模型训练再到如今的智能体强化学习(Agentic RL),几乎能AI 的每个领域看到强化学习的身影。
强化学习的框架主要由以下几个核心组成:
这四个元素共同构成了马尔可夫决策过程(Markov Decision Process, MDP),这是强化学习最核心的数学模型。

在强化学习RL中,奖励Reward是指导智能体Agent行为的关键信号,强化学习的真正目标是让智能体学会一个最大化长期累积奖励(即长期收益,Return)的策略。
(Return)
长期收益(Return, GtGt): 是从当前时刻开始的长期累积奖励,通常考虑折扣因子(γγ): Gt=rt+γrt+1+γ2rt+2+⋯Gt=rt+γrt+1+γ2rt+2+⋯
一个基于CartPole环境的强化学习模型示例
import gym
import torch
import torch.nn as nn
import torch.optim as optim
import numpy as np
if not hasattr(np, 'CartPole-v1'):
np.bool8 = np.bool_
env = gym.make('CartPole-v1')
class PolicyNetwork(nn.Module):
def __init__(self, input_dim, output_dim):
super(PolicyNetwork, self).__init__()
self.fc1 = nn.Linear(input_dim, 64)
self.fc2 = nn.Linear(64, output_dim)
def forward(self, state):
x = torch.relu(self.fc1(state))
action_probs = torch.softmax(self.fc2(x), dim=-1)
return action_probs
def evaluate_policy(policy_net, env, episodes=10):
total_rewards = 0
for i in range(episodes):
state = env.reset()
done = False
episode_reward = 0
state = state[0]
while not done:
state_tensor = torch.FloatTensor(state).unsqueeze(0)
with torch.no_grad():
action_probs = policy_net(state_tensor)
action = torch.argmax(action_probs).item()
next_state, reward, done, _ = env.step(action)
episode_reward += reward
state = next_state
total_rewards += episode_reward
average_reward = total_rewards / episodes
return average_reward
input_dim = env.observation_space.shape[0] # 状态空间维度
output_dim = env.action_space.n # 动作空间大小
policy_net = PolicyNetwork(input_dim, output_dim)
optimizer = optim.Adam(policy_net.parameters(), lr=1e-2)
episodes = 10
# 使用上文定义的PolicyNetwork和初始化的env
average_reward = evaluate_policy(policy_net, env, episodes)
print(f"Average reward over {episodes} episodes: {average_reward}")
# 保存模型
torch.save(policy_net.state_dict(), 'policy_net_model.pth')环境:
env = gym.make('CartPole-v1')
状态:
初始状态,state = env.reset()
动作:
action = torch.argmax(action_probs).item()
根据action 迭代状态, next_state, reward, done, _ = env.step(action)
策略:
action_probs = policy_net(state_tensor)
根据状态state执行策略,得到当前步骤的策略结果;
奖励:
短期奖励由当前step决定,next_state, reward, done, _ = env.step(action)
长期奖励由每个步骤的episode_reward累积达到,total_rewards += episode_reward

在强化学习(Reinforcement Learning, RL)中,Model-Free和Model-Based是两种核心方法,主要区别在于是否依赖对环境的显式建模。以下是它们的详细对比:
特性 | Model-Based | Model-Free |
|---|---|---|
是否需要环境模型 | 是(已知或学习模型) | 否 |
数据效率 | 高(可利用模型生成虚拟数据) | 低(需大量实际交互) |
计算效率 | 离线规划快,但建模可能复杂 | 在线学习慢,但无需建模开销 |
适用场景 | 环境稳定、可模拟(如棋牌游戏) | 环境复杂或不可知(如机器人控制) |
典型算法 | Dyna、PILCO、MCTS | DQN、PPO、A3C |
现代RL常结合两者优势:
下面阐述从 RLHF、PPO 到 GRPO 和 RLVR,DeepSeek 开发了 GRPO(组相对策略优化)来训练他们的推理模型。
RLHF(Reinforcement Learning from Human Feedback,基于人类反馈的强化学习) 一种训练框架,利用人类反馈来优化模型(如大语言模型)。将人类偏好融入强化学习,使模型输出更符合人类期望。 ChatGPT 中的👍和👎符号就可以用于 RLHF 过程。

PPO(Proximal Policy Optimization,近端策略优化) ,一种强化学习算法,用于优化策略(Policy)。在 RLHF 中作为核心优化器,调整模型参数以最大化奖励。 没有 PPO,RLHF 仍可用其他算法(如 A2C、SAC);但没有 RLHF,PPO 只是一个通用 RL 算法。

在这种情况下,agent 就是语言模型。事实上,它由三个系统组成:
我们使用奖励模型来计算当前环境的奖励,而我们的目标就是最大化奖励!

RLHF是方法论,PPO 是工具,RLHF = 人类反馈 + 奖励模型 + PPO(或其他 RL 算法),PPO 的稳定性使其成为 RLHF 的首选,但并非唯一选择。
DeepSeek 开发了 GRPO(组相对策略优化)来训练他们的推理模型。它与 PPO 的主要区别在于:

GRPO 非常高效。以前 PPO 需要训练多个模型 —— 现在移除了奖励模型和价值模型,便可以节省内存并加快速度。
RLVR(可验证奖励的强化学习)允许我们根据易于验证解答的任务来奖励模型。例如:
为什么使用「组相对」?
GRPO 完全移除了价值模型,但我们仍然需要根据当前状态估算「平均奖励」。
诀窍在于对 LLM 进行采样!然后,我们通过统计多个不同问题的采样过程来计算平均奖励。
例如,对于「What is 2 + 2?」,我们采样 4 次。我们可能得到 4、3、D、C。然后,我们计算每个答案的奖励,计算平均奖励和标准差,最后用 Z 分数进行标准化!

PPO是一种高效、可靠的强化学习算法,属于策略梯度家族的一部分。由于其高效和稳定的性质,PPO算法在各种强化学习任务中都有广泛的应用。GPRO 将策略参数约束在Grassmann流形上,利用几何结构优化。在流形空间内优化策略,保持参数的正交性或子空间结构。 两者可互补:例如用 PPO 做粗调,GRPO 做精调。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。