4

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

但同时,定义 DAG 的 dvc.yaml 也有据可查。此外,它是一种 yaml 格式和人类可读/可写的事实表明它是用于指定数据管道的 DSL。

有人可以澄清哪个是更好的做法吗?编写 dvc.yaml 还是让它通过dvc run命令生成?还是留给用户选择,没有技术差异?

4

2 回答 2

4

两者,真的。

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

但是,正如您所注意到的,dvc.yaml它是人类可读的。这是故意的,以便更高级的用户可以手动编辑 YAML(可能会使某些验证检查短路,或解锁高级功能,例如foreachstage)。

于 2021-06-16T14:47:23.297 回答
4

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

dvc stage add对于以编程方式生成管道文件仍然很有帮助,但它不支持 的所有功能dvc.yaml,例如设置vars值或定义foreach阶段

于 2021-06-16T16:00:05.940 回答