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

2022-01-29 KServe概要@機械学習の社会実装勉強会

Naka Masato
January 29, 2022

2022-01-29 KServe概要@機械学習の社会実装勉強会

1. KServe概要
2. KServeのコンポーネント
3. KServeのアーキテクチャ
4. QuickStartの紹介
5. SklearnServerの仕組み紹介

Naka Masato

January 29, 2022
Tweet

More Decks by Naka Masato

Other Decks in Technology

Transcript

  1. KServe概要
    2022/01/29 Naka Masato

    View full-size slide

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

    View full-size slide

  3. コンテンツ

    KServe
    概要

    KServe
    アーキテクチャ

    QuickStart

    SKlearnServer
    の仕組みの紹介

    View full-size slide

  4. KServeとは
    ML model
    を本番環境へのデプロイと監視に関するチャレンジを解消するために作られ
    たモデル推論プラットフォーム
    Highly scalable and standards based Model Inference Platform on Kubernetes for
    Trusted API.

    View full-size slide

  5. KServeの特徴
    1. Kubernetes

    CustomResourceDefinition

    使ってモデルのサービングを管理
    2. Kubernetes
    の機能を駆使して
    ML
    モデルデ
    プロイ・管理の問題を解決
    a.
    デプロイ
    b.
    モニタリング
    c.
    スケール
    3.
    さまざまな
    ML
    ライブラリのモデルをサポート
    🔺複雑に見えて、初心者にはとっつきにくい
    !
    https://kserve.github.io/website/master/

    View full-size slide

  6. 1. KServe: CRD
    によってサービングしたいモデルを記述して作成する
    2. Knative:
    オートスケーリング、バージョン管理、
    Routing
    など全部やってくれるパック
    3. Istio: Microservices
    の可観測性、トラッフィク管理、セキュリティをコード変更なしで実

    4. Cert Manager: TLS

    certificate
    を管理
    KServeで使われているコンポーネント
    KServce Knative Istio
    Cert
    Manager
    Serving
    するもの
    を定義
    残りは、いろんなコンポーネントがうまく
    Deploy
    管理、トラフィック管理、スケー
    リング、モニタリング、セキュリティなどをやってくれる
    Pod
    gateway

    View full-size slide

  7. Control Planeのアーキテクチャ
    https://kserve.github.io/website/master/modelserving/control_plane/
    超複雑!

    View full-size slide

  8. Control Planeのアーキテクチャ
    https://kserve.github.io/website/master/modelserving/control_plane/
    2. KServing

    Controller

    Knative

    通じて
    Deployment
    を作成
    3. Pod

    Deployment
    によって作成さ
    れます
    4. AI app
    からのトラフィックは
    Transformer

    Predictor
    1. CustomResource

    InferenceService
    を作成

    View full-size slide

  9. QuickStart
    Prerequisite
    1. Kubernetes Cluster
    Install
    Create InferenceService
    Check
    curl -s "https://raw.githubusercontent.com/kserve/kserve/release-0.7/hack/quick_install.sh" | bash
    kubectl create ns kserve-test
    kubectl apply -f sklearn-inference-service.yaml -n kserve-test
    https://kserve.github.io/website/master/get_started/
    curl -H "Host: ${SERVICE_HOSTNAME}"
    http://$INGRESS_HOST:$INGRESS_PORT/v1/models/sklearn-iris:predict -d @./data/iris-input.json

    View full-size slide

  10. SKLearn Serverについて
    scikit-learn server
    は、
    serving Scikit-learn models
    の実装になります
    https://github.com/kserve/kserve/tree/master/python/sklearnserver
    sklearnserver
    というのが実装してあり、ローカルや
    s3
    にある
    sklearn model
    を指定してサー
    ビング
    https://github.com/kserve/kserve/blob/master/python/sklearnserver/sklearnserver/__main__.py

    View full-size slide

  11. SKLearn Serverについて
    SKLearnModel
    には
    以下のメソッドが実装されている
    1. load
    2. predict

    View full-size slide

  12. SKLearn Serverについて
    KServe
    で動かした
    QuickStart
    は、こちらがコンテナで動いていた
    ローカルで動かす場合は、以下のようにできる
    1.
    モデルのファイルを準備
    2. sklearnserver
    を起動
    3. client
    からアクセス
    python -m sklearnserver --model_dir ./ --model_name svm

    View full-size slide

  13. まとめ
    1. KServe
    を紹介
    2. KServe
    の各コンポーネントの大まかな役割を紹介
    3. KServe

    QuickStart
    を紹介
    4. KServe

    SKlearn Server
    がどのように作られているかを紹介

    View full-size slide