テクニカルガイド
Kubernetes での KServe とモデルの提供
KServe は、機械学習モデルを大規模に提供するための標準化された Kubernetes ネイティブ プラットフォームです。
このガイドを聴くAIによるナレーション · ~2 min
概要
これにより、自動スケーリング、カナリア ロールアウト、ゼロへのスケールを備えたモデルをデプロイするための単一の宣言的な方法がチームに提供され、Kubernetes の配管の大部分が抽象化されます。
ディープダイブ
以前は KFServing として知られ、Kubeflow プロジェクトから生まれた KServe は、InferenceService カスタム リソースを定義します。オブジェクト ストレージ (S3、GCS、Azure Blob) に保存されているモデルを指す短い YAML ファイルを作成すると、残りは KServe によって処理されます。予測推論と、ますます増えている生成 LLM サービスの両方をサポートします。 KServe は、一般的なフレームワーク (TensorFlow Serving、TorchServe、Triton、scikit-learn、XGBoost、Hugging Face) 用に事前構築された「サービング ランタイム」を出荷し、カスタム コンテナーをサポートします。 Knative Serving とネットワーキング レイヤー (Istio など) の上に構築され、真のゼロへのスケールを含むリクエスト駆動の自動スケーリングを提供するため、アイドル状態のモデルはコンピューティングを消費しません。また、Open Inference Protocol を中心とした予測 API も標準化されているため、クライアントはフレームワークに関係なくすべてのモデルと同じ方法で通信できます。
現実世界の実装
銀行は、S3 内のモデルを指す 10 行の InferenceService YAML を記述して信用スコアリング モデルをデプロイし、KServe が自動スケーリングとイングレスを処理します。
e コマース チームは、KServe カナリア ロールアウトを使用してトラフィックの 10 パーセントを新しいレコメンデーション モデルに送信し、メトリクスが正常であると判断されると 100 パーセントに増加します。
ある研究ラボでは、めったに使用されない数十のモデルをゼロスケールで提供しているため、各モデルはリクエストが到着した場合にのみ起動し、アイドル状態では GPU を消費しません。
MLOps チームは、予測器が Triton 提供のビジョン モデルを実行する前に、KServe トランスフォーマー コンポーネントを使用して画像のサイズ変更と正規化を実行します。
KServe の将来と Kubernetes でのモデル提供
KServe は生成 AI に向けて急速に進化しており、KV キャッシュ対応ルーティング、モデル キャッシュ、大規模な言語モデル向けの分離されたプレフィル/デコード サービングなどの機能を備えた LLM に重点を置いたトラックを追加しています。 vLLM などの推論エンジンとのより深い統合、1 つの GPU には大きすぎるモデルに対するマルチノード サービスの向上、トークンベースの負荷分散のためのゲートウェイ レベルのルーティングが期待されます。 CNCF を育成するプロジェクトとして、Kubernetes の背後にモデルを配置するための事実上のオープン スタンダードになりつつあり、研究成果物と復元力のある運用エンドポイントとの間のギャップを狭めています。
実践する
なぜそれが重要なのか
- 費用と予算. アーキテクチャの決定により、パフォーマンスと運用コストが何年にもわたって推進されます。
- より明確な判決. 技術教育は、チームが最新のスタックだけでなく、適切なスタックを選択するのに役立ちます。
- 品質管理. より良いエンジニアリングの選択により、本番環境での信頼性に関するインシデントが減少します。
気をつけてください
- 1 つのベンチマークを最適化すると、より広範なシステムの弱点が隠れる可能性があります。
- インフラストラクチャとメンテナンスのコストは過小評価されがちです。
- システムが複雑になるにつれて、セキュリティと可観測性のギャップが拡大する可能性があります。
次のステップ
- 実装前にレイテンシ、品質、コストの目標を定義します。
- 現実的な負荷とデータ条件でのベンチマーク。
- エラー、ドリフト、ユーザーへの影響を計測器で監視します。
- スケーリングの前に、ロールバックとインシデント対応のパスを準備します。
探検を続けましょう
よくある質問
Kubernetes での KServe とモデル サービングとは何ですか?
KServe は、機械学習モデルを大規模に提供するための標準化された Kubernetes ネイティブ プラットフォームです。これにより、自動スケーリング、カナリア ロールアウト、ゼロへのスケールを備えたモデルをデプロイするための単一の宣言的な方法がチームに提供され、Kubernetes の配管の大部分が抽象化されます。
KServe が独立したプロジェクトになる前の以前の名前は何でしたか?
KServe は、独立したプラットフォームになる前に、Kubeflow プロジェクト内の KFServing として誕生しました。
KServe でモデルをデプロイするために定義する主要な Kubernetes カスタム リソースは何ですか?
通常は YAML で InferenceService カスタム リソースを宣言し、提供されるモデルをデプロイおよび構成します。
リクエストが到着するまでアイドル状態の KServe モデルがコンピューティングを消費しないようにする機能はどれですか?
Knative 上に構築された KServe は、ゼロへのスケールアップをサポートし、トラフィックがない場合はレプリカをゼロにドロップし、オンデマンドでコールドスタートします。
KServe のリクエスト駆動型自動スケーリングを提供する基盤となるプロジェクトはどれですか?
KServe は Knative Serving に基づいて構築されており、同時実行性またはリクエスト レートに基づいてレプリカをスケーリングし、ゼロへのスケールを可能にします。
KServe は通常、起動時にどのようにモデル アーティファクトをサービング ポッドに取り込むのでしょうか?
ストレージ初期化子は、オブジェクト ストレージ (S3 や GCS など) からモデル アーティファクトをポッドにダウンロードし、モデルをイメージから切り離します。