🚀查看我们的新产品DataChain <https://github.com/iterative/datachain>
_(并给它一个⭐!)如果你需要版本化和处理大量文件。请通过support@iterative.ai联系我们,讨论AI可重复性和数据管理场景的商业解决方案和支持。
网站 <https://dvc.org>
_
• 文档 <https://dvc.org/doc>
_
• 博客 <http://blog.dataversioncontrol.com>
_
• 教程 <https://dvc.org/doc/get-started>
_
• 相关技术 <https://dvc.org/doc/user-guide/related-technologies>
_
• DVC工作原理
_
• VS Code扩展
_
• 安装
_
• 贡献
_
• 社区和支持
_
|CI| |Python版本| |覆盖率| |VS Code| |DOI|
|PyPI| |PyPI下载| |包| |Brew| |Conda| |Choco| |Snap|
|
数据版本控制或DVC是一个命令行工具和VS Code扩展
_,可帮助你开发可重复的机器学习项目:
#. 版本化你的数据和模型。 将它们存储在你的云存储中,但将其版本信息保留在你的Git仓库中。
#. 利用轻量级管道快速迭代。 当你做出更改时,只运行受这些更改影响的步骤。
#. 在本地Git仓库中跟踪实验(无需服务器)。
#. 比较任何数据、代码、参数、模型或性能图。
#. 共享实验并自动重现他人的实验。
快速开始
请阅读我们的`命令参考 <https://dvc.org/doc/command-reference>`_以获取完整列表。
一个常见的CLI工作流程包括:
+-----------------------------------+----------------------------------------------------------------------------------------------------+
| 任务 | 终端 |
+===================================+====================================================================================================+
| 跟踪数据 | | $ git add train.py params.yaml
|
| | | $ dvc add images/
|
+-----------------------------------+----------------------------------------------------------------------------------------------------+
| 连接代码和数据 | | $ dvc stage add -n featurize -d images/ -o features/ python featurize.py
|
| | | $ dvc stage add -n train -d features/ -d train.py -o model.p -M metrics.json python train.py
|
+-----------------------------------+----------------------------------------------------------------------------------------------------+
| 做更改和实验 | | $ dvc exp run -n exp-baseline
|
| | | $ vi train.py
|
| | | $ dvc exp run -n exp-code-change
|
+-----------------------------------+----------------------------------------------------------------------------------------------------+
| 比较和选择实验 | | $ dvc exp show
|
| | | $ dvc exp apply exp-baseline
|
+-----------------------------------+----------------------------------------------------------------------------------------------------+
| 共享代码 | | $ git add .
|
| | | $ git commit -m 'The baseline model'
|
| | | $ git push
|
+-----------------------------------+----------------------------------------------------------------------------------------------------+
| 分享数据和ML模型 | | $ dvc remote add myremote -d s3://mybucket/image_cnn
|
| | | $ dvc push
|
+-----------------------------------+----------------------------------------------------------------------------------------------------+
DVC工作原理
我们鼓励你阅读我们的`开始 <https://dvc.org/doc/get-started>`_文档,以更好地理解DVC的作用及其如何适应你的场景。
描述DVC主要功能的最相似的类比是这些:
#. 数据的Git:存储并分享数据工件(类似Git-LFS但没有服务器)和模型,将它们与Git仓库连接。数据管理与GitOps结合! #. ML的Makefiles:以标准格式描述数据或模型工件是如何从其他数据和代码中构建的。现在你可以用Git来版本化你的数据管道。 #. 本地实验跟踪:将你的机器变成一个ML实验管理平台,并使用现有的Git托管(Github, Gitlab等)与其他人协作。
Git被照常用于存储和版本化代码(包括DVC元文件作为数据的占位符)。
DVC 无缝地存储数据和模型文件 <https://dvc.org/doc/start/data-management>
_ 在Git之外的缓存中,同时保留几乎与它们在仓库中的相同用户体验。
为了共享和备份数据缓存,DVC支持多种远程存储平台——任何云(S3, Azure, Google Cloud等)或本地网络存储(例如,通过SSH)。
|流程图|
DVC管道 <https://dvc.org/doc/start/data-management/data-pipelines>
_(计算图)将代码和数据连接在一起。
它们指定了生成模型所需的所有步骤:输入依赖项包括代码、数据、运行命令;以及要保存的输出信息。
最后但同样重要的是,DVC实验版本控制 <https://dvc.org/doc/start/experiments>
_ 让你准备用运行大量实验。
它们的结果可以根据超参数和指标进行筛选和比较,并用多个图表进行可视化。
.. _VS Code扩展
:
VS Code扩展
|VS Code|
要直接从你的VS Code IDE使用DVC作为GUI,请从市场安装DVC扩展 <https://marketplace.visualstudio.com/items?itemName=Iterative.dvc>
_。
目前它具有实验跟踪和数据管理功能,更多功能(如数据管道支持等)即将推出!
|VS Code扩展概述|
注意:你需要在系统上单独安装核心DVC(详见下文)。如果需要,扩展将指导你。
安装
有几种方法可以安装DVC: 在VS Code中;使用snap
、choco
、brew
、conda
、pip
;或使用特定操作系统的包。
完整说明见此处 <https://dvc.org/doc/get-started/install>
_。
Snapcraft(Linux)
|Snap|
.. 代码块:: bash
snap install dvc --classic
这对应于最新的标记版本。
添加--beta
获取最新的候选版本,或--edge
获取最新的main
版本。
Chocolatey(Windows)
|Choco|
.. 代码块:: bash
choco install dvc
Brew(mac OS)
|Brew|
.. 代码块:: bash
brew install dvc
Anaconda(任何平台)
|Conda|
.. 代码块:: bash
conda install -c conda-forge mamba # 安装速度比conda快得多 mamba install -c conda-forge dvc
根据你计划用于存储和共享数据的远程存储类型,你可能需要安装可选依赖项:dvc-s3
,dvc-azure
,dvc-gdrive
,dvc-gs
,dvc-oss
,dvc-ssh
。
PyPI(Python)
|PyPI|
.. 代码块:: bash
pip install dvc
根据您计划使用的远程存储类型来保存和共享数据,您可能需要指定以下可选依赖项之一:s3
、gs
、azure
、oss
、ssh
。或者使用all
来包含它们全部。
命令应该是这样的:pip install 'dvc[s3]'
(在这种情况下,AWS S3 的依赖项如boto3
将被自动安装)。
要安装开发版本,请运行:
.. code-block:: bash
pip install git+git://github.com/iterative/dvc
软件包(特定平台)
|Packages|
提供适用于 Linux、Windows 和 Mac 的独立软件包。
可以在 GitHub 的最新版本 发布页面 <https://github.com/iterative/dvc/releases>
_ 上找到这些软件包。
Ubuntu / Debian (deb) ^^^^^^^^^^^^^^^^^^^^^
.. code-block:: bash
sudo wget https://dvc.org/deb/dvc.list -O /etc/apt/sources.list.d/dvc.list wget -qO - https://dvc.org/deb/iterative.asc | sudo apt-key add - sudo apt update sudo apt install dvc
Fedora / CentOS (rpm) ^^^^^^^^^^^^^^^^^^^^^
.. code-block:: bash
sudo wget https://dvc.org/rpm/dvc.repo -O /etc/yum.repos.d/dvc.repo sudo rpm --import https://dvc.org/rpm/iterative.asc sudo yum update sudo yum install dvc
贡献
|Maintainability|
欢迎贡献!
请查看我们的 贡献指南 <https://dvc.org/doc/user-guide/contributing/core>
_ 以了解更多详细信息。
感谢我们所有的贡献者!
|Contribs|
社区和支持
Twitter <https://twitter.com/DVCorg>
_论坛 <https://discuss.dvc.org/>
_Discord 聊天 <https://dvc.org/chat>
_电子邮件 <mailto:support@dvc.org>
_邮件列表 <https://sweedom.us10.list-manage.com/subscribe/post?u=a08bf93caae4063c4e6a351f6&id=24c0ecc49a>
_
版权
本项目根据 Apache 2.0 许可证分发(请参阅项目根目录中的 LICENSE 文件)。
通过提交拉取请求到本项目,您同意将您的贡献根据 Apache 2.0 许可证授权给本项目。
引用
|DOI|
Iterative, DVC: 数据版本控制 - 数据和模型的 Git (2020)
DOI:10.5281/zenodo.012345 <https://doi.org/10.5281/zenodo.3677553>
_。
Barrak, A., Eghan, E.E. 和 Adams, B., 关于 ML 流水线和源代码的共同演进——DVC 项目实证研究 <https://mcis.cs.queensu.ca/publications/2021/saner.pdf>
_,2021 年第 28 届 IEEE 国际软件分析、演进和再工程大会论文集,夏威夷,美国。
.. |Banner| 图像:: https://dvc.org/img/logo-github-readme.png :目标: https://dvc.org :替代: DVC 徽标
.. |VS Code Extension Overview| 图像:: https://raw.githubusercontent.com/iterative/vscode-dvc/main/extension/docs/overview.gif :替代: VS Code 的 DVC 扩展
.. |CI| 图像:: https://github.com/iterative/dvc/workflows/Tests/badge.svg?branch=main :目标: https://github.com/iterative/dvc/actions :替代: GHA 测试
.. |Maintainability| 图像:: https://codeclimate.com/github/iterative/dvc/badges/gpa.svg :目标: https://codeclimate.com/github/iterative/dvc :替代: Code Climate
.. |Python Version| 图像:: https://img.shields.io/pypi/pyversions/dvc :目标: https://pypi.org/project/dvc :替代: Python 版本
.. |Coverage| 图像:: https://codecov.io/gh/iterative/dvc/branch/main/graph/badge.svg :目标: https://codecov.io/gh/iterative/dvc :替代: Codecov
.. |Snap| 图像:: https://img.shields.io/badge/snap-install-82BEA0.svg?logo=snapcraft :目标: https://snapcraft.io/dvc :替代: Snapcraft
.. |Choco| 图像:: https://img.shields.io/chocolatey/v/dvc?label=choco :目标: https://chocolatey.org/packages/dvc :替代: Chocolatey
.. |Brew| 图像:: https://img.shields.io/homebrew/v/dvc?label=brew :目标: https://formulae.brew.sh/formula/dvc :替代: Homebrew
.. |Conda| 图像:: https://img.shields.io/conda/v/conda-forge/dvc.svg?label=conda&logo=conda-forge :目标: https://anaconda.org/conda-forge/dvc :替代: Conda-forge
.. |PyPI| 图像:: https://img.shields.io/pypi/v/dvc.svg?label=pip&logo=PyPI&logoColor=white :目标: https://pypi.org/project/dvc :替代: PyPI
.. |PyPI Downloads| 图像:: https://img.shields.io/pypi/dm/dvc.svg?color=blue&label=Downloads&logo=pypi&logoColor=gold :目标: https://pypi.org/project/dvc :替代: PyPI 下载量
.. |Packages| 图像:: https://img.shields.io/badge/deb|pkg|rpm|exe-blue :目标: https://dvc.org/doc/install :替代: deb|pkg|rpm|exe
.. |DOI| 图像:: https://img.shields.io/badge/DOI-10.5281/zenodo.3677553-blue.svg :目标: https://doi.org/10.5281/zenodo.3677553 :替代: DOI
.. |Flowchart| 图像:: https://dvc.org/img/flow.gif :目标: https://dvc.org/img/flow.gif :替代: dvc_工作原理
.. |Contribs| 图像:: https://contrib.rocks/image?repo=iterative/dvc :目标: https://github.com/iterative/dvc/graphs/contributors :替代: 贡献者
.. |VS Code| 图像:: https://img.shields.io/visual-studio-marketplace/v/Iterative.dvc?color=blue&label=VSCode&logo=visualstudiocode&logoColor=blue :目标: https://marketplace.visualstudio.com/items?itemName=Iterative.dvc :替代: VS Code 扩展