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

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

06961195d24670d681e0e096e8fd9084?s=47 Naka Masato
January 29, 2022

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

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

06961195d24670d681e0e096e8fd9084?s=128

Naka Masato

January 29, 2022
Tweet

More Decks by Naka Masato

Other Decks in Technology

Transcript

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

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

    Twitter: https://twitter.com/gymnstcs
  3. コンテンツ • KServe 概要 • KServe アーキテクチャ • QuickStart •

    SKlearnServer の仕組みの紹介
  4. KServeとは ML model を本番環境へのデプロイと監視に関するチャレンジを解消するために作られ たモデル推論プラットフォーム Highly scalable and standards based

    Model Inference Platform on Kubernetes for Trusted API.
  5. KServeの特徴 1. Kubernetes の CustomResourceDefinition を 使ってモデルのサービングを管理 2. Kubernetes の機能を駆使して

    ML モデルデ プロイ・管理の問題を解決 a. デプロイ b. モニタリング c. スケール 3. さまざまな ML ライブラリのモデルをサポート 🔺複雑に見えて、初心者にはとっつきにくい ! https://kserve.github.io/website/master/
  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
  7. Control Planeのアーキテクチャ https://kserve.github.io/website/master/modelserving/control_plane/ 超複雑!

  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 を作成
  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
  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
  11. SKLearn Serverについて SKLearnModel には 以下のメソッドが実装されている 1. load 2. predict

  12. SKLearn Serverについて KServe で動かした QuickStart は、こちらがコンテナで動いていた ローカルで動かす場合は、以下のようにできる 1. モデルのファイルを準備 2.

    sklearnserver を起動 3. client からアクセス python -m sklearnserver --model_dir ./ --model_name svm
  13. まとめ 1. KServe を紹介 2. KServe の各コンポーネントの大まかな役割を紹介 3. KServe の

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