DVC のキャッシュとステージングファイル

DVCによるデータバージョニング入門

Ravi Bhadauria

Machine Learning Engineer

DVC キャッシュ

  • 追跡データとそのバージョンの隠し保管場所
  • コミットまで一時ファイルをステージング
    • 大規模データやバイナリの追加に最適
  • ワークスペースの .dvc ディレクトリ内に配置
    • 位置を設定
      $ dvc cache dir ~/mycache
      

ワークスペース内の DVC 構成の画像

DVCによるデータバージョニング入門

キャッシュにファイルを追加

  • データファイルを DVC に追加
$ dvc add data.csv
100% Adding...|====================|1/1 [00:00, 53.55file/s]

To track the changes with git, run:
    git add data.csv.dvc
To enable auto staging, run:
    dvc config core.autostage true
DVCによるデータバージョニング入門

.dvc ファイル

  • DVC で追跡する各ファイルには対応する .dvc がある

    • data.csv -> data.csv.dvc
  • データをバージョン管理するには git commit -m "data.csv.dvc" を使用

  • .dvc ファイルの内容

outs:

- md5: f38a850818377e97155d22755caa39d0
size: 16
hash: md5
path: data.csv
DVCによるデータバージョニング入門

DVC キャッシュとのやり取り

  • キャッシュファイルのパスは MD5 値を使用
$ find .dvc/cache -type f
.dvc/cache/f3/8a850818377e97155d22755caa39d0
  • データセットの MD5 を計算
$ md5 data.csv
MD5 (data.csv) = f38a850818377e97155d22755caa39d0
DVCによるデータバージョニング入門

DVC キャッシュとのやり取り

  • 詳細表示は dvc add -v を使用

`-v` 付きで dvc add を実行した出力の画像

DVCによるデータバージョニング入門

削除とキャッシュのクリーンアップ

  • 追加したファイルは dvc remove で削除
$ dvc remove data.csv.dvc
  • キャッシュを消すには dvc gc を使用
    • ワークスペースのキャッシュ削除は -w フラグ
$ dvc gc -w
WARNING: This will remove all cache except items used in the workspace of the current repo.
Are you sure you want to proceed? [y/n]: y
Removed 1 objects from repo cache.
DVCによるデータバージョニング入門

まとめ

  • DVC キャッシュはコミット前にデータをステージング
  • キャッシュ場所を設定
    • dvc cache dir ~/mycache
  • ファイルをキャッシュに追加
    • dvc add data.csv
    • メタデータ付きの .dvc ファイルを作成
  • 追加ファイルの削除 dvc remove data.csv.dvc
    • ワークスペースのキャッシュは dvc gc -w で清掃
DVCによるデータバージョニング入門

練習しましょう!

DVCによるデータバージョニング入門

Preparing Video For Download...