ML Diagnostics 平台

Google Cloud ML Diagnostics 是端對端代管平台,可最佳化、監控及診斷 Google Cloud上的 AI 和機器學習工作負載。您可以使用機器學習診斷功能監控工作負載,並在單一平台收集所有工作負載指標、設定和設定檔,並以圖表呈現。機器學習診斷適用於訓練、訓練後強化學習 (RL) 和推論工作負載,並與 Cloud TPU 上的所有自動化調度管理工具相容。GKE 支援功能已正式發布。透過 Cluster Director 支援代管 Slurm、Kubernetes 和 Slurm 等自訂自動化調度管理工具,以及 Compute Engine 均為預先發布版。

機器學習診斷包含下列正式發布功能:

  • 工作負載監控:自動監控及診斷在 GKE TPU 上執行的 AI/機器學習工作負載。針對每項 GKE 工作,機器學習診斷工作負載監控功能會自動建立機器學習執行作業、監控工作負載的 TPU 工作週期、偵測影響工作負載的事件,並分析工作負載的不同層級 (例如基礎架構、自動調度管理工具和架構),協助判斷事件的可能原因。
  • 機器學習執行作業:使用 ML Diagnostics,透過 Google Cloud CLI 建立及註冊機器學習執行作業,或將 ML Diagnostics SDK 整合至工作負載。您可以透過工作負載監控功能自動建立及註冊執行作業、使用機器學習執行作業部署代管 XProf 執行個體,以及收集和管理工作負載指標、設定和設定檔工作階段。
  • gcloud CLI 體驗:透過 gcloud CLI 使用 ML Diagnostics API,即可註冊及管理執行作業、部署代管 XProf 資源、以視覺化方式呈現儲存空間 bucket 中的設定檔工作階段,以及從 CLI 觸發設定檔擷取作業。您也可以透過 CLI 或 API,列出工作負載監控偵測到的所有事件,並取得這些事件的分析器詳細資料。
  • Python SDK:使用與機器學習工作負載整合的開放原始碼 ML Diagnostics SDK,享有完整的機器學習工作負載診斷體驗。在 Google Cloud監控工作負載,並收集及管理工作負載指標、設定和設定檔。
  • 代管剖析:ML 診斷會將 XProf 的代管執行個體與可擴充的後端部署至相關聯的帳戶,以便快速載入大型設定檔。支援多位使用者同時存取設定檔,並內建多主機剖析和隨選剖析等功能。
  • 工作負載指標:追蹤工作負載指標,包括模型品質、模型效能和系統指標。有了工作負載監控功能,您不必整合 SDK,就能取得與工作負載相關聯的系統指標。
  • 工作負載設定管理:追蹤工作負載設定,包括軟體設定、系統設定和使用者定義的設定。
  • 在 Cluster Director 和 GKE 中以圖表呈現資料:在 Google Cloud 控制台的 Cluster Director 和 Google Kubernetes Engine 中,以圖表呈現指標、設定和設定檔。
  • 連結共用設定:使用共用連結協作,其中包含機器學習執行作業、工作負載監控、指標和設定檔等資訊。

機器學習診斷也包含下列預先發布版功能:

  • 工作負載監控:當效能降低分析器顯示不良狀態時,自動擷取 XProf 設定檔,以便進一步診斷。
  • Python SDK:支援 vLLM、Tunix 和 TorchTPU 工作負載。
  • 代管剖析:在快照模式下持續剖析,並透過代理剖析。

工作負載架構和自動化調度管理工具類型

機器學習診斷支援 JAX,並已在 GKE 正式發布。TorchTPU、JAX 上的 vLLM、TorchTPU 上的 vLLM 和 Tunix 等工作負載架構,目前在下列自動調度管理工具中提供預先發布版:

  • GKE
  • 自行管理的 Kubernetes
  • Cluster Director 代管的 Slurm
  • 自行管理 Slurm
  • Compute Engine

下表匯總了不同自動調度管理工具類型中,JAX 工作負載支援的功能和必要元件:

自動化調度管理工具類型 支援的功能和必要元件
GKE
  • GKE Job 和 JobSet 工作負載的工作負載監控功能
  • SDK 指標和程式輔助剖析 (GKE Webhook)
  • 隨選剖析 (GKE 運算子)
  • 隨選剖析、持續剖析,以及從工作負載監控 (Diagon DaemonSet) 自動擷取設定檔
自行管理的 Kubernetes
  • SDK 指標和程式輔助剖析 (Kubernetes Webhook)
  • 隨選剖析 (Kubernetes 運算子)
  • 隨選和持續剖析 (Diagon DaemonSet)
Cluster Director 代管的 Slurm、自行管理的 Slurm 和 Compute Engine
  • SDK 指標和程式輔助剖析
  • 隨選和持續剖析 (Diagon DaemonSet)

使用者路徑

您可以透過工作負載監控功能,自動將 ML Diagnostics 平台用於所有 GKE 工作,或將 SDK 整合至工作負載,享有完整的機器學習工作負載診斷體驗。您可以透過 Google Cloud 控制台或 CLI 與 ML Diagnostics 平台互動。使用 GKE 在 TPU 上部署的所有工作負載,都會自動啟用工作負載監控功能。

使用 CLI 時,您可以透過 ML Diagnostics gcloud CLI 建立或修改機器學習執行作業,並部署代管 XProf 資源。使用 ML Diagnostics SDK 時,必須將 SDK 整合至機器學習工作負載,才能收集及管理工作負載指標和設定,以及部署代管 XProf 資源。

如要開始使用,請參閱下列其中一項指南:

必要條件

使用機器學習診斷功能前,請先啟用 Cluster Director API,並新增必要的 IAM 權限。如果您使用的是 GKE,系統已啟用工作負載監控功能。不過,機器學習診斷 SDK 和隨選分析功能需要額外的 GKE 構件,以及 GKE 叢集設定。詳情請參閱「設定 GKE」。

啟用 Cluster Director API

您不需要使用 Cluster Director 部署及管理叢集,即可使用機器學習診斷產品。機器學習診斷功能適用於由 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 bucket。

您也可以建立自訂角色,為使用者指派機器學習診斷所需的部分 API。由於使用者不需要使用 Cluster Director 管理叢集,因此您只需要指派下列權限:

  • hypercomputecluster.locations.get
  • hypercomputecluster.locations.list
  • hypercomputecluster.clusters.list
  • hypercomputecluster.nodes.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 Federation,將 Kubernetes 服務帳戶與已授予必要角色的 Google Cloud 服務帳戶建立關聯。在主機網路 (hostNetwork: true) 上執行的 Pod 不會使用 Workload Identity Federation for GKE。在這些情況下,請參閱「Workload Identity Federation for GKE 的替代方案」。

在 Cloud Logging 啟用 Observability Analytics

模型指標和成效指標時間序列圖表會使用 Observability Analytics 查詢,針對專案的 _Default 記錄檔 bucket 呈現資料。如果該 bucket 未啟用 Observability Analytics,這些圖表就會失敗,且小工具會顯示 Something went wrong in the backend 或 0 time series 訊息,即使 Cloud Logging 中有指標資料,且設定檔和系統指標正常顯示也一樣。

每項專案只需啟用 Observability Analytics 一次。這項升級不會造成破壞,也不會產生額外費用,且無法停用。您仍可查詢現有記錄:

gcloud logging buckets update _Default --location=global \
  --enable-analytics --project=PROJECT_ID

這項指令需要 logging.buckets.update 權限,roles/logging.configWriter 等角色具備這項權限。

定價

系統會根據 Cloud Logging 儲存的指標和 Cloud Storage 儲存的設定檔向您收費。使用機器學習診斷平台時,不必為這些服務啟用任何額外計費功能。ML Diagnostics 平台部署的代管 XProf 資源不收取任何費用。