DVCでデータのバージョン管理を行う
DVC(Data Version Control)とは?
DVC(Data Version Control)は、データサイエンスや機械学習プロジェクトのデータとモデルのバージョン管理を行うツールです。Gitのようなワークフローを採用しており、コードのバージョン管理だけでなく、大規模なデータセットやモデルも効率的に管理できます。DVCは大容量ファイルをGitリポジトリ外に保管し、メタデータのみをGitで管理するため、CloneやPullが遅くなる問題を回避できます。
この記事ではドキュメントのチュートリアルを通して、DVCを使ったバージョン管理を行ってみたいと思います。
インストール
推奨されているHomebrewでDVCをインストールします。
環境はMac Book Pro M1 Sonoma 14.2.1です。
brew install dvc
プロジェクトの初期化
DVCでバージョン管理を行うプロジェクトの初期化を行います。
Gitレポジトリである必要があるので、まずは適当なディレクトリを作成して、Gitレポジトリを作成します。
mkdir example-get-started
cd example-get-started
git init
次に下記のコマンドでDVCプロジェクトの初期化を行います。
dvc init
dvc initを行うと、DVCの設定ファイルが生成されます。
git commit -m "Initialize DVC"
git commitで、これらの設定ファイルを追加しておきます。
これでDVCを利用する準備は完了です。
データのバージョン管理
それではデータのバージョン管理を行ってみます。
サンプルデータをdvc getでダウンロードします。
dvc get https://github.com/iterative/dataset-registry \
get-started/data.xml -o data/data.xml
dvc addコマンドでダウンロードしたデータを追加します。
dvc add data/data.xml
git commitコマンドでデータをコミットします。
git add data/data.xml.dvc data/.gitignore
git commit -m "Add raw data"
DVCではデータをGitリポジトリ外のストレージに保管します。
ローカルのストレージからAmazon S3や、Google Cloud Storageといったクラウドストレージまで様々なストレージに対応しています。
対応しているストレージは下記のリンクから確認できます。
今回のチュートリアルでは、ローカルストレージを利用します。
mkdir /tmp/dvcstore
dvc remote add -d myremote /tmp/dvcstore
/tmp/dvcstoreというディレクトリを作成し、DVCのローカルリモートストレージとして指定しています。
dvc push
ストレージの設定が完了したら、dvc pushコマンドでデータをアップロードします。このコマンドを実施して、先ほどの/tmp/dvcstoreを確認するとデータがアップロードされている事が確認できます。
/tmp/dvcstore
└── files
└── md5
└── 22
└── a1a2931c8370d3aeedd7183606fd7f