ML Diagnostics プラットフォーム

Google Cloud ML Diagnostics は、 Google Cloudで AI / ML ワークロードを最適化、モニタリング、診断するためのエンドツーエンドのマネージド プラットフォームです。ML 診断を使用してワークロードをモニタリングし、すべてのワークロード指標、構成、プロファイルを 1 つのプラットフォーム内で収集して可視化します。ML Diagnostics は、トレーニング ワークロードと推論ワークロードの両方に適用でき、Google Kubernetes Engine(GKE)やカスタム オーケストレータなど、Cloud TPU のすべてのオーケストレータと互換性があります。ML 診断には次の機能があります。

  • ワークロード モニタリング: GKE TPU で実行されている AI/ML ワークロードを自動的にモニタリングして診断します。ML Diagnostics Workload Monitoring は、GKE ジョブごとに Machine Learning 実行を自動的に作成し、ワークロード全体の TPU 使用率をモニタリングし、ワークロードに影響するイベントを検出し、インフラストラクチャ、オーケストレーター、フレームワークなどのワークロードのさまざまなレイヤを分析して、イベントの潜在的な原因を特定します。
  • ML の実行: ML Diagnostics を使用して、Google Cloud CLI を介して ML の実行を作成して登録するか、ML Diagnostics SDK をワークロードに統合します。ワークロード モニタリングで実行を自動的に作成して登録し、ML 実行でマネージド XProf インスタンスをデプロイして、ワークロード指標、構成、プロファイル セッションを収集して管理できます。
  • gcloud CLI の操作: gcloud CLI を介して ML Diagnostics API を使用して、実行の登録と管理、マネージド XProf リソースのデプロイ、ストレージ バケット内のプロファイル セッションの可視化、CLI からのプロファイル キャプチャのトリガーを行います。CLI または API を使用して、ワークロード モニタリングで検出されたすべてのイベントを一覧表示し、これらのイベントのアナライザーの詳細を取得することもできます。
  • Python SDK: ML ワークロードに統合されたオープンソースの ML Diagnostics SDK を使用して、ML ワークロードの診断を完全に実行します。 Google Cloudでワークロードをモニタリングし、ワークロード指標、構成、プロファイルを収集して管理します。
  • マネージド プロファイリング: ML Diagnostics は、スケーラブルなバックエンドを備えた XProf のマネージド インスタンスを関連付けられたアカウントにデプロイし、大規模なプロファイルの高速読み込みを可能にします。複数のユーザーが同時にプロファイルにアクセスすることをサポートし、マルチホスト プロファイリングやオンデマンド プロファイリングなどの組み込み機能が含まれています。
  • ワークロード指標: モデルの品質、モデルのパフォーマンス、システム指標などのワークロード指標を追跡します。ワークロード モニタリングを使用すると、SDK を統合せずにワークロードに関連付けられたシステム指標を取得できます。
  • ワークロード構成管理: ソフトウェア構成、システム構成、ユーザー定義構成など、ワークロード構成を追跡します。
  • Cluster Director と GKE の可視化: Google Cloud コンソールで、Cluster DirectorGoogle Kubernetes Engine の指標、構成、プロファイルを可視化します。
  • リンクの共有: 機械学習の実行、ワークロード モニタリング、指標、プロファイルに関する情報を含む共有可能なリンクを使用して共同作業を行います。

ユーザーの経路

ML Diagnostics プラットフォームは、すべての GKE ジョブのワークロード モニタリングで自動的に使用できます。また、SDK をワークロードに統合して、ML ワークロードの診断を完全に行うこともできます。ML 診断システムは、 Google Cloud コンソールまたは CLI を介して操作できます。ワークロード モニタリングは、TPU 上の GKE でデプロイされたすべてのワークロードで自動的に利用できます。

CLI を使用すると、ML Diagnostics gcloud CLI を使用して、ML の実行を作成または変更し、マネージド XProf リソースをデプロイできます。ML Diagnostics SDK を使用する場合、ワークロードの指標と構成を収集して管理し、マネージド XProf リソースをデプロイするには、SDK を ML ワークロードに統合する必要があります。

まず、次のいずれかのガイドをご覧ください。

XProf を使用した管理対象プロファイリング

CLI または SDK を使用すると、XProf でマネージド プロファイリング エクスペリエンスを利用できます。XProf は、ML ワークロード用のオープンソースのプロファイリングとパフォーマンス分析ツールであり、OpenXLA エコシステムの一部です。

セルフホスト型プロファイリング エクスペリエンスと比較して、マネージド プロファイリング エクスペリエンスには次のメリットがあります。

  • XProf やその他の依存関係の設定は不要です。
  • セキュリティが強化され、脆弱性から保護されます。
  • コラボレーション用の共有可能なリンク。
  • 大規模なプロファイルの読み込みが高速化されました。
  • 複数のユーザーが同時にプロファイルにアクセスすることをサポートし、リンク アクセス負荷に基づいてリソースを自動的にスケーリングします。
  • マルチホスト プロファイリングやオンデマンド プロファイリングなどの組み込み機能。
  • 同じマネージド XProf インスタンスを使用して、複数の実行にわたって複数のプロファイル セッションを読み込みます。
  • ML Diagnostics プラットフォームによってデプロイされるマネージド XProf リソースは無料であるため、マネージド XProf はセルフホスティング XProf よりも費用対効果が高くなります。

前提条件

ML Diagnostics を使用する前に、Cluster Director API を有効にして、必要な IAM 権限を追加します。GKE を使用している場合、ワークロード モニタリングはすでに有効になっています。ただし、ML Diagnostics SDK とオンデマンド プロファイリングには、追加の GKE アーティファクトと GKE クラスタの構成が必要です。詳細については、GKE を設定するをご覧ください。

Cluster Director API を有効にする

ML Diagnostics プロダクトを使用するために、クラスタのデプロイと管理に Cluster Director を使用する必要はありません。ML Diagnostics は、GKE、Cluster Director、カスタム オーケストレータによって管理されるクラスタで動作します。ML Diagnostics は Cluster Director ファミリーの API の一部ですが、ユーザーが Cluster Director プロダクト自体を使用しているかどうかには依存しません。

Cluster Director API の有効化の詳細については、 Google Cloud プロジェクトで API を有効にするをご覧ください。

IAM の権限

ワークロードで使用される Google Cloud サービス アカウントには、プロジェクトに次の IAM ロールが割り当てられている必要があります。

  • roles/hypercomputecluster.editor: MLRun リソースの作成と管理、ユーザー インターフェースの表示に対する完全アクセス権。
  • roles/logging.logWriter: Cloud Logging にログと指標を書き込む。
  • roles/storage.objectUser: machinelearning_run で指定された Cloud Storage バケットにプロファイルを保存します。

また、ML Diagnostics に必要な API のサブセットをユーザーに割り当てるカスタムロールを作成することもできます。ユーザーはクラスタの管理に Cluster Director を使用する必要がないため、次の権限のみを割り当てる必要があります。

  • hypercomputecluster.locations.get
  • hypercomputecluster.locations.list
  • hypercomputecluster.machineLearningRuns.create
  • hypercomputecluster.machineLearningRuns.delete
  • hypercomputecluster.machineLearningRuns.get
  • hypercomputecluster.machineLearningRuns.list
  • hypercomputecluster.machineLearningRuns.update
  • hypercomputecluster.operations.cancel
  • hypercomputecluster.operations.delete
  • hypercomputecluster.operations.get
  • hypercomputecluster.operations.list
  • resourcemanager.projects.get
  • Resourcemanager.projects.list

Google Kubernetes Engine のワークロードの場合は、Workload Identity 連携を使用して、Kubernetes サービス アカウントを、必要なロールが付与されている Google Cloud サービス アカウントに関連付けます。ホスト ネットワークhostNetwork: true)で実行されている Pod は、GKE 用 Workload Identity 連携を使用しません。このような場合は、Workload Identity Federation for GKE に代わる方法をご覧ください。

料金

Cloud Logging を介した指標の保存と、Cloud Storage を介したプロファイルの保存に対して課金されます。ML 診断プラットフォームを使用する場合、これらのサービスに対して追加の課金を有効にする必要はありません。ML Diagnostics プラットフォームによってデプロイされたマネージド XProf リソースに対して課金されることはありません。