游戏 RL: AlphaZero 与 MuZero


文档摘要

游戏 RL: AlphaZero 与 MuZero 本节摘要:1992 年 TD-Gammon 用纯 TD 击败西洋双陆棋人类冠军;2016 年 AlphaGo 击败李世石;2017 年 AlphaZero 从零统治棋、将棋、围棋;2024 年 DeepSeek-R1 证明同一配方(用 GRPO 替代 PPO)在推理上也成立。游戏是驱动本章每个突破的 benchmark。 本节作为收官,透过一个统一视角——自博弈 + 搜索 + 策略改进——巡礼三大里程碑架构:AlphaZero(已知规则 + MCTS + 策略价值网)、MuZero(学到的潜在动力学模型,不假设规则)、GRPO(同一循环用到 LLM 推理,token 当动作、数学验证当胜利信号)。

游戏 RL: AlphaZero 与 MuZero

本节摘要:1992 年 TD-Gammon 用纯 TD 击败西洋双陆棋人类冠军;2016 年 AlphaGo 击败李世石;2017 年 AlphaZero 从零统治棋、将棋、围棋;2024 年 DeepSeek-R1 证明同一配方(用 GRPO 替代 PPO)在推理上也成立。游戏是驱动本章每个突破的 benchmark。 本节作为收官,透过一个统一视角——自博弈 + 搜索 + 策略改进——巡礼三大里程碑架构:AlphaZero(已知规则 + MCTS + 策略价值网)、MuZero(学到的潜在动力学模型,不假设规则)、GRPO(同一循环用到 LLM 推理,token 当动作、数学验证当胜利信号)。重点讲透 GRPO 的组相对优势 A_i = (r_i - mean_r)/std_r 为何能同时替代 critic 与奖励模型,以及 DeepSeek-R1 的四阶段配方(冷启 SFT → 推理 GRPO → 拒绝采样 SFT → 全谱 GRPO)。最后点明:蒸馏强 RL teacher 一致地胜过在 student 规模从头 RL。

对应原课程:Phase 9 · Lesson 12 · rl-for-games(原英文 phases/09-reinforcement-learning/12-rl-for-games/docs/en.md)。

学习目标

阅读完本节,你应当能够:

  1. 写出统一循环「自博弈 → 搜索改进策略 → 策略网更新」,并说明 AlphaZero / MuZero / GRPO 各自如何实例化它。
  2. 描述 AlphaZero 的策略价值网 + MCTS(PUCT 选择)+ 自博弈监督训练目标。
  3. 说明 MuZero 如何用学到的潜在动力学模型 (h, g, f) 去掉「规则已知」假设,从而统一棋类与 Atari。
  4. 推导 GRPO 的组相对优势 A_i = (r_i - mean_r)/std_r,解释它为何不需要 critic、为何对推理任务天然合适。
  5. 复述 DeepSeek-R1 的四阶段配方,并说明蒸馏为何优于从头 RL。

一、问题与直觉

游戏有 RL 想要的一切。干净的奖励(赢/输)。无限回合(自博弈可重置)。完美仿真(游戏就是仿真器)。离散或小连续动作空间。迫使对抗鲁棒的多智能体结构。

而且游戏是每个重大 RL 突破的测试场。TD-Gammon(西洋双陆棋,1992)。Atari-DQN(2013)。AlphaGo(2016)。AlphaZero(2017)。OpenAI Five(Dota 2,2019)。AlphaStar(StarCraft II,2019)。MuZero(学到模型,2019)。AlphaTensor(矩阵乘法,2022)。AlphaDev(排序算法,2023)。DeepSeek-R1(数学推理,2025)——最新的证明:游戏 RL 技术在文本上也成立。

本节作为收官,透过一个统一视角巡礼三大里程碑架构——AlphaZero、MuZero、GRPO:自博弈 + 搜索 + 策略改进。每一个都是前一个的推广;GRPO 尤其是 AlphaZero 配方应用到 LLM 推理——token 当动作、数学验证当胜利信号。

统一循环

while True: trajectory = self_play(current_policy, search) # 对自己下棋 policy_target = search.improved_policy(trajectory) # 搜索改进原始策略 policy_net.update(policy_target, value_target) # 对搜索输出做监督

AlphaZero(2017,Silver et al.)

给定一个规则已知的游戏(棋、将棋、围棋):

  • 策略价值网:一个塔 f_θ(s) → (p, v)p 是合法落子的先验,v 是期望棋局结果。
  • 蒙特卡洛树搜索(MCTS):每步落子时,展开一棵可能续局的树。用 (p, v) 做先验 + 自举。用 UCB(PUCT)选节点:a* = argmax Q(s, a) + c · p(a|s) · √N(s) / (1 + N(s, a))
  • 自博弈:智能体对智能体下棋。在落子 t 时,MCTS 的访问分布 π_t 成为策略训练目标。
  • 损失:L = (v - z)² - π · log p + c · ||θ||²z 是棋局结果(+1 / 0 / -1)。

零人类知识。零手工启发式。 一个配方,在各自几千万局自博弈后,掌握棋、将棋、围棋。

MuZero(2019,Schrittwieser et al.)

去掉「规则已知」的要求。

  • 不再用固定环境,而是学一个潜在动力学模型 (h, g, f):
    • h(s):把观测编码成潜在状态。
    • g(s_latent, a):预测下一潜在状态 + 奖励。
    • f(s_latent):预测策略先验 + 价值。
  • MCTS 在学到的潜在空间里跑。同样的搜索,同样的训练循环。
  • 在围棋、棋、将棋以及 Atari 上 work——一个算法,无规则知识。

Stochastic MuZero(2022) 加随机动力学与机会节点,扩展到双陆棋类博弈。Muesli、Gumbel MuZero(2022-2024) 改进样本效率与确定性搜索。

GRPO(2024-2025,DeepSeek-R1 配方)

同一个 AlphaZero 形状的循环,应用到语言模型推理:

  • 「游戏」:答一道数学 / 编程 / 推理题。「赢」= 验证器(单测通过、数值答案匹配)返回 1。

  • 策略:LLM。动作:token。状态:提示 + 至今的响应。

  • 没有 critic(PPO 式的 V_φ)。取而代之,每个提示从策略采 G 个补全,每个算奖励。用组相对优势 A_i = (r_i - mean_r) / std_r 作为 REINFORCE 式更新的信号。

  • 对参考策略的 KL 惩罚防漂移(像 RLHF)。

  • 完整损失:

    L_GRPO(θ) = -E_{q, {o_i}} [ (1/G) Σ_i A_i · log π_θ(o_i | q) ] + β · KL(π_θ || π_ref)

无奖励模型、无 critic、无 MCTS。 组相对基线替代了三者。在推理 benchmark 上以零头算力匹敌或超过 PPO-RLHF 质量。

R1 完整配方

DeepSeek-R1(DeepSeek 2025)是一篇论文里的两个模型:

  • R1-Zero。从 DeepSeek-V3 基座出发。不做 SFT。直接套 GRPO,两个奖励分量:准确性奖励(规则式——最终答案是否解析出正确数字 / 代码是否过单测)与格式奖励(补全是否把思维链包在 <think>…</think> 标签里)。几千步内,平均响应长度从 ~100 涨到 ~10000 token,数学 benchmark 分数爬到接近 o1-preview 水平。模型从零学会推理。 代价:它的思维链常不可读、混语言、缺风格打磨。
  • R1。用四阶段管线修 R1-Zero 的可读性问题:
    1. 冷启 SFT。收集几千条格式干净的长 CoT 示范,在基座上监督微调。给一个可读起点。
    2. 推理导向 GRPO。套 GRPO,用准确性 + 格式奖励,加一个语言一致性奖励防语码切换。
    3. 拒绝采样 + SFT 第二轮。从 RL checkpoint 采样 ~60 万推理轨迹,只留最终答案对且 CoT 可读的,与 ~20 万非推理 SFT 样本(写作、问答、自我认知)合并。再次微调基座。
    4. 全谱 GRPO。再跑一轮 RL,覆盖推理(规则奖励)与通用对齐(有用性/无害性偏好奖励)。

结果在 AIME 与 MATH-500 上匹敌 o1,开源权重,且小到可蒸馏。同一篇论文还发布六个蒸馏稠密模型(Qwen-1.5B 到 Llama-70B),通过在 R1 推理轨迹上 SFT——student 不做 RL蒸馏强 RL teacher 一致地胜过在 student 规模从头 RL。

为什么推理用 GRPO 而非 PPO

DeepSeekMath 论文(2024 年 2 月)给三个理由:(1) 无需训练价值网络,内存减半;(2) 组基线天然处理推理任务产生的稀疏回合末奖励;(3) 每提示归一化让优势在难度天差地别的题目间可比,而 PPO 的单一 critic 做不到。

无搜索 vs 有搜索

游戏已经分化:

  • 完美信息长视野博弈(围棋、棋):仍基于搜索。AlphaZero / MuZero 主导。
  • LLM 推理:生产中尚无 MCTS;GRPO 跑全滚动,推理算力用 Best-of-N。过程奖励模型(PRM)暗示步级搜索正在被加回。

💡 把 AlphaZero、MuZero、GRPO 放在一起看,你会发现它们是同一个想法的三种实例化:用搜索(显式 MCTS 或隐式的组采样)产生一个比当前策略更好的「教师信号」,再用监督/策略梯度把这个信号蒸馏回策略网。AlphaZero 的搜索在棋盘上,MuZero 的搜索在潜在空间,GRPO 的「搜索」是对同一提示采样 G 个补全。理解这个统一视角,你就能预测下一类 RL 突破会出现在哪。

二、从零实现

code/main.py 实现了微缩版 GRPO——一个带多组样本的多臂赌博机。算法与 LLM 上完全一样,只是策略与环境更简单。它教的是损失组相对优势这个 2025 年的创新。

Step 1:一个微型验证器环境

QUESTIONS = [ {"prompt": "q1", "correct": 3}, {"prompt": "q2", "correct": 1}, ] def verify(prompt_idx, answer_token): return 1.0 if answer_token == QUESTIONS[prompt_idx]["correct"] else 0.0

真实 GRPO 里验证器跑单测或检查数学等式。

Step 2:策略——每提示 K 个答案 token 上的 softmax

def policy_probs(theta, p_idx): return softmax(theta[p_idx])

等价于 LLM 在提示条件下的最后一层输出。

Step 3:组采样与组相对优势

def grpo_step(theta, p_idx, G=8, beta=0.01, lr=0.1, rng=None): probs = policy_probs(theta, p_idx) samples = [sample(probs, rng) for _ in range(G)] rewards = [verify(p_idx, s) for s in samples] mean_r = sum(rewards) / G std_r = stddev(rewards) + 1e-8 advs = [(r - mean_r) / std_r for r in rewards] for a, A in zip(samples, advs): grad = onehot(a) - probs for i in range(len(probs)): theta[p_idx][i] += lr * A * grad[i] # KL 惩罚:把 theta 拉向参考 for i in range(len(probs)): theta[p_idx][i] -= beta * (theta[p_idx][i] - reference[p_idx][i])

组相对优势是 2024 年 DeepSeek 的技巧。无需 critic。「基线」就是组均值,归一化用组标准差。

Step 4:与 REINFORCE 基线对比(无价值)

同样设置、同样算力,跑朴素 REINFORCE。GRPO 收敛更快更稳。

Step 5:观察熵与 KL

与 RLHF 同诊断:对参考的平均 KL、策略熵、奖励随时间。一旦这些稳定,训练就完成。

💡 注意 GRPO 与第 06 节 REINFORCE 的关系:它就是「用同一提示的 G 个采样的均值/方差当作基线」的 REINFORCE。这个基线不需要 critic、不需要价值网络,且天然按每提示归一化——这就是它内存省半、且对推理任务天然合适的根源。

三、框架对比

2026 年游戏 RL 全景,按领域:

领域 主导方法
双人零和棋类(围棋、棋、将棋) AlphaZero / MuZero / KataGo
不完全信息牌类(扑克) CFR + 深度学习(DeepStack、Libratus、Pluribus)
Atari / 像素游戏 Muesli / MuZero / IMPALA-PPO
大型多人策略(Dota、StarCraft) PPO + 自博弈 + 联赛(OpenAI Five、AlphaStar)
LLM 数学/代码推理 GRPO(DeepSeek-R1、Qwen-RL、开源复现)
LLM 对齐 DPO / RLHF-PPO(不是 GRPO;验证器是偏好非可验证)
机器人 PPO + DR(不是游戏 RL,但用同样的策略梯度工具)
组合优化 AlphaZero 变体(AlphaTensor、AlphaDev)

配方——自博弈、搜索增强改进、策略蒸馏——跨文本、像素、物理控制。GRPO 是最年轻的实例;更多即将到来。

与 HuggingFace TRL / Qwen 的对照

生产里跑 GRPO 的标准工具是 HuggingFace TRL 的 GRPOTrainer——它接受自定义奖励函数(验证器),内置对参考模型的 KL,处理序列级 log-prob 与长度归一化。Qwen2.5-Math 是 R1 配方的开源多尺度复现,值得对照阅读。本节的微缩赌博机与 GRPOTrainer 在数学上同构——区别只在策略是 softmax 还是 LLM、验证器是查表还是跑单测。

四、可复用产物

本节产出一个可复用 skill(位于原课程 outputs/skill-game-rl-designer.md)。骨架:

--- name: game-rl-designer description: 为给定领域设计游戏 RL 或推理 RL 训练管线(AlphaZero / MuZero / GRPO)。 version: 1.0.0 phase: 9 lesson: 12 tags: [rl, alphazero, muzero, grpo, self-play] --- 给定一个目标(完美信息博弈 / 不完全信息 / Atari / LLM 推理 / 组合优化),输出: 1. 环境适配。规则已知?马尔可夫?随机?多智能体?据此选 AlphaZero vs MuZero vs GRPO。 2. 搜索策略。MCTS(带学到先验的 PUCT)、Gumbel 采样、Best-of-N、或无。 3. 自博弈计划。对称自博弈 / 联赛 / 离线数据 / 验证器生成。 4. 目标信号。棋局结果 / 验证器奖励 / 偏好 / 学到的模型。含鲁棒性计划。 5. 诊断。对基线的胜率、ELO 曲线、验证器通过率、对参考的 KL。 拒绝在不完全信息博弈上用 AlphaZero(改走 CFR)。 拒绝没有可信验证器的 GRPO。 拒绝任何没有固定基线对手集的游戏 RL 管线(否则自博弈 ELO 未校准)。

五、练习

  1. 基础。code/main.py 里实现 GRPO 赌博机,2 提示 × 每提示 4 答案 token。G=8 时 1000 次更新内收敛。
  2. 进阶. 接入 PPO(裁剪)与朴素 REINFORCE,在同一赌博机上对比样本效率与奖励方差。
  3. 挑战. 扩展到长度 2 的「推理链」:智能体发两个 token,验证器奖励这对组合。测 GRPO 如何处理两步序列的信用分配。(提示:对每个完整序列算组优势,传播到两个 token 位置。)

六、常见陷阱

  • 通过验证器黑化的奖励黑化。 GRPO 继承 RLHF 的风险:若验证器错或可利用,LLM 会找到漏洞。鲁棒验证器(多单测、形式化证明)重要。
  • 组太小。 组基线的方差按 1/√G 走。G < 4 时优势信号噪;标准选择 G = 864
  • 长度偏差。 不同长度 LLM 补全的 log-prob 不同。按 token 数归一化,或用序列级 log-prob,或截到最大长度。
  • 纯自博弈循环。 AlphaZero 式训练在一般和博弈上可能卡在支配循环。用多样对手池(联赛,第 10 节)缓解。
  • 搜索-策略失配。 AlphaZero 训策略去模仿搜索输出。若策略网太小、表示不出搜索的分布,训练停滞。
  • 算力下限。 MuZero / AlphaZero 需要海量算力。单次消融常是几百 GPU 时。存在微型 demo(比如 Connect Four 上的 AlphaZero)供学习。
  • 验证器覆盖。 对错误解也通过的单测会强化 bug。设计能抓边界情况的验证器。

七、关键术语速查

术语 俗称 实际含义
MCTS 「带学习网络的树搜索」 蒙特卡洛树搜索;UCB1/PUCT 选择配学到 (p, v) 先验
AlphaZero 「自博弈 + MCTS」 策略价值网,训去匹配 MCTS 访问与棋局结果
MuZero 「学到模型的 AlphaZero」 同循环但通过学到动力学在潜在空间
GRPO 「无 critic 的 PPO」 组相对策略优化;REINFORCE + 组均值基线 + KL
PUCT 「AlphaZero 的 UCB」 Q + c · p · √N / (1 + N_a)——平衡价值估计与先验
自博弈 「智能体对过去的自己」 零和标准;对称训练信号
联赛训练 「基于人群的自博弈」 过去 + 当前 + exploiters 采样为对手
验证器奖励 「可验证 RL」 奖励来自确定性检查器(单测过、答案匹配)
过程奖励 「PRM」 给每个推理步骤打分,而非只给最终答案

八、本节要点回顾

  1. 统一循环:自博弈 → 搜索改进策略 → 策略网更新;AlphaZero、MuZero、GRPO 是同一想法的三种实例化。
  2. AlphaZero:已知规则 + 策略价值网 + MCTS(PUCT)+ 自博弈监督,零人类知识掌握棋类。
  3. MuZero:用学到的潜在动力学 (h, g, f) 去掉规则已知假设,统一棋类与 Atari。
  4. GRPO:同一循环用到 LLM 推理;组相对优势 A_i = (r_i - mean_r)/std_r 同时替代 critic 与奖励模型。
  5. GRPO 优于 PPO 的三点:无价值网络内存减半、组基线天然处理稀疏回合末奖励、每提示归一化让优势跨难度可比。
  6. DeepSeek-R1 四阶段:冷启 SFT → 推理 GRPO → 拒绝采样 SFT → 全谱 GRPO;R1-Zero 不做 SFT 直接 GRPO 学会推理但不可读。
  7. 蒸馏胜过从头 RL:R1 的推理轨迹 SFT 到 Qwen-1.5B~Llama-70B,student 不做 RL 即匹敌——蒸馏强 teacher 一致胜过 student 规模从头 RL。
  8. 配方跨域:自博弈 + 搜索增强改进 + 策略蒸馏跨文本、像素、物理;GRPO 是最年轻实例,更多即将到来。

本章收官。从 MDP 五元组出发,经动态规划、蒙特卡洛、TD、DQN、策略梯度、Actor-Critic、PPO、RLHF、多智能体、Sim-to-Real,到 AlphaZero/MuZero/GRPO——强化学习让模型从「模仿」走向「探索」,而 RLHF 与 GRPO 是大模型对齐与推理的根基。下一章,我们将进入新的主题。


发布者: 作者: Rohit Gupta 转发
评论区 (0)
U