Resource persisten Vertex AI adalah cluster yang berjalan lama, yang dapat Anda gunakan untuk menjalankan tugas pelatihan kustom dan eksekusi pipeline. Dengan menggunakan resource persisten untuk menjalankan pipeline, Anda dapat membantu memastikan ketersediaan resource komputasi dan mengurangi waktu startup tugas pipeline. Resource persisten mendukung semua VM dan GPU yang didukung oleh tugas pelatihan kustom. Untuk mempelajari lebih lanjut resource persisten, lihat Ringkasan resource persisten.
Halaman ini menunjukkan cara melakukan hal berikut:
Sebelum memulai
Sebelum dapat membuat proses pipeline dengan resource persisten, Anda harus menyelesaikan prasyarat berikut terlebih dahulu.
Menentukan dan mengompilasi pipeline
Tentukan pipeline Anda lalu kompilasi definisi pipeline menjadi file YAML. Untuk mengetahui informasi selengkapnya tentang cara menentukan dan mengompilasi pipeline, lihat Membangun pipeline.
Peran IAM yang diperlukan
Untuk mendapatkan izin yang diperlukan guna membuat resource persisten, minta administrator Anda untuk memberi Anda peran IAM Vertex AI Administrator (roles/aiplatform.admin
) di project Anda.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Peran bawaan ini berisi izin
aiplatform.persistentResources.create
yang diperlukan untuk
membuat resource persisten.
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Membuat resource yang persisten
Gunakan contoh berikut untuk membuat resource persisten yang dapat Anda kaitkan dengan proses pipeline. Untuk mengetahui informasi selengkapnya tentang cara membuat resource persisten, lihat Membuat resource persisten.
gcloud
Untuk membuat resource persisten yang dapat Anda kaitkan dengan eksekusi pipeline, gunakan
perintah gcloud ai persistent-resources create
bersama dengan flag --enable-custom-service-account
.
Resource persisten dapat memiliki satu atau beberapa kumpulan resource. Untuk membuat beberapa
kumpulan resource dalam resource persisten, tentukan beberapa
flag --resource-pool-spec
.
Anda dapat menetapkan semua konfigurasi kumpulan resource sebagai bagian dari command line,
atau menggunakan flag --config
untuk menentukan jalur ke file YAML yang
berisi konfigurasi tersebut.
Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- PROJECT_ID: Project ID dari Google Cloud project tempat Anda ingin membuat resource persisten.
- LOCATION: Region tempat Anda ingin membuat resource persisten. Untuk mengetahui daftar region yang didukung, lihat Ketersediaan fitur.
- PERSISTENT_RESOURCE_ID: ID unik yang ditentukan pengguna untuk resource persisten. Nama harus diawali dengan huruf, diakhiri dengan huruf atau angka, serta hanya berisi huruf kecil, angka, dan tanda hubung (-).
- DISPLAY_NAME: Opsional. Nama tampilan resource persisten.
- MACHINE_TYPE: Jenis virtual machine (VM)
yang akan digunakan. Untuk mengetahui daftar VM yang didukung, lihat
Jenis mesin.
Kolom ini sesuai dengan kolom
machineSpec.machineType
di dalam pesan APIResourcePool
. - REPLICA_COUNT: Opsional. Jumlah replika yang akan dibuat
untuk kumpulan resource, jika Anda tidak ingin menggunakan penskalaan otomatis. Kolom ini sesuai dengan
kolom
replicaCount
di dalam pesan APIResourcePool
. Anda harus menentukan jumlah replika jika Anda tidak menentukan kolom MIN_REPLICA_COUNT dan MAX_REPLICA_COUNT. - MIN_REPLICA_COUNT: Opsional. Jumlah minimum replika jika Anda menggunakan penskalaan otomatis untuk kumpulan resource. Anda harus menentukan MIN_REPLICA_COUNT dan MAX_REPLICA_COUNT untuk menggunakan penskalaan otomatis.
- MAX_REPLICA_COUNT: Opsional. Jumlah maksimum replika jika Anda menggunakan penskalaan otomatis untuk kumpulan resource. Anda harus menentukan MIN_REPLICA_COUNT dan MAX_REPLICA_COUNT untuk menggunakan penskalaan otomatis.
- CONFIG: Jalur ke file konfigurasi YAML
resource persisten, yang berisi daftar spesifikasi
ResourcePool
. Jika opsi ditentukan dalam file konfigurasi dan argumen command line, argumen command line akan menggantikan file konfigurasi. Perhatikan bahwa kunci dengan garis bawah dianggap tidak valid.Contoh file konfigurasi YAML:
resourcePoolSpecs: machineSpec: machineType: n1-standard-4 replicaCount: 1
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud ai persistent-resources create \ --persistent-resource-id=PERSISTENT_RESOURCE_ID \ --display-name=DISPLAY_NAME \ --project=PROJECT_ID \ --region=LOCATION \ --resource-pool-spec="replica-count=REPLICA_COUNT,machine-type=MACHINE_TYPE,min-replica-count=MIN_REPLICA_COUNT,max-replica-count=MAX_REPLICA_COUNT" \ --enable-custom-service-account
Windows (PowerShell)
gcloud ai persistent-resources create ` --persistent-resource-id=PERSISTENT_RESOURCE_ID ` --display-name=DISPLAY_NAME ` --project=PROJECT_ID ` --region=LOCATION ` --resource-pool-spec="replica-count=REPLICA_COUNT,machine-type=MACHINE_TYPE,min-replica-count=MIN_REPLICA_COUNT,max-replica-count=MAX_REPLICA_COUNT" ` --enable-custom-service-account
Windows (cmd.exe)
gcloud ai persistent-resources create ^ --persistent-resource-id=PERSISTENT_RESOURCE_ID ^ --display-name=DISPLAY_NAME ^ --project=PROJECT_ID ^ --region=LOCATION ^ --resource-pool-spec="replica-count=REPLICA_COUNT,machine-type=MACHINE_TYPE,min-replica-count=MIN_REPLICA_COUNT,max-replica-count=MAX_REPLICA_COUNT" ^ --enable-custom-service-account
Anda akan melihat respons seperti berikut:
Using endpoint [https://us-central1-aiplatform.googleapis.com/] Operation to create PersistentResource [projects/PROJECT_NUMBER/locations/us-central1/persistentResources/mypersistentresource/operations/OPERATION_ID] is submitted successfully. You can view the status of your PersistentResource create operation with the command $ gcloud ai operations describe projects/sample-project/locations/us-central1/operations/OPERATION_ID
Contoh perintah gcloud
:
gcloud ai persistent-resources create \ --persistent-resource-id=my-persistent-resource \ --region=us-central1 \ --resource-pool-spec="replica-count=4,machine-type=n1-standard-4" --enable-custom-service-account
Konfigurasi gcloud
lanjutan
Jika ingin menentukan opsi konfigurasi yang tidak tersedia di
contoh sebelumnya, Anda dapat menggunakan flag --config
untuk menentukan jalur ke file
config.yaml
di dalam lingkungan lokal Anda, yang berisi kolom dari
persistentResources
. Contoh:
gcloud ai persistent-resources create \ --persistent-resource-id=PERSISTENT_RESOURCE_ID \ --project=PROJECT_ID \ --region=LOCATION \ --config=CONFIG --enable-custom-service-account
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Python Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Untuk membuat resource persisten yang dapat Anda gunakan dengan operasi pipeline, tetapkan parameterenable_custom_service_account
ke True
dalam objek ResourceRuntimeSpec
saat membuat
resource persisten.
from google.cloud.aiplatform.preview import persistent_resource
from google.cloud.aiplatform_v1beta1.types.persistent_resource import ResourcePool
from google.cloud.aiplatform_v1beta1.types.machine_resources import MachineSpec
my_example_resource = persistent_resource.PersistentResource.create(
persistent_resource_id='PERSISTENT_RESOURCE_ID',
display_name='DISPLAY_NAME',
resource_pools=[
ResourcePool(
machine_spec=MachineSpec(
machine_type='MACHINE_TYPE'
),
replica_count=REPLICA_COUNT
)
],
enable_custom_service_account=True,
)
Ganti kode berikut:
- PERSISTENT_RESOURCE_ID: ID unik yang ditentukan pengguna untuk
resource persisten. ID hanya boleh berisi huruf kecil, angka, dan tanda hubung (
-
). Karakter pertama harus berupa huruf kecil dan karakter terakhir harus berupa huruf kecil atau angka. - DISPLAY_NAME: Opsional. Nama tampilan resource persisten.
- MACHINE_TYPE: Jenis virtual machine (VM) yang akan digunakan. Untuk mengetahui daftar VM yang didukung, lihat
Jenis mesin.
Kolom ini sesuai dengan kolom
machineSpec.machineType
di dalam pesan APIResourcePool
. - REPLICA_COUNT: Jumlah replika yang akan dibuat saat membuat kumpulan resource ini.
REST
Untuk membuat resource PersistentResource
yang dapat Anda kaitkan dengan proses pipeline, kirim permintaan POST menggunakan metode
persistentResources/create
dengan parameter enable_custom_service_account
yang ditetapkan ke
true
dalam isi permintaan.
Resource persisten dapat memiliki satu atau beberapa kumpulan resource. Anda dapat mengonfigurasi setiap kumpulan resource untuk menggunakan jumlah replika tetap atau penskalaan otomatis.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Project ID dari Google Cloud project tempat Anda ingin membuat resource persisten.
- LOCATION: Region tempat Anda ingin membuat resource persisten. Untuk mengetahui daftar region yang didukung, lihat Ketersediaan fitur.
- PERSISTENT_RESOURCE_ID: ID unik yang ditentukan pengguna untuk resource persisten. Nama harus diawali dengan huruf, diakhiri dengan huruf atau angka, serta hanya berisi huruf kecil, angka, dan tanda hubung (-).
- DISPLAY_NAME: Opsional. Nama tampilan resource persisten.
- MACHINE_TYPE: Jenis virtual machine (VM)
yang akan digunakan. Untuk mengetahui daftar VM yang didukung, lihat
Jenis mesin.
Kolom ini sesuai dengan kolom
machineSpec.machineType
di dalam pesan APIResourcePool
. - REPLICA_COUNT: Opsional. Jumlah replika yang akan dibuat
untuk kumpulan resource, jika Anda tidak ingin menggunakan penskalaan otomatis. Kolom ini sesuai dengan
kolom
replicaCount
di dalam pesan APIResourcePool
. Anda harus menentukan jumlah replika jika Anda tidak menentukan kolom MIN_REPLICA_COUNT dan MAX_REPLICA_COUNT. - MIN_REPLICA_COUNT: Opsional. Jumlah minimum replika jika Anda menggunakan penskalaan otomatis untuk kumpulan resource. Anda harus menentukan MIN_REPLICA_COUNT dan MAX_REPLICA_COUNT untuk menggunakan penskalaan otomatis.
- MAX_REPLICA_COUNT: Opsional. Jumlah maksimum replika jika Anda menggunakan penskalaan otomatis untuk kumpulan resource. Anda harus menentukan MIN_REPLICA_COUNT dan MAX_REPLICA_COUNT untuk menggunakan penskalaan otomatis.
Metode HTTP dan URL:
POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/persistentResources?persistent_resource_id=PERSISTENT_RESOURCE_ID
Meminta isi JSON:
{ "display_name": "DISPLAY_NAME", "resource_pools": [ { "machine_spec": { "machine_type": "MACHINE_TYPE" }, "replica_count": REPLICA_COUNT, "autoscaling_spec": { "min_replica_count": MIN_REPLICA_COUNT, "max_replica_count": MAX_REPLICA_COUNT } } ], "resource_runtime_spec": { "service_account_spec": { "enable_custom_service_account": true } } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/persistentResources/mypersistentresource/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreatePersistentResourceOperationMetadata", "genericMetadata": { "createTime": "2023-02-08T21:17:15.009668Z", "updateTime": "2023-02-08T21:17:15.009668Z" } } }
Membuat proses pipeline menggunakan resource persisten
Untuk membuat tugas pipeline, Anda harus membuat spesifikasi pipeline terlebih dahulu. Spesifikasi pipeline adalah objek dalam memori yang Anda buat dengan mengonversi definisi pipeline yang dikompilasi.
Membuat spesifikasi pipeline
Ikuti petunjuk berikut untuk membuat spesifikasi pipeline dalam memori yang dapat Anda gunakan untuk membuat proses pipeline:
Tentukan pipeline dan kompilasi menjadi file YAML. Untuk mengetahui informasi selengkapnya tentang menentukan dan mengompilasi pipeline, lihat Membangun pipeline.
Gunakan contoh kode berikut untuk mengonversi file YAML pipeline yang dikompilasi menjadi spesifikasi pipeline dalam memori.
import yaml with open("COMPILED_PIPELINE_PATH", "r") as stream: try: pipeline_spec = yaml.safe_load(stream) print(pipeline_spec) except yaml.YAMLError as exc: print(exc)
Ganti COMPILED_PIPELINE_PATH dengan jalur lokal ke file YAML pipeline yang dikompilasi.
Membuat proses pipeline
Gunakan contoh kode Python berikut untuk membuat proses pipeline yang menggunakan resource persisten:
# Import aiplatform and the appropriate API version v1beta1
from google.cloud import aiplatform, aiplatform_v1beta1
from google.cloud.aiplatform_v1beta1.types import pipeline_job as pipeline_job_types
# Initialize the Vertex SDK using PROJECT_ID and LOCATION
aiplatform.init(project='PROJECT_ID', location='LOCATION')
# Create the API Endpoint
client_options = {
"api_endpoint": f"LOCATION-aiplatform.googleapis.com"
}
# Initialize the PipeLineServiceClient
client = aiplatform_v1beta1.PipelineServiceClient(client_options=client_options)
# Construct the runtime detail
pr_runtime_detail = pipeline_job_types.PipelineJob.RuntimeConfig.PersistentResourceRuntimeDetail(
persistent_resource_name=(
f"projects/PROJECT_NUMBER/"
f"locations/LOCATION/"
f"persistentResources/PERSISTENT_RESOURCE_ID"
),
task_resource_unavailable_wait_time_ms=WAIT_TIME,
task_resource_unavailable_timeout_behavior='TIMEOUT_BEHAVIOR',
)
# Construct the default runtime configuration block
default_runtime = pipeline_job_types.PipelineJob.RuntimeConfig.DefaultRuntime(
persistent_resource_runtime_detail=pr_runtime_detail
)
# Construct the main runtime configuration
runtime_config = pipeline_job_types.PipelineJob.RuntimeConfig(
gcs_output_directory='PIPELINE_ROOT',
parameter_values={
'project_id': 'PROJECT_ID'
},
default_runtime=default_runtime
)
# Construct the pipeline job object
pipeline_job = pipeline_job_types.PipelineJob(
display_name='PIPELINE_DISPLAY_NAME',
pipeline_spec=PIPELINE_SPEC,
runtime_config=runtime_config,
)
# Construct the request
parent_path = f"projects/PROJECT_ID/locations/LOCATION"
request = aiplatform_v1beta1.CreatePipelineJobRequest(
parent=parent_path,
pipeline_job=pipeline_job,
)
# Make the API Call to create the pipeline job
response = client.create_pipeline_job(request=request)
# Construct the Google Cloud console link
job_id = response.name.split('/')[-1]
console_link = (
f"https://console.cloud.google.com/vertex-ai/locations/LOCATION"
f"/pipelines/runs/{job_id}"
f"?project=PROJECT_ID"
)
# Print the Google Cloud console link to the pipeline run
print(f"View Pipeline Run in Google Cloud console: {console_link}")
Ganti kode berikut:
PROJECT_ID: Google Cloud Project tempat pipeline dijalankan.
LOCATION: Region tempat eksekusi proses pipeline dilakukan. Untuk mengetahui informasi selengkapnya tentang region tempat Vertex AI Pipelines tersedia, lihat panduan lokasi Vertex AI. Jika Anda tidak menetapkan parameter ini, Vertex AI Pipelines akan menggunakan lokasi default yang ditetapkan di
aiplatform.init
.PERSISTENT_RESOURCE_ID: ID resource persisten yang Anda buat.
PROJECT_NUMBER: Nomor project untuk project Google Cloud Anda. ID ini berbeda dengan ID project. Anda dapat menemukan nomor project di halaman Project Settings di konsol Google Cloud .
COMPILED_PIPELINE_PATH: Jalur ke file YAML pipeline yang telah dikompilasi. Ini dapat berupa jalur lokal atau Cloud Storage URI.
WAIT_TIME: Waktu dalam milidetik untuk menunggu jika resource persisten tidak tersedia.
TIMEOUT_BEHAVIOR: Perilaku penggantian tugas pipeline jika WAIT_TIME terlampaui. Nilai yang memungkinkan mencakup hal berikut:
FAIL
Tugas pipeline gagal setelah melampaui waktu tunggu.FALL_BACK_TO_ON_DEMAND
Tugas pipeline terus berjalan menggunakan resource pelatihan Vertex AI default, tanpa menggunakan resource persisten.
PIPELINE_ROOT: Jalur ke Cloud Storage URI untuk menyimpan artefak eksekusi pipeline Anda.
PIPELINE_DISPLAY_NAME: Nama eksekusi pipeline. Panjang maksimum untuk nama tampilan adalah 128 karakter UTF-8.
PIPELINE_SPEC: Spesifikasi pipeline yang Anda buat di Membuat spesifikasi pipeline.
Langkah berikutnya
- Pelajari cara menjalankan pipeline.