在永久資源上執行自訂訓練工作

本頁說明如何使用 Google Cloud CLI、Vertex AI SDK for Python 和 REST API,在持續性資源上執行自訂訓練工作。

一般來說,建立自訂訓練工作時,您需要指定工作建立及執行的運算資源。建立永久資源後,您可以設定自訂訓練工作,在該永久資源的一或多個資源集區中執行。在永久資源上執行自訂訓練工作,可大幅縮短工作啟動時間,否則建立運算資源時需要花費這段時間。

必要的角色

如要取得在持續性資源上執行自訂訓練工作所需的權限,請要求管理員授予您專案的 Vertex AI 使用者 (roles/aiplatform.user) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

這個預先定義的角色包含 aiplatform.customJobs.create 權限,這是對持續性資源執行自訂訓練工作時的必要權限。

您或許還可透過自訂角色或其他預先定義的角色取得這項權限。

建立在永久資源上執行的訓練工作

如要建立在持續性資源上執行的自訂訓練工作,請對建立自訂訓練工作的標準操作說明進行下列修改:

gcloud

  • 指定 --persistent-resource-id 旗標,並將值設為要使用的持續性資源 ID (PERSISTENT_RESOURCE_ID)。
  • 指定 --worker-pool-spec 旗標,讓 machine-typedisk-type 的值與持續性資源中的對應資源集區完全相符。指定一個 --worker-pool-spec 進行單一節點訓練,並指定多個 --worker-pool-spec 進行分散式訓練。
  • 指定 replica-count 小於或等於相應資源集區的 replica-countmax-replica-count

Python

如要瞭解如何安裝或更新 Python 適用的 Vertex AI SDK,請參閱「安裝 Python 適用的 Vertex AI SDK」。 詳情請參閱 Python API 參考說明文件

def create_custom_job_on_persistent_resource_sample(
    project: str,
    location: str,
    staging_bucket: str,
    display_name: str,
    container_uri: str,
    persistent_resource_id: str,
    service_account: Optional[str] = None,
) -> None:
    aiplatform.init(
        project=project, location=location, staging_bucket=staging_bucket
    )

    worker_pool_specs = [{
        "machine_spec": {
            "machine_type": "n1-standard-4",
            "accelerator_type": "NVIDIA_TESLA_K80",
            "accelerator_count": 1,
        },
        "replica_count": 1,
        "container_spec": {
            "image_uri": container_uri,
            "command": [],
            "args": [],
        },
    }]

    custom_job = aiplatform.CustomJob(
        display_name=display_name,
        worker_pool_specs=worker_pool_specs,
        persistent_resource_id=persistent_resource_id,
    )

    custom_job.run(service_account=service_account)

REST

  • 指定 persistent_resource_id 參數,並將值設為要使用的永久資源 ID (PERSISTENT_RESOURCE_ID)。
  • 請指定 worker_pool_specs 參數,確保每個資源集區的 machine_specdisk_spec 值,與持續性資源中的對應資源集區完全相符。如要進行單一節點訓練,請指定一個 machine_spec;如要進行分散式訓練,請指定多個 machine_spec
  • 指定小於或等於對應資源集區的 replica_countmax_replica_countreplica_count,但不包括在該資源集區執行的任何其他工作的副本計數。

後續步驟