Google Cloud-Maschinenressourcen mit Vertex AI Pipelines anfordern

Sie können Ihre Python-Komponente auf Vertex AI-Pipelines ausführen. Verwenden Sie dazu Google Cloud-spezifische Maschinenressourcen, die durch das benutzerdefinierte Training von Vertex AI angeboten werden.

Sie können die Methode create_custom_training_job_from_component aus den Google Cloud-Pipeline-Komponenten verwenden, um eine Python-Komponente in einen benutzerdefinierten Vertex AI-Trainingsjob zu transformieren. Benutzerdefinierten Job erstellen

Benutzerdefinierten Trainingsjob aus einer Komponente mit Vertex AI Pipelines erstellen

Im folgenden Beispiel wird gezeigt, wie Sie mit der Methode create_custom_training_job_from_component eine Python-Komponente in einen benutzerdefinierten Trainingsjob mit benutzerdefinierten Google Cloud-Maschinenressourcen umwandeln und dann die kompilierte Pipeline auf Vertex AI-Pipelines ausführen:


import kfp
from kfp import dsl
from google_cloud_pipeline_components.v1.custom_job import create_custom_training_job_from_component

# Create a Python component
@dsl.component
def my_python_component():
  import time
  time.sleep(1)

# Convert the above component into a custom training job
custom_training_job = create_custom_training_job_from_component(
    my_python_component,
    display_name = 'DISPLAY_NAME',
    machine_type = 'MACHINE_TYPE',
    accelerator_type='ACCELERATOR_TYPE',
    accelerator_count='ACCELERATOR_COUNT',
    boot_disk_type: 'BOOT_DISK_TYPE',
    boot_disk_size_gb: 'BOOT_DISK_SIZE',
    network: 'NETWORK',
    reserved_ip_ranges: 'RESERVED_IP_RANGES',
    nfs_mounts: 'NFS_MOUNTS'
)

# Define a pipeline that runs the custom training job
@dsl.pipeline(
  name="resource-spec-request",
  description="A simple pipeline that requests a Google Cloud machine resource",
  pipeline_root='PIPELINE_ROOT',
)
def pipeline():
  training_job_task = custom_training_job(
      project='PROJECT_ID',
      location='LOCATION',
  ).set_display_name('training-job-task')

Dabei gilt:

  • DISPLAY_NAME: Der Name des benutzerdefinierten Jobs. Wenn Sie keinen Namen angeben, wird standardmäßig der Name der Komponente verwendet.

  • MACHINE_TYPE: Der Maschinentyp, auf dem der benutzerdefinierte Job ausgeführt wird, z. B. e2-standard-4. Weitere Informationen zu Maschinentypen finden Sie unter Maschinentypen. Wenn Sie eine TPU als accelerator_type angegeben haben, legen Sie dafür cloud-tpu fest. Weitere Informationen finden Sie in der Parameterreferenz zu machine_type.

  • ACCELERATOR_TYPE: Der Typ des Beschleunigers, der an die Maschine angehängt ist. Weitere Informationen zu den verfügbaren GPUs und deren Konfiguration finden Sie unter GPUs. Weitere Informationen zu den verfügbaren TPU-Typen und zu ihrer Konfiguration finden Sie unter TPUs. Weitere Informationen finden Sie in der Parameterreferenz zu accelerator_type.

  • ACCELERATOR_COUNT: Die Anzahl der Beschleuniger, die der Maschine zugeordnet sind, die den benutzerdefinierten Job ausführt. Wenn Sie den Beschleunigertyp angeben, wird die Anzahl der Beschleuniger standardmäßig auf 1 gesetzt.

  • BOOT_DISK_TYPE: Der Typ des Bootlaufwerks. Weitere Informationen finden Sie in der Parameterreferenz zu boot_disk_type.

  • BOOT_DISK_SIZE: die Größe des Bootlaufwerks in GB. Weitere Informationen finden Sie in der Parameterreferenz zu boot_disk_size_gb.

  • NETWORK: Wenn der benutzerdefinierte Job mit einem Compute Engine-Netzwerk per Peering verbunden ist, in dem der Zugriff auf private Dienste konfiguriert ist, geben Sie den vollständigen Namen des Netzwerks an. Weitere Informationen finden Sie in der Parameterreferenz zu network.

  • RESERVED_IP_RANGES: Eine Liste der Namen für die reservierten IP-Bereiche unter dem VPC-Netzwerk, das zum Bereitstellen des benutzerdefinierten Jobs verwendet wird. Weitere Informationen finden Sie in der Parameterreferenz zu reserved_ip_ranges.

  • NFS_MOUNTS: Eine Liste der NFS-Bereitstellungsressourcen im JSON-Dict-Format. Weitere Informationen finden Sie in der Parameterreferenz zu nfs_mounts.

  • PIPELINE_ROOT: Geben Sie einen Cloud Storage-URI an, auf den das Pipelines-Dienstkonto zugreifen kann. Die Artefakte Ihrer Pipelineausführungen werden im Pipeline-Stammverzeichnis gespeichert.

  • PROJECT_ID: Das Google Cloud-Projekt, in dem diese Pipeline ausgeführt wird.

  • LOCATION: Der Standort oder die Region, in der diese Pipeline ausgeführt wird.

API-Referenz

Eine vollständige Liste der von der Methode create_custom_training_job_from_component unterstützten Argumente finden Sie in der Referenz zum Google Cloud Pipeline Components SDK.