DVCリモートの設定

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

Ravi Bhadauria

Machine Learning Engineer

おさらい

  • DVCリポジトリの初期化
    • dvc initを実行
    • リポはワークスペース内(/path/to/my-project
  • DVCキャッシュの設定
    • .dvc配下の一時ステージ領域
      • /path/to/my-project/.dvc/cache
    • dvc addで一時ファイルをステージ
  • 次は: DVCリモート
    • 外部ストレージ
    • アセットの追跡と共有
DVCによるデータバージョニング入門

DVCリモートの必要性

  • DVCリモート: データ保存場所
  • Gitリモートに似るが、対象は「キャッシュ済み」データ
  • リモート利用の利点
    • 大きなファイル/ディレクトリを同期
    • データ保存を集中/分散化
    • ローカル容量を節約

DVCワークスペースからキャッシュとリモートへのデータフローの概略図

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

対応ストレージ種別

DVCでサポートされるストレージ種類の図

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

リモートの設定方法

  • リモートの設定

    • dvc remote add <name> <location>
  • S3バケット

$ dvc remote add s3_remote \
   s3://mys3bucket
  • DVC設定の変更
 ['remote "s3_remote"']
     url = s3://mys3bucket
  • GCPバケット
$ dvc remote add gcp_remote \
   gs://myGCPbucket
  • Azure
$ dvc remote add azure_remote \
   azure://mycontainer/path
DVCによるデータバージョニング入門

ローカルリモート

  • ローカルリモートは迅速なプロトタイピングに有用
  • システムディレクトリやNASを使用
$ dvc remote add mylocalremote /tmp/dvc
  • 既定のリモートは-dフラグで設定
$ dvc remote add -d mylocalremote /tmp/dvc
  • 既定リモートは.dvc/configcoreセクションで指定
[core]
remote = mylocalremote
DVCによるデータバージョニング入門

リモートの一覧表示

  • リモートの一覧
$ dvc remote list
s3_remote    s3://mys3bucket
local_remote /tmp/dvcremote
  • .dvc/configを参照
 ['remote "s3_remote"']
     url = s3://mys3bucket
 ['remote "local_remote"']
     url = /tmp/dvcremote
DVCによるデータバージョニング入門

リモート設定の変更

  • dvc remote modifyでカスタマイズ可能
$ dvc remote modify s3_remote connect_timeout 300
  • DVC設定ファイルの変更
 ['remote "s3_remote"']
     url = s3://mys3bucket
     connect_timeout = 300
DVCによるデータバージョニング入門

まとめ

  • DVCリモートはデータとMLモデルの共有に使用
  • ローカル/クラウドの多様なストレージをサポート
  • 追加: dvc remote add
    • 既定指定は-d
  • 一覧: dvc remote list
  • 変更: dvc remote modify
DVCによるデータバージョニング入門

Ayo berlatih!

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

Preparing Video For Download...