必看-基于lazy_loader的算子开发
325 字约 1 分钟
2025-07-12
因为Dataflow中有大量基于不同Python库,不同依赖的开发的算子。如果解释器一次性import所有算子和对应依赖,会带来极大的负载压力。而且随着未来各种库的增多,可能会有一些库是互斥的。所以Lazyload
懒加载是必要的。懒加载,即只在算子被import的时候加载的时候import其所有的依赖。
感谢Zimo Meng实现了自动识别语法树的lazyloader,并可以被VSCode正常高亮。开发新算子的时候,除了正常的写算子逻辑的python脚本,还需要注意写入必要的import以保证Dataflow
框架能正常索引到对应的文件并import。
具体来说,参考这个最基础的PromptedGenerator
算子:链接
当实现了其逻辑后,需要在其上一级的dataflow/operators/generate/__init__.py
文件中,添加在如下位置并做好对应注释:
if TYPE_CHECKING:
# GeneralText
from .GeneralText.pretrain_generator import PretrainGenerator
from .GeneralText.condor_generator import CondorGenerator
from .GeneralText.prompted_generator import PromptedGenerator # 像这样加在这里
# Reasoning
...
请务必按照上述格式,不要添加其他位置的from xxxx import *
,以免失去懒加载
的能力。