400 lines
11 KiB
Markdown
400 lines
11 KiB
Markdown
---
|
||
title: 世界模型与 RAP:LLM 作为推理代理
|
||
draft: false
|
||
tags:
|
||
- World-Model
|
||
- RAP
|
||
- MCTS
|
||
- Reasoning
|
||
- 大语言模型
|
||
---
|
||
|
||
# 世界模型与 RAP:LLM 作为推理代理
|
||
|
||
---
|
||
|
||
## 一、世界模型的两种范式
|
||
|
||
### 1.1 范式 1:状态转移/规划模拟器
|
||
|
||
**核心思想**:
|
||
|
||
将 LLM 看作一个**世界状态预测器**——给定当前状态和行动,预测下一个状态。
|
||
|
||
**数学表示**:
|
||
|
||
$$s_{t+1} = f_\theta(s_t, a_t) \tag{1.1}$$
|
||
|
||
其中:
|
||
- $s_t$:当前世界状态
|
||
- $a_t$:行动
|
||
- $f_\theta$:由 LLM 参数化的状态转移函数
|
||
|
||
**应用场景**:
|
||
- 推理任务:将推理步骤视为"行动",将状态视为"推理进展"
|
||
- 规划任务:将子目标视为"状态",将行动视为"规划步骤"
|
||
- MCTS 搜索:在推理树中进行搜索
|
||
|
||
### 1.2 范式 2:环境动力学模型
|
||
|
||
**核心思想**:
|
||
|
||
在 embodied AI、机器人、视频生成等场景中,学习一个能够预测未来状态的模型。
|
||
|
||
**数学表示**:
|
||
|
||
$$\hat{s}_{t+k} = g_\theta(s_t, a_t, a_{t+1}, \ldots, a_{t+k-1}) \tag{1.2}$$
|
||
|
||
**应用场景**:
|
||
- 机器人控制:预测动作后的物理状态
|
||
- 视频生成:预测未来帧
|
||
- 游戏 AI:预测对手响应
|
||
|
||
### 1.3 从 LLM 主线看世界模型
|
||
|
||
**本笔记的关注点**:
|
||
|
||
从 LLM 的角度,世界模型的核心问题是:
|
||
|
||
> **如何让 LLM 在推理/规划任务中,像在真实世界中行动一样,进行搜索、探索和规划?**
|
||
|
||
**关键论文**:
|
||
|
||
- RAP(Reasoning with AlphaProof):将 LLM 作为推理世界中的"Agent",使用 MCTS 搜索推理树
|
||
|
||
---
|
||
|
||
## 二、RAP 的核心思想
|
||
|
||
### 2.1 核心洞察
|
||
|
||
**RAP**(Reasoning with AlphaProof)的核心是:利用 LLM 作为"世界模型",在推理空间中进行 MCTS 搜索。
|
||
|
||
**关键观察**:
|
||
|
||
在推理问题中,"世界状态"是**推理的当前进展**,"行动"是**推理步骤**,状态转移是**执行推理步骤后得到的新状态**。
|
||
|
||
**与传统 MCTS 的区别**:
|
||
|
||
| 传统 MCTS | RAP |
|
||
|---------|-----|
|
||
| 游戏状态 | 推理状态 |
|
||
| 游戏规则 | 推理规则(由 LLM 隐式编码) |
|
||
| 评估函数 | LLM 自己判断进展 |
|
||
| 叶子节点评估 | 证明成功/失败判定 |
|
||
|
||
### 2.2 推理问题的形式化
|
||
|
||
**定义(推理问题)**:
|
||
|
||
给定问题 $x$,目标是找到一个有效的推理序列 $\{a_1, a_2, \ldots, a_T\}$,使得:
|
||
$$s_T \models \text{solved} \quad \text{and} \quad \forall t: s_t \vdash a_t \rightarrow s_{t+1} \tag{2.1}$$
|
||
|
||
其中 $s_t$ 是推理状态,$a_t$ 是推理行动(步骤),$\vdash$ 表示"可以执行"。
|
||
|
||
**状态表示**:
|
||
|
||
$$s_t = (x, \text{progress}_t, \text{evidence}_t) \tag{2.2}$$
|
||
|
||
其中:
|
||
- $x$:原始问题
|
||
- $\text{progress}_t$:当前的推理进展
|
||
- $\text{evidence}_t$:已有的证据和中间结论
|
||
|
||
### 2.3 LLM 作为世界模型
|
||
|
||
**定理(LLM 世界模型假设)**:
|
||
|
||
LLM 隐式地编码了推理世界的转移规则:
|
||
$$f_\theta(s, a) \approx s' \quad \text{where } s' = \text{LLM}([s; a]) \tag{2.3}$$
|
||
|
||
即给定当前状态 $s$ 和行动 $a$,LLM 能够预测执行 $a$ 后的新状态 $s'$。
|
||
|
||
**物理意义**:
|
||
|
||
这意味着 LLM 能够:
|
||
1. 判断给定的行动是否可以在当前状态执行
|
||
2. 预测执行行动后的新状态
|
||
3. 评估当前状态是否已达到目标
|
||
|
||
---
|
||
|
||
## 三、MCTS 搜索框架
|
||
|
||
### 3.1 Monte Carlo Tree Search 基础
|
||
|
||
**MCTS 的核心循环**:
|
||
|
||
```
|
||
while time_budget:
|
||
1. Selection: 从根节点开始,选择最优子节点直到叶子
|
||
2. Expansion: 扩展一个或多个子节点
|
||
3. Simulation: 从新节点开始随机 rollout 直到终局
|
||
4. Backpropagation: 将结果反向传播更新统计量
|
||
```
|
||
|
||
**UCB(Upper Confidence Bound)选择**:
|
||
|
||
$$a^* = \arg\max_a \left[ Q(s, a) + c \cdot \sqrt{\frac{\ln N(s)}{N(s, a)}} \right] \tag{3.1}$$
|
||
|
||
其中:
|
||
- $Q(s, a)$:状态-行动值函数
|
||
- $N(s)$:状态 $s$ 的访问次数
|
||
- $N(s, a)$:状态-行动对 $(s, a)$ 的访问次数
|
||
- $c$:探索常数
|
||
|
||
### 3.2 RAP 中的 MCTS 定制
|
||
|
||
**状态节点**:
|
||
|
||
每个节点 $n$ 存储:
|
||
- $s(n)$:推理状态
|
||
- $N(n)$:访问次数
|
||
- $Q(n)$:平均价值
|
||
- $P(n \rightarrow a)$:行动 $a$ 的先验概率
|
||
|
||
**行动空间**:
|
||
|
||
在推理任务中,行动空间是 LLM 可能的输出(推理步骤):
|
||
$$a \in \mathcal{A} = \text{LLM outputs conditioned on } s \tag{3.2}$$
|
||
|
||
### 3.3 价值评估
|
||
|
||
**定义(叶子节点评估)**:
|
||
|
||
对于叶子节点 $s_L$,使用以下方式评估:
|
||
|
||
$$V(s_L) = \begin{cases} 1 & \text{if } s_L \models \text{solved} \\ 0 & \text{if } s_L \models \text{impossible} \\ \text{LLM\_eval}(s_L) & \text{otherwise} \end{cases} \tag{3.3}$$
|
||
|
||
**LLM\_eval 函数**:
|
||
|
||
让 LLM 评估当前状态是否"有希望":
|
||
$$\text{LLM\_eval}(s) = \sigma(\text{LLM}([s, \text{"评估:这个推理是否在正确轨道上?"}])) \tag{3.4}$$
|
||
|
||
### 3.4 RAP 的算法流程
|
||
|
||
**Algorithm: RAP (Reasoning with AlphaProof)**
|
||
|
||
```
|
||
输入:问题 x,时间预算 T
|
||
输出:推理轨迹或"未解决"
|
||
|
||
# 初始化
|
||
root = Node(s = initial_state(x))
|
||
policy = LLM_policy # 用于生成候选行动
|
||
evaluator = LLM_eval # 用于评估状态
|
||
|
||
for t = 1 to T:
|
||
# 1. Selection: 使用 UCB 选择路径直到未扩展节点
|
||
node = root
|
||
while node.is_expanded:
|
||
node = UCB_select(node)
|
||
|
||
# 2. Expansion: 使用 LLM 生成候选行动
|
||
candidate_actions = policy(s(node))
|
||
for a in candidate_actions:
|
||
child = Node(s = f(s(node), a), parent=node)
|
||
node.add_child(child)
|
||
|
||
# 3. Simulation: 随机选择一个子节点 rollout
|
||
if candidate_actions not empty:
|
||
child = random_sample(candidate_actions)
|
||
rollout_result = rollout(child)
|
||
|
||
# 4. Backpropagation: 更新所有祖先节点的价值
|
||
update_values(root, rollout_result)
|
||
|
||
# 5. 检查是否找到解
|
||
if node.is_terminal and node.is_solved:
|
||
return extract_solution(node)
|
||
|
||
return "未在时间预算内解决"
|
||
```
|
||
|
||
---
|
||
|
||
## 四、世界模型在推理中的作用
|
||
|
||
### 4.1 状态评估
|
||
|
||
**LLM 作为评估器**:
|
||
|
||
给定推理状态 $s$,LLM 可以评估:
|
||
1. **可达性**:从当前状态能否到达目标?
|
||
2. **正确性**:当前推理步骤是否正确?
|
||
3. **前景**:继续当前方向是否有希望?
|
||
|
||
**数学表示**:
|
||
|
||
$$V_\theta(s) = P_\theta(\text{"有希望"} | s) \tag{4.1}$$
|
||
|
||
### 4.2 行动生成
|
||
|
||
**LLM 作为策略**:
|
||
|
||
给定当前状态 $s$,LLM 生成候选行动(推理步骤):
|
||
$$a_t \sim P_\theta(\cdot | s, \text{prompt}) \tag{4.2}$$
|
||
|
||
**候选行动的多样性**:
|
||
|
||
使用 temperature 采样生成多个候选:
|
||
$$a_t^{(1)}, a_t^{(2)}, \ldots, a_t^{(K)} \sim P_\theta(\cdot | s, T=\tau) \tag{4.3}$$
|
||
|
||
### 4.3 状态转移
|
||
|
||
**执行行动得到新状态**:
|
||
|
||
$$s' = f_\theta(s, a) \approx \text{LLM}([s, a]) \tag{4.4}$$
|
||
|
||
**注意**:状态转移函数 $f_\theta$ 由 LLM 隐式定义,不是显式学习的。
|
||
|
||
---
|
||
|
||
## 五、与其他推理方法的对比
|
||
|
||
### 5.1 与 CoT 的对比
|
||
|
||
| 维度 | CoT | RAP |
|
||
|------|-----|-----|
|
||
| **推理结构** | 固定链式 | 搜索树 |
|
||
| **回溯** | 无 | 有 |
|
||
| **探索方式** | 单路径 | 树搜索 |
|
||
| **评估** | 无显式评估 | 显式状态评估 |
|
||
| **计算成本** | $O(T)$ | $O(T \cdot B \cdot D)$ |
|
||
|
||
### 5.2 与 ToT 的对比
|
||
|
||
| 维度 | ToT | RAP |
|
||
|------|-----|-----|
|
||
| **搜索算法** | 任意(可 BFS/DFS) | MCTS |
|
||
| **价值评估** | 启发式评估 | 学习评估 |
|
||
| **探索利用平衡** | 手动调参 | UCB 自适应 |
|
||
| **统计量利用** | 无 | 反向传播统计 |
|
||
|
||
### 5.3 与 AlphaZero 的对比
|
||
|
||
| 维度 | AlphaZero | RAP |
|
||
|------|----------|-----|
|
||
| **游戏规则** | 已知 | 由 LLM 隐式编码 |
|
||
| **价值网络** | 单独训练 | LLM 评估 |
|
||
| **策略网络** | 单独训练 | LLM 生成 |
|
||
| **搜索** | MCTS | MCTS |
|
||
| **应用** | 游戏(围棋等) | 推理任务 |
|
||
|
||
---
|
||
|
||
## 六、训练过程与问题
|
||
|
||
### 6.1 离线训练
|
||
|
||
**LLM 预训练**:
|
||
|
||
LLM 在大规模文本上预训练,学习推理规则和世界知识。
|
||
|
||
**状态转移学习**:
|
||
|
||
通过 next token prediction,隐式学习状态转移:
|
||
$$\mathcal{L} = -\sum_t \log P_\theta(s_{t+1} | s_t, a_t) \tag{6.1}$$
|
||
|
||
### 6.2 在线微调
|
||
|
||
**成功轨迹的正则化**:
|
||
|
||
当 MCTS 找到成功路径时,使用成功轨迹微调 LLM:
|
||
$$\mathcal{L}_{\mathrm{KL}} = -\sum_{s_t, a_t \in \mathrm{KL}} \log P_\theta(a_t | s_t) \tag{6.2}$$
|
||
|
||
### 6.3 训练中的问题
|
||
|
||
**问题 1:状态转移的不确定性**
|
||
|
||
LLM 预测的状态转移可能不确定或错误。
|
||
|
||
**解决方案**:
|
||
1. 使用多个采样轨迹
|
||
2. 对状态转移的不确定性建模
|
||
3. 只使用高置信度的转移
|
||
|
||
**问题 2:探索-利用平衡**
|
||
|
||
在推理空间中,过度探索浪费时间,过度利用可能错过正确路径。
|
||
|
||
**解决方案**:
|
||
1. 使用 UCB 自适应平衡
|
||
2. 课程学习(从简单到复杂)
|
||
3. 经验回放(优先采样有希望的路径)
|
||
|
||
### 6.4 收敛性分析
|
||
|
||
**定理(搜索收敛)**:
|
||
|
||
随着搜索时间 $T \to \infty$ 和探索常数 $c$ 的适当衰减,MCTS 收敛到最优策略:
|
||
$$\pi^*(s) = \arg\max_a Q(s, a) \tag{6.3}$$
|
||
|
||
**证明**:基于 MCTS 的标准收敛性理论。
|
||
|
||
---
|
||
|
||
## 七、数学公式速查
|
||
|
||
### 7.1 世界模型公式
|
||
|
||
**状态转移**:
|
||
$$s_{t+1} = f_\theta(s_t, a_t) \approx \text{LLM}([s_t; a_t]) \tag{7.1}$$
|
||
|
||
**状态评估**:
|
||
$$V_\theta(s) = P_\theta(\text{"有希望"} | s) \tag{7.2}$$
|
||
|
||
### 7.2 MCTS 公式
|
||
|
||
**UCB 选择**:
|
||
$$a^* = \arg\max_a \left[ Q(s, a) + c \cdot \sqrt{\frac{\ln N(s)}{N(s, a)}} \right] \tag{7.3}$$
|
||
|
||
**价值回传**:
|
||
$$Q(n) = \frac{1}{N(n)} \sum_{n' \in \text{descendants}(n)} V(n') \tag{7.4}$$
|
||
|
||
### 7.3 推理问题公式
|
||
|
||
**推理状态**:
|
||
$$s_t = (x, \text{progress}_t, \text{evidence}_t) \tag{7.5}$$
|
||
|
||
**目标达成**:
|
||
$$s_T \models \text{solved} \tag{7.6}$$
|
||
|
||
---
|
||
|
||
## 八、总结
|
||
|
||
**世界模型的核心洞察**:
|
||
|
||
> LLM 可以被视为一个"推理世界模型"——它隐式地编码了推理状态之间的转移规则,可以用于在推理空间中进行 MCTS 搜索。
|
||
|
||
**RAP 的贡献**:
|
||
|
||
1. 将 MCTS 框架应用于 LLM 推理
|
||
2. 利用 LLM 作为状态评估器和行动生成器
|
||
3. 通过搜索找到比单纯 CoT 更好的推理路径
|
||
|
||
**与其他方法的关系**:
|
||
|
||
| 方法 | 核心思想 | 搜索结构 |
|
||
|------|---------|---------|
|
||
| **CoT** | 显式推理链 | 链式 |
|
||
| **ToT** | 搜索树 | 树 |
|
||
| **RAP** | MCTS + LLM 世界模型 | MCTS 树 |
|
||
| **AlphaZero** | MCTS + 神经网络 | MCTS 树 |
|
||
|
||
**核心公式**:
|
||
|
||
- 状态转移:$s_{t+1} = \text{LLM}([s_t; a_t])$
|
||
- UCB 选择:$a^* = \arg\max_a [Q(s,a) + c\sqrt{\ln N(s)/N(s,a)}]$
|
||
- 价值评估:$V(s) = P_\theta(\text{"有希望"} | s)$
|
||
|
||
---
|
||
|
||
**延伸阅读**:
|
||
|
||
1. Silver et al., "A AlphaZero" (Science 2017) — AlphaZero 基础
|
||
2. Silver et al., "Mastering the Game of Go without Human Knowledge" (Nature 2017)
|
||
3. Yao et al., "Think before I Act: Large Language Models for Planning and Robotics" (2023)
|
||
4. Liu et al., "Towards Closed-Loop Agent in LLM-based RL" (2024)
|
||
5. Hu et al., "RAP: Reasoning with AlphaProof" (2024) |