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

64e95d2d8051ee58501f21987f46b9e7?s=47 chck
August 28, 2020

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

PyConJP2020での発表資料です
en: Start small and grow big MLOps2020

64e95d2d8051ee58501f21987f46b9e7?s=128

chck

August 28, 2020
Tweet

Transcript

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

  2. 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
  3. What is MLOps? ML lifecycleを運用・管理 するためのPractice 3

  4. 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
  5. Fetch Data 5

  6. Preprocessing 6

  7. Training 7

  8. Reporting 8

  9. ML Lifecycleに潜む罠 9

  10. 乱立するJupyter Notebook 10

  11. 身元不明なデータ 11

  12. 再現しない学習結果 12

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

  14. 14 実験管理 できてますか

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

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

  17. Hydra 17

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

    - Parameter探索にも 18
  19. Hydra 19

  20. Hydra 20

  21. Hydra 21

  22. Hydra defaults: lightgbm_a.yamlをload 22

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

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

  25. Hydra Multirun Optionによる順次実行 25

  26. MLflow Tracking 26

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

    UIから可視化できる 27
  28. MLflow Tracking Tracking Server Tracking Client User 28

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

  30. MLflow Tracking 30

  31. MLflow Tracking 実験一覧 実験結果 31

  32. MLflow Tracking 32

  33. MLflow Tracking before after (with mlflow) 33

  34. MLflow Tracking before after (with mlflow) 34

  35. MLflow Tracking before after (with mlflow) 35

  36. MLflow Tracking 36

  37. MLflow Tracking 37

  38. MLflow Tracking 38

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

    39
  40. Kedro 40

  41. Kedro Workflowの管理ツール - pip install kedro - Fetch Data ->

    Preprocessing -> Training -> Reporting の流れをPipeline化 41
  42. Kedro Pipeline 42

  43. Kedro Pipeline Data Catalog Pipeline内で共有したいDataを yamlに定義 Data Connectorとその引数を記述 built-inのCSV, SQL,

    S3,,, Custom実装も可能 43
  44. Kedro Pipeline Parameters Pipeline内で共有したいParameterを yamlに定義 Hydraとの連携やMLflowに渡す例も 44

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

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

  47. 47

  48. node: preprocessの実行 48

  49. node: train_modelの実行 49

  50. node: report_accuracyの実行 50

  51. Summary 51

  52. 今日のまとめ Parameters Track experiments Workflow 52

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

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

    MLFlowと他ツールの組み合わせ 54
  55. You can find me at ◉ speakerdeck.com/chck ◉ github.com/chck ◉

    facebook.com/chck1245 Thanks! 55 ←この発表資料
  56. Appendix 56

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

    ... - Cloud依存 - SageMaker - AI Platform ... 57
  58. MLOps Yes/No Chart 58