AI/ML 推論に GKE を使用する理由

このドキュメントは、Google Kubernetes Engine(GKE)を初めて使用し、できるだけ早く GKE で推論ワークロードの実行を開始したい ML エンジニアを対象としたシリーズの最初のパートです。

このシリーズでは、利用可能なすべての GKE オプションについて説明しません。代わりに、GKE でワークロードを実行するために必要な基本情報を提供します。このシリーズには、次のドキュメントが含まれています。

AI/ML プラットフォーム エンジニアは、GKE を使用してモデルのデプロイを管理できます。GKE は、Kubernetes ベースの推論ワークロードと、ワークロードが実行されるコンピューティング インフラストラクチャのデプロイ、スケーリング、モニタリングを自動化できるサービスです。このドキュメントでは、モデル推論に GKE を使用する主なメリットについて説明します。

始める前に

このドキュメントを読むにあたり、次のことについて知っている必要があります。

一貫したパフォーマンスを実現するためにモデルをパッケージ化する

一貫性のある信頼性の高いモデル推論は AI アプリケーションにとって重要であり、GKE は大規模な推論の管理における運用の複雑さを軽減できます。トレーニング済みモデル、推論サーバー、すべての依存関係をコンテナにパッケージ化することで、GKE で実行される標準化されたポータブル アーティファクトを作成します。コンテナ化は、依存関係の不一致や環境の不整合が原因で発生するエラーを減らすのに役立ちます。GKE は、これらのコンテナを自動的にデプロイして管理します。クラッシュしたワークロードの再起動やリソースの再プロビジョニングなどのタスクを処理し、AI/ML ワークロードのパフォーマンスを安定させます。

GPU と TPU を使用してサービング レイテンシを短縮する

レイテンシは推論ワークロードの問題であり、一部の複雑なモデルは GPUTPU などのハードウェア アクセラレータを使用して推論サービングを高速化します。GKE は、ハードウェアのプロビジョニングと管理を簡素化することで、レイテンシの影響を受けやすい推論ワークロードで GPU または TPU を使用するプロセスを効率化します。パフォーマンスと費用の要件に最適な特定のハードウェア構成を選択すると、GKE は選択したハードウェアでノードを自動的にプロビジョニングし、ワークロードを実行します。GKE は、NVIDIA ドライバのインストールなど、Kubernetes で通常手動構成が必要な設定手順も自動化します。ノード構成をより細かく制御するには、カスタム ComputeClass を使用して、GKE がノードをプロビジョニングするときに使用する、再利用可能な特定のハードウェア プロファイルを作成します。

GKE には、推論サービングに TPU リソースと GPU リソースをより効率的に使用できるようにするリソース管理機能も用意されています。たとえば、GPU 共有を使用して単一の GPU サーバーで複数のモデルをホストすることで GPU 使用率を向上させたり、アクセラレータを使用して Spot VM で実行することでフォールト トレラントな推論ジョブの費用を削減したりできます。需要要件が変動する小規模から中規模のワークロードや、実行時間が短いワークロードには、Flex Start を使用できます。これは、GPU や TPU などの専用コンピューティング リソースを使用するための柔軟で費用対効果に優れた手法を提供します。これらの機能を使用すると、サービング レイテンシと費用の両方を最適化しながら、アクセラレータ リソースの使用率を最大化できます。

変動するトラフィック パターンを自動的に処理する

リアルタイム推論ワークロードのトラフィックと負荷は予測不可能で動的になる可能性があります。需要の急増により、レイテンシが増加し、パフォーマンスが低下する可能性があります。GKE は自動スケーリングに対する多層アプローチを提供しているため、推論需要の変動に対応するためにリソースを自動的に追加または削除できます。たとえば、HorizontalPodAutoscaler(HPA)を使用して Deployment 内の Pod の数を自動的に調整したり、クラスタ オートスケーラーを使用して既存のノードプール内のノードの数を自動的に調整したりできます。GKE の自動スケーリング機能を使用すると、推論ワークロードに必要なリソースの量とアプリケーションの需要量を効率的に一致させることができます。

推論ワークロードの正常性とパフォーマンスをモニタリングする

GKE は Google Cloud オブザーバビリティ スイート(Cloud LoggingCloud Monitoring)と統合されており、組み込みのオブザーバビリティ機能を使用して、推論ワークロードの健全性とパフォーマンスをモニタリングできます。これらのオブザーバビリティ機能を使用すると、ワークロードのデプロイ後のパフォーマンスに関する分析情報と可視性を得ることができます。たとえば、モデルが想定どおりに動作しているかどうか、ワークロードがレイテンシと精度の要件を満たしているかどうかを確認できます。

GKE は、CPU、メモリ、アクセラレータ使用率などのインフラストラクチャ指標を自動的にレポートします。モデル固有のパフォーマンスに関する質問に答えるには、Google Cloud Managed Service for Prometheus を使用するか、推論アプリケーションから Cloud Monitoring にカスタム指標を送信します。たとえば、アプリケーションの自動モニタリングを構成して、1 秒あたりのリクエスト数(RPS)などの主要な推論指標をモニタリングできます。また、入力データ分布などのモデル固有の指標を分析してコンセプト ドリフトをモニタリングし、履歴ログ分析を実施して問題をデバッグすることもできます。

移植性と柔軟性を実現するために GKE を使用する

GKE は、コンテナなどのオープン標準と Kubernetes などのオープンソース テクノロジーを使用することで、要件の変更に応じて推論サービング ワークロードを別の場所に移動し、別のリソースとツールを使用する自由を提供します。たとえば、GKE で推論アプリケーションを開発してテストし、同じコンテナ化されたアプリケーションを本番環境のオンプレミス環境にデプロイできます。

結論として、GKE を使用すると、AI/ML モデルを開発から本番環境に移行する方法を効率化できます。GKE は、インフラストラクチャ管理に関連する複雑な処理の多くを処理します。つまり、パフォーマンス、スケーラビリティ、オブザーバビリティに優れた環境で推論ワークロードを実行することに集中できます。このシリーズでは、GKE を使用して AI/ML モデルを強力な本番環境対応アプリケーションに変換する方法について説明します。

次のステップ