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:
- 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ã;
- 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;
- hiểu cách xây dựng các tập dữ liệu và tạo phẩm ML ngay từ đầu;
- so sánh số liệu mô hình giữa các thử nghiệm;
- á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
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