Hyperparameter adalah variabel yang mengatur proses pelatihan model, seperti ukuran tumpukan atau jumlah lapisan tersembunyi di jaringan neural dalam. Penyesuaian hyperparameter menelusuri kombinasi terbaik dari nilai hyperparameter dengan mengoptimalkan nilai metrik di seluruh rangkaian uji coba. Metrik adalah ringkasan skalar yang Anda tambahkan ke pelatih, seperti akurasi model.
Pelajari penyesuaian hyperparameter di Vertex AI lebih lanjut. Untuk contoh langkah demi langkah, lihat Vertex AI: Codelab Penyesuaian Hyperparameter.
Halaman ini menunjukkan cara:
Menyiapkan aplikasi pelatihan Anda untuk penyesuaian hyperparameter dengan mengupdatenya agar menerima hyperparameter sebagai argumen command line, dan melaporkan nilai metrik ke Vertex AI.
Membuat tugas pelatihan hyperparameter Anda. Untuk mengetahui informasi selengkapnya tentang opsi konfigurasi, lihat memahami konfigurasi penyesuaian hyperparameter.
Menyiapkan aplikasi pelatihan
Dalam tugas penyesuaian hyperparameter, Vertex AI membuat uji coba tugas pelatihan Anda dengan kumpulan hyperparameter yang berbeda dan mengevaluasi efektivitas uji coba menggunakan metrik yang Anda tentukan. Vertex AI meneruskan nilai hyperparameter ke aplikasi pelatihan Anda sebagai argumen command line. Agar Vertex AI dapat mengevaluasi keefektifan uji coba, aplikasi pelatihan Anda harus melaporkan metrik ke Vertex AI.
Bagian berikut menjelaskan:
- Cara Vertex AI meneruskan hyperparameter ke aplikasi pelatihan Anda.
- Opsi untuk meneruskan metrik dari aplikasi pelatihan Anda ke Vertex AI.
Untuk mempelajari lebih lanjut persyaratan bagi aplikasi pelatihan kustom yang berjalan di Vertex AI, baca Persyaratan kode pelatihan.
Menangani argumen command line untuk hyperparameter yang ingin Anda sesuaikan
Vertex AI menetapkan argumen command line saat memanggil aplikasi pelatihan Anda. Gunakan argumen command line dalam kode Anda:
Tentukan nama untuk setiap argumen hyperparameter dan uraikan menggunakan parser argumen apa pun yang Anda inginkan, seperti
argparse
. Gunakan nama argumen yang sama saat mengonfigurasi tugas pelatihan hyperparameter Anda.Misalnya, jika aplikasi pelatihan Anda adalah modul Python bernama
my_trainer
dan Anda menyesuaikan hyperparameter bernamalearning_rate
, Vertex AI akan memulai setiap uji coba dengan perintah seperti berikut:python3 -m my_trainer --learning_rate learning-rate-in-this-trial
Vertex AI menentukan learning-rate-in-this-trial dan meneruskannya menggunakan argumen
learning_rate
.Tetapkan nilai dari argumen command line ke hyperparameter dalam kode pelatihan Anda.
Pelajari lebih lanjut persyaratan untuk mengurai argumen command line.
Melaporkan metrik Anda ke Vertex AI
Untuk melaporkan metrik ke Vertex AI, gunakan paket Python cloudml-hypertune
. Library ini menyediakan fungsi
bantuan untuk melaporkan metrik ke Vertex AI.
Pelajari metrik hyperparameter pelaporan lebih lanjut.
Membuat tugas penyesuaian hyperparameter
Bergantung pada alat yang ingin Anda gunakan untuk membuat HyperparameterTuningJob
,
pilih salah satu tab berikut:
Konsol
Di Konsol Google Cloud, Anda tidak dapat membuat resource HyperparameterTuningJob
secara langsung. Namun, Anda dapat membuat resource TrainingPipeline
yang akan membuat
HyperparameterTuningJob
.
Petunjuk berikut menjelaskan cara membuat TrainingPipeline
yang
membuat HyperparameterTuningJob
dan tidak melakukan hal lain. Jika Anda ingin menggunakan fitur TrainingPipeline
tambahan, seperti pelatihan dengan set data terkelola, baca Membuat pipeline pelatihan.
Di Konsol Google Cloud, di bagian Vertex AI, buka halaman Training pipelines.
Klik
Create untuk membuka panel Train new model.Pada langkah Training method, tentukan setelan berikut:
Di menu drop-down Dataset, pilih No Managed dataset.
Pilih Custom training (advanced).
Klik Lanjutkan.
Pada langkah Model details, pilih Train new model atau Train new version. Jika Anda memilih opsi latih model baru, masukkan nama pilihan Anda MODEL_NAME, untuk model Anda. Klik Continue.
Pada langkah Training container, tentukan setelan berikut:
Pilih apakah akan menggunakan Prebuilt container atau Custom container untuk pelatihan.
Bergantung pada pilihan Anda, lakukan salah satu hal berikut:
Jika Anda ingin menggunakan container bawaan untuk pelatihan, berikan informasi yang diperlukan kepada Vertex AI untuk menggunakan paket pelatihan yang telah Anda upload ke Cloud Storage:
Gunakan Model framework dan Model framework version pada menu drop-down untuk menentukan container bawaan yang ingin Anda gunakan.
Di kolom Package location, tentukan URI Cloud Storage dari aplikasi pelatihan Python yang telah Anda buat dan upload. File ini biasanya diakhiri dengan
.tar.gz
.Di kolom Python module, masukkan nama modul dari titik entri aplikasi pelatihan Anda.
Jika Anda ingin menggunakan container kustom untuk pelatihan, maka di kolom Container image, tentukan Artifact Registry atau URI Docker Hub dari image container Anda.
Di kolom Model output directory, Anda dapat menentukan URI Cloud Storage dari direktori dalam bucket yang dapat Anda akses. Direktori belum perlu ada.
Nilai ini diteruskan ke Vertex AI di kolom
baseOutputDirectory
API, yang menetapkan beberapa variabel lingkungan yang dapat diakses oleh aplikasi pelatihan Anda saat aplikasi berjalan.Opsional: Di kolom Arguments, Anda dapat menentukan argumen untuk Vertex AI yang akan digunakan saat Vertex AI mulai menjalankan kode pelatihan Anda. Panjang maksimum untuk semua argumen yang digabungkan adalah 100.000 karakter. Perilaku argumen ini berbeda-beda, bergantung pada jenis container yang Anda gunakan:
Jika Anda menggunakan container bawaan, Vertex AI akan meneruskan argumen sebagai tanda command line ke Python module Anda.
Jika Anda menggunakan container kustom, Vertex AI akan mengganti petunjuk
CMD
container dengan argumen.
Klik Lanjutkan.
Pada langkah Hyperparameter tuning, pilih kotak centang Enable hyperparameter tuning, lalu tentukan setelan berikut:
Di bagian New Hyperparameter, tentukan Parameter name dan Type dari hyperparameter yang ingin Anda sesuaikan. Bergantung pada jenis yang Anda tentukan, konfigurasikan setelan hyperparameter tambahan yang muncul.
Pelajari jenis hyperparameter dan konfigurasinya lebih lanjut.
Jika Anda ingin menyesuaikan lebih dari satu hyperparameter, klik Add new parameter dan ulangi langkah sebelumnya di bagian baru yang muncul.
Ulangi langkah ini untuk setiap hyperparameter yang ingin Anda sesuaikan.
Di kolom Metric to optimize dan menu drop-down Goal, tentukan nama dan sasaran metrik yang ingin Anda optimalkan
Di kolom Maximum number of trials, tentukan jumlah uji coba maksimum yang Anda inginkan agar dijalankan Vertex AI untuk tugas penyesuaian hyperparameter Anda.
Di kolom Maximum number of parallel trials, tentukan jumlah uji coba maksimum agar Vertex AI berjalan secara bersamaan.
Di menu drop-down SearchAlgorithm, tentukan algoritma penelusuran untuk digunakan oleh Vertex AI.
Abaikan tombol Enable early stopping, yang tidak akan berpengaruh.
Klik Lanjutkan.
Pada langkah Compute and Pricing, tentukan setelan berikut:
Di menu drop-down Region, pilih "region yang mendukung pelatihan kustom"
Di bagian Worker pool 0, tentukan resource komputasi yang akan digunakan untuk pelatihan.
Jika Anda menentukan akselerator, pastikan jenis akselerator yang Anda pilih tersedia di region yang Anda pilih.
Jika Anda ingin melakukan pelatihan terdistribusi, klik Add more worker pools dan tentukan kumpulan resource komputasi tambahan untuk setiap pool worker tambahan yang Anda inginkan.
Klik Continue.
Pada langkah Prediction container, pilih No prediction container.
Klik Start training untuk memulai pipeline pelatihan kustom.
gcloud
Langkah-langkah berikut menunjukkan cara menggunakan Google Cloud CLI untuk membuat HyperparameterTuningJob
dengan konfigurasi yang relatif minimal. Untuk mempelajari semua opsi konfigurasi yang dapat Anda gunakan untuk tugas ini, lihat dokumentasi referensi untukperintah gcloud ai hp-tuning-jobs create
dan Resource API HyperparameterTuningJob
.
Buat file YAML bernama
config.yaml
dengan beberapa kolom API yang ingin ditentukan untukHyerparameterTuningJob
baru Anda:config.yaml
studySpec: metrics: - metricId: METRIC_ID goal: METRIC_GOAL parameters: - parameterId: HYPERPARAMETER_ID doubleValueSpec: minValue: DOUBLE_MIN_VALUE maxValue: DOUBLE_MAX_VALUE trialJobSpec: workerPoolSpecs: - machineSpec: machineType: MACHINE_TYPE replicaCount: 1 containerSpec: imageUri: CUSTOM_CONTAINER_IMAGE_URI
Ganti kode berikut:
METRIC_ID
: nama metrik hyperparameter yang akan dioptimalkan. Kode pelatihan Anda harus melaporkan metrik ini saat dijalankan.METRIC_GOAL
: sasaran untuk metrik hyperparameter Anda,MAXIMIZE
atauMINIMIZE
.HYPERPARAMETER_ID
: nama hyperparameter yang akan disesuaikan. Kode pelatihan Anda harus mengurai flag command line dengan nama ini. Untuk contoh ini, hyperparameter harus menggunakan nilai floating point. Pelajari jenis data hyperparameter lainnya.DOUBLE_MIN_VALUE
: Nilai minimum (angka) yang Anda inginkan untuk dicoba oleh Vertex AI untuk hyperparameter ini.DOUBLE_MAX_VALUE
: Nilai maksimum (angka) yang Anda inginkan untuk dicoba oleh Vertex AI untuk hyperparameter ini.MACHINE_TYPE
: jenis VM yang akan digunakan untuk pelatihan.CUSTOM_CONTAINER_IMAGE_URI
: URI image container Docker dengan kode pelatihan Anda. Pelajari cara membuat image container kustom.Untuk contoh ini, Anda harus menggunakan penampung kustom. Resource
HyperparameterTuningJob
juga mendukung kode pelatihan dalam distribusi sumber Python, bukan container kustom.
Dalam direktori yang sama dengan file
config.yaml
Anda, jalankan perintah shell berikut:gcloud ai hp-tuning-jobs create \ --region=LOCATION \ --display-name=DISPLAY_NAME \ --max-trial-count=MAX_TRIAL_COUNT \ --parallel-trial-count=PARALLEL_TRIAL_COUNT \ --config=config.yaml
Ganti kode berikut:
LOCATION
: region tempat Anda ingin membuatHyperparameterTuningJob
. Gunakan region yang mendukung pelatihan kustom.DISPLAY_NAME
: nama tampilan pilihan Anda yang mudah diingat untukHyperparameterTuningJob
. Pelajari persyaratan nama resource.MAX_TRIAL_COUNT
: jumlah uji coba maksimum untuk dijalankan.PARALLEL_TRIAL_COUNT
: jumlah uji coba maksimum untuk dijalankan secara paralel.
REST
Gunakan contoh kode berikut untuk membuat tugas penyesuaian hyperparameter menggunakan metode create
dari resource hyperparameterTuningJob
.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
-
LOCATION
: region tempat Anda ingin membuatHyperparameterTuningJob
. Gunakan region yang mendukung pelatihan kustom. - PROJECT: Project ID Anda.
-
DISPLAY_NAME
: nama tampilan pilihan Anda yang mudah diingat untukHyperparameterTuningJob
. Pelajari persyaratan nama resource. - Tentukan metrik:
-
METRIC_ID
: nama metrik hyperparameter yang akan dioptimalkan. Kode pelatihan Anda harus melaporkan metrik ini saat dijalankan. -
METRIC_GOAL
: sasaran untuk metrik hyperparameter Anda,MAXIMIZE
atauMINIMIZE
.
-
- Tentukan hyperparameter Anda:
-
HYPERPARAMETER_ID
: nama hyperparameter yang akan disesuaikan. Kode pelatihan Anda harus mengurai flag command line dengan nama ini. - PARAMETER_SCALE: (Opsional.) Cara parameter harus diskalakan. Biarkan tidak disetel
untuk parameter CATEGORICAL. Dapat berupa
UNIT_LINEAR_SCALE
,UNIT_LOG_SCALE
,UNIT_REVERSE_LOG_SCALE
, atauSCALE_TYPE_UNSPECIFIED
- Jika jenis hyperparameter ini adalah DOUBLE, tentukan nilai minimum (DOUBLE_MIN_VALUE) dan maksimum (DOUBLE_MAX_VALUE) untuk hyperparameter ini.
- Jika jenis hyperparameter ini adalah INTEGER, tentukan nilai minimum (INTEGER_MIN_VALUE) dan maksimum (INTEGER_MAX_VALUE) untuk hyperparameter ini.
- Jika jenis hyperparameter ini adalah CATEGORIAL, tentukan nilai yang dapat diterima (CATEGORICAL_VALUES) sebagai array string.
- Jika jenis hyperparameter ini adalah DISCRETE, tentukan nilai yang dapat diterima (DISCRETE_VALUES) sebagai array angka.
- Menentukan hyperparameter bersyarat. Hyperparameter bersyarat ditambahkan ke uji coba jika
nilai hyperparameter induk cocok dengan kondisi yang Anda tentukan. Pelajari
hyperparameter bersyarat lebih lanjut.
- CONDITIONAL_PARAMETER:
ParameterSpec
parameter bersyarat. Spesifikasi ini mencakup nama parameter, skala, rentang nilai, dan parameter bersyarat yang bergantung pada hyperparameter ini. - Jika jenis hyperparameter induk adalah INTEGER, tentukan daftar bilangan bulat sebagai INTEGERS_TO_MATCH. Jika nilai hyperparameter induk cocok dengan salah satu nilai yang ditentukan, parameter bersyarat ini akan ditambahkan ke uji coba.
- Jika jenis hyperparameter induk adalah CATEGORIAL, tentukan daftar kategori sebagai CATEGORIES_TO_MATCH. Jika nilai hyperparameter induk cocok dengan salah satu nilai yang ditentukan, parameter bersyarat ini akan ditambahkan ke uji coba.
- Jika jenis hyperparameter induk adalah DISCRETE, tentukan daftar bilangan bulat sebagai DISCRETE_VALUES_TO_MATCH. Jika nilai hyperparameter induk cocok dengan salah satu nilai yang ditentukan, parameter bersyarat ini akan ditambahkan ke uji coba.
- CONDITIONAL_PARAMETER:
-
- ALGORITHM: (Opsional.) Algoritma penelusuran yang akan digunakan dalam tugas penyesuaian hyperparameter ini. Dapat berupa
ALGORITHM_UNSPECIFIED
,GRID_SEARCH
, atauRANDOM_SEARCH
. -
MAX_TRIAL_COUNT
: jumlah uji coba maksimum untuk dijalankan. -
PARALLEL_TRIAL_COUNT
: jumlah uji coba maksimum untuk dijalankan secara paralel. - MAX_FAILED_TRIAL_COUNT: Jumlah tugas yang dapat gagal sebelum tugas penyesuaian hyperparameter gagal.
- Tentukan tugas pelatihan kustom uji coba:
-
MACHINE_TYPE
: jenis VM yang akan digunakan untuk pelatihan. - ACCELERATOR_TYPE: (Opsional.) Jenis akselerator yang akan dipasang ke setiap uji coba.
- ACCELERATOR_COUNT: (Opsional.) Jumlah akselerator yang harus dipasang ke setiap uji coba.
- REPLICA_COUNT: Jumlah replika worker yang akan digunakan untuk setiap uji coba.
- Jika aplikasi pelatihan Anda berjalan dalam container kustom, tentukan hal berikut:
-
CUSTOM_CONTAINER_IMAGE_URI
: URI image container Docker dengan kode pelatihan Anda. Pelajari cara membuat image container kustom. - CUSTOM_CONTAINER_COMMAND: (Opsional.) Perintah yang akan dipanggil saat container dimulai. Perintah ini mengganti titik entri default container.
- CUSTOM_CONTAINER_ARGS: (Opsional.) Argumen yang akan diteruskan saat memulai container.
-
- Jika aplikasi pelatihan Anda adalah paket Python yang berjalan dalam container bawaan,
tentukan hal berikut:
- PYTHON_PACKAGE_EXECUTOR_IMAGE_URI: URI image container yang menjalankan paket python yang disediakan. Pelajari lebih lanjut container bawaan untuk pelatihan.
- PYTHON_PACKAGE_URIS: Lokasi Cloud Storage dari file paket Python yang merupakan program pelatihan dan paket dependennya. Jumlah maksimum URI paket adalah 100.
- PYTHON_MODULE: Nama modul Python yang akan dijalankan setelah menginstal paket.
- PYTHON_PACKAGE_ARGS: (Opsional.) Argumen command line yang akan diteruskan ke modul Python.
- SERVICE_ACCOUNT: (Opsional.) Akun layanan yang akan digunakan Vertex AI untuk menjalankan kode Anda. Pelajari lebih lanjut cara melampirkan akun layanan kustom.
- TIMEOUT: (Opsional.) Waktu berjalan maksimum untuk setiap uji coba.
-
- Tentukan LABEL_NAME dan LABEL_VALUE untuk setiap label yang ingin Anda terapkan ke tugas penyesuaian hyperparameter ini.
Metode HTTP dan URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/hyperparameterTuningJobs
Meminta isi JSON:
{ "displayName": DISPLAY_NAME, "studySpec": { "metrics": [ { "metricId": METRIC_ID, "goal": METRIC_GOAL } ], "parameters": [ { "parameterId": PARAMETER_ID, "scaleType": PARAMETER_SCALE, // Union field parameter_value_spec can be only one of the following: "doubleValueSpec": { "minValue": DOUBLE_MIN_VALUE, "maxValue": DOUBLE_MAX_VALUE }, "integerValueSpec": { "minValue": INTEGER_MIN_VALUE, "maxValue": INTEGER_MAX_VALUE }, "categoricalValueSpec": { "values": [ CATEGORICAL_VALUES ] }, "discreteValueSpec": { "values": [ DISCRETE_VALUES ] } // End of list of possible types for union field parameter_value_spec. "conditionalParameterSpecs": [ "parameterSpec": { CONDITIONAL_PARAMETER } // Union field parent_value_condition can be only one of the following: "parentIntValues": { "values": [INTEGERS_TO_MATCH] } "parentCategoricalValues": { "values": [CATEGORIES_TO_MATCH] } "parentDiscreteValues": { "values": [DISCRETE_VALUES_TO_MATCH] } // End of list of possible types for union field parent_value_condition. ] } ], "ALGORITHM": ALGORITHM }, "maxTrialCount": MAX_TRIAL_COUNT, "parallelTrialCount": PARALLEL_TRIAL_COUNT, "maxFailedTrialCount": MAX_FAILED_TRIAL_COUNT, "trialJobSpec": { "workerPoolSpecs": [ { "machineSpec": { "machineType": MACHINE_TYPE, "acceleratorType": ACCELERATOR_TYPE, "acceleratorCount": ACCELERATOR_COUNT }, "replicaCount": REPLICA_COUNT, // Union field task can be only one of the following: "containerSpec": { "imageUri": CUSTOM_CONTAINER_IMAGE_URI, "command": [ CUSTOM_CONTAINER_COMMAND ], "args": [ CUSTOM_CONTAINER_ARGS ] }, "pythonPackageSpec": { "executorImageUri": PYTHON_PACKAGE_EXECUTOR_IMAGE_URI, "packageUris": [ PYTHON_PACKAGE_URIS ], "pythonModule": PYTHON_MODULE, "args": [ PYTHON_PACKAGE_ARGS ] } // End of list of possible types for union field task. } ], "scheduling": { "TIMEOUT": TIMEOUT }, "serviceAccount": SERVICE_ACCOUNT }, "labels": { LABEL_NAME_1": LABEL_VALUE_1, LABEL_NAME_2": LABEL_VALUE_2 } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
{ "name": "projects/12345/locations/us-central1/hyperparameterTuningJobs/6789", "displayName": "myHyperparameterTuningJob", "studySpec": { "metrics": [ { "metricId": "myMetric", "goal": "MINIMIZE" } ], "parameters": [ { "parameterId": "myParameter1", "integerValueSpec": { "minValue": "1", "maxValue": "128" }, "scaleType": "UNIT_LINEAR_SCALE" }, { "parameterId": "myParameter2", "doubleValueSpec": { "minValue": 1e-07, "maxValue": 1 }, "scaleType": "UNIT_LINEAR_SCALE" } ], "ALGORITHM": "RANDOM_SEARCH" }, "maxTrialCount": 20, "parallelTrialCount": 1, "trialJobSpec": { "workerPoolSpecs": [ { "machineSpec": { "machineType": "n1-standard-4" }, "replicaCount": "1", "pythonPackageSpec": { "executorImageUri": "us-docker.pkg.dev/vertex-ai/training/training-tf-cpu.2-1:latest", "packageUris": [ "gs://my-bucket/my-training-application/trainer.tar.bz2" ], "pythonModule": "my-trainer.trainer" } } ] } }
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Java Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Python API.
Konfigurasi tugas pelatihan hyperparameter
Tugas penyesuaian hyperparameter menelusuri kombinasi hyperparameter terbaik untuk mengoptimalkan metrik Anda. Tugas penyesuaian hyperparameter melakukannya dengan menjalankan beberapa uji coba aplikasi pelatihan Anda dengan kumpulan hyperparameter yang berbeda.
Saat mengonfigurasi tugas penyesuaian hyperparameter, Anda harus menentukan detail berikut:
Hyperparameter yang ingin Anda sesuaikan dan metrik yang ingin digunakan untuk mengevaluasi uji coba.
Pelajari cara memilih hyperparameter dan metrik lebih lanjut.
Detail tentang jumlah uji coba yang akan dijalankan sebagai bagian dari tugas penyesuaian ini, seperti berikut:
Detail tentang tugas pelatihan kustom yang dijalankan untuk setiap uji coba, seperti berikut:
Jenis mesin tempat tugas uji coba dijalankan dan akselerator yang digunakan tugas tersebut.
Detail container kustom atau tugas paket Python.
Membatasi jumlah uji coba
Tentukan jumlah uji coba yang ingin Anda izinkan untuk menjalankan layanan, dan tetapkan
nilai maxTrialCount
dalam objek
HyperparameterTuningJob.
Ada dua minat yang bersaing untuk dipertimbangkan saat memutuskan jumlah uji coba yang diizinkan:
- waktu (dan oleh karena itu biaya)
- akurasi
Meningkatkan jumlah uji coba umumnya memberikan hasil yang lebih baik, tetapi tidak selalu demikian. Biasanya, ada titik penurunan laba, yang setelahnya uji coba tambahan memiliki sedikit atau tidak berpengaruh pada akurasi. Sebelum memulai tugas dengan jumlah uji coba yang besar, sebaiknya Anda memulai dengan sedikit uji coba untuk mengukur efek hyperparameter yang Anda pilih terhadap akurasi model.
Untuk mendapatkan hasil maksimal dari penyesuaian hyperparameter, Anda tidak boleh menetapkan nilai maksimum lebih rendah dari sepuluh kali jumlah hyperparameter yang digunakan.
Uji coba paralel
Anda dapat menentukan banyaknya uji coba yang dapat dijalankan secara paralel dengan menetapkan
parallelTrialCount
di HyperparameterTuningJob.
Menjalankan uji coba paralel memiliki manfaat mengurangi waktu yang dibutuhkan tugas pelatihan (real time—total waktu pemrosesan yang diperlukan biasanya tidak berubah). Namun, menjalankan tugas secara paralel dapat mengurangi efektivitas tugas penyesuaian secara keseluruhan. Hal ini karena penyesuaian hyperparameter menggunakan hasil uji coba sebelumnya untuk menginformasikan nilai yang akan ditetapkan ke hyperparameter dari uji coba berikutnya. Saat berjalan secara paralel, beberapa uji coba dimulai tanpa mendapatkan manfaat dari hasil uji coba yang masih berjalan.
Jika Anda menggunakan uji coba paralel, layanan penyesuaian hyperparameter akan menyediakan beberapa cluster pemrosesan pelatihan (atau beberapa mesin individual untuk pelatih proses tunggal). Spesifikasi kumpulan pekerjaan yang Anda tetapkan untuk tugas digunakan untuk setiap cluster pelatihan.
Menangani uji coba yang gagal
Jika uji coba penyesuaian hyperparameter Anda keluar dengan error, Anda mungkin ingin mengakhiri tugas pelatihan lebih awal. Tetapkan kolom maxFailedTrialCount
di
HyperparameterTuningJob ke jumlah uji coba gagal yang
ingin Anda izinkan. Setelah jumlah uji coba ini gagal, Vertex AI
akan mengakhiri tugas pelatihan. Nilai maxFailedTrialCount
harus kurang dari atau sama dengan maxTrialCount
.
Jika maxFailedTrialCount
tidak ditetapkan, atau jika Anda menetapkannya ke 0
,
Vertex AI akan menggunakan aturan berikut untuk menangani uji coba yang gagal:
- Jika uji coba pertama tugas Anda gagal, Vertex AI akan langsung mengakhiri tugas Anda. Kegagalan selama uji coba pertama menunjukkan adanya masalah pada kode pelatihan Anda, sehingga uji coba berikutnya juga mungkin akan gagal. Dengan mengakhiri tugas, Anda dapat mendiagnosis masalah tanpa menunggu uji coba lebih banyak dan menimbulkan biaya yang lebih besar.
- Jika uji coba pertama berhasil, Vertex AI mungkin akan mengakhiri tugas setelah
gagal selama uji coba berikutnya berdasarkan salah satu kriteria berikut:
- Jumlah uji coba yang gagal bertambah terlalu tinggi.
- Rasio uji coba yang gagal terhadap uji coba yang berhasil meningkat terlalu tinggi.
Aturan ini dapat berubah sewaktu-waktu. Untuk memastikan perilaku tertentu,
tetapkan kolom maxFailedTrialCount
.
Mengelola tugas penyesuaian hyperparameter
Bagian berikut menjelaskan cara mengelola tugas penyesuaian hyperparameter Anda.
Mengambil informasi tentang tugas penyesuaian hyperparameter
Contoh kode berikut menunjukkan cara mengambil tugas penyesuaian hyperparameter.
gcloud
Gunakan perintah gcloud ai hp-tuning-jobs describe
:
gcloud ai hp-tuning-jobs describe ID_OR_NAME \
--region=LOCATION
Ganti kode berikut:
ID_OR_NAME
: baik nama atau ID numerikHyperparameterTuningJob
. (ID adalah bagian terakhir dari nama.)Anda mungkin telah melihat ID atau nama saat membuat
HyperparameterTuningJob
. Jika tidak mengetahui ID atau nama tersebut, Anda dapat menjalankan perintahgcloud ai hp-tuning-jobs list
dan mencari resource yang sesuai.LOCATION
: region tempatHyperparameterTuningJob
dibuat.
REST
Gunakan contoh kode berikut untuk mengambil tugas penyesuaian hyperparameter menggunakan metode get
dari resource hyperparameterTuningJob
.
Sebelum menggunakan data permintaan apa pun, lakukan penggantian sebagai berikut:
-
LOCATION
: region tempatHyperparameterTuningJob
dibuat. - NAME: Nama tugas penyesuaian hyperparameter. Nama tugas menggunakan
projects/{project}/LOCATIONS/{LOCATION}/hyperparameterTuningJobs/{hyperparameterTuningJob}
format berikut.
Metode HTTP dan URL:
GET https://LOCATION-aiplatform.googleapis.com/v1/NAME
Untuk mengirim permintaan, perluas salah satu opsi berikut:
Anda akan menerima respons JSON yang mirip seperti berikut:
{ "name": "projects/12345/LOCATIONs/us-central1/hyperparameterTuningJobs/6789", "displayName": "my-hyperparameter-tuning-job", "studySpec": { "metrics": [ { "metricId": "my_metric", "goal": "MINIMIZE" } ], "parameters": [ { "parameterId": "my_parameter", "doubleValueSpec": { "minValue": 1e-05, "maxValue": 1 } } ] }, "maxTrialCount": 3, "parallelTrialCount": 1, "trialJobSpec": { "workerPoolSpecs": [ { "machineSpec": { "machineType": "n1-standard-4" }, "replicaCount": "1", "pythonPackageSpec": { "executorImageUri": "us-docker.pkg.dev/vertex-ai/training/training-tf-cpu.2-1:latest", "packageUris": [ "gs://my-bucket/my-training-application/trainer.tar.bz2" ], "pythonModule": "my-trainer.trainer" } } ] }, "trials": [ { "id": "2", "state": "SUCCEEDED", "parameters": [ { "parameterId": "my_parameter", "value": 0.71426874725564571 } ], "finalMeasurement": { "stepCount": "2", "metrics": [ { "metricId": "my_metric", "value": 0.30007445812225342 } ] }, "startTime": "2020-09-09T23:39:15.549112551Z", "endTime": "2020-09-09T23:47:08Z" }, { "id": "3", "state": "SUCCEEDED", "parameters": [ { "parameterId": "my_parameter", "value": 0.3078893356622992 } ], "finalMeasurement": { "stepCount": "2", "metrics": [ { "metricId": "my_metric", "value": 0.30000102519989014 } ] }, "startTime": "2020-09-09T23:49:22.451699360Z", "endTime": "2020-09-09T23:57:15Z" }, { "id": "1", "state": "SUCCEEDED", "parameters": [ { "parameterId": "my_parameter", "value": 0.500005 } ], "finalMeasurement": { "stepCount": "2", "metrics": [ { "metricId": "my_metric", "value": 0.30005377531051636 } ] }, "startTime": "2020-09-09T23:23:12.283374629Z", "endTime": "2020-09-09T23:36:56Z" } ], "state": "JOB_STATE_SUCCEEDED", "createTime": "2020-09-09T23:22:31.777386Z", "startTime": "2020-09-09T23:22:34Z", "endTime": "2020-09-10T01:31:24.271307Z", "updateTime": "2020-09-10T01:31:24.271307Z" }
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Java Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Python API.
Membatalkan tugas penyesuaian hyperparameter
Contoh kode berikut menunjukkan cara membatalkan tugas penyesuaian hyperparameter.
gcloud
Gunakan perintah gcloud ai hp-tuning-jobs cancel
:
gcloud ai hp-tuning-jobs cancel ID_OR_NAME \
--region=LOCATION
Ganti kode berikut:
ID_OR_NAME
: baik nama atau ID numerikHyperparameterTuningJob
. (ID adalah bagian terakhir dari nama.)Anda mungkin telah melihat ID atau nama saat membuat
HyperparameterTuningJob
. Jika tidak mengetahui ID atau nama tersebut, Anda dapat menjalankan perintahgcloud ai hp-tuning-jobs list
dan mencari resource yang sesuai.LOCATION
: region tempatHyperparameterTuningJob
dibuat.
REST
Gunakan contoh kode berikut untuk membatalkan tugas penyesuaian hyperparameter menggunakan metode cancel
dari resource hyperparameterTuningJob
.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
-
LOCATION
: region tempatHyperparameterTuningJob
dibuat. - NAME: Nama tugas penyesuaian hyperparameter. Nama tugas menggunakan
projects/{project}/locations/{location}/hyperparameterTuningJobs/{hyperparameterTuningJob}
format berikut.
Metode HTTP dan URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/NAME:cancel
Untuk mengirim permintaan, perluas salah satu opsi berikut:
Anda akan menerima kode status yang berhasil (2xx), serta respons yang kosong.
Python
Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Python API.
Menghapus tugas penyesuaian hyperparameter
Contoh kode berikut menunjukkan cara menghapus tugas penyesuaian hyperparameter menggunakan Vertex AI SDK untuk Python dan REST API.
REST
Gunakan contoh kode berikut untuk menghapus tugas penyesuaian hyperparameter menggunakan metode delete
dari resource hyperparameterTuningJob
.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- LOCATION: Region Anda.
- NAME: Nama tugas penyesuaian hyperparameter. Nama tugas menggunakan
projects/{project}/LOCATIONs/{LOCATION}/hyperparameterTuningJobs/{hyperparameterTuningJob}
format berikut.
Metode HTTP dan URL:
DELETE https://LOCATION-aiplatform.googleapis.com/v1/NAME
Untuk mengirim permintaan, perluas salah satu opsi berikut:
Anda akan menerima kode status yang berhasil (2xx), serta respons yang kosong.
Python
Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Python API.
Langkah selanjutnya
- Pelajari konsep yang terlibat dalam penyesuaian hyperparameter lebih lanjut.