Ray on Vertex AI 簡介

Ray 是開放原始碼架構,可擴充 AI 和 Python 應用程式。Ray 提供基礎架構,可為機器學習 (ML) 工作流程執行分散式運算和平行處理。

Ray 和 Vertex AI 比較

如果您已使用 Ray,可以透過相同的開放原始碼 Ray 程式碼編寫程式,並在 Vertex AI 上開發應用程式,只需進行極少的變更。然後,您可以使用 Vertex AI 與其他服務 (例如 Vertex AI InferenceBigQuery) 的整合功能,做為機器學習工作流程的一部分。 Google Cloud

如果您已使用 Vertex AI,且需要更簡單的方式來管理運算資源,可以使用 Ray 程式碼擴充訓練作業。

在 Vertex AI 上使用 Ray 的工作流程

使用 Colab Enterprise 和 Python 適用的 Vertex AI SDK 連線至 Ray 叢集。

步驟 說明
1. 設定 Ray on Vertex AI 設定 Google 專案、安裝包含 Ray Client 功能的 Vertex AI SDK for Python 版本,並設定虛擬私有雲對等互連網路 (選用)。
2. 在 Vertex AI 上建立 Ray 叢集 在 Vertex AI 上建立 Ray 叢集。您必須具備 Vertex AI 管理員角色
3. 在 Vertex AI 上開發 Ray 應用程式 連線至 Vertex AI 上的 Ray 叢集,並開發應用程式。必須具備 Vertex AI 使用者角色
4. (選用) 在 Vertex AI 上搭配 BigQuery 使用 Ray 使用 BigQuery 讀取、寫入及轉換資料。
5. (選用) 在 Vertex AI 上部署模型並取得推論結果 將模型部署至 Vertex AI 線上端點,並取得推論結果。
6. 在 Vertex AI 上監控 Ray 叢集 在 Cloud Logging 中監控產生的記錄,以及在 Cloud Monitoring 中監控指標。
7. 刪除 Vertex AI 上的 Ray 叢集 刪除 Vertex AI 上的 Ray 叢集,以免產生不必要的費用。

總覽

Ray 叢集內建於其中,可確保重要機器學習工作負載或尖峰季節的容量可用性。與自訂工作不同,訓練服務會在工作完成後釋出資源,但 Ray 叢集會持續可用,直到遭到刪除為止。

注意:在下列情況下,請使用長時間執行的 Ray 叢集:

  • 如果多次提交相同的 Ray 工作,在同一個長期執行的 Ray 叢集上執行工作,即可享有資料和圖片快取功能。
  • 如果您執行許多生命週期短暫的 Ray 工作,且實際處理時間短於工作啟動時間,則長期執行的叢集可能會有幫助。

您可以使用公開或私人連線設定 Vertex AI 上的 Ray 叢集。下圖顯示 Vertex AI 上的 Ray 架構和工作流程。詳情請參閱「公開或私人連線」。

具備公開連線功能的架構

Ray on Vertex AI 公開連線

  1. 使用下列選項,在 Vertex AI 上建立 Ray 叢集:

    a. 使用 Google Cloud 控制台在 Vertex AI 上建立 Ray 叢集。

    b. 使用 Python 適用的 Vertex AI SDK,在 Vertex AI 上建立 Ray 叢集。

  2. 透過下列選項,連線至 Vertex AI 上的 Ray 叢集,進行互動式開發:

    a. 在 Google Cloud 控制台中使用 Colab Enterprise,即可順暢連線。

    b. 使用可存取公開網際網路的任何 Python 環境。

  3. 在 Vertex AI 的 Ray 叢集上開發應用程式及訓練模型:

    • 在偏好的環境 (Colab Enterprise 或任何 Python 筆記本) 中,使用 Python 適用的 Vertex AI SDK。

    • 使用偏好的環境編寫 Python 指令碼。

    • 使用 Python 適用的 Vertex AI SDK、Ray Job CLI 或 Ray Job 提交 API,將 Ray Job 提交至 Vertex AI 的 Ray 叢集。

  4. 將訓練好的模型部署至 Vertex AI 線上端點,進行即時推論。

  5. 使用 BigQuery 管理資料。

使用虛擬私有雲的架構

下圖顯示設定 Google Cloud 專案和虛擬私有雲網路 (選用) 後,Vertex AI 上的 Ray 架構和工作流程:

Ray on Vertex AI VPC

  1. 設定 (a) Google 專案和 (b) 虛擬私有雲網路。

  2. 使用下列選項,在 Vertex AI 上建立 Ray 叢集:

    a. 使用 Google Cloud 控制台在 Vertex AI 上建立 Ray 叢集。

    b. 使用 Python 適用的 Vertex AI SDK,在 Vertex AI 上建立 Ray 叢集。

  3. 透過虛擬私有雲對等互連網路,使用下列選項連線至 Vertex AI 上的 Ray 叢集:

  4. 使用下列選項,在 Vertex AI 的 Ray 叢集上開發應用程式及訓練模型:

    • 在偏好的環境 (Colab Enterprise 或 Vertex AI Workbench 筆記本) 中,使用 Python 適用的 Vertex AI SDK。

    • 使用偏好的環境編寫 Python 指令碼。使用 Python 適用的 Vertex AI SDK、Ray Job CLI 或 Ray 資訊主頁,將 Ray 工作提交至 Vertex AI 的 Ray 叢集。

  5. 將訓練好的模型部署至線上 Vertex AI 端點,以進行推論。

  6. 使用 BigQuery 管理資料。

術語

如需完整術語清單,請參閱 Vertex AI 預測型 AI 術語表

  • 自動調度資源
  • 批次推論
  • BigQuery
    • BigQuery 是 Google Cloud 提供的高擴充性全代管無伺服器企業資料倉儲,可使用 SQL 查詢以極高速度分析巨量資料集。BigQuery 提供強大的商業智慧和數據分析功能,使用者不必管理任何基礎架構。詳情請參閱「從資料倉儲到自主式資料與 AI 平台」。
  • Cloud Logging
    • Cloud Logging 是 Google Cloud 提供的全代管即時記錄服務,可讓您收集、儲存、分析及監控所有 Google Cloud 資源、地端應用程式,甚至是自訂來源的記錄。Cloud Logging 集中管理記錄檔,方便您排解問題、稽核,以及瞭解應用程式和基礎架構的行為和健康狀態。詳情請參閱 Cloud Logging 總覽
  • Colab Enterprise
    • Colab Enterprise 是協作式的代管 Jupyter 筆記本環境,可將熱門的 Google Colab 使用體驗帶到 Google Cloud,並提供企業級安全性和法規遵循功能。Colab Enterprise 提供以筆記本為中心的零設定體驗,運算資源由 Vertex AI 管理,並與 BigQuery 等其他 Google Cloud 服務整合。詳情請參閱「Colab Enterprise 簡介」。
  • 自訂容器映像檔
    • 自訂容器映像檔是獨立的可執行套件,內含使用者的應用程式程式碼、執行階段、程式庫、依附元件和環境設定。在 Google Cloud (特別是 Vertex AI) 的環境中,使用者可以透過容器將機器學習訓練程式碼或服務應用程式及其確切的依附元件封裝在一起,確保可重現性,並使用特定軟體版本或標準環境未提供的獨特設定,在代管服務上執行工作負載。詳情請參閱「推論的自訂容器需求」。
  • 端點
    • 您可將訓練好的模型部署至這些資源,以提供推論結果。詳情請參閱「選擇端點類型」。
  • 身分與存取權管理 (IAM) 權限
    • Identity and Access Management (IAM) 權限是具體的細微功能,可定義哪些使用者能對哪些 Google Cloud 資源執行哪些操作。這些角色會指派給主體 (例如使用者、群組或服務帳戶),可精確控管 Google Cloud 專案或機構中服務和資料的存取權。詳情請參閱「使用 IAM 控管存取權」。
  • 推論
    • 在 Vertex AI 平台中,推論是指將資料點傳送至機器學習模型,據此計算輸出結果 (例如單一數值分數)。這個程序也稱為「將機器學習模型投入運作」或「將機器學習模型投入生產」。推論是機器學習工作流程中的重要步驟,因為模型必須經過推論,才能對新資料進行預測。在 Vertex AI 中,您可以透過各種方式執行推論,包括批次推論和線上推論。批次推論會執行一組推論要求,並將結果輸出至一個檔案,而線上推論則可對個別資料點進行即時推論。
  • 網路檔案系統 (NFS)
    • 用戶端/伺服器系統,可讓使用者透過網路存取檔案,並將檔案視為位於本機檔案目錄中。詳情請參閱「掛接網路檔案系統共用區」。
  • 線上推論
    • 同步取得個別執行個體的推論結果。詳情請參閱「線上推論」。
  • 永久資源
    • 這類 Vertex AI 運算資源 (例如 Ray 叢集) 會持續分配及可用,直到明確刪除為止,有助於疊代開發,並減少工作之間的啟動負擔。詳情請參閱「取得永久資源資訊」。
  • 管道
    • 機器學習管道是以容器為基礎,可攜式且可擴充的機器學習工作流程。詳情請參閱「Vertex AI Pipelines 簡介」。
  • 預先建構的容器
  • Private Service Connect (PSC)
    • Private Service Connect 技術可讓 Compute Engine 客戶將網路中的私人 IP 對應至其他虛擬私有雲網路或 Google API。詳情請參閱「Private Service Connect」。
  • Vertex AI 上的 Ray 叢集
    • Vertex AI 上的 Ray 叢集是運算節點的代管叢集,可用於執行分散式機器學習 (ML) 和 Python 應用程式。這項服務提供基礎架構,可為機器學習工作流程執行分散式運算和平行處理。Vertex AI 內建 Ray 叢集,可確保重要機器學習工作負載或尖峰季節的容量可用性。與自訂工作不同,訓練服務會在工作完成後釋出資源,但 Ray 叢集會持續可用,直到刪除為止。詳情請參閱「Ray on Vertex AI 總覽」。
  • Vertex AI 上的 Ray (RoV)
    • Vertex AI 上的 Ray 經過精心設計,您可以使用相同的開放原始碼 Ray 程式碼編寫程式,並在 Vertex AI 上開發應用程式,只需進行極少的變更。詳情請參閱「Ray on Vertex AI 總覽」。
  • Ray on Vertex AI SDK for Python
    • Ray on Vertex AI SDK for Python 是 Vertex AI SDK for Python 的版本,包含 Ray Client、Ray BigQuery 連接器、Vertex AI 上的 Ray 叢集管理,以及 Vertex AI 上的推論功能。詳情請參閱「Python 適用的 Vertex AI SDK 簡介」。
  • Ray on Vertex AI SDK for Python
    • Ray on Vertex AI SDK for Python 是 Vertex AI SDK for Python 的版本,包含 Ray Client、Ray BigQuery 連接器、Vertex AI 上的 Ray 叢集管理,以及 Vertex AI 上的推論功能。詳情請參閱「Python 適用的 Vertex AI SDK 簡介」。
  • 服務帳戶
    • 服務帳戶是特殊的 Google Cloud 帳戶,應用程式或虛擬機器可透過這類帳戶,對 Google Cloud 服務發出授權 API 呼叫。與使用者帳戶不同,服務帳戶不與個人使用者相關聯,而是做為程式碼的身分,可安全地以程式輔助方式存取資源,不需要使用者憑證。詳情請參閱服務帳戶總覽
  • Vertex AI Workbench
    • Vertex AI Workbench 是以 Jupyter 筆記本為基礎的統合式開發環境,支援完整的資料科學工作流程,包括資料探索與分析、模型開發、訓練和部署。Vertex AI Workbench 提供可管理及擴充的基礎架構,並內建與 BigQuery 和 Cloud Storage 等其他 Google Cloud 服務的整合功能,讓資料科學家能有效執行機器學習工作,不必管理基礎架構。詳情請參閱「Vertex AI Workbench 簡介」。
  • 工作站節點
    • 工作站節點是指叢集中的個別機器或運算執行個體,負責執行工作或作業。在 Kubernetes 或 Ray 叢集等系統中,節點是運算的基本單位。詳情請參閱「什麼是高效能運算 (HPC)?」。
  • 工作人員集區
    • 執行分散式工作的 Ray 叢集元件。工作站集區可使用特定機器類型設定,並支援自動調度資源和手動調度資源。詳情請參閱訓練叢集架構

定價

Ray on Vertex AI 的價格計算方式如下:

  • 系統會根據您在 Vertex AI 上建立 Ray 叢集時選取的機器設定,收取您使用的運算資源費用。如需 Ray on Vertex AI 定價,請參閱定價頁面

  • 就 Ray 叢集而言,系統只會在「RUNNING」和「UPDATING」狀態下收費。 其他州別不收費。 系統會根據當下的實際叢集大小計費。

  • 使用 Vertex AI 的 Ray 叢集執行工作時,系統會自動產生記錄,並根據 Cloud Logging 定價收費。

  • 如果將模型部署至端點以進行線上推論,請參閱 Vertex AI 價格頁面的「預測和說明」部分。

  • 如果您在 Vertex AI 上使用 BigQuery 和 Ray,請參閱 BigQuery 定價

後續步驟