import_utils.py — 动态导入与依赖检查¶
文件路径: verl/utils/import_utils.py
文件概述¶
import_utils.py 提供了可选依赖包的可用性检查函数。verl 依赖很多可选库(如 vLLM、Megatron、Flash Attention 等),该文件用 importlib 在运行时检测这些包是否已安装,避免硬依赖导致的导入错误。
核心模式¶
所有检查函数遵循相同的模式:
find_spec() 只检查包是否可以被找到(已安装),不会真正导入,因此非常轻量。
核心函数列表¶
| 函数 | 检查的库 | 用途 |
|---|---|---|
is_vllm_available() |
vllm | 推理引擎 |
is_sglang_available() |
sglang | 推理引擎 |
is_megatron_core_available() |
megatron.core | 大模型并行训练 |
is_nvtx_available() |
nvtx | NVIDIA 性能标记 |
is_wandb_available() |
wandb | 实验追踪 |
is_mlflow_available() |
mlflow | 实验追踪 |
is_flash_attn_available() |
flash_attn | 高效注意力 |
与其他模块的关系¶
profiler/__init__.py用它检查 NVTX 是否可用tracking.py用它检查 WandB/MLflow 等追踪后端- 各个 worker 模块用它判断应该加载哪个推理引擎
小结¶
import_utils.py 是一个简洁但重要的工具文件,它让 verl 能优雅地处理可选依赖,避免在缺少某个库时整个框架无法导入。