---
title: "Searcher-Trainer 解耦架构"
created: 2026-05-12
updated: 2026-05-12
type: concept
tags: ["distributed-systems", "reinforcement-learning", "llm-post-training"]
sources: ["arxiv:2503.18929"]
---

# Searcher-Trainer 解耦架构

**Searcher-Trainer 解耦** 是 [[tba|TBA]] 的架构基础，将 LLM 后训练中的**探索（数据生成）**和**学习（策略更新）**分配到独立的计算节点上，实现高度并行化。

## 架构对比

### 传统 On-Policy（串行）

```
单一节点:
  Generate → Reward → Update → Generate → Reward → Update → ...
     ↑                                                       │
     └───────────────────────────────────────────────────────┘
           每次更新后 GPU 闲置等待生成 / 生成等待更新
```

### TBA Searcher-Trainer（并行）

```
Searcher 1: Generate ⇢ Reward ⇢ Buffer  ─┐
Searcher 2: Generate ⇢ Reward ⇢ Buffer  ─┤
    ...                                    ├── D_global
Searcher N: Generate ⇢ Reward ⇢ Buffer  ─┘
                                              │
                        每 k 步同步 ─────────┤
                                              │
Trainer:        ← Buffer Sampling ← TB Loss ←┘
```

## 同步协议

- **同步周期 $k$**：每 $k$ 步训练后，暂停以交换权重和 buffer 数据
- **权重传递**：Trainer → Searcher（更新本地推理策略）
- **数据传递**：Searcher → Trainer（$D_{local} \to D_{global}$）

## 节点定义

在 TBA 中，"节点" 是执行完整搜索或训练操作所需的计算资源：
- 1 节点 = **1 GPU**
- 典型配置：16 GPU → 15 Searcher + 1 Trainer
- 最小配置：2 GPU → 1 Searcher + 1 Trainer

## 效率来源

| 操作 | 瓶颈类型 | 解耦后效果 |
|------|---------|-----------|
| LLM 推理（生成） | Memory-bound | Searcher 持续 vLLM 推理 |
| 策略更新（训练） | Compute-bound | Trainer 持续 forward+backward |
| **关键** | **两者互不等待** | **GPU 利用率接近 100%** |

## 与经典分布式 RL 的关系

TBA 的 Searcher-Trainer 架构类似于 **IMPALA**（Espeholt et al., 2018），后者也通过 actor-learner 分离实现高效分布式 RL。关键区别：

- IMPALA 使用 V-trace（需要价值函数 $V(s)$）
- TBA 使用 TB 目标（无需 critic）

## 相关概念

- [[tba|TBA]] — 框架实现
- [[asynchronous-rl-llm]] — 异步 RL 范式
- [[replay-buffer-rl-llm]] — Buffer 设计
- [[reward-recency-sampling]] — 采样策略
- [[bartoldson-tba-2025|论文页面]]
