Slide 1

Slide 1 text

続・小さく始めて大きく育てる MLOps2020 Yuki IWAZAKI

Slide 2

Slide 2 text

I am Yuki Iwazaki Research Engineer at CyberAgent, AI Lab You can find me at @chck 2014- Back/Frontend Engineer (Ruby, Scala, JavaScript) 2016- Data Scientist (Python) 2017- Research Engineer (Python) Hello! 2

Slide 3

Slide 3 text

What is MLOps? ML lifecycleを運用・管理 するためのPractice 3

Slide 4

Slide 4 text

What is ML Lifecycle? DS Projectにおける周期的なProcess - Fetch Data - Preprocessing - Training - Reporting - Deployment https://www.slideshare.net/databricks/mlflow-infrastructure-for-a-complete-machine-learning-life-cycle 4

Slide 5

Slide 5 text

Fetch Data 5

Slide 6

Slide 6 text

Preprocessing 6

Slide 7

Slide 7 text

Training 7

Slide 8

Slide 8 text

Reporting 8

Slide 9

Slide 9 text

ML Lifecycleに潜む罠 9

Slide 10

Slide 10 text

乱立するJupyter Notebook 10

Slide 11

Slide 11 text

身元不明なデータ 11

Slide 12

Slide 12 text

再現しない学習結果 12

Slide 13

Slide 13 text

引き継ぎできない実験コード 13

Slide 14

Slide 14 text

14 実験管理 できてますか

Slide 15

Slide 15 text

ブログ記事: 小さく始めて大きく育てるMLOps2020 15

Slide 16

Slide 16 text

今日から始められる決定版を紹介したい 16

Slide 17

Slide 17 text

Hydra 17

Slide 18

Slide 18 text

Hydra 設定パラメータ管理ツール - pip install hydra-core - 複数のYamlを継承 - 順次読込 - Parameter探索にも 18

Slide 19

Slide 19 text

Hydra 19

Slide 20

Slide 20 text

Hydra 20

Slide 21

Slide 21 text

Hydra 21

Slide 22

Slide 22 text

Hydra defaults: lightgbm_a.yamlをload 22

Slide 23

Slide 23 text

Hydra defaults: lightgbm_a.yamlをload lightgbm_b.yamlをload 23

Slide 24

Slide 24 text

Hydra defaults: lightgbm_a.yamlをload lightgbm_b.yamlをload argsでparamsをoverwrite 24

Slide 25

Slide 25 text

Hydra Multirun Optionによる順次実行 25

Slide 26

Slide 26 text

MLflow Tracking 26

Slide 27

Slide 27 text

MLflow Tracking 実験ログの管理ツール - pip install mlflow - clientからserverに送信し たログが保存され、 UIから可視化できる 27

Slide 28

Slide 28 text

MLflow Tracking Tracking Server Tracking Client User 28

Slide 29

Slide 29 text

MLflow Tracking Tracking Serverの起動コマンド 内部でgunicornが動いている 29

Slide 30

Slide 30 text

MLflow Tracking 30

Slide 31

Slide 31 text

MLflow Tracking 実験一覧 実験結果 31

Slide 32

Slide 32 text

MLflow Tracking 32

Slide 33

Slide 33 text

MLflow Tracking before after (with mlflow) 33

Slide 34

Slide 34 text

MLflow Tracking before after (with mlflow) 34

Slide 35

Slide 35 text

MLflow Tracking before after (with mlflow) 35

Slide 36

Slide 36 text

MLflow Tracking 36

Slide 37

Slide 37 text

MLflow Tracking 37

Slide 38

Slide 38 text

MLflow Tracking 38

Slide 39

Slide 39 text

Tracking Serverのすすめ Tracking Server Tracking Client User MLflow or 実験管理系SaaS 39

Slide 40

Slide 40 text

Kedro 40

Slide 41

Slide 41 text

Kedro Workflowの管理ツール - pip install kedro - Fetch Data -> Preprocessing -> Training -> Reporting の流れをPipeline化 41

Slide 42

Slide 42 text

Kedro Pipeline 42

Slide 43

Slide 43 text

Kedro Pipeline Data Catalog Pipeline内で共有したいDataを yamlに定義 Data Connectorとその引数を記述 built-inのCSV, SQL, S3,,, Custom実装も可能 43

Slide 44

Slide 44 text

Kedro Pipeline Parameters Pipeline内で共有したいParameterを yamlに定義 Hydraとの連携やMLflowに渡す例も 44

Slide 45

Slide 45 text

Kedro Pipeline Node Pipelineを組み立てる処理の一単位. Python関数で記述 45

Slide 46

Slide 46 text

Kedro Pipeline Pipeline Data Catalog, Parameterが共有された NodeのChain 46

Slide 47

Slide 47 text

47

Slide 48

Slide 48 text

node: preprocessの実行 48

Slide 49

Slide 49 text

node: train_modelの実行 49

Slide 50

Slide 50 text

node: report_accuracyの実行 50

Slide 51

Slide 51 text

Summary 51

Slide 52

Slide 52 text

今日のまとめ Parameters Track experiments Workflow 52

Slide 53

Slide 53 text

おわりに 使い回しを意識した健全なML Lifecycleで 未来の自分やProjectの皆を幸せにしましょう まずは1ツールから. 53

Slide 54

Slide 54 text

References - 小さく始めて大きく育てるMLOps2020 - https://github.com/chck/ml-management-tools/ - ハイパラ管理のすすめ - ハイパーパラメータをHydra+MLflowで管理しよう - MLFlowと他ツールの組み合わせ 54

Slide 55

Slide 55 text

You can find me at ◉ speakerdeck.com/chck ◉ github.com/chck ◉ facebook.com/chck1245 Thanks! 55 ←この発表資料

Slide 56

Slide 56 text

Appendix 56

Slide 57

Slide 57 text

Deploymentまで管理するには - こんなのがあります - library依存 - TensorFlow Serving - TorchServe ... - Cloud依存 - SageMaker - AI Platform ... 57

Slide 58

Slide 58 text

MLOps Yes/No Chart 58