Pro Yearly is on sale from $80 to $50! »

MLflow Tracking を用いた実験管理 / ayniy-with-mlflow

B1cc148711c6a37a5c922b6e72a4ad52?s=47 u++
June 07, 2020

MLflow Tracking を用いた実験管理 / ayniy-with-mlflow

「atmaCup#5 振り返り会」での発表資料

- connpass: https://atma.connpass.com/event/178585/
- Competition GitHub: https://github.com/upura/atma-comp05
- Ayniy GitHub: https://github.com/upura/ayniy
- Ayniy documentation: https://upura.github.io/ayniy-docs/
- YouTube: https://youtu.be/b-YogiJA9XA

B1cc148711c6a37a5c922b6e72a4ad52?s=128

u++

June 07, 2020
Tweet

Transcript

  1. atmaCup オンサイトデータコンペ#5 振り返り会 MLflow Tracking を⽤いた 実験管理 u++ (@upura0) 2020年6⽉14⽇

    1
  2. 本発表について atmaCup#5 での MLflow Tracking を⽤いた実験管理について 実験管理の課題 MLflow Trackingの紹介 ⾃作ライブラリ「Ayniy」への組み込み

    2
  3. ⾃⼰紹介 Kaggle Master, PetFinder.my Adoption Prediction 1st (Team) https://www.amazon.co.jp/dp/4065190061 https://youtu.be/7-uZHFaQ2V0

    https://www.getrevue.co/profile/upura 3
  4. 今回の取り組み public 16位・private 27位 https://upura.hatenablog.com/entry/2020/06/06/193944 4

  5. 攻めの最終サブ publicとprivateで chip_id が別なら"Trust CV" 全ての実験を把握できていたから実現した⼤量Stacking 5

  6. 実験管理の課題 6

  7. コンペ中にやること 次のような要素を調整しながらの実験の繰り返し Cross Validationの戦略 特徴量 機械学習アルゴリズム 学習時パラメータ 最適化する指標 7

  8. 以前の管理⽅法 ipynbを⼤量に作成・・・ どれで/何やって/どうだったか分からない git/GitHubで差分が⾒づらい 8

  9. MLflow Trackingの紹介 9

  10. 実験管理の⼿助けツール pip install mlflow 10

  11. 使い⽅ from mlflow import log_metric, log_param, log_artifact mlflow.set_experiment(exp_name) mlflow.start_run(run_name=run_name) log_param('model_name',

    model_name) log_param('fe_name', fe_name) log_param('train_params', params) log_param('cv_strategy', cv) log_param('evaluation_metric', evaluation_metric) log_metric('cv_score', cv_score) log_param('fold_scores', fold_scores) log_param('cols_definition', cols_definition) log_param('description', description) mlflow.end_run() 11
  12. ダッシュボード mlflow ui 12

  13. 参考情報 https://mlflow.org/docs/latest/tracking.html ⽇本語 ハイパラ管理のすすめ -ハイパーパラメータを Hydra+MLflowで管理しよう- MLflow使い始めたのでメモ Python: MLflow Tracking

    を使ってみる 13
  14. ⾃作ライブラリ「Ayniy」へ の組み込み 14

  15. Ayniy Documentation GitHub Slide (Japanese) Sadriddin Ayni was a Tajik

    intellectual who wrote poetry, fiction, journalism, history and lexicography. He is regarded as Tajikistan's national poet and one of the most important writers in the country's history. https://uz.wikipedia.org/wiki/Sadriddin_Ayniy 15
  16. All You Need is YAML import yaml from sklearn.model_selection import

    StratifiedKFold from ayniy.preprocessing.runner import Tabular from ayniy.model.runner import Runner f = open('configs/fe000.yml', 'r+') fe_configs = yaml.load(f) g = open('configs/run000.yml', 'r+') run_configs = yaml.load(g) cv = StratifiedKFold(n_splits=5, shuffle=True, random_state=7) tabular = Tabular(fe_configs, cv) tabular.create() runner = Runner(run_configs, cv) runner.run_train_cv() runner.run_predict_cv() runner.submission() https://upura.github.io/ayniy-docs/quick_start_guide.html 16
  17. print感覚で諸々を記録 機械学習アルゴリズム名 特徴量セットのID 学習時パラメータ Cross Validationの戦略 最適化する指標 Cross Validationスコア Foldごとのスコア

    カラム定義(カテゴリ変数) 実験概要 17
  18. コンペ中の作業 . 現状のAyniyで不可能な場合は実装 . fe.yaml , run.yaml 書く . runner.py

    を実⾏ . mlflow uiでCVスコア⾒る . 良さげだったらsubmit 18
  19. 良かった点 mlflow uiでどれで/何やって/どうだったかを管理できた 実験で書くのは *.yaml のみなので、git/GitHubでの差分が⾒ やすくなった アイディア部分に注⼒できるようになった 19

  20. おわりに 20

  21. まとめ atmaCup#5 での MLflow Tracking を⽤いた実験管理について 実験管理の課題 MLflow Trackingの紹介 ⾃作ライブラリ「Ayniy」への組み込み

    21