Quản lý data version control cho model AI

Trong lập trình, một điều chắc hẳn ai cũng biết là việc quản lý version cho source code rất quan trọng , chúng ta có git. Tương tự vậy, trong lĩnh vực AI/ML, quản lý dữ liệu và mô hình là rất quan trọng.Các dự án AI/ML thường xuyên thay đổi về dữ liệu, model. Vì thế, DVC ra đời để hỗ trợ việc quản lý version cho model, data.

DVC là gì?

DVC is a tool for data science that takes advantage of existing software engineering toolset. It helps machine learning teams manage large datasets, make projects reproducible, and collaborate better.

DVC là công cụ mã nguồn mở (Free) dùng giúp cho lập trình viên quản lý data và model. DVC được thiết kế để hoạt độgn cùng với GIT. DVC là một công cụ quản lý phiên bản có thể hoạt động với nhiều loại dữ liệu như hình ảnh, tệp văn bản,video.

Ứng dụng của DVC

Nếu bạn lưu trữ và xử lý các tệp dữ liệu hoặc bộ dữ liệu để tạo ra các mô hình máy học hoặc dữ liệu khác và bạn muốn:

  1. theo dõi và lưu dữ liệu cũng như các mô hình máy học giống như cách bạn thu thập mã;
  2. dễ dàng tạo và chuyển đổi giữa các phiên bản dữ liệu và mô hình ML;
  3. hiểu cách xây dựng các tập dữ liệu và tạo phẩm ML ngay từ đầu;
  4. so sánh số liệu mô hình giữa các thử nghiệm;
  5. áp dụng các công cụ kỹ thuật và phương pháp hay nhất trong các dự án khoa học dữ liệu;

Cách hoạt động của DVC và Git

Bộ đôi dvc và git sẽ là 1 bộ đôi song sát hoạt động cùng với nhau. DVC sử dụng thư mục .dvc để lưu trữ metadata của dữ liệu và git sẽ có nhiệm vụ quản lý version control cho tập tin đó. Khi dữ liệu thay đổi, DVC sẽ tạo liên kết tới dữ liệu đó và lưu trong .dvc, và git sẽ quản lý sự thay đổi của thư mục .dvc, nhờ đó mà DVC có thể tạo lại phiên bản của data như mong muốn

Nguồn (DVC.org)

Thử sử dụng dvc

Trong dự án của bạn, có sẵn git, bắt đầu cài đặt dvc bằng lệnh:

dvc init

Sau đó, dvc sẽ khởi tạo ra 1 số file, thực hiện commit git với những file đó

git add .
git commit -m "init dvc"
    3 files changed, 6 insertions(+)    
    create mode 100644 .dvc/.gitignore  
    create mode 100644 .dvc/config      
    create mode 100644 .dvcignore       

Sau các bước đơn giản, là đã có dvc trong project, thực hiện tạo clone data-set về project

dvc get https://github.com/iterative/dataset-registry get-started/data.xml -o data/data.xml  
dvc add data/data.xml #add data.xml to tracking by dvc

Sau bước trên, dvc đã thực hiện lưu trữ thông tin của file ở data.xml.dvc

Tiếp tục commit git để tracking các thay đổi

git add data/data.xml.dvc data/.gitignore
git commit -m "Add version 1"

Lưu trữ dữ liệu

Bạn có thể lưu trữ các dữ liệu mà DVC tracked lên rất nhiều các hệ thống lưu trữ khác nhau như Local Folder, AWS S3,NFS, SSH, Google Drive, Azure Blob Storage, and HDFS.

Cài đặt remote cho DVC, và thực hiện push data

mkdir %TEMP%/dvcstore
dvc remote add -d myremote %TEMP%\dvcstore
dvc push

Tiếp theo thực hiện thay đổi file data.xml, và add lại lên dvc và git

dvc add data/data.xml
dvc push
git commit data/data.xml.dvc -m "Add version 2"

Bây giờ bạn đã có 2 phiên bản data ứng với các lần commit của git, nếu muốn quay trở lại dữ liệu của phiên bản trước, chỉ cần checkout lại phiên bản git và thực hiện dvc checkout

git checkout HEAD~1 data/data.xml.dvc
dvc checkout
git commit data/data.xml.dvc -m "Revert version 1"

Trên đây là một số kiến thức cơ bản về DVC mà mình muốn giới thiệu tới các bạn, dvc có khá nhiều tiện ích nếu muốn tìm hiểu sâu hơn có thể lên trang chủ dvc.

Một dev quèn kiếm tiền nuôi gia đình