dvc.yaml 应该由 dvc run 命令编写或生成吗?

问题描述

为了理解 dvc,大多数教程都提到了通过运行 NaN 命令来生成 dvc.yaml。

但同时,定义 DAG 的 dvc.yaml 也是 well documented。此外,它是一种 yaml 格式且人类可读/可写的事实表明,它旨在成为用于指定数据管道的 DSL。

有人可以澄清哪种做法更好吗? 编写 dvc.yaml 还是让它由 dvc run 命令生成? 还是由用户自行选择,没有技术差异?

解决方法

两个,真的。

主要是 dvc run(或较新的 dvc stage add 后跟 dvc exp run)旨在管理您的 dvc.yaml 文件。对于大多数(包括临时)用户来说,这可能是最简单的,因此也是最好的。将保证格式正确(类似于在{git,dvc} config 之间选择和直接修改.{git,dvc}/config

然而,正如您所注意到的,dvc.yaml 是人类可读的。这是有意为之,以便更高级的用户可以手动编辑 YAML(可能会使某些验证检查短路,或解锁 foreach stages 等高级功能)。

,

我建议手动编辑作为主要途径! (我相信这是自 DVC 2.0 以来官方推荐的)

dvc stage add 对于管道文件的程序化生成仍然非常有帮助,但它不支持 dvc.yaml 的所有功能,例如设置 vars 值或定义 {{3 }}。