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

2021-10-23 Amazon SagaMaker with MLflow

Naka Masato
October 23, 2021

2021-10-23 Amazon SagaMaker with MLflow

Naka Masato

October 23, 2021
Tweet

More Decks by Naka Masato

Other Decks in Technology

Transcript

  1. Amazon SageMaker with MLFlow
    2021/10/23 Naka Masato

    View full-size slide

  2. 自己紹介
    名前 那珂将人
    経歴
    ● アルゴリズムエンジニアとしてレコメンドエンジン開発
    ● インフラ基盤整備
    GitHub:
    https://github.com/nakamasato
    Twitter: https://twitter.com/gymnstcs

    View full-size slide

  3. 今日の内容
    1. MLflow
    の簡単な紹介
    2. MLflow

    ECS+Fargate
    上で動かす
    3. MLflow

    SageMaker
    の連携
    前回
    :
    1. SageMaker Notebook

    AWS
    コンソール上から作成
    2.
    モデル作成・学習・デプロイ
    → 試行錯誤した実験、モデル、コードをより統一して管理したい

    View full-size slide

  4. MLflowとは
    4
    つのコンポーネント
    :
    1. MLflow Tracking:
    実験のトラックを可能に
    2. MLflow Projects:
    コードの再現性
    (version,
    library, parameter,..)
    3. MLflow Models:
    モデルのパッケージとデプロイ
    方法の統一
    4. MLflow Registry:
    モデル管理
    ML
    のライフサイクル全体を統一して管理できる!

    View full-size slide

  5. MLflowを使う場合の選択肢
    1. Managed MLflow by Databricks
    a. Notebook integration
    b. Scalability
    c. Role-based access control
    2. Open Source MLflow
    a.
    自分でホストする必要あり
    b. Notebook
    も別途構築の必要あり
    c.
    アクセスコントロールはサポートされていない
    本番運用を考慮すると、
    Managed
    にしたほうが楽+
    ML
    の中身に集中はできそう

    View full-size slide

  6. POCでは
    自分で構築してサクッと使ってみたい

    View full-size slide

  7. MLflowをAWS上で簡単に動かす
    マニュアルに設定しようとすると結構たいへん
    1. VPC

    Subnets
    などの
    Networking
    の設定
    2.
    動かすマシンの準備
    (EC2, EKS, ECS….)
    3. Backend store (MySQL
    など
    )

    Artifact store (S3)
    の準備
    4. MLflow
    のデプロイ
    +
    接続確認

    紹介
    : AWS Machine Leaning Blog (2021 Jan)
    https://aws.amazon.com/blogs/machine-learning/managing-your-mac
    hine-learning-lifecycle-with-mlflow-and-amazon-sagemaker/

    View full-size slide

  8. Architecture (MLflow on ECS using Fargate + SageMaker)
    1. MLflow
    をコンテナ化して、
    ECS
    というマネージ
    ドのコンテナサービスの上で動かす
    a.

    MLflow
    自体の安定性・監視・スケーラビリティを担

    2. RDS

    Backend store
    に、
    S3

    Artifact store

    保存
    a.
    メタデータやモデルなどを安全に管理
    3. Load Balancer

    MLflow

    Remote
    から使用で
    きる

    View full-size slide

  9. Architecture diagram
    MLflow
    ページから
    AWS Blog
    から

    View full-size slide

  10. 簡単にDeployするTool: AWS CDK
    AWS CDK (Cloud Development Kit)
    利点
    1. Setup
    が簡単
    !
    a. npm install -g aws-cdk
    2.
    インフラがコード
    (python, ts, ...)
    で書かれている
    !
    a.
    今回の例も
    :
    https://github.com/aws-samples/amazon-sagemaker-mlfl
    ow-fargate
    3. aws-samples
    に例が沢山あるので、体験したいだ
    けなら複雑な構成も一発で試せる
    !
    a. aws-cdk deploy
    Python
    で記述した例

    View full-size slide

  11. Deployステップ
    Step:
    1. Git Clone
    2. Python
    のライブラリインストール
    3.
    デプロイ
    25
    分くらいで
    MLflow on ECS with Fargate
    + RDS + S3
    完成
    !!!
    👏👏

    View full-size slide

  12. 今回のBlog例の難点

    Security

    Public Load Balancer

    MLflow
    に使用しているため誰
    でもアクセスできてしまう‥

    SageMaker

    CDK
    に含まれていないため、
    自分で別途建てる必要あり
    ..

    View full-size slide

  13. しかし! 新しい CDK aws-mlflow-sagemaker-cdk登場!
    2021/10/14
    に新しい
    CDK

    !
    https://github.com/aws-samples/aws-mlflo
    w-sagemaker-cdk
    一つの
    Deploy

    2
    つまとめて建てられる!
    1. MLflow on ECS using Fargate (RDS

    S3
    の連携込み
    )
    2. SageMaker
    さらに今回は
    MLflow

    Endpoint

    internal! (
    安全
    !)

    View full-size slide

  14. 問題: InternalだからMLflow UIアクセスできない…
    1. MLflow UI

    MLflow VPC
    の中
    2. MLflow VPC

    Private Link

    SageMaker VPC
    からのアクセスだけ
    許可

    Users

    MLflow UI
    にアクセス出来な

    !!
    AWS

    Client VPN
    というものが
    !
    MLflow UI
    はここ

    View full-size slide

  15. Client VPNを設定
    1. AWS Client VPN
    を設定
    a. split-tunnel

    enable
    すると
    Target

    CIDR
    宛てのトラフィックのみを
    VPN
    経由でルー
    ティングできる
    ! (
    これしないと無駄にすべ
    てのトラフィックが
    VPN
    経由となる
    )

    View full-size slide

  16. 次回以降:
    SageMaker Pipelines: the first purpose-built, easy-to-use continuous integration and
    continuous delivery (CI/CD) service for machine learning (ML)
    Components:
    1. pipelines
    2. model registry
    3. and projects.
    https://aws.amazon.com/blogs/machine-learning/building-automating-managing-and-sc
    aling-ml-workflows-using-amazon-sagemaker-pipelines/

    View full-size slide

  17. Reference

    https://aws.amazon.com/blogs/machine-learning/managing-your-machine-learning
    -lifecycle-with-mlflow-and-amazon-sagemaker/

    https://github.com/aws-samples/amazon-sagemaker-mlflow-fargate

    View full-size slide