KServe は、Kubernetes ベースの機械学習モデル提供フレームワークです。TFServing、TorchServe、Triton などの 1 つまたは複数のトレーニング済みモデルを、Kubernetes CustomResourceDefinitions (CRD) としてモデル提供ランタイムにデプロイすることをサポートしています。これにより、モデルのデプロイ、更新、スケーリングのプロセスが簡素化され、高速化されます。KServe のコアコンポーネントは KServe Controller です。リクエストトラフィックに基づく自動スケーリングなどの機能を使用するために、コンソールから KServe Controller をインストールできます。
KServe の概要
KServe は Kubernetes ベースの機械学習モデル提供フレームワークです。KServe は、シンプルな Kubernetes CustomResourceDefinitions (CRD) を提供し、TFServing、TorchServe、Triton 推論サーバーなどの 1 つ以上のトレーニング済みモデルをモデル提供ランタイムにデプロイできます。ModelServer と MLServer は、KServe で機械学習モデルをデプロイおよび管理するために使用される 2 つのモデル提供ランタイムです。これらのモデル提供ランタイムを使用すると、すぐに使えるモデル提供を利用できます。ModelServer は、KServe 予測プロトコル v1 で実装された Python モデル提供ランタイムです。MLServer は、REST および gRPC を使用した KServe 予測プロトコル v2 を実装しています。複雑なユースケース向けにカスタムモデルサーバーを構築することもできます。さらに、KServe は基本的な API プリミティブを提供し、カスタムモデル提供ランタイムを簡単に構築できるようにします。BentoML などの他のツールを使用して、カスタムモデル提供イメージを構築できます。
Knative InferenceService を使用してモデルをデプロイした後、KServe によって提供される以下のサーバーレス機能を使用できます。
ゼロへのスケーリング
1 秒あたりのリクエスト数 (RPS)、同時実行数、CPU および GPU メトリックに基づく自動スケーリング
バージョン管理
トラフィック管理
セキュリティ認証
すぐに使えるメトリック
KServe コントローラー
KServe コントローラーは、KServe の主要コンポーネントです。KServe コントローラーは、カスタム InferenceService リソースを管理し、Knative サービスを作成およびデプロイしてリソースのスケーリングを自動化します。KServe コントローラーは、トラフィック量に基づいて Knative サービスのデプロイメントをスケーリングできます。Knative サービスにリクエストが送信されない場合、KServe コントローラーはサービスポッドをゼロに自動的にスケーリングします。自動スケーリングは、モデル提供リソースをより効率的に活用し、リソースの無駄を防止できます。
前提条件
Knative が ACS クラスタにデプロイされていること。詳細については、Knative のデプロイを参照してください。
KServe のデプロイ
ACS コンソールにログインします。左側のナビゲーションペインで、クラスタをクリックします。
クラスタページで、管理するクラスタを見つけ、その ID をクリックします。クラスタ詳細ページの左側のナビゲーションペインで、 を選択します。
コンポーネントタブで、KServe を見つけ、[アクション] 列のデプロイをクリックします。プロンプトに従ってデプロイメントを完了します。
KServe コンポーネントのステータス列にデプロイ済みと表示されている場合、コンポーネントはデプロイされています。
参考資料
コンポーネントがインストールされた後、KServe に基づいて推論サービスを迅速にデプロイできます。