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

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

通常,建立自訂訓練工作時,您需要指定工作建立及執行的運算資源。建立永久性資源後,您可以改為將自訂訓練工作設為在該永久性資源的一或多個資源集區中執行。在永久資源上執行自訂訓練工作,可大幅減少工作啟動時間,因為這類工作需要建立運算資源。

必要的角色

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

這個預先定義的角色包含 aiplatform.customJobs.create 權限,這是在永久性資源上執行自訂訓練工作所需的權限。

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

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

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

gcloud

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

Python 適用的 Vertex AI SDK

如要瞭解如何安裝或更新 Python 適用的 Vertex AI SDK,請參閱「安裝 Python 適用的 Vertex AI SDK」。 詳情請參閱 Vertex AI SDK for 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 參數,並將值設為要使用的持續性資源 (PERSISTENT_RESOURCE_ID) ID。
  • 請指定 worker_pool_specs 參數,讓每個資源集區的 machine_specdisk_spec 值與持久性資源的對應資源集區完全相符。如要進行單一節點訓練,請指定一個 machine_spec;如要進行分散式訓練,請指定多個 machine_spec
  • 指定的 replica_count 不得超過對應資源池的 replica_countmax_replica_count,且不包含在該資源池中執行的任何其他工作的副本數量。

後續步驟