Slide 1

Slide 1 text

KServe概要 2022/01/29 Naka Masato

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

コンテンツ ● KServe 概要 ● KServe アーキテクチャ ● QuickStart ● SKlearnServer の仕組みの紹介

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

1. KServe: CRD によってサービングしたいモデルを記述して作成する 2. Knative: オートスケーリング、バージョン管理、 Routing など全部やってくれるパック 3. Istio: Microservices の可観測性、トラッフィク管理、セキュリティをコード変更なしで実 現 4. Cert Manager: TLS の certificate を管理 KServeで使われているコンポーネント KServce Knative Istio Cert Manager Serving するもの を定義 残りは、いろんなコンポーネントがうまく Deploy 管理、トラフィック管理、スケー リング、モニタリング、セキュリティなどをやってくれる Pod gateway

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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 を作成

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

まとめ 1. KServe を紹介 2. KServe の各コンポーネントの大まかな役割を紹介 3. KServe の QuickStart を紹介 4. KServe の SKlearn Server がどのように作られているかを紹介