Giới thiệu
DVC (Data Version Control) là một công cụ hữu ích cho việc quản lý phiên bản dữ liệu trong các dự án Machine Learning. Giống như Git cho mã nguồn, DVC giúp bạn theo dõi và kiểm soát các phiên bản dữ liệu và các tập tin liên quan, từ đó dễ dàng kết hợp dữ liệu với mã nguồn, giúp tái tạo kết quả nghiên cứu một cách hiệu quả hơn. Trong bối cảnh mà một dự án Machine Learning cần triển khai nhiều thí nghiệm với nhiều mô hình và dữ liệu khác nhau, DVC trở thành một công cụ không thể thiếu.
Cài đặt DVC
Để cài đặt DVC, bạn chỉ cần sử dụng lệnh đơn giản sau:
pip install dvc
Khởi động với DVC
Trước khi bắt đầu với các chức năng chính của DVC, bạn cần thực hiện một số bước thiết lập đơn giản. Đầu tiên, hãy tạo một thư mục mới để lưu trữ mã nguồn cho dự án Machine Learning:
mkdir example-get-started
cd example-get-started
Tiếp theo, khởi tạo Git trong thư mục vừa tạo:
git init
Sau đó, khởi tạo DVC trong dự án Git:
dvc init
Kiểm tra các thay đổi trong Git:
git status
Nếu mọi thứ ổn, bạn thực hiện việc commit quá trình khởi tạo DVC:
git commit -m "Initialize DVC"
Bây giờ, DVC đã sẵn sàng cho bạn sử dụng.
Các Tình Huống Sử Dụng Chính của DVC
Hai tình huống chính trong việc sử dụng DVC là Quản Lý Dữ Liệu và Theo Dõi Thí Nghiệm:
- Quản Lý Dữ Liệu: Theo dõi và đánh dấu phiên bản cho dữ liệu gắn liền với mã nguồn, giúp tái hiện lại quy trình đào tạo cũng như kết quả thí nghiệm.
- Quản Lý Thí Nghiệm: Giúp quản lý, chia sẻ và hỗ trợ cộng tác giữa các lập trình viên trong quá trình thí nghiệm.
Kinh nghiệm cho thấy, DVC thường ít được sử dụng trong quản lý thí nghiệm. Trong bài viết này, chúng ta sẽ tập trung vào khía cạnh quản lý dữ liệu.
Quản Lý Dữ Liệu
Đánh Dấu Phiên Bản Dữ Liệu
Đánh dấu phiên bản dữ liệu là quá trình quản lý các tập dữ liệu, checkpoints của mô hình Machine Learning và các tập tin lớn khác. Khi sử dụng DVC, phiên bản của dữ liệu sẽ đi cùng với phiên bản của mã nguồn và không được đẩy lên Git repo. Bạn có thể nghĩ rằng, sử dụng DVC giống như sử dụng Git cho dữ liệu.
Chúng ta sẽ thử nghiệm việc theo dõi dữ liệu bằng cách tải về một tệp dữ liệu mẫu:
dvc get https://github.com/iterative/dataset-registry get-started/data.xml -o data/data.xml
Sau khi thực hiện, bạn sẽ tìm thấy tệp data.xml
trong thư mục data
.
Để theo dõi tệp dữ liệu, bạn sử dụng lệnh sau:
dvc add data/data.xml
Khi đó, DVC sẽ lưu trữ thông tin liên quan trong tệp .dvc
có tên là data/data.xml.dvc
. Để theo dõi các thay đổi, hãy sử dụng lệnh Git sau:
git add data/data.xml.dvc data/.gitignore
git commit -m "Add raw data"
Tải Dữ Liệu Lên Hệ Thống Lưu Trữ
DVC cho phép bạn tải dữ liệu được theo dõi lên nhiều hệ thống lưu trữ khác nhau như Amazon S3, Google Drive hay một thư mục cục bộ. Để thiết lập một thư mục cục bộ làm hệ thống lưu trữ, hãy thực hiện:
mkdir /tmp/dvcstore
dvc remote add -d myremote /tmp/dvcstore
Để tải dữ liệu lên hệ thống lưu trữ, sử dụng lệnh:
dvc push
Khi cần tải dữ liệu về từ hệ thống lưu trữ, hãy sử dụng lệnh:
dvc pull
Cập Nhật Dữ Liệu
Khi có sự thay đổi trong tệp dữ liệu, bạn có thể cập nhật như sau:
dvc add data/data.xml
dvc push
git commit data/data.xml.dvc -m "Dataset updates"
Bạn cũng có thể chuyển đổi giữa các phiên bản dữ liệu tương tự như cách bạn thực hiện với mã nguồn:
git checkout <...>
dvc checkout
Đường Ống Dữ Liệu
Việc quản lý dữ liệu không chỉ dừng lại ở đánh dấu phiên bản. Dữ liệu thường cần trải qua nhiều bước xử lý trước khi được đưa vào mô hình Machine Learning. DVC cung cấp một hệ thống để định nghĩa và theo dõi các đường ống dữ liệu.
Tổ chức dự án một cách khoa học và có thể tái tạo quy trình cùng kết quả là rất cần thiết. Bạn có thể định nghĩa các giai đoạn xử lý trong pipeline với lệnh:
dvc stage add -n prepare -d src/prepare.py -d data/data.xml -o data/prepared python src/prepare.py data/data.xml
Sau khi tạo các giai đoạn, bạn có thể chạy pipeline bằng lệnh:
dvc repro
Thông tin về pipeline sẽ được lưu trữ trong tệp dvc.yaml
, cho phép bạn theo dõi và quản lý dễ dàng hơn.
Kết Luận
Qua bài viết này, bạn đã biết về các khái niệm và thao tác cơ bản nhất của DVC. Trong phần tiếp theo, chúng ta sẽ tìm hiểu cách kết hợp DVC với những công nghệ khác để xây dựng một dự án hoàn chỉnh!
Tham khảo
- DVC Official Website
- Iterative AI
source: viblo