--- 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|论文页面]]