第01篇-Agentic-RL全景导论-从AlphaGo到DeepSeek-R1
【Agentic RL 智能体强化学习】第 01 篇:Agentic RL 全景导论 — 从 AlphaGo 到 DeepSeek R1
本系列定位:从强化学习数学基础出发,系统讲解 LLM 对齐(RLHF/DPO/GRPO)到 Agentic RL(多轮智能体强化学习)的全链路,以 OpenRLHF 框架为实战主线。
本篇你将学到
- 强化学习如何从游戏 AI(AlphaGo)走向语言模型(ChatGPT),再到推理模型(DeepSeek R1)的完整演进脉络
- RLHF、DPO、GRPO、Agentic RL 四个核心概念的定义与关系
- OpenRLHF 框架在 Agentic RL 生态中的技术定位
- 本系列 50 篇的学习路线图与递进项目 AgentRL-Lab 的设计
- 搭建完整的 Python + PyTorch 实验环境
学完本篇,你将对"Agentic RL 到底是什么、为什么要学、怎么学"形成清晰的认知框架。
一、从 AlphaGo 到 DeepSeek R1:强化学习驱动的 AI 进化史
2016 年 3 月,AlphaGo 击败李世石,强化学习(Reinforcement Learning, RL)一战成名。但很多人不知道的是,这个技术后来在另一个领域产生了更深远的影响——大语言模型(LLM)。
让我们用一张时间线来看这条技术进化之路:
1.1 三次范式跃迁
这条进化线上发生了三次关键的范式跃迁,理解它们就理解了本系列的核心逻辑。
第一次跃迁:从规则到学习(AlphaGo, 2016)
传统棋类 AI 靠人类编写评估函数和搜索策略。AlphaGo 颠覆了这一点——它用神经网络学习"局面评估"和"落子选择",再用自我博弈(Self-Play)不断强化。核心公式是策略梯度(Policy Gradient),我们将在第 05 篇详解。
第二次跃迁:从游戏到语言(ChatGPT, 2022)
ChatGPT 的秘密武器是 RLHF(Reinforcement Learning from Human Feedback)。它做的事情很朴素:让人类给模型的回答打分,再用这些分数训练一个"奖励模型"(Reward Model),最后用 PPO 算法优化语言模型,让它生成得分更高的回答。
这一步的伟大之处在于:它证明了 RL 可以用来微调一个有数十亿参数的语言模型,让它从"能说话"变成"说人话"。
第三次跃迁:从对齐到推理(DeepSeek R1, 2024)
RLHF 解决了"怎么让模型更讨人喜欢"的问题,但模型本身的推理能力(数学、逻辑、编程)并没有质的飞跃。DeepSeek R1 改变了这一点——它用 GRPO 算法配合 RLVR(可验证奖励强化学习),让模型通过纯 RL 训练就涌现出强大的链式推理能力。
R1 最令人震惊的实验是 R1-Zero:跳过监督微调(SFT),直接在基座模型上做 RL,模型就自发学会了长链推理、自我反思、试错纠偏。
1.2 为什么是 Agentic RL
前三次跃迁关注的都是"单轮"场景——一个问题,一个回答。但真实世界的任务远比这复杂。
| 场景 | 单轮 RLHF | Agentic RL |
|---|---|---|
| 交互方式 | 一问一答 | 多轮对话、多步操作 |
| 动作空间 | 生成一段文本 | 生成文本 + 调用工具 + 执行代码 |
| 奖励来源 | 人类偏好 / RM 分数 | 任务完成度 + 工具使用效率 + 多维评分 |
| 典型例子 | ChatGPT 的对齐 | 训练能自主使用工具的 AI Agent |
Agentic RL 就是把强化学习的框架从"单轮生成"扩展到"多轮交互"。模型不再只是一个回答问题的工具,而是一个能与环境交互、使用工具、从反馈中学习的智能体。
二、四大核心概念:一张图理清它们的关系
在深入学习之前,先把四个最容易混淆的概念理清楚:
2.1 RLHF(Reinforcement Learning from Human Feedback)
一句话定义:收集人类对模型输出的偏好(哪个回答更好),训练奖励模型,再用 RL 优化语言模型。
核心流程:SFT(监督微调)→ RM(奖励模型训练)→ PPO(强化学习优化)
适用场景:让模型更符合人类偏好(有用、无害、诚实),适用于对话、写作等主观任务。
2.2 DPO(Direct Preference Optimization)
一句话定义:不需要训练奖励模型,直接用偏好数据通过一个分类损失优化策略。
核心洞察:RLHF 的最优策略有解析解,可以把 RL 目标转化为监督学习问题。
适用场景:资源有限、希望快速对齐、偏好数据充足时。比 PPO 简单且稳定,但对数据质量要求更高。
2.3 GRPO(Group Relative Policy Optimization)
一句话定义:DeepSeek 提出的算法,去掉 Critic 网络,用同一 prompt 的多个采样结果的组内相对优势来优化策略。
核心优势:省去 Critic 模型,大幅降低显存需求;适合推理任务(数学、代码)。
适用场景:推理能力训练,是 DeepSeek R1 的核心算法。
2.4 Agentic RL(Agent Reinforcement Learning)
一句话定义:在多轮交互环境中(而非单轮一问一答)用强化学习优化 Agent 的策略。
核心特征:Episode(回合)由多次交互组成,Agent 每轮可以生成文本、调用工具、观察环境反馈,在 Episode 结束时获得奖励。
适用场景:训练能自主使用工具、执行代码、多步推理的智能体。
三、OpenRLHF:Agentic RL 的工业级框架
本系列以 OpenRLHF 作为实战主线框架。它不是唯一的 RLHF 框架(还有 TRL、Verl 等),但它在工程化、分布式能力、Agentic RL 支持上有独特优势。
3.1 为什么选 OpenRLHF
| 特性 | OpenRLHF | HuggingFace TRL | Verl |
|---|---|---|---|
| 分布式架构 | Ray + vLLM | Accelerate | Ray |
| 支持算法 | PPO/REINFORCE++/GRPO/DPO 等 | PPO/DPO/GRPO 等 | PPO/GRPO 等 |
| 多轮 Agent | ✅ 原生支持 | ❌ | ✅ |
| 自定义奖励函数 | ✅ Python 文件直接传入 | ✅ | ✅ |
| 最大模型规模 | 70B+ | 70B+ | 70B+ |
| 推理引擎 | vLLM(极快) | 无内置 | vLLM |
| RLVR 支持 | ✅ 原生 | ✅ | ✅ |
| 异步训练 | ✅ | ❌ | ✅ |
OpenRLHF 的核心优势在于 Ray + vLLM 的分布式架构——vLLM 负责高速生成(Rollout),DeepSpeed ZeRO-3 负责大模型训练,Ray 负责编排所有组件。
3.2 架构全景
在后续模块 4 中,我们会逐层拆解每个组件的原理和使用方法。
3.3 OpenRLHF 版本基线
本系列使用 OpenRLHF v0.10.4(2026-06-08 发布),这是目前最新的稳定版本。关键特性:
- Ray + vLLM 分布式架构:支持 70B+ 模型训练
- Agent-Based 设计范式:单轮和多轮模式通过统一管道处理
- 六种 RL 算法:PPO、REINFORCE++、REINFORCE+±baseline、GRPO、Dr. GRPO、RLOO,一个参数切换
- Hybrid Engine:所有模型共存于同一组 GPU,通过 sleep mode 共享显存
- 多轮 Agent 训练:通过
AgentInstanceBase接口实现自定义多轮环境 - 自定义奖励函数:直接传入 Python 文件实现 Reinforced Fine-Tuning
- 异步训练:Rollout 与 Training 重叠执行
- Off-Policy 校正:TIS / ICEPOP / Seq-Mask-TIS 处理精度差异
四、本系列学习路线图
4.1 七大模块总览
每个模块都有明确的"毕业能力"——学完之后你能做到什么:
| 模块 | 篇数 | 主题 | 毕业能力 |
|---|---|---|---|
| 1 | 01-08 | RL 数学基础 | 理解 RL 核心数学,手写 PPO |
| 2 | 09-16 | LLM 对齐基石 | 用 SFT+RM 搭建 RLHF pipeline |
| 3 | 17-24 | RLHF 算法全景 | 选择和配置合适的 RLHF 算法 |
| 4 | 25-32 | OpenRLHF 精讲 | 用 OpenRLHF 独立完成 RL 训练 |
| 5 | 33-41 | Agentic RL 核心 | 设计和实现 Agentic RL 训练 |
| 6 | 42-47 | 高级训练技术 | 优化和调试生产级 RL 训练 |
| 7 | 48-50 | 综合实战 | 交付端到端 Agentic RL 项目 |
4.2 递进项目:AgentRL-Lab
贯穿全系列 50 篇,我们将构建一个递进式实战项目 AgentRL-Lab,从零开始逐步进化为完整的 Agentic RL 系统:
| 版本 | 对应模块 | 能力说明 |
|---|---|---|
| v0.1 | 模块 1 | 手写 RL 算法(REINFORCE → PPO) |
| v0.2 | 模块 2 | SFT + RM 训练 pipeline |
| v0.3 | 模块 3 | RLHF 多算法对比实验框架 |
| v0.4 | 模块 4 | 基于 OpenRLHF 的完整 RLVR pipeline |
| v0.5 | 模块 5 | 多轮 Agentic RL 训练环境 |
| v1.0 | 模块 7 | 生产级 Agentic RL 系统 |
你不需要 GPU 集群就能跟随大部分内容——前期用经典 RL 环境(CartPole、GridWorld)学习算法,后期用小模型(Qwen3-4B)在单卡上跑通完整流程。需要大规模训练的章节会标注 GPU 要求。
4.3 阅读建议
| 读者类型 | 建议 |
|---|---|
| 完全没学过 RL | 按顺序从第 01 篇开始,模块 1 是地基 |
| 有 RL 基础 | 可跳过模块 1,直接从模块 2 开始 |
| 有 LLM 对齐经验 | 可跳过模块 2-3,直接从模块 4 OpenRLHF 开始 |
| 想快速上手 Agentic RL | 先看模块 4-5,需要时回查前置内容 |
五、环境搭建
5.1 硬件要求
| 用途 | 最低配置 | 推荐配置 |
|---|---|---|
| 模块 1(经典 RL) | 任意 CPU,无 GPU | 普通笔记本即可 |
| 模块 2-3(小模型训练) | 16GB RAM | 8GB+ VRAM GPU |
| 模块 4-7(OpenRLHF) | 单卡 A100 80G | 多卡 A100 / H100 |
💡 没有本地 GPU 的读者,可以使用 Google Colab(免费 T4 GPU)、AutoDL、阿里云 PAI 等云平台。
5.2 Python 环境安装
推荐使用 Miniconda 管理环境:
# 1. 创建虚拟环境
conda create -n agentic-rl python=3.10 -y
conda activate agentic-rl
# 2. 安装 PyTorch(以 CUDA 12.1 为例)
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121
# 3. 安装本系列核心依赖
pip install gymnasium[classic-control] matplotlib numpy
# 4. 安装 HuggingFace 生态(模块 2 开始使用)
pip install transformers accelerate datasets
# 5. 安装 OpenRLHF(模块 4 开始使用,需要 GPU)
# pip install openrlhf[vllm]
5.3 验证安装
创建一个 verify_env.py 文件,运行以下代码确认环境就绪:
"""
AgentRL-Lab 环境验证脚本
检查核心依赖是否正确安装
"""
import sys
def check_python():
version = sys.version_info
print(f"[1/5] Python 版本: {version.major}.{version.minor}.{version.micro}")
assert version.major == 3 and version.minor >= 10, "需要 Python 3.10+"
def check_torch():
import torch
print(f"[2/5] PyTorch 版本: {torch.__version__}")
print(f" CUDA 可用: {torch.cuda.is_available()}")
if torch.cuda.is_available():
print(f" GPU: {torch.cuda.get_device_name(0)}")
print(f" GPU 数量: {torch.cuda.device_count()}")
def check_gym():
import gymnasium as gym
print(f"[3/5] Gymnasium 版本: {gym.__version__}")
# 创建一个简单的环境验证
env = gym.make("CartPole-v1")
obs, info = env.reset(seed=42)
print(f" CartPole 观测空间: {env.observation_space.shape}")
print(f" CartPole 动作空间: {env.action_space.n}")
def check_transformers():
try:
import transformers
print(f"[4/5] Transformers 版本: {transformers.__version__}")
except ImportError:
print("[4/5] Transformers 未安装(模块 2 之前不需要)")
def check_numpy():
import numpy as np
print(f"[5/5] NumPy 版本: {np.__version__}")
# 运行一个简单的矩阵运算
a = np.random.randn(100, 100)
b = np.random.randn(100, 100)
c = a @ b
print(f" 矩阵乘法验证: 输入{a.shape} × {b.shape} → 输出{c.shape}")
if __name__ == "__main__":
print("=" * 60)
print("AgentRL-Lab 环境验证")
print("=" * 60)
check_python()
check_torch()
check_gym()
check_transformers()
check_numpy()
print("=" * 60)
print("✅ 环境验证通过!你已准备好开始 Agentic RL 之旅。")
print("=" * 60)
运行验证:
python verify_env.py
预期输出类似:
============================================================
AgentRL-Lab 环境验证
============================================================
[1/5] Python 版本: 3.10.14
[2/5] PyTorch 版本: 2.4.0
CUDA 可用: True
GPU: NVIDIA A100 80GB
GPU 数量: 1
[3/5] Gymnasium 版本: 1.0.0
CartPole 观测空间: (4,)
CartPole 动作空间: 2
[4/5] Transformers 版本: 4.50.0
[5/5] NumPy 版本: 1.26.4
矩阵乘法验证: 输入(100, 100) × (100, 100) → 输出(100, 100)
============================================================
✅ 环境验证通过!你已准备好开始开始 Agentic RL 之旅。
============================================================
5.4 一个快速体验:AgentRL-Lab 的第一个实验
在正式进入数学推导之前,先用一个 15 行代码的实验让你直观感受 RL 的本质——通过试错来学习:
"""
AgentRL-Lab v0.1 预览:随机策略 vs 学习策略的直观对比
用最简单的多臂老虎机问题展示 RL 的核心思想
"""
import numpy as np
class MultiArmedBandit:
"""多臂老虎机:RL 的最简模型"""
def __init__(self, n_arms=5):
# 每个臂的真实期望奖励(玩家不知道)
self.true_values = np.random.randn(n_arms)
self.n_arms = n_arms
self.best_arm = np.argmax(self.true_values)
def pull(self, arm):
# 拉动臂,返回有噪声的奖励
return self.true_values[arm] + np.random.randn() * 0.5
def is_optimal(self, arm):
return arm == self.best_arm
def random_strategy(bandit, n_steps=1000):
"""随机策略:每步随机选臂"""
rewards = []
optimal_count = 0
for _ in range(n_steps):
arm = np.random.randint(bandit.n_arms)
reward = bandit.pull(arm)
rewards.append(reward)
if bandit.is_optimal(arm):
optimal_count += 1
return np.mean(rewards), optimal_count / n_steps
def epsilon_greedy_strategy(bandit, n_steps=1000, epsilon=0.1):
"""ε-贪心策略:90% 选最优,10% 探索"""
q_values = np.zeros(bandit.n_arms) # 估计值
counts = np.zeros(bandit.n_arms) # 拉取次数
rewards = []
optimal_count = 0
for step in range(n_steps):
# 探索 vs 利用
if np.random.random() < epsilon:
arm = np.random.randint(bandit.n_arms) # 探索
else:
arm = np.argmax(q_values) # 利用
reward = bandit.pull(arm)
counts[arm] += 1
# 增量更新估计值:Q_new = Q_old + (R - Q_old) / n
q_values[arm] += (reward - q_values[arm]) / counts[arm]
rewards.append(reward)
if bandit.is_optimal(arm):
optimal_count += 1
return np.mean(rewards), optimal_count / n_steps
if __name__ == "__main__":
np.random.seed(42)
bandit = MultiArmedBandit(n_arms=5)
print(f"老虎机真实奖励值: {bandit.true_values.round(3)}")
print(f"最优臂: 第 {bandit.best_arm} 个臂 (值={bandit.true_values[bandit.best_arm]:.3f})")
print()
# 随机策略
avg_r, opt_rate = random_strategy(bandit, n_steps=2000)
print(f"随机策略: 平均奖励={avg_r:.3f}, 最优臂选择率={opt_rate:.1%}")
# ε-贪心策略(RL 的最基本思想)
avg_r, opt_rate = epsilon_greedy_strategy(bandit, n_steps=2000, epsilon=0.1)
print(f"ε-贪心策略(0.1): 平均奖励={avg_r:.3f}, 最优臂选择率={opt_rate:.1%}")
print()
print("💡 这就是 RL 的本质:通过试错和估计,学会做出更好的决策。")
print(" 后续 49 篇,我们将把这个思想扩展到 LLM 和 Agent 上。")
运行后你会看到类似输出:
老虎机真实奖励值: [ 0.497 0.785 -0.235 1.464 1.579]
最优臂: 第 4 个臂 (值=1.579)
随机策略: 平均奖励=0.818, 最优臂选择率=20.0%
ε-贪心策略(0.1): 平均奖励=1.451, 最优臂选择率=90.5%
💡 这就是 RL 的本质:通过试错和估计,学会做出更好的决策。
后续 49 篇,我们将把这个思想扩展到 LLM 和 Agent 上。
ε-贪心策略只比随机策略多做了一件事——记住过去的经验并利用它——就把最优臂的选择率从 20% 提升到了 90%。这就是强化学习的核心力量。在后续文章中,我们把这个"记住经验并利用"的思想一步步升级到 PPO、GRPO,最终到 Agentic RL。
本篇小结
| 知识点 | 核心内容 |
|---|---|
| RL 进化史 | AlphaGo(游戏)→ ChatGPT(对齐)→ DeepSeek R1(推理)→ Agentic RL(多轮交互) |
| RLHF | 人类反馈 → 奖励模型 → PPO 优化,让 LLM 符合人类偏好 |
| DPO | 绕过奖励模型,直接用偏好数据优化策略 |
| GRPO | 去掉 Critic,用组内相对优势,适合推理任务 |
| Agentic RL | 多轮交互中的 RL,训练能使用工具的智能体 |
| OpenRLHF | Ray + vLLM 分布式 RLHF 框架,本系列主力工具(v0.10.4) |
| AgentRL-Lab | 贯穿全系列的递进项目,从 v0.1 进化到 v1.0 |
下篇预告
第 02 篇:马尔可夫决策过程 — 强化学习的数学语言
从五元组 (S, A, P, R, γ) 出发,建立 RL 的数学框架。我们将用 ChatGPT 对齐场景类比 MDP,让抽象的数学变得触手可及。
如果本篇内容对你有帮助,欢迎点赞收藏!有任何疑问,欢迎在评论区交流。
更多推荐


所有评论(0)