用 Data Version Control 版本控管資料集

Machine Learning 的 CI/CD

Ravi Bhadauria

Machine Learning Engineer

為何資料要做版本控管

  • 版本控管可保留資料變更的歷史紀錄
  • 資料版本控管很關鍵
    • 可重現性
    • 實驗與反覆試驗
    • 協作
    • Bug 追蹤與除錯
    • 模型監控與維護
    • 稽核與驗證
Machine Learning 的 CI/CD

Data Version Control(DVC)

  • DVC:Data Version Control 工具
    • 管理資料與實驗
    • 類似 Git

用 Git 與 DVC 進行資料版本控管的概念圖

  • Git 追蹤中繼資料,DVC 處理資料版本
Machine Learning 的 CI/CD

DVC 儲存

  • 資料分開存放
    • SSH、HTTP/HTTPS、本機檔案系統
    • AWS、GCP、Azure 物件儲存
  • 在本機安裝
pip install dvc
Machine Learning 的 CI/CD

初始化 DVC

  • 初始化 Git:git init
  • 初始化 DVC
-> dvc init
Initialized DVC repository.
You can now commit the changes to git.
  • 建立 DVC 專案檔,準備版本控管資料
.dvc
|- .gitignore
|- config
|- tmp
Machine Learning 的 CI/CD

將檔案加入 DVC

  • dvc add <file> 指令加入資料檔
-> dvc add data.csv
  • 會產生含檔案中繼資料的 .dvc 佔位檔
    • 每個由 DVC 追蹤的檔案都有對應的 .dvc 檔(data.csv -> data.csv.dvc
    • 送交到 Git 以管理資料版本
  • DVC 快取建立於 .dvc/cache
Machine Learning 的 CI/CD

DVC 資料檔案

  • 資料檔案
-> cat data.csv
This is a sample data file.
  • data.csv.dvc
-> cat data.csv.dvc
 outs:
 - md5: ea9972ac9f8fa321ea74969e93acc196

size: 28
hash: md5
path: data.csv
Machine Learning 的 CI/CD

重點整理

  • 資料版本控管可確保可重現性與協作
  • DVC:管理資料版本的工具,與 Git 搭配運作
  • dvc init 初始化,使用 dvc add <file> 加入檔案
  • .dvc 檔存中繼資料,Git 追蹤版本
Machine Learning 的 CI/CD

一起來練習吧!

Machine Learning 的 CI/CD

Preparing Video For Download...