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

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

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

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

始める前に

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

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

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

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

レイテンシは推論ワークロードの問題であり、一部の複雑なモデルは、推論サービングを高速化するために GPUTPU などのハードウェア アクセラレータに依存しています。GKE は、レイテンシの影響を受けやすい推論ワークロードで GPU または TPU を使用するプロセスを効率化します。パフォーマンスと費用の要件に最適な特定のハードウェア構成を選択すると、GKE は選択したハードウェアを自動的にプロビジョニングして管理します。たとえば、GKE では NVIDIA ドライバのインストールが自動化されています。これは、通常 Kubernetes で手動構成が必要な手順です。

GKE には、推論サービングに TPU リソースと GPU リソースをより効率的に使用できるようにするリソース管理機能も用意されています。たとえば、GKE を使用して、複数のモデル間で GPU または TPU プールをスケジューリングまたは共有できます。また、Spot VM でアクセラレータを使用して、フォールト トレラントな推論ワークロードの費用対効果を高めることもできます。これらの機能を使用すると、サービング レイテンシと費用の両方を最適化しながら、アクセラレータ リソースの使用を最大化できます。

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

リアルタイム推論ワークロードのトラフィックと負荷は、予測不可能で動的になる可能性があります。需要の急増により、レイテンシが増加し、パフォーマンスが低下する可能性があります。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 モデルを強力な本番環境対応アプリケーションに変換する方法について説明します。

次のステップ