การจัดเวอร์ชันชุดข้อมูลด้วย Data Version Control

CI/CD สำหรับ Machine Learning

Ravi Bhadauria

Machine Learning Engineer

ทำไมการจัดเวอร์ชันข้อมูลจึงสำคัญ

  • การจัดเวอร์ชันช่วยบันทึกประวัติการเปลี่ยนแปลงของข้อมูล
  • การจัดเวอร์ชันข้อมูลมีความสำคัญ
    • การทำซ้ำผลลัพธ์
    • การทดลองและการทำซ้ำกระบวนการ
    • การทำงานร่วมกัน
    • การติดตามและแก้ไขข้อผิดพลาด
    • การตรวจสอบและบำรุงรักษาโมเดล
    • การตรวจสอบความถูกต้อง
CI/CD สำหรับ Machine Learning

Data Version Control (DVC)

  • DVC: เครื่องมือจัดเวอร์ชันข้อมูล
    • จัดการข้อมูลและการทดลอง
    • ทำงานคล้าย Git

ภาพแสดงแนวคิดการจัดเวอร์ชันข้อมูลด้วย Git และ DVC.png

  • Git ติดตาม metadata, DVC จัดการเวอร์ชันของข้อมูล
CI/CD สำหรับ Machine Learning

พื้นที่จัดเก็บของ DVC

  • จัดเก็บข้อมูลแยกต่างหาก
    • SSH, HTTP/HTTPS, ระบบไฟล์ภายในเครื่อง
    • Object storage บน AWS, GCP และ Azure
  • ติดตั้งในเครื่อง
pip install dvc
CI/CD สำหรับ Machine Learning

การเริ่มต้น DVC

  • เริ่มต้น Git ด้วย git init
  • เริ่มต้น DVC
-> dvc init
Initialized DVC repository.
You can now commit the changes to git.
  • สร้างไฟล์โปรเจกต์ DVC พร้อมจัดเวอร์ชันข้อมูล
.dvc
|- .gitignore
|- config
|- tmp
CI/CD สำหรับ Machine Learning

การเพิ่มไฟล์ใน DVC

  • เพิ่มไฟล์ข้อมูลด้วยคำสั่ง dvc add <file>
-> dvc add data.csv
  • ระบบจะสร้างไฟล์ placeholder .dvc ที่เก็บ metadata ของไฟล์
    • ไฟล์ที่ DVC ติดตามจะมีไฟล์ .dvc คู่กัน (data.csv -> data.csv.dvc)
    • ไฟล์ .dvc ถูก commit เข้า Git เพื่อจัดการเวอร์ชัน
  • DVC cache จะถูกเติมข้อมูลใน .dvc/cache
CI/CD สำหรับ Machine Learning

ไฟล์ข้อมูลของ 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
CI/CD สำหรับ Machine Learning

สรุป

  • การจัดเวอร์ชันข้อมูลช่วยให้ทำซ้ำผลลัพธ์และทำงานร่วมกันได้
  • DVC: เครื่องมือจัดการเวอร์ชันข้อมูล ทำงานร่วมกับ Git
  • เริ่มต้น DVC ด้วย dvc init และเพิ่มไฟล์ด้วย dvc add <file>
  • ไฟล์ .dvc เก็บ metadata, Git ติดตามเวอร์ชัน
CI/CD สำหรับ Machine Learning

มาฝึกกันเถอะ!

CI/CD สำหรับ Machine Learning

Preparing Video For Download...