機械学習のデータセットをGitライクにバージョン管理するDataVersionControlを試す

スポンサード リンク

機械学習でモデルを作成する場合,満足できる結果を得るまで条件を変えながら,データセット準備とモデル作成を繰り返す。 各条件において結果の再現性を保つには,プログラムに加えてデータのバージョン管理が必要だ。

そこで,コードとデータをセットでバージョン管理するツールの dvc (DataVersionControl)チュートリアル を試しに実行してみた [1]

試した結論としては,今のところはgit-lfsとMakefileの組み合わせのほうが良い。dvcは絶賛開発中なので今後に期待。

1. dvcの利点

1.2. データの依存グラフ(DAG)を定義し,コード差分に依存する処理だけ自動実行する

  • ex. ハイパーパラメータを変化させたら,学習処理だけ再実行する
  • 競合はMakefile

2. dvcの欠点

2.1. 定義済みDAGの把握が困難

  • DAGを可視化するshowコマンドがあったのだが,廃止されてしまった...。
  • showコマンド復活のissue はあるので今後に期待
  • 今はMakefileで処理を定義しておけば十分にみえる
  • Makefileなら,把握も書き換えもしやすい
  • Makefileなら汎用ツールなので,みんな知っている

2.2. 外部ストレージとしてAWSとGCPにしか対応していない

  • これでは社内のようなプライベートな環境で使えない
  • SephやMinfsなどAWS S3互換OSSへの対応してほしい
  • issue はあるので今後に期待
  • 今のところはgit-lfsで良い
[1]ちなみにチュートリアルのcode/featurization.pyは17GB程度のRAMを要求する。Swap追加を推奨

Comments !

social