开始与DVC
回到博客主页

开始与DVC

" 2023年5月11日

了解DVC,这是一个开源的命令行工具,可以对数据和模型进行版本化,就像Git对代码文件进行版本化一样。


对于数据科学家来说,管理数据、代码和模型可能是一项具有挑战性且耗时的任务。手动处理文件版本变得低效,需要使用外部工具来简化管理。虽然Git对于代码版本控制很有用,但对于需要对数据和模型进行版本控制的机器学习项目来说,它就不够用了。

作为一种快速而直观的选择,您将为该任务选择Git LFS。然而,从长远来看,这可能不是最好的决定,因为它有一些不可否认的局限性。Git LFS不能优雅地处理大文件,它没有管道支持,只支持一个独特的Git LFS远程服务器,而在大多数情况下,我们更喜欢使用我们最喜欢的云存储,比如谷歌云存储、亚马逊S3或Azure Blob存储。

DVC(数据版本控制)是一种旨在解决这些限制的开源工具。作为Git的扩展,DVC专门用于控制大文件和数据管道的版本。在这篇博文中,我们将探讨为什么DVC是必不可少的,分析最佳电子竞技即时竞猜平台。它与Git的区别,并提供如何有效利用DVC的分步指南。

请随便看一看这个项目为了更好地学习本教程


目录:

  • 什么是DVC,我们为什么需要它?
  • DVC和Git的工作流程
  • DVC是如何工作的
  • DVC基本命令

什么是DVC,我们为什么需要它?

DVC代表数据版本控制。它是一个开源版本控制系统,专为管理项目中的数据和机器学习模型而设计。虽然像Git这样的传统版本控制系统非常适合跟踪代码更改,但它们并不适合处理大型数据集和模型,而这些数据集和模型是机器学习项目的重要组成部分。DVC旨在通过提供用于版本控制和管理数据和模型的专用解决方案来填补这一空白。它被设计为Git的扩展,不需要我们改变任何当前的工具和工作流来适应它。

以下是DVC在机器学习项目中有价值的原因:

  1. 数据版本控制: DVC允许您有效地跟踪和版本您的数据集。大型数据集可以存储在外部并通过引用进行访问,从而减少了版本控制所需的存储空间。使用DVC,您可以轻松地在不同版本的数据集之间切换,与合作者共享数据集,并重现以前的实验。
  2. 再现性再现性是机器学习研究的一个重要方面。DVC有助于确保特定实验中使用的确切数据和模型得到保存并可以复制。通过跟踪代码、数据和模型之间的依赖关系,DVC允许您创建可重复的机器学习管道。
  3. 协作: DVC促进了团队成员之间的协作。它为共享和管理数据、模型和代码提供了统一的接口。有了DVC,多个研究人员或数据科学家可以在同一个项目上工作,跟踪变化,并无缝地合并他们的工作。
  4. 有效的存储和处理大文件: DVC使用Git来处理元数据和版本控制,而实际的数据文件和模型存储在Git存储库之外。这种方法允许您有效地管理大文件,而不会使您的Git历史记录膨胀。

如何用DVC和Git版本文件?

图1:用DVC版本一个文件

正如我们所看到的,Git和DVC是两个互补的工具:Git用于控制代码的版本,DVC用于控制数据和模型的版本。此外,DVC依赖于Git来管理数据的版本。为了理解它们是如何协同工作的,让我们从一个简单的例子开始。

假设我们想要跟踪原始数据的版本。由于它的大小很大,我们将使用DVC通过运行以下命令来版本它:

DVC add data/raw/hour.csv

通过运行该命令,会发生三种操作:

  • 最初的数据/生/ hour.csv文件被移动到隐藏的DVC缓存目录,并被替换为指向驻留在DVC缓存中的文件的唯一链接。
  • 一个名为<文件名> .dvc被创建。该文件包含原始文件的路径、大小和md5哈希值。这个散列是文件DVC移动到其缓存目录的名称。使用这个唯一的名称,DVC知道如何将文件与其托管在缓存中的特定版本连接起来。
  • 将原始文件的路径添加到.gitignore。执行此操作是为了避免Git和DVC同时跟踪文件的情况。

该过程的最后一步是对指针文件(数据/生/ hour.csv.dvc)和新的.gitignore文件与Git。

但是如果一个由DVC控制的文件被修改了呢?

要跟踪文件的新版本,可以使用"添加或者是"的承诺命令。

DVC add data/raw/hour.csv
图2:前面示例中使用的文件的第二个版本

通过使用DVC跟踪新版本,它将在缓存目录中创建新版本的文件,并更新指针文件中的信息。

如何检索由DVC控制的数据或模型文件?

这就是DVC的亮点所在!我们可以通过运行两个命令来检索由DVC跟踪的文件的特定版本。

首先,我们检索由Git跟踪的DVC指针文件的版本,它指向要检索的文件的版本。我们可以用不同的命令来完成,比如Git checkout

一旦完成,您所需要做的就是运行"结帐如果文件在本地进行了版本控制,则DVC pull -r 如果文件托管在远程存储上。

DVC基本命令

在本节中,我们将学习如何安装DVC,在项目中初始化它并对文件进行版本化。

设置项目

为了方便地学习本教程,你可以用一个命令克隆我的存储库的一个分支:

Git clone——分支模板//www.kkolawyers.com/eugenia.anello/dvc-getting-started-guide.git

安装"

使用pip安装DVC的命令如下:

PIP安装DVC

或者使用conda:

Conda安装-c Conda -forge mamba

在第一种情况下,需要有a虚拟环境,而另一个箱子则需要安装水蟒Minicoda

初始化"的

安装完DVC后,你可以在git项目的根目录下运行下面的命令:

"初始化

该命令将生成一个.dvc/目录,其中包含缓存位置和其他内部文件。其中一些是:

  • .dvc / .gitignore- gitignore文件用于隐藏Git中的内部文件
  • .dvc /配置—DVC配置文件

之后,我们可以提交更改:

git commit -m "Initialize DVC"

版本数据与DVC

我们将使用"添加命令,如上面所示,对新数据文件进行版本化。

DVC add data/raw/hour.csv

该命令将更新.gitignore文件,将生成一个DVC指针文件,hour.csv.dvc,其中包含有关数据文件原始版本的信息。让我们看看它是什么

Md5: f0d1505e8213eccada8c2a02c6491dac大小:1144480路径:hour.csv

此输出确认dvc计算了数据的MD5哈希值,并记录了文件的大小和原始路径。

接下来,我们将添加并提交更改到Git:

Git添加data/raw/hour.csv。git commit -m添加原始文件

如果你想跟踪整个目录,你只需要指定文件夹:

DVC添加数据/原始

结论

DVC为机器学习项目中的数据和模型提供了有效的版本控制功能。除此之外,DVC还提供了诸如数据版本控制、可再现性、协作和大文件的高效存储等特性。通过与Git无缝集成并利用外部存储选项(如Google Cloud storage、Amazon S3或Azure Blob storage), DVC成为数据科学家和机器学习从业者不可或缺的工具。


资源:

标签

尤金尼亚Anello

CRIF的数据科学家和迈向数据科学的技术作家。

太棒了!您已成功订阅。
太棒了!接下来,完成签出以获得完全访问权限。
欢迎回来!您已成功登录。
成功!您的帐户已完全激活,您现在可以访问所有内容。