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
MLコンペ実験テンプレートを作ろう!
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
kami
March 13, 2025
2.2k
4
Share
MLコンペ実験テンプレートを作ろう!
Kaggle GMに学ぶ実験管理 ~2025 spring~ での登壇資料です
kami
March 13, 2025
More Decks by kami
See All by kami
JSAI2025 RecSysChallenge2024 優勝報告
unonao
2
770
RecSys2024 参加報告
unonao
1
430
睡眠コンペ 1st place solution
unonao
3
3.7k
N=1 の推薦系コンペの戦い方
unonao
5
2.6k
Kaggle 過去コンペまとめ Image Matching Challenge 2023
unonao
0
1.4k
atmaCup #16: 1st place solution + 取り組み方振り返り
unonao
1
1.1k
RecSys23参加報告:推薦システムに関する最新研究
unonao
1
1k
#15 atmaCup 振り返り& 1st place solution
unonao
1
1.6k
Featured
See All Featured
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
160
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
530
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.9k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
550
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
199
73k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.5k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.9k
Visualization
eitanlees
150
17k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.7k
Prompt Engineering for Job Search
mfonobong
0
290
Testing 201, or: Great Expectations
jmmastey
46
8.1k
Transcript
© DeNA Co., Ltd. 1 MLコンペ実験テンプレートを作ろう! 村上直輝 データ統括部AI技術開発部ゲームエンタメグループ 株式会社ディー・エヌ・エー
© DeNA Co., Ltd. 2 村上(murakami) 直輝 @634kami © DeNA
Co., Ltd. 自己紹介 引用:https://www.kaggle.com/kami634 Kaggle @kami634 • データサイエンティスト • Kaggle Competitions Grandmaster ◦ 色々なタスクやります ▪ レコメンド ▪ 鳥の音声認識 ▪ 自然言語処理 ▪ 系列データ処理 … • 最近は強化学習をやってます
© DeNA Co., Ltd. 3 ところで、こんなお悩みありませんか?
© DeNA Co., Ltd. 4 コンペに参加していて感じた悩み • 「環境構築に時間がかかって新しいコンペに参加するまで時間がかかる」 • 「コードを上書きしてしまったから前の結果を再現できない!」
• 「再現のための実験スクリプトが無駄にできてリポジトリが散乱...」 • 「configに書いたハイパラをタイポしたせいで数時間の実験が無駄に...」
© DeNA Co., Ltd. 5 そのお悩み MLコンペ用実験テンプレートを作ることで 解決しませんか?
© DeNA Co., Ltd. 6 1 完成品がこちら • GitHubのテンプレートリポジトリでMLコンペ用実験テンプレートを用意 →
コンペのたびに、これを元に新しいリポジトリを作ってベースラインを作成 100スターありがとうございます https://github.com/unonao/kaggle-template
© DeNA Co., Ltd. 7 完成品がこちら • {major_exp_name} と {minor_exp_name}
の 組み合わせで実験が再現できるようにする 1 • 実験結果は W&B に保存 実験コード本体 パラメータ設定
© DeNA Co., Ltd. 8 テンプレートの解説
© DeNA Co., Ltd. 9 • 同一の環境を素早く構築をしたい! ◦ 違うマシンでも動くように素早く環境構築をしたい (GCPでインスタンスを複数立てる事があるため)
◦ 特にKaggle Notebook と実験環境の差異がなるべく小さくしたい • 実験の記録を簡単に取りたい! ◦ 実験ごとの評価結果から、マシンのメモリやCPU使用率まで簡単に記録したい • 実験を再現可能にしたい • コードを整理したい • Configを利用する時にタイポしたくない! (私が個人的に ) 満たしたい実験コードの条件
© DeNA Co., Ltd. 10 1 • Dockerを利用して同一の環境を素早く構築 ◦ Dockerfile,
compuse.yaml ファイルに定義することができ、環境自体 の再現が容易に ◦ a a で実行可能 • Kaggle Notebook に近い環境を構築可能 ◦ Kaggle 公式 Docker image が利用できる 同一の環境を素早く構築をしたい! → Docker で実現 https://github.com/Kaggle/docker-python
© DeNA Co., Ltd. 11 同一の環境を素早く構築をしたい! → Docker で実現 •
Docker 環境内ならディレクトリ構成も Kaggle環境と似た形に ◦ データを /kaggle/input に ◦ 作業ディレクトリを /kaggle/working に • compose.yaml をうまく設定 ◦ リポジトリをいい感じにマウントする 1 compose.yaml
© DeNA Co., Ltd. 12 実験の記録を簡単に取りたい!→ W&B で実験を記録 • Configで設定したパラメータも含めて実験開始時にW&Bに保存
• 細かいTips ◦ debug 中はわざわざ記録したくない → debug中はmode="disabled"に ◦ コンテナに入り直すたびにW&Bのログインが必要 → $NETRCで指定したファイルにkeyが保存されるので破棄されない位置に指定 2
© DeNA Co., Ltd. 13 3 • hydraを用いてコードとconfigの組み合わせで実験可能に ◦ 例:python
experiments/exp000_sample/run.py exp=001 ◦ 実験のまとまりを一つのディレクトリ・コードに ▪ 例:exp000_sample/run.py ◦ ハイパーパラメータなどの変更は yaml から読み込む ▪ 例:exp000_sample/exp/001.yaml → 設定ファイルなどをコードの近くに配置することで 認知負荷が抑えられる 実験を再現可能にしたい&コードを整理したい!→ ファイルで実験管理
© DeNA Co., Ltd. 14 Configを利用する時にタイポしたくない!→dataclassの利用 • ハイパラなどの設定を辞書で定義するとタイポしや すいので dataclass
で定義してやる ◦ エディタは辞書の中まで見て補完してくれない... 4 間違い探し... dataclassでconfigを事前定義 ※ 細かい事言うとhydraで上書きするために omegaconf.DictConfig クラスを利用 (Duck Typing) https://hydra.cc/docs/tutorials/structured_config/minimal_example/
© DeNA Co., Ltd. 15 まとめ • 自作テンプレートはいいぞ ◦ 実行環境に合わせて自分だけの実験スタイルを作ろう!
https://github.com/unonao/kaggle-template
© DeNA Co., Ltd. 16