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 を使用してサービング レイテンシを短縮する

レイテンシは推論ワークロードの問題であり、一部の複雑なモデルは GPU や TPU などのハードウェア アクセラレータを使用して推論サービングを高速化しています。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 Logging と Cloud Monitoring)と統合されており、組み込みのオブザーバビリティ機能を使用して、推論ワークロードの健全性とパフォーマンスをモニタリングできます。これらのオブザーバビリティ機能を使用すると、ワークロードのデプロイ後のパフォーマンスに関する分析情報と可視性を得ることができます。たとえば、モデルが想定どおりに機能しているかどうか、ワークロードがレイテンシと精度の要件を満たしているかどうかを確認できます。

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

移植性と柔軟性を確保するために GKE を使用する

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

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

次のステップ