跳转至

__init__.py — verl/single_controller/__init__.py

文件路径

verl/single_controller/__init__.py

文件概述

这是 single_controller 模块的顶层入口文件。它的职责很简单: 1. 导入并重新导出 base 子模块中的所有公开类 2. 从版本文件中读取模块版本号(已标记为 deprecated)

关键代码讲解

导入和重新导出

from . import base
from .base import *

__all__ = base.__all__
  • 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 import Worker, WorkerGroup
而不需要写更长的路径 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。