__init__.py — verl/single_controller/__init__.py¶
文件路径¶
verl/single_controller/__init__.py
文件概述¶
这是 single_controller 模块的顶层入口文件。它的职责很简单:
1. 导入并重新导出 base 子模块中的所有公开类
2. 从版本文件中读取模块版本号(已标记为 deprecated)
关键代码讲解¶
导入和重新导出¶
from . import base:导入base子模块from .base import *:将base.__all__中列出的所有名称(Worker,WorkerGroup,ClassWithInitArgs,ResourcePool)导入到当前命名空间__all__ = base.__all__:确保当别人from verl.single_controller import *时,只会导出base.__all__中定义的名称
这意味着用户可以直接写:
而不需要写更长的路径from verl.single_controller.base import Worker。
版本号读取(已废弃)¶
version_folder = os.path.dirname(os.path.join(os.path.abspath(__file__)))
with open(os.path.join(os.path.join(version_folder, os.pardir), "version/version")) as f:
__version__ = f.read().strip()
这段代码从 verl/version/version 文件中读取版本号。注释中说明了 single_controller.__version__ 已被废弃,版本号应通过 verl.__version__ 获取。
核心类/函数列表¶
本文件不定义新的类或函数,仅做导出:
| 导出名称 | 来源 | 说明 |
|---|---|---|
Worker |
base.worker |
Worker 基类 |
WorkerGroup |
base.worker_group |
WorkerGroup 基类 |
ClassWithInitArgs |
base.worker_group |
延迟实例化包装器 |
ResourcePool |
base.worker_group |
资源池 |
与其他模块的关系¶
- 下游依赖:
verl/single_controller/base/子模块 - 上游使用者:
verl/single_controller/ray/base.py以及框架中需要创建 WorkerGroup 的任何代码
小结¶
这个文件是纯粹的模块入口,作用是简化导入路径。理解这个文件后你就知道 single_controller 对外暴露的四个核心概念:Worker、WorkerGroup、ClassWithInitArgs、ResourcePool。