DVC使用Git提交来保存实验并在实验之间导航。
是否有可能避免在CI/CD中进行自动提交(在CI/CD端执行dvc repro
后保存数据工件)?
回答:
你会将其作为CI管道的一部分吗?
DVC通常作为MLOps基础设施的一部分。有一篇关于ML的CI/CD的流行博客文章,其中使用了DVC。另一个例子是使用GitLab CI/CD的示例。
你会将dvc commit命令与CI管道整合的场景是什么?
如果你指的是DVC文件的git commit
(而不是dvc commit
),那么是的,你需要在CI/CD过程中将dvc文件提交到Git。自动提交并不是最佳实践。
如何在CI/CD中避免Git提交:
- 在CI/CD中的ML模型训练后,将更改的dvc文件保存到外部存储(例如GitLab工件/发布),然后将文件获取到开发者机器上并在那里进行提交。用户通常会编写脚本来自动化这一过程。
- 等待DVC 1.0版本发布,当run-cache(类似于build-cache)被实现时。Run-cache使得dvc文件成为临时文件,不再需要额外的Git提交。从技术上讲,run-cache是一种关联存储
repo state --> run results
,它位于Git仓库之外(在数据远程)。
免责声明:我是DVC的创建者之一。