iT邦幫忙

0

Data Version Control(DVC)使用概述

  • 分享至 

  • xImage
  •  

基本介紹

Data Version Control | Git for Data & Models

image alt

Data Version Control (DVC):
專門為資料科學及機器學習所開發的版本控制工具,主要有以下特色:

  • 基本操作指令皆與 Git 使用方式相同,不需要另外安裝或者維護任何資料庫,同時也不依賴任何專有的線上服務
  • 模型和數據資料的檔案版本可以直接串連 S3, Google cloud, Azure, Alibaba cloud, SSH server, HDFS 甚至直接儲存在本地端硬碟
  • 專案技術具有可複制性和共享性,幫助了解模型差異及建構方式
  • 使用Git標籤/分支和指標跟踪幫助團隊管理專案內容
  • 更多DVC特色介紹

:+1: 實用文章推薦:


使用情境

DVC官方提供了幾個實用的使用範例(如下圖所示-Versioning Data and Model Files),其中大多摘錄資料科學的處理流程,包含了機器學習的流程以及資料管理等方案,透過官方手把手教學文件讓使用者能夠更快速的建立DVC實務應用

image alt

為對應架構內容,目前DSU主要選擇的方案如下:

  • 程式碼(Code)
    • 版控方式:Git
    • 版控位置:Google Source Repositories
  • 訓練模型(Model)
    • 版控方式:DVC
    • 版控位置:Google Cloud Storage

使用教學

接下來將會針對訂單辨識系統程式碼與模型進行簡單的版控與教學:

Installing DVC packages

安裝DVC非常簡單,主要有以下方式:

  • pip(Python package manger)
  • OS-specific package managers
  • HomeBrew(for apple users)

本篇開發環境為Python,因此選擇 pip 來安裝 DVC(更多安裝方式請參考dvc-Installation):

$ pip install dvc

選擇Google Cloud Storage為遠端儲存空間(更多選擇方案dvc-remote storage):

$ pip install "dvc[gs]" 

Initialising Git & DVC

安裝完畢後接著將需要版控的專案資料夾進行初始化

專案資料結構如下:

dvc-test
├── main.py
└── model
    └── my_model.h5

1. Git 初始化

$ git init

2. 建立 .gitingore
排除不需透過git版控的檔案

$ vi .gitingore
# 請依照使用情況調整
model/
.vscode
.DS_Store
__pycache__/

3. DVC 初始化

$ dvc init 

成功會看到以下內容:
路徑下產生.dvc/資料夾,其內容包含 .dvc/.gitignore 、 .dvc/cache/ 、 . dvc/config 三份檔案,其中最重要的是 .dvc/cache/, DVC 會在這邊建立檔案的連結,也是最後會 push 到雲端的檔案。

You can now commit the changes to git.
+---------------------------------------------------------------------+
|                                                                     |
|        DVC has enabled anonymous aggregate usage analytics.         |
|     Read the analytics documentation (and how to opt-out) here:     |
|              https://dvc.org/doc/user-guide/analytics               |
|                                                                     |
+---------------------------------------------------------------------+
What's next?
------------
- Check out the documentation: https://dvc.org/doc
- Get help and share ideas: https://dvc.org/chat
- Star us on GitHub: https://github.com/iterative/dvc

Versioning Data and Model Files

1. 首先將model資料夾加入dvc版控

$ dvc add model

完成後便會產生相對應的model.dvc(用來連結dvc資料)

dvc-test
├── main.py
├── model
│   └── my_model.h5
└── model.dvc

2. 將程式碼以dvc相關檔案及推送至Source Repositories

$ git add .
$ git commit -m "v0.0.1"
$ git remote add google ssh://[EMAIL]@source.developers.google.com:2022/p/[PROJECT_ID]/r/[REPO_NAME]
$ git push --all google

Pushing Data to Goole Cloud Storage

:::warning
本段落須事先準備下列項目:

  • 取得服務帳戶金鑰
  • 建立Cloud Storage bucket
    :::

1. projectname - project name to use.

$ dvc remote modify myremote projectname myproject

2. url - remote cloud storage URL.

$ dvc remote modify myremote url gs://bucket/remote

3. credentailpath - service account credentials.

$ dvc remote modify myremote credentialpath /path/to/my/creds/[FILE_NAME].json

4. Push to GCS

$ dvc pushdvc push

Preparing to upload data to 'gs://bucket/remote'
Preparing to collect status from gs://bucket/remote
Collecting information from local cache...
[##############################] 100%
Collecting information from remote cache...
[##############################] 100
[##############################] 100% Analysing status
[##############################] 100% model/my_model.h5

Pulling data from the cloud

$ git clone ssh://[EMAIL]@source.developers.google.com:2022/p/[PROJECT_ID]/r/[REPO_NAME]
$ dvc pull

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言