本文說明如何在 Gemini Enterprise Agent Platform 設定 Ray 叢集,滿足各種需求。舉例來說,如要建構映像檔,請參閱「自訂映像檔」。部分企業可以使用私人網路。本文說明 Ray on Vertex AI 的 Private Service Connect 介面。另一個用途是存取遠端檔案,就像存取本機檔案一樣 (請參閱「Agent Platform 網路檔案系統上的 Ray」)。
總覽
涵蓋的主題包括:
- 在 Gemini Enterprise Agent Platform 建立 Ray 叢集
- 管理 Ray 叢集的生命週期
- 建立自訂映像檔
- 設定私人和公開連線能力 (虛擬私有雲)
- 在 Agent Platform 使用 Ray 的 Private Service Connect 介面
- 設定 Ray on Agent Platform 網路檔案系統 (NFS)
- 使用 VPC-SC + 虛擬私有雲對接設定 Ray 資訊主頁和互動式殼層
建立 Ray 叢集
您可以使用 Google Cloud 控制台或 Agent Platform SDK for Python 建立 Ray 叢集。一個叢集最多可有 2,000 個節點。一個工作站集區最多可有 1,000 個節點。工作站集區數量沒有限制,但如果數量過多 (例如 1,000 個工作站集區,每個集區有一個節點),可能會對叢集效能造成負面影響。
開始之前,請先參閱「Ray on Gemini Enterprise Agent Platform 總覽」,並設定所有必要工具。
在 Agent Platform 上建立 Ray 叢集後,可能需要 10 到 20 分鐘才會啟動。
控制台
根據 OSS Ray 最佳做法建議,Ray head 節點的邏輯 CPU 數量必須設為 0,以免在 head 節點上執行任何工作負載。
前往 Google Cloud 控制台的「Ray on Agent Platform」頁面。
按一下「建立叢集」,開啟「建立叢集」面板。
在「Create Cluster」(建立叢集) 面板中,查看或取代每個步驟的預設叢集資訊。點選「繼續」來完成各個步驟:
在「Name and region」(名稱和區域) 部分,指定叢集的「Name」(名稱) 並選擇「Location」(位置)。
在「Compute settings」(運算設定) 部分,指定 Gemini Enterprise Agent Platform 首節點上的 Ray 叢集設定,包括機器類型、加速器類型和數量、磁碟類型和大小,以及副本數量。您也可以視需要新增自訂映像檔 URI,指定自訂容器映像檔,以新增預設容器映像檔未提供的 Python 依附元件。請參閱「自訂映像檔」。
在「進階選項」下方,您可以:
- 指定自己的加密金鑰。
- 指定自訂服務帳戶。
- 如果不需要在訓練期間監控工作負載的資源統計資料,請停用指標收集功能。
(選用) 如要為叢集部署私人端點,建議使用 Private Service Connect。詳情請參閱「Ray on Vertex AI 的 Private Service Connect 介面」。
點選「建立」。
Ray on Agent Platform SDK
根據 OSS Ray 最佳做法建議,Ray head 節點的邏輯 CPU 數量必須設為 0,以免在 head 節點上執行任何工作負載。
在互動式 Python 環境中,使用下列指令在 Gemini Enterprise Agent Platform 建立 Ray 叢集:
import ray import vertex_ray from google.cloud import aiplatform from vertex_ray import Resources from vertex_ray.util.resources import NfsMount # Define a default CPU cluster, machine_type is n1-standard-16, 1 head node and 1 worker node head_node_type = Resources() worker_node_types = [Resources()] # Or define a GPU cluster. head_node_type = Resources( machine_type="n1-standard-16", node_count=1, custom_image="us-docker.pkg.dev/my-project/ray-custom.2-9.py310:latest", # Optional. When not specified, a prebuilt image is used. ) worker_node_types = [Resources( machine_type="n1-standard-16", node_count=2, # Must be >= 1 accelerator_type="NVIDIA_TESLA_T4", accelerator_count=1, custom_image="us-docker.pkg.dev/my-project/ray-custom.2-9.py310:latest", # When not specified, a prebuilt image is used. )] # Optional. Create cluster with Network File System (NFS) setup. nfs_mount = NfsMount( server="10.10.10.10", path="nfs_path", mount_point="nfs_mount_point", ) aiplatform.init() # Initialize Agent Platform to retrieve projects for downstream operations. # Create the Ray cluster on Agent Platform CLUSTER_RESOURCE_NAME = vertex_ray.create_ray_cluster( head_node_type=head_node_type, network=NETWORK, #Optional worker_node_types=worker_node_types, python_version="3.10", # Optional ray_version="2.47", # Optional cluster_name=CLUSTER_NAME, # Optional service_account=SERVICE_ACCOUNT, # Optional enable_metrics_collection=True, # Optional. Enable metrics collection for monitoring. labels=LABELS, # Optional. nfs_mounts=[nfs_mount], # Optional. )
其中:
CLUSTER_NAME:Gemini Enterprise Agent Platform 上的 Ray 叢集名稱,在專案內不得重複。
NETWORK:(選用) 虛擬私有雲網路的全名,格式為
projects/PROJECT_ID/global/networks/VPC_NAME。如要為叢集設定私人端點 (而非公開端點),請指定要與 Ray on Agent Platform 搭配使用的虛擬私有雲網路。詳情請參閱「私人與公開連線」。VPC_NAME:選用。VM 運作的虛擬私有雲。
PROJECT_ID:您的 Google Cloud 專案 ID。您可以在 Google Cloud 控制台歡迎頁面找到專案 ID。
SERVICE_ACCOUNT:選用。在叢集上執行 Ray 應用程式的服務帳戶。授予必要角色。
LABELS:(選用) 含有使用者定義中繼資料的標籤,用於整理 Ray 叢集。標籤鍵和值的長度不得超過 64 個字元 (Unicode 字碼點),且只能包含小寫英文字母、數字、底線和破折號。可以使用國際字元。如需更多資訊和標籤範例,請參閱 https://goo.gl/xmQnxf。
在狀態變更為 RUNNING 之前,您應該會看到下列輸出內容:
none
[Ray on Agent Platform]: Cluster State = State.PROVISIONING
Waiting for cluster provisioning; attempt 1; sleeping for 0:02:30 seconds
...
[Ray on Agent Platform]: Cluster State = State.RUNNING
注意事項:
第一個節點是頭節點。
不支援 TPU 機器類型。
生命週期管理
在 Gemini Enterprise Agent Platform 上,Ray 叢集生命週期中的每項動作都會與一個狀態建立關聯。下表摘要說明各狀態的帳單狀態和管理選項。參考文件提供各狀態的定義。
| 動作 | 狀態 | 是否已計費? | 是否可執行刪除動作? | 是否可取消動作? |
|---|---|---|---|---|
| 使用者建立叢集 | 佈建中 | 否 | 否 | 否 |
| 使用者手動擴充或縮減 | 更新中 | 是,根據即時大小 | 是 | 否 |
| 叢集會執行 | 執行中 | 是 | 是 | 不適用 - 可刪除 |
| 叢集會自動向上擴充或縮減 | 更新中 | 是,根據即時大小 | 是 | 否 |
| 使用者刪除叢集 | 停止中 | 否 | 否 | 不適用 - 已停止 |
| 叢集進入錯誤狀態 | 錯誤 | 否 | 是 | 不適用 - 可刪除 |
| 不適用 | STATE_UNSPECIFIED | 否 | 是 | 不適用 |
自訂圖片 (選用)
預先建構的映像檔適用於大多數用途。如要建構映像檔,請使用 Ray on Gemini Enterprise Agent Platform 預先建構的映像檔做為基礎映像檔。如要瞭解如何從基礎映像檔建構映像檔,請參閱 Docker 說明文件。
這些基礎映像檔包含 Python、Ubuntu 和 Ray 的安裝。也包含以下依附元件:
- python-json-logger
- google-cloud-resource-manager
- ca-certificates-java
- libatlas-base-dev
- liblapack-dev
- g++, libio-all-perl
- libyaml-0-2。
私人和公開連線能力
根據預設,Ray on Agent Platform 會建立公開的安全端點,以便在 Gemini Enterprise Agent Platform 的 Ray 叢集上,使用 Ray Client 進行互動式開發。使用公開連線能力進行開發或臨時用途。這個公開端點可透過網際網路存取。只有在 Ray 叢集的使用者專案中,至少具備 Gemini Enterprise Agent Platform 使用者角色權限的授權使用者,才能存取叢集。
如果您需要與叢集建立私人連線,或使用 VPC Service Controls,Gemini Enterprise Agent Platform 上的 Ray 叢集支援虛擬私有雲對接。只有與 Gemini Enterprise Agent Platform 對接的虛擬私有雲網路中的用戶端,才能存取具有私人端點的叢集。
如要透過虛擬私有雲對等互連,為 Agent Platform 上的 Ray 設定私人連線,請在建立叢集時選取虛擬私有雲網路。虛擬私有雲網路需要虛擬私有雲網路與 Gemini Enterprise Agent Platform 之間的Private Service Connect。如果您在控制台中使用 Ray on Agent Platform,可以在建立叢集時設定私人服務存取連線。
如要在 Agent Platform 上搭配使用 VPC Service Controls、虛擬私有雲對接和 Ray 叢集,必須額外設定才能使用 Ray 資訊主頁和互動式殼層。請按照「Ray 資訊主頁和互動式殼層搭配 VPC-SC + 虛擬私有雲對接」中的操作說明,在使用者專案中設定互動式殼層,並搭配 VPC-SC 和虛擬私有雲對接。
在 Gemini Enterprise Agent Platform 建立 Ray 叢集後,您可以使用 Agent Platform SDK for Python 連線至頭節點。連線環境 (例如 Compute Engine VM 或 Vertex AI Workbench 執行個體) 必須位於與 Gemini Enterprise Agent Platform 對接的虛擬私有雲網路中。請注意,私人服務連線的 IP 位址數量有限,可能導致 IP 位址耗盡。因此,建議您為長時間執行的叢集使用私人連線。
Ray on Gemini Enterprise Agent Platform 的 Private Service Connect 介面
Gemini Enterprise Agent Platform 的 Ray 叢集支援 Private Service Connect 介面輸出和 Private Service Connect 介面輸入。
如要使用 Private Service Connect 介面輸出,請按照下一節的操作說明進行。如果未啟用 VPC Service Controls,具有 Private Service Connect 介面輸出的叢集會使用安全的公開端點,透過 Ray 用戶端輸入。
如果啟用 VPC Service Controls,系統預設會將 Private Service Connect 介面輸入與 Private Service Connect 介面輸出搭配使用。如要透過 Ray 用戶端連線,或從筆記本提交工作至具備 Private Service Connect 介面輸入的叢集,請確認筆記本位於使用者專案虛擬私有雲和子網路中。如要進一步瞭解如何設定 VPC Service Controls,請參閱「搭配使用 VPC Service Controls 與 Gemini Enterprise Agent Platform」。

啟用 Private Service Connect 介面
請按照設定資源指南,設定 Private Service Connect 介面。設定資源後,即可在 Gemini Enterprise Agent Platform 的 Ray 叢集上啟用 Private Service Connect 介面。
控制台
建立叢集並指定「Name and region」(名稱和區域) 和「Compute settings」(運算設定) 後,系統會顯示「Networking」(網路) 選項。

請採取下列任一做法,設定網路連結:
- 請使用您在為 Private Service Connect 設定資源時指定的 NETWORK_ATTACHMENT_NAME 名稱。
- 按一下下拉式選單中顯示的「Create network attachment」(建立網路連結) 按鈕,建立新的網路連結。

按一下「Create network attachment」(建立網路連結)。
在顯示的子工作中,指定新網路連結的名稱、網路和子網路。

點選「建立」。
Ray on Agent Platform SDK
Ray on Agent Platform SDK 是 Agent Platform SDK for Python 的一部分。如要瞭解如何安裝或更新 Agent Platform SDK for Python,請參閱「安裝 Agent Platform SDK for Python」。詳情請參閱 Agent Platform SDK for Python API 參考資料。
from google.cloud import aiplatform import vertex_ray # Initialization aiplatform.init() # Create a default cluster with network attachment configuration psc_config = vertex_ray.PscIConfig(network_attachment=NETWORK_ATTACHMENT_NAME) cluster_resource_name = vertex_ray.create_ray_cluster( psc_interface_config=psc_config, )
其中:
- NETWORK_ATTACHMENT_NAME:在使用者專案中設定 Private Service Connect 資源時指定的名稱。
Ray on Agent Platform 網路檔案系統 (NFS)
如要讓叢集可以使用遠端檔案,請掛接網路檔案系統 (NFS) 共用區。這樣一來,工作就能像存取本機檔案一樣存取遠端檔案,進而提高處理量並降低延遲時間。
虛擬私有雲設定
設定虛擬私有雲的方式有兩種:
設定 NFS 執行個體
如要進一步瞭解如何建立 Filestore 執行個體,請參閱「建立執行個體」。如果使用 Private Service Connect 介面方法,建立 Filestore 時就不必選取私人服務存取權模式。
使用網路檔案系統 (NFS)
如要使用網路檔案系統,請指定網路或網路連結 (建議)。
控制台
在建立頁面的「網路」步驟中,指定網路或網路連結後,方法是按一下「Network File System (NFS)」(網路檔案系統 (NFS)) 區段下方的「Add NFS mount」(新增 NFS 掛接),然後指定 NFS 掛接 (伺服器、路徑和掛接點)。
欄位 說明 serverNFS 伺服器的 IP 位址。這必須是虛擬私有雲中的私人位址。 pathNFS 共用區路徑。這必須是以 /開頭的絕對路徑。mountPoint本機掛接點。這必須是有效的 UNIX 目錄名稱。舉例來說,如果本機掛接點是 sourceData,請從訓練 VM 執行個體指定路徑/mnt/nfs/ sourceData。詳情請參閱「指定運算資源的位置」。
指定伺服器、路徑和掛接點。

點選「建立」。這樣就會建立 Ray 叢集。
Ray 資訊主頁和互動式殼層,搭配 VPC-SC + 虛擬私有雲對接
-
設定
peered-dns-domains。{ VPC_NAME=NETWORK_NAME REGION=LOCATION gcloud services peered-dns-domains create training-cloud \ --network=$VPC_NAME \ --dns-suffix=$REGION.aiplatform-training.cloud.google.com. # Verify gcloud beta services peered-dns-domains list --network $VPC_NAME; }
-
NETWORK_NAME:變更為對等互連網路。
-
LOCATION:所需位置 (例如
us-central1)。
-
-
設定
DNS managed zone。{ PROJECT_ID=PROJECT_ID ZONE_NAME=$PROJECT_ID-aiplatform-training-cloud-google-com DNS_NAME=aiplatform-training.cloud.google.com DESCRIPTION=aiplatform-training.cloud.google.com gcloud dns managed-zones create $ZONE_NAME \ --visibility=private \ --networks=https://www.googleapis.com/compute/v1/projects/$PROJECT_ID/global/networks/$VPC_NAME \ --dns-name=$DNS_NAME \ --description="Training $DESCRIPTION" }
-
PROJECT_ID:專案 ID您可以在 Google Cloud 控制台的歡迎頁面找到這些 ID。
-
-
記錄 DNS 交易。
{ gcloud dns record-sets transaction start --zone=$ZONE_NAME gcloud dns record-sets transaction add \ --name=$DNS_NAME. \ --type=A 199.36.153.4 199.36.153.5 199.36.153.6 199.36.153.7 \ --zone=$ZONE_NAME \ --ttl=300 gcloud dns record-sets transaction add \ --name=*.$DNS_NAME. \ --type=CNAME $DNS_NAME. \ --zone=$ZONE_NAME \ --ttl=300 gcloud dns record-sets transaction execute --zone=$ZONE_NAME }
-
提交訓練工作,並啟用互動式殼層 + VPC-SC + 虛擬私有雲對等互連。
共同責任
保護 Gemini Enterprise Agent Platform 的工作負載是共同責任。雖然 Gemini Enterprise Agent Platform 會定期升級基礎架構設定,以解決安全漏洞,但 Gemini Enterprise Agent Platform 不會自動升級現有的 Ray on Vertex AI 叢集和永久資源,以免搶占執行中的工作負載。因此,您必須負責下列工作:
- 定期刪除並重新建立 Ray on Vertex AI 叢集和永久資源,以便使用最新的基礎架構版本。Gemini Enterprise Agent Platform 建議至少每 30 天重新建立一次叢集和永久資源。
- 正確設定您使用的任何自訂映像檔。
詳情請參閱「共同責任」。