[ PROMPT_NODE_22876 ]
Post Training Torchforge API 参考
[ SKILL_DOCUMENTATION ]
# torchforge API 参考
## 架构概览
torchforge 实现了一个完全异步的强化学习系统,构建于以下基础之上:
- **Monarch**: PyTorch 原生分布式协调框架
- **TorchTitan**: Meta 的生产级大模型训练平台
- **vLLM**: 高吞吐量推理引擎
┌─────────────────────────────────────────────────────────┐
│ 应用层 (你的代码) │
│ - 定义奖励模型、损失函数、采样 │
└─────────────────────┬───────────────────────────────────┘
│
┌─────────────────────▼───────────────────────────────────┐
│ Forge API 层 │
│ - ForgeActor, Service │
│ - 异步服务接口 │
└─────────────────────┬───────────────────────────────────┘
│
┌─────────────────────▼───────────────────────────────────┐
│ 分布式服务 (Monarch) │
│ ├── TitanTrainer (TorchTitan FSDP) │
│ ├── Generator (vLLM 推理) │
│ └── ReferenceModel (冻结的 KL 基准) │
└─────────────────────────────────────────────────────────┘
## 核心类
### ForgeActor
具有可配置资源属性的 Forge 执行器基类。
**位置**: `forge.controller.actor.ForgeActor`
python
from forge.controller.actor import ForgeActor
class MyActor(ForgeActor):
procs = 1 # 进程数
hosts = None # 主机分布
with_gpus = True # GPU 分配标志
num_replicas = 1 # 服务副本数
mesh_name = None # 进程网格标识符
**类方法**:
- `as_actor(*args, **actor_kwargs)` → 使用 .options() 配置生成单个执行器
- `launch(*args, **kwargs)` → 配置并部署新的执行器副本
- `options(*, procs=1, hosts=None, with_gpus=False, num_replicas=1, mesh_name=None, **kwargs)` → 预配置执行器类
- `shutdown(actor)` → 终止执行器实例
### TitanTrainer
构建于 TorchTitan 训练引擎之上的通用训练器执行器。
**位置**: `forge.actors.trainer.TitanTrainer`
**关键方法**:
- `forward_backward(batch)` → 前向和反向传播
- `train_step()` → 完成训练步骤
- `setup()` / `cleanup()` → 生命周期方法
- `clear_gradients()` → 重置梯度
- `save()` / `load()` → 检查点操作
- `push_weights()` → 将权重同步至推理端
- `get