我最近开始使用 DVC 管道在我的应用程序中创建 DAG。我从事机器学习项目,我需要对系统的不同节点进行大量实验。例如:
Data preprocessing -> feature extraction -> model training -> model evaluation
每个节点产生一个输出,每个节点的输出用于另一个节点。DVC 允许我做的是创建一个管道,我可以在其中指定节点之间的依赖关系。我也使用.yaml
文件来配置我的应用程序的参数,您也可以将这些参数指定为不同节点的依赖项。因此,只要节点之间的依赖关系发生变化(可以是配置参数或指定的输入/输出),DVC 就能够检测到这一点,并运行管道的必要部分。如果特定节点的依赖项没有更改,DVC 可以使用其缓存跳过该步骤。这对我来说真的很有用,因为有些节点需要很长时间才能执行,而且它们并不总是需要运行(如果它们的依赖关系没有改变的话)。
我也开始使用 hydra 来管理我的配置文件,老实说,DVC 不能很好地与 hydra 配合使用。它需要一个静态配置来指定参数依赖项,而使用 hydra 做起来有点棘手,并且使事情复杂化。
我的问题是:是否有任何 DVC Pipelines 的替代品也适用于 hydra?