两者之间有什么区别?我们在上一份工作中使用了git-lfs,并且在我当前的工作中开始与git一起使用dvc。它们都放置某种索引而不是文件,可以按需下载。 dvc是否比前一个有所改进?
答案 0 :(得分:7)
DVC是git-lfs
的更好替代。
与git-lfs不同,DVC不需要安装专用服务器。它可以在本地(例如NAS,SSH)或任何主要云提供商(S3,Google Cloud,Azure)上使用。
有关更多信息:https://dvc.org/doc/use-cases/data-and-model-files-versioning
答案 1 :(得分:6)
DVC 并不比 git-lfs 好:它们完全不同。所选答案在很大程度上是有偏见的。两者只是不同的工具,用于不同的目的。
git status
不会注意到此类更改,并且您可能会丢失此类更改,除非您使用 dvc 进行额外检查。DVC 与 git-lfs 的目的不同。 DVC不仅用于保存大文件,而且主要管理大文件是确定性过程的结果。因此,除了存储大文件之外,dvc 还控制处理管道,就像 Makefile
一样,通过在 Makefile
中定义依赖关系,如果处理输入(也是 dvc 跟踪的文件或参数) ) 更改,dvc 计算必须重新生成哪些文件(是的,例如 Makefile
s)。这就是为什么 DVC 通常被描述为 用于数据科学的 makefile 工具。如果您要生成大量的大型 AI 模型或繁重的数据文件,那就太棒了。
就我个人而言,我将两者都用于大文件存储。 git-lfs 简化了大文件管理,但 dvc 简化了大文件存储(这简化了管理),代价是没有这种透明度,有时会丢失数据。但我不使用 dvc 进行管道计算,直到现在我更喜欢我自己的实现。 DVC 正在变得更好,也许在未来。
答案 2 :(得分:3)