|Banner|
网站 <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 Version| |Coverage| |VS Code| |DOI|
|PyPI| |PyPI Downloads| |Packages| |Brew| |Conda| |Choco| |Snap|
|
Data Version Control(DVC)是一个命令行工具和 VS Code 扩展_,旨在帮助您开发可复现的机器学习项目:
将数据和模型存储在云存储中,但将版本信息保留在 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 |
+-----------------------------------+----------------------------------------------------------------------------------------------------+
我们建议您阅读 `入门指南 <https://dvc.org/doc/get-started>`_ 文档,以更好地理解 DVC 的功能及其适用场景。
描述 DVC 主要功能最贴切的类比如下:
像往常一样使用 Git 来存储和版本化代码(包括作为数据占位符的 DVC 元文件)。
DVC 将数据和模型文件无缝存储在 Git 之外的缓存中 <https://dvc.org/doc/start/data-management>_,同时保持几乎与在仓库中相同的用户体验。
为了共享和备份数据缓存,DVC 支持多种远程存储平台——任何云存储(S3、Azure、Google Cloud 等)或本地网络存储(例如通过 SSH)。
|Flowchart|
DVC 流水线 <https://dvc.org/doc/start/data-management/data-pipelines>_(计算图)将代码和数据连接在一起。
它们指定了生成模型所需的所有步骤:输入依赖项(包括代码、数据、要运行的命令)以及要保存的输出信息。
最后同样重要的是,DVC 实验版本控制 <https://dvc.org/doc/start/experiments>_ 让您可以准备和运行大量实验。
可以根据超参数和指标对结果进行过滤和比较,并通过多种图表进行可视化。
.. _VS Code 扩展:
|VS Code|
若要在 VS Code IDE 中直接使用 DVC 的图形界面,请从 Marketplace 安装 DVC 扩展 <https://marketplace.visualstudio.com/items?itemName=Iterative.dvc>_。
目前它支持实验跟踪和数据管理,更多功能(数据流水线支持等)即将推出!
|VS Code Extension Overview|
注意:您需要单独在系统上安装核心 DVC(如下所述)。如有需要,扩展会提供指导。
有多种方式可以安装 DVC:在 VS Code 中安装;使用 snap、choco、brew、conda、pip;或使用特定于操作系统的软件包。
完整说明请参见 此处 <https://dvc.org/doc/get-started/install>_。
|Snap|
.. code-block:: bash
snap install dvc --classic
这对应于最新的标记版本。
添加 --beta 可安装最新的候选版本,或添加 --edge 安装最新的 main 版本。
|Choco|
.. code-block:: bash
choco install dvc
|Brew|
.. code-block:: bash
brew install dvc
|Conda|
.. code-block:: 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|
.. code-block:: bash
pip install dvc
根据您计划用于保存和共享数据的远程存储类型,您可能需要指定一个可选依赖项:s3、gs、azure、oss、ssh。或使用 all 包含所有依赖项。
命令应如下所示:pip install 'dvc[s3]'(在这种情况下,将自动安装 AWS S3 依赖项,如 boto3)。
要安装开发版本,请运行:
.. code-block:: bash
pip install "dvc @ git+https://github.com/treeverse/dvc"
|Packages|
适用于 Linux、Windows 和 Mac 的独立软件包已提供。
软件包的最新版本可在 GitHub 发布页面 <https://github.com/treeverse/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
欢迎贡献!
详情请参阅我们的 贡献指南 <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://dvc.org/community#subscribe>_本项目根据 Apache 许可证 2.0 版分发(请参阅项目根目录中的 LICENSE 文件)。
向本项目提交拉取请求,即表示您同意根据 Apache 许可证 2.0 版将您的贡献授权给本项目。
|DOI|
Iterative, DVC: Data Version Control - Git for Data & Models (2020)
DOI:10.5281/zenodo.012345 <https://doi.org/10.5281/zenodo.3677553>_.
Barrak, A., Eghan, E.E. and Adams, B. On the Co-evolution of ML Pipelines and Source Code - Empirical Study of DVC Projects <https://mcis.cs.queensu.ca/publications/2021/saner.pdf>_ , in Proceedings of the 28th IEEE International Conference on Software Analysis, Evolution, and Reengineering, SANER 2021. Hawaii, USA.
.. |Banner| image:: https://dvc.org/img/logo-github-readme.png
:target: https://dvc.org
:alt: DVC 徽标
.. |VS Code Extension Overview| image:: https://raw.githubusercontent.com/treeverse/vscode-dvc/main/extension/docs/overview.gif
:alt: DVC VS Code 扩展
.. |CI| image:: https://github.com/treeverse/dvc/actions/workflows/tests.yaml/badge.svg
:target: https://github.com/treeverse/dvc/actions/workflows/tests.yaml
:alt: GHA 测试
.. |Python Version| image:: https://img.shields.io/pypi/pyversions/dvc
:target: https://pypi.org/project/dvc
:alt: Python 版本
.. |Coverage| image:: https://codecov.io/gh/treeverse/dvc/branch/main/graph/badge.svg
:target: https://codecov.io/gh/treeverse/dvc
:alt: Codecov
.. |Snap| image:: https://img.shields.io/badge/snap-install-82BEA0.svg?logo=snapcraft
:target: https://snapcraft.io/dvc
:alt: Snapcraft
.. |Choco| image:: https://img.shields.io/chocolatey/v/dvc?label=choco
:target: https://chocolatey.org/packages/dvc
:alt: Chocolatey
.. |Brew| image:: https://img.shields.io/homebrew/v/dvc?label=brew
:target: https://formulae.brew.sh/formula/dvc
:alt: Homebrew
.. |Conda| image:: https://anaconda.org/conda-forge/dvc/badges/version.svg
:target: https://anaconda.org/conda-forge/dvc
:alt: Conda-forge
.. |PyPI| image:: https://img.shields.io/pypi/v/dvc.svg?label=pip&logo=PyPI&logoColor=white
:target: https://pypi.org/project/dvc
:alt: PyPI
.. |PyPI Downloads| image:: https://img.shields.io/pypi/dm/dvc.svg?color=blue&label=Downloads&logo=pypi&logoColor=gold
:target: https://pypi.org/project/dvc
:alt: PyPI 下载量
.. |Packages| image:: https://img.shields.io/badge/deb|pkg|rpm|exe-blue
:target: https://dvc.org/doc/install
:alt: deb|pkg|rpm|exe
.. |DOI| image:: https://img.shields.io/badge/DOI-10.5281/zenodo.3677553-blue.svg
:target: https://doi.org/10.5281/zenodo.3677553
:alt: DOI
.. |Flowchart| image:: https://dvc.org/img/flow.gif
:target: https://dvc.org/img/flow.gif
:alt: DVC 工作原理
.. |Contribs| image:: https://contrib.rocks/image?repo=treeverse/dvc
:target: https://github.com/treeverse/dvc/graphs/contributors
:alt: 贡献者
.. |VS Code| image:: https://img.shields.io/visual-studio-marketplace/v/Iterative.dvc?color=blue&label=VSCode&logo=visualstudiocode&logoColor=blue
:target: https://marketplace.visualstudio.com/items?itemName=Iterative.dvc
:alt: VS Code 扩展