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

2021-12-18 Kubeflow Pipelines概要@機械学習の社会実装勉強会

Naka Masato
December 18, 2021

2021-12-18 Kubeflow Pipelines概要@機械学習の社会実装勉強会

Naka Masato

December 18, 2021
Tweet

More Decks by Naka Masato

Other Decks in Technology

Transcript

  1. kubeflow pipelines概要
    2021/12/18
    那珂将人

    View full-size slide

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

    View full-size slide

  3. Kubeflow Pipelinesとは
    The Kubeflow project: ML workflows

    Kubernetes
    上でシンプル、ポータブルかつス
    ケーラブルにためのもの
    コンポーネント
    :
    1. Central Dashboard
    2. Kubeflow Notebooks
    3. Kubeflow Pipelines
    4. KFServing
    5. Katib
    6. Training Operator
    7. Multi-Tenancy
    https://www.kubeflow.org/
    より

    View full-size slide

  4. Kubeflow Pipelinesとは
    Kubernetes
    上で動かす
    Machine Learning
    のワークフロー
    a platform for building and deploying portable, scalable machine learning (ML)
    workflows based on Docker containers.
    Goals:
    1. End-to-end orchestration: ML
    パイプラインの全てをカバー
    2. Easy experimentation:
    簡単に試行錯誤できる
    3. Easy re-use:
    簡単に再利用できる

    View full-size slide

  5. Kubeflow PipelinesのConcepts
    1. Pipeline:
    定義
    2. Component: Pipeline
    内のステップ定義
    3. Graph
    4. Experiment
    5. Run and Recurring Run: Pipeline
    の実行
    6. Run Trigger
    7. Step: Component
    の実行
    8. Output Artifact
    9. ML Metadata
    Pipeline
    がクラス定義で、
    Run
    はインスタンスみた
    いなイメージ。実行のたびに、
    Run
    オブジェクトが
    作成される
    Pipeline
    Component
    Component
    Run
    Step
    Step
    Run
    Step
    Step
    実行
    実行

    View full-size slide

  6. Kubeflow PipelinesのConceptsとKubernetesの対応
    Pipeline
    Component
    Component
    Run
    Step
    Step
    Run
    Argoの
    Workflowと
    いうAPI
    object
    Step
    KubernetesのPod
    Kubernetes

    Kubeflow Pipelines

    Concepts
    Pipeline
    ArgoのWorkflowの
    manifest file

    View full-size slide

  7. Argo Workflows (ちょっとだけ脱線)
    Workflow
    の内部では、
    Argo Workflows
    が使われている
    Argo Workflows is an open source container-native workflow engine for orchestrating
    parallel jobs on Kubernetes. Argo Workflows is implemented as a Kubernetes CRD.
    https://argoproj.github.io/workflows/
    Argo Workflows

    UI

    View full-size slide

  8. Kubeflow Pipelinesの使用ステップ
    Steps:
    1. Pipeline
    の定義
    :
    a. Python
    のスクリプト作成
    (SDK kfp
    を利用
    )
    2. Pipeline
    の実行
    a. SDK

    kfp.Client
    を利用して
    Python
    から
    Pipeline
    を実行 または
    b. yaml
    を出力して
    UI

    Upload
    してから、
    UI
    上か

    ”Create Run”
    する
    3. Pipeline
    の状況確認
    a. UI
    上から確認
    b. (
    必要に応じて
    Kubernetes

    Pod
    などを確認
    )
    https://www.kubeflow.org/docs/components/pipelines/introduction/
    より
    Kubeflow Pipelines
    のアーキテクチャ

    View full-size slide

  9. 他のMLツールとの簡単な比較 (主観的な印象)
    1. AWS SageMaker
    a.
    ローカルの
    Jupyter
    環境 → クラウドリソース上で簡単に✅
    b.
    分析から
    ML API
    デプロイまでが簡単✅
    c.
    実行環境メインのスタート
    i. Inference, Edge Manager
    など他にも様々な機能
    (
    未検証
    )
    ii.
    モデルの管理はちょっと苦手🔺
    ?

    MLflow
    との親和性
    2. MLflow
    a.
    バラバラになる
    ML
    の試行錯誤をまとめる
    b.
    モデルの管理とデプロイを統一
    c.
    実行環境はスコープ外→ローカル✅、クラウド✅ ←
    SageMaker
    などとの親和性
    3. Kubeflow
    a. Pipelines
    i.
    拡張機能が豊富な
    Kubernetes
    を活用して、コンピュートリソースと
    ML Pipelines
    の管理を統一
    (End-to-End Orchestration)
    ii.
    まるごと全環境
    Kubernetes
    内で管理 ✅ 管理には
    Kubernetes
    の知見が必要🔺
    b.

    : KFServing, Notebooks…
    今まで勉強会で共有してきたもの・範囲し
    か入ってないので考慮で来てない部分が
    ある

    View full-size slide

  10. Sample: パイプラインの紹介
    作るパイプライン
    :
    1. CSV

    URL
    からダウンロードして
    tar

    data
    以下に開封
    2.
    中にある全ての
    csv
    ファイルを
    pandas

    DataFrame
    に読み込む
    パイプライン
    : 2-step pipeline
    1. download

    kfp.components.load_coponent_from_url
    を使う
    2. merge

    kfp.components.create_component_from_func
    と自分の作成した関数に
    より作成

    View full-size slide

  11. Sample: Pipeline内の2つのComponents
    1. download
    a. kfp.components.load_coponent_from_url
    を使う
    2. merge
    a. kfp.components.create_component_from_func
    と自分の作
    成した関数により作成

    View full-size slide

  12. Sample: Pipeline用の関数
    pipeline
    用の関数を作成

    View full-size slide

  13. Sample: Pipelineの実行
    2
    つの方法
    :
    1. yaml
    ファイルに出力してから
    Upload
    して
    UI
    から実行する
    2. SDK
    から
    kfp.Client
    を用いて
    Python
    スクリプト内から実行する

    View full-size slide

  14. Demo: Sampleパイプラインの実行

    View full-size slide

  15. まとめ
    1. Kubeflow pipelines
    の基本的なコンポーネントと役割の理解
    2. Kubeflow pipelines
    でのサンプルパイプラインの作成と実行
    ToDo
    1. Kubeflow Pipelines
    の実践
    2. KFServing
    などの他のコンポーネントの活用

    View full-size slide

  16. Reference
    1. https://www.kubeflow.org/
    2. https://www.kubeflow.org/docs/components/pipelines/introduction/
    3. https://argoproj.github.io/workflows/
    4. https://raw.githubusercontent.com/kubeflow/pipelines/master/components/web/D
    ownload/component.yaml
    5. https://raw.githubusercontent.com/nakamasato/kubeflow-training/main/03-create-
    first-pipeline/component.yaml
    6. https://kubeflow-pipelines.readthedocs.io/en/latest/source/kfp.compiler.html

    View full-size slide

  17. Kubeflow Pipelinesでデプロイされるcomponents
    1. workflow-controller <- argo workflows
    2. mysql
    3. ml-pipeline
    4. cache-deployer
    5. cache-server
    6. metadata-envoy
    7. metadata-grpc
    8. metadata-writer
    9. minio
    10. ml-pipeline
    11. ml-pipeline-persistenceagent
    12. ml-pipeline-scheduledworkflow
    13. ml-pipeline-ui
    14. ml-pipeline-viewer-crd
    15. ml-pipeline-visualizationserver

    View full-size slide