SlideShare a Scribd company logo
1 of 20
Download to read offline
Copyright©2019 NTT corp. All Rights Reserved.
MLflowによる機械学習モデルの
ライフサイクルの管理
Takeshi Yamamuro, NTT
このスライドは以下の発表を参考に作成しています
[1] Matei Zaharia, Accelerating Machine Learning Development
with MLflow, XLDB2019
2Copyright©2019 NTT corp. All Rights Reserved.
⾃⼰紹介
3Copyright©2019 NTT corp. All Rights Reserved.
お知らせ - https://bit.ly/30Sh4MU
4Copyright©2019 NTT corp. All Rights Reserved.
MLflow 1.0リリース
https://bit.ly/2Iq1j7F
aa$ pip install mlflow==1.0.0
5Copyright©2019 NTT corp. All Rights Reserved.
• 企業での機械学習の利⽤は「前処理→モデル学習→デプ
ロイ」のライフサイクルで構成されることが多い
機械学習モデルのライフサイクルと特徴
[1]のp4から引用
• データは変化するため,このサ
イクルを繰り返す
• 複数⼈が似た(もしくは同じ)
タスクで学習を⾏う
• 実⾏環境や前処理・モデル学習
に⽤いるライブラリは⼈や時代
によって様々
6Copyright©2019 NTT corp. All Rights Reserved.
• MLflowは企業における機械学習モデルの再現性や再利
⽤性を向上させるための機能を提供
• 先⾏する取り組みにTFX@Google,FBLearner@Facebook,
Michelangelo@Uberなど
• MLflowは以下3つの機能を提供
• MLflow Tracking:
追跡性と再現性を⾼めるため,学習条件やスコアなど実験
内容を記録するロギングフレームワークを提供
• MLflow Projects:
再利⽤性を⾼めるため,学習スクリプトの実⾏環境の再現
と起動(パラメータの与え⽅など)を⽀援
• MLflow Models:
学習モデルのフォーマットを定め,デプロイを⽀援
MLflowは何をしてくれるの?
7Copyright©2019 NTT corp. All Rights Reserved.
• ライブラリ⾮依存性(Library-Agnostic)
• MLflow⾃体に前処理や学習を⾏う機能があるわけではなく,
あくまで既存のライブラリ(pandas,scikit-learn,
XGBoost/LightGBM,PyTorch,Spark,TensorFlowなど)
を⽀援する位置づけ
MLflowは何をしてくれるの?
8Copyright©2019 NTT corp. All Rights Reserved.
• ログ記録のためのAPIsと,記録されたログを確認・⽐
較するためのViewを提供
MLflow Tracking
MLflow Web UIs ([1]のp10から引用)
# 学習条件の記録
mlflow.log_param(‘training_data’, data)
mlflow.log_param(‘n’, n)
mlflow.log_param(‘learning_rate’, lr)
# スコアの記録
mlflow.log_metric(‘score’, rmse)
# 学習したモデルの記録
mlflow.sklearn.log_model(clf)
9Copyright©2019 NTT corp. All Rights Reserved.
• MLflow Tracking Server
• デフォルトではログはローカルに保存されるが,Tracking
Serverを起動することで複数⼈で実験内容を共有可
MLflow Tracking
$ mlflow server 
--backend-store-uri /mnt/persistent-disk 
--default-artifact-root s3://my-mlflow-bucket/ 
--host 0.0.0.0
10Copyright©2019 NTT corp. All Rights Reserved.
MLflow Projects
• 簡潔なパッケージフォーマットを提供
• conda(もしくはdocker)を使った学習スクリプトの依存関係
の解決,学習スクリプトの実⾏を⾃動化
MLProjectの内容(Makefile的なもの)
11Copyright©2019 NTT corp. All Rights Reserved.
MLflow Projects
• 実⾏は「mlflow run <project path>」
• Makefileのmake的なもの
• <project path>にはgitのURI(git://...)も⼊⼒可能
12Copyright©2019 NTT corp. All Rights Reserved.
MLflow Models
[1]のp18から引用
13Copyright©2019 NTT corp. All Rights Reserved.
• 公式ドキュメント
• https://www.mlflow.org/docs/latest/index.html
• 公式のexamples
• https://github.com/mlflow/mlflow/tree/master/examples
• ⽤途ごとに例があるのでテンプレートとして使いやすいかも
• Spark+AI Summit 2019でのチュートリアル
• Managing the Complete Machine Learning Lifecycle
with MLflow
• https://github.com/amesar/mlflow-spark-summit-2019
MLflowを始めるうえで参考になりそうな情報
14Copyright©2019 NTT corp. All Rights Reserved.
• 1.0リリースに関して@Keynote
• Accelerating the Machine Learning Lifecycle with MLflow 1.0
• ハイパーパラメータチューニングの⽅法論とMLflowによる実践
• Best Practices for Hyperparameter Tuning with MLflow
• Advanced Hyperparameter Optimization for Deep Learning
with MLflow
• 前処理・学習をMLflowで管理し,Kubeflow環境にデプロイ
• How to Utilize MLflow and Kubernetes to Build an Enterprise
ML Platform
その他のSummitでの関連発表
15Copyright©2019 NTT corp. All Rights Reserved.
• サンプルコード
• https://bit.ly/2KpCVWe
• 起動⽅法の例: 「mlflow run . -P learning_rate=12」
MLflowを試す
モデルの学習用のスクリプト
実行環境の依存関係情報(conda env export)
「mlflow run」 から読まれる定義ファイル(Makefile的なもの)
- 依存関係を記述したファイル(conda.yaml)の場所
- 学習スクリプト(train.py)の起動方法
MLflowと関係のないファイル
16Copyright©2019 NTT corp. All Rights Reserved.
• サンプルシナリオ(train.pyの内容)
• ① 外部キー制約をもつ3つの⼊⼒データ(下図)をSparkでJoinして
⾮正規化したDataFrameを作成
• ② DataFrameをpandasのフォーマットに変換
• ③ XGBoostを⽤いてモデルを学習
• ④ 最後に学習に⽤いた条件/モデル/スコアをMLflowに記録
MLflowを試す
S_sales
R1_indicators
R2_stores
csv
csv
csv
Spark dfpandas df学習モデル
② toPandas ① Join③ Learn
R2_stores{store, …}_

S_sales{weekly_sales, sid, …, purchaseid, store}
^^^^^^^^^^^^^ /
R1_indicators{purchaseid, …} _/
目的変数
④ Log
17Copyright©2019 NTT corp. All Rights Reserved.
• Web UIs上でモデル学習のログを確認
MLflowを試す
スコアが最も良い条件
18Copyright©2019 NTT corp. All Rights Reserved.
• Web UIs上でモデル学習のログを確認
MLflowを試す
出力された学習モデルの場所
19Copyright©2019 NTT corp. All Rights Reserved.
• 学習したモデルをデプロイ
MLflowを試す
aa
// 「mlflow pyfunc」でRESTサーバにデプロイ
$ mlflow pyfunc serve -p 4321 -m <学習モデルの場所>
• Running on http://127.0.0.1:4321/ (Press CTRL+C to quit)
aa
$ curl -X POST -H “Content-Type:application/json;format=pandas-split”
--data ‘<特徴量ベクトル>’ http://127.0.0.1:4321/invocations
[4]
20Copyright©2019 NTT corp. All Rights Reserved.
• 覚えることが少なく,⾮常にシンプルな設計
• この⼿のツールは覚えなければいけない”お約束”が多く導⼊コ
ストが⾼い印象があるが,その⼼配は少ない
• モデル構築に使⽤したスクリプトが既にあるのであれば,
importして学習に⽤いた条件/モデル/スコアを記録するように
数⾏エントリを追加するだけでも⼤丈夫そう
• プラガブルな設計による⾼い拡張性
• 独⾃の学習アルゴリズム実装を使っていても簡単に対応可能
• また今後流⾏る学習ライブラリが出てきた場合にでもコミュニ
ティとして容易に追従可能
MLflowに関する所感

More Related Content

What's hot

ChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AIChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AIShota Imai
 
機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計Takahiro Kubo
 
【DL輪読会】Scaling Laws for Neural Language Models
【DL輪読会】Scaling Laws for Neural Language Models【DL輪読会】Scaling Laws for Neural Language Models
【DL輪読会】Scaling Laws for Neural Language ModelsDeep Learning JP
 
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...NTT DATA Technology & Innovation
 
ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...
ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...
ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...西岡 賢一郎
 
SSII2021 [OS2-02] 深層学習におけるデータ拡張の原理と最新動向
SSII2021 [OS2-02] 深層学習におけるデータ拡張の原理と最新動向SSII2021 [OS2-02] 深層学習におけるデータ拡張の原理と最新動向
SSII2021 [OS2-02] 深層学習におけるデータ拡張の原理と最新動向SSII
 
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)Shota Imai
 
失敗から学ぶ機械学習応用
失敗から学ぶ機械学習応用失敗から学ぶ機械学習応用
失敗から学ぶ機械学習応用Hiroyuki Masuda
 
機械学習の理論と実践
機械学習の理論と実践機械学習の理論と実践
機械学習の理論と実践Preferred Networks
 
学習時に使ってはいないデータの混入「リーケージを避ける」
学習時に使ってはいないデータの混入「リーケージを避ける」学習時に使ってはいないデータの混入「リーケージを避ける」
学習時に使ってはいないデータの混入「リーケージを避ける」西岡 賢一郎
 
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜SSII
 
よくわかるフリストンの自由エネルギー原理
よくわかるフリストンの自由エネルギー原理よくわかるフリストンの自由エネルギー原理
よくわかるフリストンの自由エネルギー原理Masatoshi Yoshida
 
【DL輪読会】A Time Series is Worth 64 Words: Long-term Forecasting with Transformers
【DL輪読会】A Time Series is Worth 64 Words: Long-term Forecasting with Transformers【DL輪読会】A Time Series is Worth 64 Words: Long-term Forecasting with Transformers
【DL輪読会】A Time Series is Worth 64 Words: Long-term Forecasting with TransformersDeep Learning JP
 
近年のHierarchical Vision Transformer
近年のHierarchical Vision Transformer近年のHierarchical Vision Transformer
近年のHierarchical Vision TransformerYusuke Uchida
 
AHC-Lab M1勉強会 論文の読み方・書き方
AHC-Lab M1勉強会 論文の読み方・書き方AHC-Lab M1勉強会 論文の読み方・書き方
AHC-Lab M1勉強会 論文の読み方・書き方Shinagawa Seitaro
 
backbone としての timm 入門
backbone としての timm 入門backbone としての timm 入門
backbone としての timm 入門Takuji Tahara
 
ブレインパッドにおける機械学習プロジェクトの進め方
ブレインパッドにおける機械学習プロジェクトの進め方ブレインパッドにおける機械学習プロジェクトの進め方
ブレインパッドにおける機械学習プロジェクトの進め方BrainPad Inc.
 

What's hot (20)

ChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AIChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AI
 
機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計
 
Ml system in_python
Ml system in_pythonMl system in_python
Ml system in_python
 
【DL輪読会】Scaling Laws for Neural Language Models
【DL輪読会】Scaling Laws for Neural Language Models【DL輪読会】Scaling Laws for Neural Language Models
【DL輪読会】Scaling Laws for Neural Language Models
 
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
 
ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...
ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...
ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...
 
SSII2021 [OS2-02] 深層学習におけるデータ拡張の原理と最新動向
SSII2021 [OS2-02] 深層学習におけるデータ拡張の原理と最新動向SSII2021 [OS2-02] 深層学習におけるデータ拡張の原理と最新動向
SSII2021 [OS2-02] 深層学習におけるデータ拡張の原理と最新動向
 
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
 
失敗から学ぶ機械学習応用
失敗から学ぶ機械学習応用失敗から学ぶ機械学習応用
失敗から学ぶ機械学習応用
 
機械学習の理論と実践
機械学習の理論と実践機械学習の理論と実践
機械学習の理論と実践
 
学習時に使ってはいないデータの混入「リーケージを避ける」
学習時に使ってはいないデータの混入「リーケージを避ける」学習時に使ってはいないデータの混入「リーケージを避ける」
学習時に使ってはいないデータの混入「リーケージを避ける」
 
MLOps入門
MLOps入門MLOps入門
MLOps入門
 
Data-Centric AIの紹介
Data-Centric AIの紹介Data-Centric AIの紹介
Data-Centric AIの紹介
 
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
 
よくわかるフリストンの自由エネルギー原理
よくわかるフリストンの自由エネルギー原理よくわかるフリストンの自由エネルギー原理
よくわかるフリストンの自由エネルギー原理
 
【DL輪読会】A Time Series is Worth 64 Words: Long-term Forecasting with Transformers
【DL輪読会】A Time Series is Worth 64 Words: Long-term Forecasting with Transformers【DL輪読会】A Time Series is Worth 64 Words: Long-term Forecasting with Transformers
【DL輪読会】A Time Series is Worth 64 Words: Long-term Forecasting with Transformers
 
近年のHierarchical Vision Transformer
近年のHierarchical Vision Transformer近年のHierarchical Vision Transformer
近年のHierarchical Vision Transformer
 
AHC-Lab M1勉強会 論文の読み方・書き方
AHC-Lab M1勉強会 論文の読み方・書き方AHC-Lab M1勉強会 論文の読み方・書き方
AHC-Lab M1勉強会 論文の読み方・書き方
 
backbone としての timm 入門
backbone としての timm 入門backbone としての timm 入門
backbone としての timm 入門
 
ブレインパッドにおける機械学習プロジェクトの進め方
ブレインパッドにおける機械学習プロジェクトの進め方ブレインパッドにおける機械学習プロジェクトの進め方
ブレインパッドにおける機械学習プロジェクトの進め方
 

Similar to MLflowによる機械学習モデルのライフサイクルの管理

入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)NTT DATA Technology & Innovation
 
[db tech showcase Tokyo 2015] C33:ビッグデータ・IoT時代のキーテクノロジー、CEPの「今」を掴む! by 株式会社日立...
[db tech showcase Tokyo 2015] C33:ビッグデータ・IoT時代のキーテクノロジー、CEPの「今」を掴む! by 株式会社日立...[db tech showcase Tokyo 2015] C33:ビッグデータ・IoT時代のキーテクノロジー、CEPの「今」を掴む! by 株式会社日立...
[db tech showcase Tokyo 2015] C33:ビッグデータ・IoT時代のキーテクノロジー、CEPの「今」を掴む! by 株式会社日立...Insight Technology, Inc.
 
MuleアプリケーションのCI/CD
MuleアプリケーションのCI/CDMuleアプリケーションのCI/CD
MuleアプリケーションのCI/CDMuleSoft Meetup Tokyo
 
Changing Infrastructure operation by DevOps And Agile Development
Changing Infrastructure operation by DevOps And Agile DevelopmentChanging Infrastructure operation by DevOps And Agile Development
Changing Infrastructure operation by DevOps And Agile DevelopmentTaiji Tsuchiya
 
東大大学院 電子情報学特論講義資料「ハイパーパラメタ最適化ライブラリOptunaの開発」柳瀬利彦
東大大学院 電子情報学特論講義資料「ハイパーパラメタ最適化ライブラリOptunaの開発」柳瀬利彦東大大学院 電子情報学特論講義資料「ハイパーパラメタ最適化ライブラリOptunaの開発」柳瀬利彦
東大大学院 電子情報学特論講義資料「ハイパーパラメタ最適化ライブラリOptunaの開発」柳瀬利彦Preferred Networks
 
MLOps NYC 2019 and Strata Data Conference NY 2019 report nttdata
MLOps NYC 2019 and Strata Data Conference NY 2019 report nttdataMLOps NYC 2019 and Strata Data Conference NY 2019 report nttdata
MLOps NYC 2019 and Strata Data Conference NY 2019 report nttdataNTT DATA Technology & Innovation
 
Cloud stack概要とaccel認定試験のご紹介
Cloud stack概要とaccel認定試験のご紹介Cloud stack概要とaccel認定試験のご紹介
Cloud stack概要とaccel認定試験のご紹介Tadashi Mishima
 
多言語を一つの処理系でハイパフォーマンスに実行するGraalPythonの紹介
多言語を一つの処理系でハイパフォーマンスに実行するGraalPythonの紹介多言語を一つの処理系でハイパフォーマンスに実行するGraalPythonの紹介
多言語を一つの処理系でハイパフォーマンスに実行するGraalPythonの紹介Tamakoshi Hironori
 
【HinemosWorld2015】B1-5_【入門】Hinemosではじめるクラウド運用
【HinemosWorld2015】B1-5_【入門】Hinemosではじめるクラウド運用【HinemosWorld2015】B1-5_【入門】Hinemosではじめるクラウド運用
【HinemosWorld2015】B1-5_【入門】Hinemosではじめるクラウド運用Hinemos
 
Quick Overview of Upcoming Spark 3.0 + α
Quick Overview of Upcoming Spark 3.0 + αQuick Overview of Upcoming Spark 3.0 + α
Quick Overview of Upcoming Spark 3.0 + αTakeshi Yamamuro
 
StrongLoopでサクっと始めるAPIエコノミー
StrongLoopでサクっと始めるAPIエコノミーStrongLoopでサクっと始めるAPIエコノミー
StrongLoopでサクっと始めるAPIエコノミーYUSUKE MORIZUMI
 
チーム開発を支えるプロセス再入門~アジャイル開発とスクラム~ - TFSUG
チーム開発を支えるプロセス再入門~アジャイル開発とスクラム~ - TFSUGチーム開発を支えるプロセス再入門~アジャイル開発とスクラム~ - TFSUG
チーム開発を支えるプロセス再入門~アジャイル開発とスクラム~ - TFSUG満徳 関
 
4.5G/5G環境でのECサイトの高速化 ― 変わるモバイル購買体験
4.5G/5G環境でのECサイトの高速化 ― 変わるモバイル購買体験4.5G/5G環境でのECサイトの高速化 ― 変わるモバイル購買体験
4.5G/5G環境でのECサイトの高速化 ― 変わるモバイル購買体験Yoichiro Takehora
 
【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例
【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例
【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例LIFULL Co., Ltd.
 
開発初心者のためのMoodleプラグインの開発と利用(第一部) for Moodle Moot 2015
開発初心者のためのMoodleプラグインの開発と利用(第一部) for Moodle Moot 2015開発初心者のためのMoodleプラグインの開発と利用(第一部) for Moodle Moot 2015
開発初心者のためのMoodleプラグインの開発と利用(第一部) for Moodle Moot 2015Shigeharu Yamaoka
 
クラウドを超えた先の企業システム像 20091008 JJUG CCC
クラウドを超えた先の企業システム像 20091008 JJUG CCCクラウドを超えた先の企業システム像 20091008 JJUG CCC
クラウドを超えた先の企業システム像 20091008 JJUG CCCYusuke Suzuki
 

Similar to MLflowによる機械学習モデルのライフサイクルの管理 (20)

入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
 
[db tech showcase Tokyo 2015] C33:ビッグデータ・IoT時代のキーテクノロジー、CEPの「今」を掴む! by 株式会社日立...
[db tech showcase Tokyo 2015] C33:ビッグデータ・IoT時代のキーテクノロジー、CEPの「今」を掴む! by 株式会社日立...[db tech showcase Tokyo 2015] C33:ビッグデータ・IoT時代のキーテクノロジー、CEPの「今」を掴む! by 株式会社日立...
[db tech showcase Tokyo 2015] C33:ビッグデータ・IoT時代のキーテクノロジー、CEPの「今」を掴む! by 株式会社日立...
 
MuleアプリケーションのCI/CD
MuleアプリケーションのCI/CDMuleアプリケーションのCI/CD
MuleアプリケーションのCI/CD
 
Changing Infrastructure operation by DevOps And Agile Development
Changing Infrastructure operation by DevOps And Agile DevelopmentChanging Infrastructure operation by DevOps And Agile Development
Changing Infrastructure operation by DevOps And Agile Development
 
東大大学院 電子情報学特論講義資料「ハイパーパラメタ最適化ライブラリOptunaの開発」柳瀬利彦
東大大学院 電子情報学特論講義資料「ハイパーパラメタ最適化ライブラリOptunaの開発」柳瀬利彦東大大学院 電子情報学特論講義資料「ハイパーパラメタ最適化ライブラリOptunaの開発」柳瀬利彦
東大大学院 電子情報学特論講義資料「ハイパーパラメタ最適化ライブラリOptunaの開発」柳瀬利彦
 
MLOps NYC 2019 and Strata Data Conference NY 2019 report nttdata
MLOps NYC 2019 and Strata Data Conference NY 2019 report nttdataMLOps NYC 2019 and Strata Data Conference NY 2019 report nttdata
MLOps NYC 2019 and Strata Data Conference NY 2019 report nttdata
 
Cloud stack概要とaccel認定試験のご紹介
Cloud stack概要とaccel認定試験のご紹介Cloud stack概要とaccel認定試験のご紹介
Cloud stack概要とaccel認定試験のご紹介
 
多言語を一つの処理系でハイパフォーマンスに実行するGraalPythonの紹介
多言語を一つの処理系でハイパフォーマンスに実行するGraalPythonの紹介多言語を一つの処理系でハイパフォーマンスに実行するGraalPythonの紹介
多言語を一つの処理系でハイパフォーマンスに実行するGraalPythonの紹介
 
Spring I/O 2015 報告
Spring I/O 2015 報告Spring I/O 2015 報告
Spring I/O 2015 報告
 
【HinemosWorld2015】B1-5_【入門】Hinemosではじめるクラウド運用
【HinemosWorld2015】B1-5_【入門】Hinemosではじめるクラウド運用【HinemosWorld2015】B1-5_【入門】Hinemosではじめるクラウド運用
【HinemosWorld2015】B1-5_【入門】Hinemosではじめるクラウド運用
 
Quick Overview of Upcoming Spark 3.0 + α
Quick Overview of Upcoming Spark 3.0 + αQuick Overview of Upcoming Spark 3.0 + α
Quick Overview of Upcoming Spark 3.0 + α
 
StrongLoopでサクっと始めるAPIエコノミー
StrongLoopでサクっと始めるAPIエコノミーStrongLoopでサクっと始めるAPIエコノミー
StrongLoopでサクっと始めるAPIエコノミー
 
チーム開発を支えるプロセス再入門~アジャイル開発とスクラム~ - TFSUG
チーム開発を支えるプロセス再入門~アジャイル開発とスクラム~ - TFSUGチーム開発を支えるプロセス再入門~アジャイル開発とスクラム~ - TFSUG
チーム開発を支えるプロセス再入門~アジャイル開発とスクラム~ - TFSUG
 
HoloLab_20191016_ceatec
HoloLab_20191016_ceatecHoloLab_20191016_ceatec
HoloLab_20191016_ceatec
 
4.5G/5G環境でのECサイトの高速化 ― 変わるモバイル購買体験
4.5G/5G環境でのECサイトの高速化 ― 変わるモバイル購買体験4.5G/5G環境でのECサイトの高速化 ― 変わるモバイル購買体験
4.5G/5G環境でのECサイトの高速化 ― 変わるモバイル購買体験
 
【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例
【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例
【Ltech#11】Kubernetesを利用した機械学習モデルの本番適用例
 
BPStudy#101発表資料
BPStudy#101発表資料BPStudy#101発表資料
BPStudy#101発表資料
 
2018 07-23
2018 07-232018 07-23
2018 07-23
 
開発初心者のためのMoodleプラグインの開発と利用(第一部) for Moodle Moot 2015
開発初心者のためのMoodleプラグインの開発と利用(第一部) for Moodle Moot 2015開発初心者のためのMoodleプラグインの開発と利用(第一部) for Moodle Moot 2015
開発初心者のためのMoodleプラグインの開発と利用(第一部) for Moodle Moot 2015
 
クラウドを超えた先の企業システム像 20091008 JJUG CCC
クラウドを超えた先の企業システム像 20091008 JJUG CCCクラウドを超えた先の企業システム像 20091008 JJUG CCC
クラウドを超えた先の企業システム像 20091008 JJUG CCC
 

More from Takeshi Yamamuro

LT: Spark 3.1 Feature Expectation
LT: Spark 3.1 Feature ExpectationLT: Spark 3.1 Feature Expectation
LT: Spark 3.1 Feature ExpectationTakeshi Yamamuro
 
Taming Distributed/Parallel Query Execution Engine of Apache Spark
Taming Distributed/Parallel Query Execution Engine of Apache SparkTaming Distributed/Parallel Query Execution Engine of Apache Spark
Taming Distributed/Parallel Query Execution Engine of Apache SparkTakeshi Yamamuro
 
LLJVM: LLVM bitcode to JVM bytecode
LLJVM: LLVM bitcode to JVM bytecodeLLJVM: LLVM bitcode to JVM bytecode
LLJVM: LLVM bitcode to JVM bytecodeTakeshi Yamamuro
 
20180417 hivemall meetup#4
20180417 hivemall meetup#420180417 hivemall meetup#4
20180417 hivemall meetup#4Takeshi Yamamuro
 
An Experimental Study of Bitmap Compression vs. Inverted List Compression
An Experimental Study of Bitmap Compression vs. Inverted List CompressionAn Experimental Study of Bitmap Compression vs. Inverted List Compression
An Experimental Study of Bitmap Compression vs. Inverted List CompressionTakeshi Yamamuro
 
Sparkのクエリ処理系と周辺の話題
Sparkのクエリ処理系と周辺の話題Sparkのクエリ処理系と周辺の話題
Sparkのクエリ処理系と周辺の話題Takeshi Yamamuro
 
VLDB2013 R1 Emerging Hardware
VLDB2013 R1 Emerging HardwareVLDB2013 R1 Emerging Hardware
VLDB2013 R1 Emerging HardwareTakeshi Yamamuro
 
浮動小数点(IEEE754)を圧縮したい@dsirnlp#4
浮動小数点(IEEE754)を圧縮したい@dsirnlp#4浮動小数点(IEEE754)を圧縮したい@dsirnlp#4
浮動小数点(IEEE754)を圧縮したい@dsirnlp#4Takeshi Yamamuro
 
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)Takeshi Yamamuro
 
Introduction to Modern Analytical DB
Introduction to Modern Analytical DBIntroduction to Modern Analytical DB
Introduction to Modern Analytical DBTakeshi Yamamuro
 
SIGMOD’12勉強会 -Session 7-
SIGMOD’12勉強会 -Session 7-SIGMOD’12勉強会 -Session 7-
SIGMOD’12勉強会 -Session 7-Takeshi Yamamuro
 
A x86-optimized rank&select dictionary for bit sequences
A x86-optimized rank&select dictionary for bit sequencesA x86-optimized rank&select dictionary for bit sequences
A x86-optimized rank&select dictionary for bit sequencesTakeshi Yamamuro
 
VLDB’11勉強会 -Session 9-
VLDB’11勉強会 -Session 9-VLDB’11勉強会 -Session 9-
VLDB’11勉強会 -Session 9-Takeshi Yamamuro
 
研究動向から考えるx86/x64最適化手法
研究動向から考えるx86/x64最適化手法研究動向から考えるx86/x64最適化手法
研究動向から考えるx86/x64最適化手法Takeshi Yamamuro
 
VLDB'10勉強会 -Session 20-
VLDB'10勉強会 -Session 20-VLDB'10勉強会 -Session 20-
VLDB'10勉強会 -Session 20-Takeshi Yamamuro
 

More from Takeshi Yamamuro (20)

LT: Spark 3.1 Feature Expectation
LT: Spark 3.1 Feature ExpectationLT: Spark 3.1 Feature Expectation
LT: Spark 3.1 Feature Expectation
 
Apache Spark + Arrow
Apache Spark + ArrowApache Spark + Arrow
Apache Spark + Arrow
 
Taming Distributed/Parallel Query Execution Engine of Apache Spark
Taming Distributed/Parallel Query Execution Engine of Apache SparkTaming Distributed/Parallel Query Execution Engine of Apache Spark
Taming Distributed/Parallel Query Execution Engine of Apache Spark
 
LLJVM: LLVM bitcode to JVM bytecode
LLJVM: LLVM bitcode to JVM bytecodeLLJVM: LLVM bitcode to JVM bytecode
LLJVM: LLVM bitcode to JVM bytecode
 
20180417 hivemall meetup#4
20180417 hivemall meetup#420180417 hivemall meetup#4
20180417 hivemall meetup#4
 
An Experimental Study of Bitmap Compression vs. Inverted List Compression
An Experimental Study of Bitmap Compression vs. Inverted List CompressionAn Experimental Study of Bitmap Compression vs. Inverted List Compression
An Experimental Study of Bitmap Compression vs. Inverted List Compression
 
Sparkのクエリ処理系と周辺の話題
Sparkのクエリ処理系と周辺の話題Sparkのクエリ処理系と周辺の話題
Sparkのクエリ処理系と周辺の話題
 
20160908 hivemall meetup
20160908 hivemall meetup20160908 hivemall meetup
20160908 hivemall meetup
 
20150513 legobease
20150513 legobease20150513 legobease
20150513 legobease
 
20150516 icde2015 r19-4
20150516 icde2015 r19-420150516 icde2015 r19-4
20150516 icde2015 r19-4
 
VLDB2013 R1 Emerging Hardware
VLDB2013 R1 Emerging HardwareVLDB2013 R1 Emerging Hardware
VLDB2013 R1 Emerging Hardware
 
浮動小数点(IEEE754)を圧縮したい@dsirnlp#4
浮動小数点(IEEE754)を圧縮したい@dsirnlp#4浮動小数点(IEEE754)を圧縮したい@dsirnlp#4
浮動小数点(IEEE754)を圧縮したい@dsirnlp#4
 
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
 
Introduction to Modern Analytical DB
Introduction to Modern Analytical DBIntroduction to Modern Analytical DB
Introduction to Modern Analytical DB
 
SIGMOD’12勉強会 -Session 7-
SIGMOD’12勉強会 -Session 7-SIGMOD’12勉強会 -Session 7-
SIGMOD’12勉強会 -Session 7-
 
A x86-optimized rank&select dictionary for bit sequences
A x86-optimized rank&select dictionary for bit sequencesA x86-optimized rank&select dictionary for bit sequences
A x86-optimized rank&select dictionary for bit sequences
 
VAST-Tree, EDBT'12
VAST-Tree, EDBT'12VAST-Tree, EDBT'12
VAST-Tree, EDBT'12
 
VLDB’11勉強会 -Session 9-
VLDB’11勉強会 -Session 9-VLDB’11勉強会 -Session 9-
VLDB’11勉強会 -Session 9-
 
研究動向から考えるx86/x64最適化手法
研究動向から考えるx86/x64最適化手法研究動向から考えるx86/x64最適化手法
研究動向から考えるx86/x64最適化手法
 
VLDB'10勉強会 -Session 20-
VLDB'10勉強会 -Session 20-VLDB'10勉強会 -Session 20-
VLDB'10勉強会 -Session 20-
 

Recently uploaded

自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 

Recently uploaded (9)

自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 

MLflowによる機械学習モデルのライフサイクルの管理

  • 1. Copyright©2019 NTT corp. All Rights Reserved. MLflowによる機械学習モデルの ライフサイクルの管理 Takeshi Yamamuro, NTT このスライドは以下の発表を参考に作成しています [1] Matei Zaharia, Accelerating Machine Learning Development with MLflow, XLDB2019
  • 2. 2Copyright©2019 NTT corp. All Rights Reserved. ⾃⼰紹介
  • 3. 3Copyright©2019 NTT corp. All Rights Reserved. お知らせ - https://bit.ly/30Sh4MU
  • 4. 4Copyright©2019 NTT corp. All Rights Reserved. MLflow 1.0リリース https://bit.ly/2Iq1j7F aa$ pip install mlflow==1.0.0
  • 5. 5Copyright©2019 NTT corp. All Rights Reserved. • 企業での機械学習の利⽤は「前処理→モデル学習→デプ ロイ」のライフサイクルで構成されることが多い 機械学習モデルのライフサイクルと特徴 [1]のp4から引用 • データは変化するため,このサ イクルを繰り返す • 複数⼈が似た(もしくは同じ) タスクで学習を⾏う • 実⾏環境や前処理・モデル学習 に⽤いるライブラリは⼈や時代 によって様々
  • 6. 6Copyright©2019 NTT corp. All Rights Reserved. • MLflowは企業における機械学習モデルの再現性や再利 ⽤性を向上させるための機能を提供 • 先⾏する取り組みにTFX@Google,FBLearner@Facebook, Michelangelo@Uberなど • MLflowは以下3つの機能を提供 • MLflow Tracking: 追跡性と再現性を⾼めるため,学習条件やスコアなど実験 内容を記録するロギングフレームワークを提供 • MLflow Projects: 再利⽤性を⾼めるため,学習スクリプトの実⾏環境の再現 と起動(パラメータの与え⽅など)を⽀援 • MLflow Models: 学習モデルのフォーマットを定め,デプロイを⽀援 MLflowは何をしてくれるの?
  • 7. 7Copyright©2019 NTT corp. All Rights Reserved. • ライブラリ⾮依存性(Library-Agnostic) • MLflow⾃体に前処理や学習を⾏う機能があるわけではなく, あくまで既存のライブラリ(pandas,scikit-learn, XGBoost/LightGBM,PyTorch,Spark,TensorFlowなど) を⽀援する位置づけ MLflowは何をしてくれるの?
  • 8. 8Copyright©2019 NTT corp. All Rights Reserved. • ログ記録のためのAPIsと,記録されたログを確認・⽐ 較するためのViewを提供 MLflow Tracking MLflow Web UIs ([1]のp10から引用) # 学習条件の記録 mlflow.log_param(‘training_data’, data) mlflow.log_param(‘n’, n) mlflow.log_param(‘learning_rate’, lr) # スコアの記録 mlflow.log_metric(‘score’, rmse) # 学習したモデルの記録 mlflow.sklearn.log_model(clf)
  • 9. 9Copyright©2019 NTT corp. All Rights Reserved. • MLflow Tracking Server • デフォルトではログはローカルに保存されるが,Tracking Serverを起動することで複数⼈で実験内容を共有可 MLflow Tracking $ mlflow server --backend-store-uri /mnt/persistent-disk --default-artifact-root s3://my-mlflow-bucket/ --host 0.0.0.0
  • 10. 10Copyright©2019 NTT corp. All Rights Reserved. MLflow Projects • 簡潔なパッケージフォーマットを提供 • conda(もしくはdocker)を使った学習スクリプトの依存関係 の解決,学習スクリプトの実⾏を⾃動化 MLProjectの内容(Makefile的なもの)
  • 11. 11Copyright©2019 NTT corp. All Rights Reserved. MLflow Projects • 実⾏は「mlflow run <project path>」 • Makefileのmake的なもの • <project path>にはgitのURI(git://...)も⼊⼒可能
  • 12. 12Copyright©2019 NTT corp. All Rights Reserved. MLflow Models [1]のp18から引用
  • 13. 13Copyright©2019 NTT corp. All Rights Reserved. • 公式ドキュメント • https://www.mlflow.org/docs/latest/index.html • 公式のexamples • https://github.com/mlflow/mlflow/tree/master/examples • ⽤途ごとに例があるのでテンプレートとして使いやすいかも • Spark+AI Summit 2019でのチュートリアル • Managing the Complete Machine Learning Lifecycle with MLflow • https://github.com/amesar/mlflow-spark-summit-2019 MLflowを始めるうえで参考になりそうな情報
  • 14. 14Copyright©2019 NTT corp. All Rights Reserved. • 1.0リリースに関して@Keynote • Accelerating the Machine Learning Lifecycle with MLflow 1.0 • ハイパーパラメータチューニングの⽅法論とMLflowによる実践 • Best Practices for Hyperparameter Tuning with MLflow • Advanced Hyperparameter Optimization for Deep Learning with MLflow • 前処理・学習をMLflowで管理し,Kubeflow環境にデプロイ • How to Utilize MLflow and Kubernetes to Build an Enterprise ML Platform その他のSummitでの関連発表
  • 15. 15Copyright©2019 NTT corp. All Rights Reserved. • サンプルコード • https://bit.ly/2KpCVWe • 起動⽅法の例: 「mlflow run . -P learning_rate=12」 MLflowを試す モデルの学習用のスクリプト 実行環境の依存関係情報(conda env export) 「mlflow run」 から読まれる定義ファイル(Makefile的なもの) - 依存関係を記述したファイル(conda.yaml)の場所 - 学習スクリプト(train.py)の起動方法 MLflowと関係のないファイル
  • 16. 16Copyright©2019 NTT corp. All Rights Reserved. • サンプルシナリオ(train.pyの内容) • ① 外部キー制約をもつ3つの⼊⼒データ(下図)をSparkでJoinして ⾮正規化したDataFrameを作成 • ② DataFrameをpandasのフォーマットに変換 • ③ XGBoostを⽤いてモデルを学習 • ④ 最後に学習に⽤いた条件/モデル/スコアをMLflowに記録 MLflowを試す S_sales R1_indicators R2_stores csv csv csv Spark dfpandas df学習モデル ② toPandas ① Join③ Learn R2_stores{store, …}_ S_sales{weekly_sales, sid, …, purchaseid, store} ^^^^^^^^^^^^^ / R1_indicators{purchaseid, …} _/ 目的変数 ④ Log
  • 17. 17Copyright©2019 NTT corp. All Rights Reserved. • Web UIs上でモデル学習のログを確認 MLflowを試す スコアが最も良い条件
  • 18. 18Copyright©2019 NTT corp. All Rights Reserved. • Web UIs上でモデル学習のログを確認 MLflowを試す 出力された学習モデルの場所
  • 19. 19Copyright©2019 NTT corp. All Rights Reserved. • 学習したモデルをデプロイ MLflowを試す aa // 「mlflow pyfunc」でRESTサーバにデプロイ $ mlflow pyfunc serve -p 4321 -m <学習モデルの場所> • Running on http://127.0.0.1:4321/ (Press CTRL+C to quit) aa $ curl -X POST -H “Content-Type:application/json;format=pandas-split” --data ‘<特徴量ベクトル>’ http://127.0.0.1:4321/invocations [4]
  • 20. 20Copyright©2019 NTT corp. All Rights Reserved. • 覚えることが少なく,⾮常にシンプルな設計 • この⼿のツールは覚えなければいけない”お約束”が多く導⼊コ ストが⾼い印象があるが,その⼼配は少ない • モデル構築に使⽤したスクリプトが既にあるのであれば, importして学習に⽤いた条件/モデル/スコアを記録するように 数⾏エントリを追加するだけでも⼤丈夫そう • プラガブルな設計による⾼い拡張性 • 独⾃の学習アルゴリズム実装を使っていても簡単に対応可能 • また今後流⾏る学習ライブラリが出てきた場合にでもコミュニ ティとして容易に追従可能 MLflowに関する所感