Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
DVCによるデータバージョン管理
Search
Ringa_hyj
December 31, 2024
Technology
0
210
DVCによるデータバージョン管理
Ringa_hyj
December 31, 2024
Tweet
Share
More Decks by Ringa_hyj
See All by Ringa_hyj
deeplakeによる大規模データのバージョン管理と深層学習フレームワークとの接続
ringa_hyj
0
88
Hydraを使った設定ファイル管理とoptunaプラグインでのパラメータ探索
ringa_hyj
0
170
ClearMLで行うAIプロジェクトの管理(レポート,最適化,再現,デプロイ,オーケストレーション)
ringa_hyj
0
170
Catching up with the tidymodels.[Japan.R 2021 LT]
ringa_hyj
3
860
多次元尺度法MDS
ringa_hyj
0
320
因子分析(仮)
ringa_hyj
0
170
階層、非階層クラスタリング
ringa_hyj
0
140
tidymodels紹介「モデリング過程料理で表現できる説」
ringa_hyj
0
520
深層学習をつかった画像スタイル変換の話と今までの歴史
ringa_hyj
0
460
Other Decks in Technology
See All in Technology
ファインディにおけるフロントエンド技術選定の歴史
puku0x
1
760
「アウトプット脳からユーザー価値脳へ」がそんなに簡単にできたら苦労しない #RSGT2026
aki_iinuma
9
4.5k
スクラムマスターが スクラムチームに入って取り組む5つのこと - スクラムガイドには書いてないけど入った当初から取り組んでおきたい大切なこと -
scrummasudar
1
1.8k
Redshift認可、アップデートでどう変わった?
handy
1
130
202512_AIoT.pdf
iotcomjpadmin
0
190
ハッカソンから社内プロダクトへ AIエージェント ko☆shi 開発で学んだ4つの重要要素
leveragestech
0
610
ECS_EKS以外の選択肢_ROSA入門_.pdf
masakiokuda
1
120
スクラムを一度諦めたチームにアジャイルコーチが入ってどう変化したか / A Team's Second Try at Scrum with an Agile Coach
kaonavi
0
130
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
1
860
AI駆動開発ライフサイクル(AI-DLC)の始め方
ryansbcho79
0
310
1万人を変え日本を変える!!多層構造型ふりかえりの大規模組織変革 / 20260108 Kazuki Mori
shift_evolve
PRO
6
1.1k
Node vs Deno vs Bun 〜推しランタイムを見つけよう〜
kamekyame
1
380
Featured
See All Featured
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
73
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
0
1.1k
Are puppies a ranking factor?
jonoalderson
0
2.6k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
74
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
61
48k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.1k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
1
220
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
110
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
The Curse of the Amulet
leimatthew05
0
6.9k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.1k
Transcript
DVCの目的は・・・ 機械学習プロジェクトの再現可能性(reproducible)の確保 こんな経験はありませんか? • 過去に自分 or 他人が取り組んだ機械学習プロジェクトを再実行することになった • 実行したがナゼか当時の報告書の結果と一致しない ※原因はデータ・コード・パラメタに変更が発生したが、変更が残っていない等
紹介 1/5 はじめに
紹介 2/5 現状 • コードはgitで管理できるが、大規模なデータセットはgitでは管理が難しい(容量の制限) ➢ コードはgitで管理、データセットはローカルorクラウドストレージに保存 • データとコードの対応をバージョン管理する難しさ(ドキュメント作成の難しさ) ➢
どのコードでどのデータを使用したか、記録はドキュメント作成者の努力に依存する • チーム間でのデータ共有の難しさ(統一された保存先がない) ➢ データの保存場所だけでなく、実行フォルダへの配置方法などをドキュメントや口頭 で詳細に説明する • コード・パラメタ・データを変更した場合の性能比較が困難(結果ファイルの管理が大変) ➢ 変更の履歴、結果の比較をドキュメントとして保存 ➢ 結果ファイルをストレージへ保存 ➢ 手順に従ったとき、結果が一致するか目視でチェック 上記のようにコードとデータとそのバージョン管理にミスが発生す る状況ではプロジェクトの再現性が低下してしまいます 現状の解決策
DVCはGitと連携して動作する(特にデータ管理の)補完的なツールと してプロジェクトの実験再現性を確保するように設計されています 解決策 • 大きなデータファイルはGitの外で管理 • データやコード、モデルの重みなどに発生した差異をmd5ハッシュを使い検知 • dvc.yamlや.dvcなどのメタファイルのみをGitで追跡 •
Gitライクなコマンドでデータのバージョンを管理(add, checkout, pushなど) • 実データはキャッシュやストレージ(AWS S3, Google Cloud Storage, Azure Blob)に保 存 • データ処理から学習、評価までのパイプラインを定義可能 • コード・パラメタ・データの組み合わせごとの評価指標をコミット履歴やブランチをつか い比較することが可能 紹介 3/5 DVCによる解決策
git hub DVC remote storage git ローカルリポジトリ DVC cache ソースコード
DVCメタファイル ソースコード DVCメタファイル 実データ (データセット、モデル) 実データ (md5ハッシュによる重複削除) リモート環境 ローカル環境 git push git pull dvc push dvc pull dvc add dvc commit dvc checkout 紹介 4/5 DVCのデータ管理イメージ
前処理 pre.py 特徴量作成 feat.py 学習 train.py 評価 eval.py 実行パイプライン dvc.yaml
パラメタ params.yaml pre.py feat.py train.py eval.py 中間生成物 (特徴量、モデル) 実験結果 (metrics.json、plot.png) 紹介 5/5 • 依存ファイルの変化をmd5ハッシュで検知 • dvc reproコマンドでパイプラインに定義したスクリプトを順番に実行 • 結果の生成、比較を半自動化 パイプラインによる実行過程の再現