快速入门DVC(一):简介

简介: 简述DVC的开发者为iterative.ai,成立于2017年。它是一款开源的,针对机器学习项目的版本控制系统,同时也提供企业服务。起初,DVC从数据版本化管理概念切入,之后,提供对机器学习全方位的支持。

简述

DVC的开发者为iterative.ai,成立于2017年。它是一款开源的,针对机器学习项目的版本控制系统,同时也提供企业服务。起初,DVC从数据版本化管理概念切入,之后,提供对机器学习全方位的支持。

网络异常,图片无法展示
|


从上图,我们可以看到 DVC 通过跟踪机器学习模型和数据集,目的是使机器学习模型可共享和可重现。它能够处理大型文件、数据集、机器学习模型、指标以及代码。


DVC三大核心价值

对机器学习项目进行版本控制

DVC 对机器学习的模型、数据集和中间文件进行版本控制。通过代码来组装它们,并使用 Amazon S3Microsoft Azure Blob StorageGoogle DriveGoogle Cloud StorageAliyun OSSSSH/SFTPHDFSHTTP网络连接存储(NAS)磁盘来存储这些文件内容。

完整的代码和数据来源有助于跟踪每个机器学习模型的完整演进。这保证了模型的可重复性,并且可以轻松地在实验之间来回切换。


对机器学习实验进行管理

利用 Git 的分支来尝试不同的想法,而不是在代码中草率的使用文件后缀和注释。 使用自动度量跟踪的方式来找到正确的方法,而不是使用纸张和铅笔。

DVC的设计目的是使分支保持与Git一样,简单和快速---无论数据文件的大小如何。指标随同ML流水线一起作为一等公民,这意味着项目具有更清晰的结构。比较想法和选择最好的想法很容易。通过缓存中间制品,使迭代变得更快。


对模型部署与团队协作提供支撑

DVC使用push/pull命令将连续的将一批ML模型、数据和代码移动到生产环境、远程机器或同事的计算机中,而不是临时脚本。

DVC在Git中引入了轻量级流水线作为一级公民,它们与语言无关,并将多个步骤连接成DAG。 这些流水线用于消除将代码投入生产环境而产生分歧。


DVC九个主要特性

DVC能够为您现有的数据科学工作流程带来敏捷性、可重复性和协作性。


兼容 Git

DVC 可以在任何 Git 存储库之上运行,并与任何标准的 Git 服务器或提供者(GitHub、GitLab 等)兼容。 数据文件内容可以通过网络访问存储或者任何支持的云解决方案进行共享。 DVC 提供了分布式版本控制系统的所有优点——无锁、本地分支和版本控制。

对存储没有限制

可以使用 Amazon S3Microsoft Azure Blob StorageGoogle Drive、Google Cloud StorageAliyun OSSSSH/SFTPHDFSHTTP网络连接存储(NAS)磁盘存储数据。同时,支持的远程存储列表还在不断的增加。

可复现实验

一个dvc repro命令即可端到端地再现实验。 DVC 通过始终如一地维护输入数据、配置和最初用于运行实验的代码的组合来保证可重复性。

低冲突分支

DVC 操作 Git 分支是瞬时的,即使是操作大文件。分支出色地反映了一个机器学习过程的非线性结构和高度迭代的特性。

同时,数据不会重复,一个文件版本可以属于几十个实验。 支持创建任意数量的实验,并且即时来回切换,并保存所有实验的历史记录。

指标跟踪

指标是 DVC 中的一等公民。 DVC 有一个命令,用于列出所有分支以及指标值,以跟踪取得的进展或选择最佳版本。

机器学习流水线框架

DVC 通过内置方法的将 ML 步骤(step)连接成 DAG, 并端到端的运行完整的流水线。 DVC 能够处理缓存中间结果,如果一个步骤输入数据或代码相同,则不会再次运行这个步骤。

与语言和框架无关

无论使用哪种编程语言或库,或者代码的结构如何,可再现性和流水线都基于输入和输出文件或目录。 对于Python、R、Julia、Scala Spark、自定义二进制文件、Notebooks、flatfiles/TensorFlow、PyTorch 等都能够支持。

支持HDFS、Hive 和 Apache Spark

在 DVC 数据版本控制周期中,可以包含 Spark 和 Hive 作业以及本地 ML 建模步骤,或通过 DVC 端到端管理 Spark 和 Hive 作业。 通过将繁重的集群作业分解为更小的 DVC 流水线步骤,大幅减少反馈循环。针对依赖项,可以独立地迭代这些步骤。

故障跟踪

与成功的想法相比,糟糕的想法有时会在同事之间激发更多的想法。保留失败尝试的知识可以在未来节省时间。 DVC 旨在以可重现且易于访问的方式跟踪所有内容。

使用案例

保存并复现您的实验

DVC可以随时获取有关您或您的同事运行的任何实验的完整上下文。DVC 保证所有文件和指标都将保持一致,并在正确的位置重现实验或将其用作新迭代的基线。

对模型和数据进行版本控制

DVC 将元文件保存在 Git,而不是在 Google Docs 中,以描述和版本控制您的数据集和模型。 同时,DVC 支持多种外部存储类型作为你的大文件的远程缓存。

网络异常,图片无法展示
|


建立部署和协作的工作流程

DVC 定义了在一个团队内有效的和一致地工作的规则和流程。它可以用于协作、共享结果以及在生产环境中获取和运行已完成的模型。


相关文章
|
7月前
|
编解码 Java Linux
开源文档预览项目 kkFileView (9.9k star) ,快速入门
kkFileView 是一款文件文档在线预览解决方案,采用流行的 Spring Boot 框架构建,易于上手和部署。 该项目基本支持主流办公文档的在线预览,包括但不限于 doc、docx、xls、xlsx、ppt、pptx、pdf、txt、zip、rar,以及图片、视频、音频等格式。
开源文档预览项目 kkFileView (9.9k star) ,快速入门
|
7月前
|
Linux 网络安全 开发工具
【超详细!超多图!】【代码管理】Python微信公众号开发(3)- 服务器代码上传Github
【超详细!超多图!】【代码管理】Python微信公众号开发(3)- 服务器代码上传Github
146 0
|
7月前
|
存储 NoSQL 容灾
Neo4j【环境部署 01】图形数据库(简介+下载地址+安装+配置+demo源码+学习教程地址)
Neo4j【环境部署 01】图形数据库(简介+下载地址+安装+配置+demo源码+学习教程地址)
427 1
|
存储
GitHub中如何创建自己的存储库
创建自己的存储库? 首先打开你的GitHub账号主页,在账号右上角找到一个“+”号,点击里面有一个New repository选择创建新的存储库。
165 0
|
Ubuntu Java 程序员
Elasticsearch6.1.2源码下载和编译构建
为了深入学习elasticsearch,研究其源码是种有效途径,本文简述了从下载到编译构建再运行起来的全部过程
211 0
Elasticsearch6.1.2源码下载和编译构建
|
存储 机器学习/深度学习 缓存
快速入门DVC(三):数据与模型版本管理
数据和模型版本控制是 DVC 的基础层用于管理大型文件、数据集和机器学习模型。使用常规的 Git 工作流程,但不要在 Git 库中存储大文件。 大数据文件单独存储,来实现高效共享。想象一下,让 Git 以与处理小代码文件相同的性能来处理任意大的文件和目录,该有多酷?例
|
API TensorFlow 算法框架/工具
MLflow 快速入门
安装 使用一下命令即可安装 MLflow:
|
存储 机器学习/深度学习 API
快速入门DVC(四):下载数据与模型文件
你可能会有如下的问题: 我们如何在项目之外使用这些制品? 我们如何下载模型来部署它? 我们如何下载特定版本的模型? 我们如何在不同的项目中重用数据集?
|
存储 机器学习/深度学习 数据可视化
快速入门DVC(二):安装及ML项目初始化
安装 使用pip安装 我们强烈建议您创建一个虚拟环境,或者使用pipx(在 Python 3.7+ 上)来封装您的本地环境。
|
存储 机器学习/深度学习 数据可视化
DVC 使用指南:与相关技术进行比较
DVC 将许多现有的想法结合到一个工具中,目标是将软件工程的最佳实践带入数据科学领域。