Upgrade to Pro — share decks privately, control downloads, hide ads and more …

続・小さく始めて大きく育てるMLOps2020 / Start small and grow big MLOps2020

chck
August 28, 2020

続・小さく始めて大きく育てるMLOps2020 / Start small and grow big MLOps2020

PyConJP2020での発表資料です

chck

August 28, 2020
Tweet

More Decks by chck

Other Decks in Programming

Transcript

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

    View Slide

  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

    View Slide

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

    View Slide

  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

    View Slide

  5. Fetch Data
    5

    View Slide

  6. Preprocessing
    6

    View Slide

  7. Training
    7

    View Slide

  8. Reporting
    8

    View Slide

  9. ML Lifecycleに潜む罠
    9

    View Slide

  10. 乱立するJupyter Notebook
    10

    View Slide

  11. 身元不明なデータ
    11

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  17. Hydra
    17

    View Slide

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

    View Slide

  19. Hydra
    19

    View Slide

  20. Hydra
    20

    View Slide

  21. Hydra
    21

    View Slide

  22. Hydra
    defaults: lightgbm_a.yamlをload
    22

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  26. MLflow Tracking
    26

    View Slide

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

    View Slide

  28. MLflow Tracking
    Tracking Server
    Tracking Client
    User
    28

    View Slide

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

    View Slide

  30. MLflow Tracking
    30

    View Slide

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

    View Slide

  32. MLflow Tracking
    32

    View Slide

  33. MLflow Tracking
    before after (with mlflow)
    33

    View Slide

  34. MLflow Tracking
    before after (with mlflow)
    34

    View Slide

  35. MLflow Tracking
    before after (with mlflow)
    35

    View Slide

  36. MLflow Tracking
    36

    View Slide

  37. MLflow Tracking
    37

    View Slide

  38. MLflow Tracking
    38

    View Slide

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

    View Slide

  40. Kedro
    40

    View Slide

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

    View Slide

  42. Kedro Pipeline
    42

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  47. 47

    View Slide

  48. node: preprocessの実行
    48

    View Slide

  49. node: train_modelの実行
    49

    View Slide

  50. node: report_accuracyの実行 50

    View Slide

  51. Summary
    51

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  56. Appendix
    56

    View Slide

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

    View Slide

  58. MLOps Yes/No Chart
    58

    View Slide