Pipeline pelatihan memungkinkan Anda melakukan pelatihan machine learning (ML) kustom dan secara otomatis membuat resource Model
berdasarkan output pelatihan Anda.
Sebelum Anda membuat pipeline
Sebelum membuat pipeline pelatihan di Vertex AI, Anda harus membuat aplikasi pelatihan Python atau container kustom untuk menentukan kode pelatihan dan dependensi yang Anda ingin Anda jalankan di Vertex AI. Jika membuat aplikasi pelatihan Python menggunakan TensorFlow, scikit-learn, atau XGBoost, Anda dapat menggunakan container bawaan kami untuk menjalankan kode Anda. Jika Anda tidak yakin opsi mana yang harus dipilih, lihat persyaratan kode pelatihan untuk mempelajari lebih lanjut.
Opsi pipeline pelatihan
Pipeline pelatihan mengenkapsulasi tugas pelatihan dengan langkah-langkah tambahan. Panduan ini menjelaskan dua pipeline pelatihan yang berbeda:
- Luncurkan
CustomJob
dan upload model yang dihasilkan ke Vertex AI - Meluncurkan tugas penyesuaian hyperparameter dan mengupload model yang dihasilkan ke Vertex AI
Selain itu, Anda dapat menggunakan set data terkelola di pipeline pelatihan. Pelajari lebih lanjut cara mengonfigurasi pipeline pelatihan Anda agar dapat menggunakan set data terkelola.
Hal yang disertakan dalam CustomJob
Saat membuat tugas kustom, Anda menentukan setelan yang diperlukan Vertex AI untuk menjalankan kode pelatihan Anda, termasuk:
- Satu pool worker untuk pelatihan node tunggal (
WorkerPoolSpec
), atau beberapa kumpulan worker untuk pelatihan yang terdistribusi - Setelan opsional untuk mengonfigurasi penjadwalan tugas (
Scheduling
), menetapkan variabel lingkungan tertentu untuk kode pelatihan Anda, menggunakan akun layanan khusus, dan menggunakan Peering Jaringan VPC.
Dalam kumpulan worker, Anda dapat menentukan setelan berikut:
- Jenis mesin dan akselerator
- Konfigurasi jenis kode pelatihan yang dijalankan oleh
kumpulan worker: aplikasi
pelatihan Python (
PythonPackageSpec
) atau container kustom (ContainerSpec
)
Jika Anda ingin membuat tugas kustom mandiri di luar pipeline Vertex AI Training, lihat panduan tentang tugas kustom.
Mengonfigurasi pipeline Anda untuk menggunakan set data terkelola
Dalam pipeline pelatihan, Anda dapat mengonfigurasi tugas pelatihan kustom atau tugas penyesuaian hyperparameter agar menggunakan set data terkelola. Dengan set data terkelola, Anda dapat mengelola set data dengan aplikasi dan model pelatihan Anda.
Untuk menggunakan set data terkelola di pipeline pelatihan Anda:
- Buat set data.
- Update aplikasi pelatihan Anda untuk menggunakan set data terkelola. Untuk informasi selengkapnya, lihat cara Vertex AI meneruskan set data ke aplikasi pelatihan Anda.
Tentukan set data terkelola saat Anda membuat pipeline pelatihan. Misalnya, jika Anda membuat pipeline pelatihan menggunakan REST API, tentukan setelan set data di bagian
inputDataConfig
.Anda harus membuat pipeline pelatihan di region yang sama dengan tempat Anda membuat set data.
Untuk mempelajari lebih lanjut, baca referensi APITrainingPipeline
untuk .
Mengonfigurasi pelatihan yang terdistribusi
Dalam pipeline pelatihan, Anda dapat mengonfigurasi tugas pelatihan kustom atau tugas penyesuaian hyperparameter untuk pelatihan terdistribusi dengan menentukan beberapa kumpulan pekerja.
Semua contoh di halaman ini menampilkan tugas pelatihan replika tunggal dengan satu pool worker. Untuk memodifikasinya untuk pelatihan terdistribusi:
- Gunakan pool worker pertama Anda untuk mengonfigurasi replika utama, dan tetapkan jumlah replika ke 1.
- Tambahkan lebih banyak pool worker untuk mengonfigurasi replika worker, replika server parameter, atau replika evaluator, jika framework machine learning Anda mendukung tugas cluster tambahan ini untuk pelatihan terdistribusi.
Pelajari lebih lanjut cara menggunakan pelatihan terdistribusi.
CustomJob dan upload model
Pipeline pelatihan ini mengenkapsulasi tugas kustom dengan langkah praktis tambahan yang mempermudah deployment model Anda ke Vertex AI setelah pelatihan. Pipeline pelatihan ini melakukan dua hal utama:
Pipeline pelatihan membuat resource
CustomJob
. Tugas kustom akan menjalankan aplikasi pelatihan menggunakan resource komputasi yang Anda tentukan.Setelah tugas kustom selesai, pipeline pelatihan akan menemukan artefak model yang dibuat oleh aplikasi pelatihan Anda di direktori output yang Anda tentukan untuk bucket Cloud Storage Anda. File ini menggunakan artefak ini untuk membuat resource model, yang menyiapkan Anda untuk deployment model.
Ada dua cara untuk menetapkan lokasi artefak model Anda:
Jika Anda menetapkan
baseOutputDirectory
untuk tugas pelatihan, pastikan kode pelatihan menyimpan artefak model Anda ke lokasi tersebut, menggunakan variabel lingkungan$AIP_MODEL_DIR
yang ditetapkan oleh Vertex AI. Setelah tugas pelatihan selesai, Vertex AI akan menelusuri artefak model yang dihasilkan digs://BASE_OUTPUT_DIRECTORY/model
.Jika Anda menetapkan kolom
modelToUpload.artifactUri
, pipeline pelatihan akan mengupload artefak model dari URI tersebut. Anda harus menetapkan kolom ini jika tidak menetapkanbaseOutputDirectory
.
Jika Anda menentukan baseOutputDirectory
dan modelToUpload.artifactUri
,
Vertex AI akan menggunakan modelToUpload.artifactUri
.
Untuk membuat jenis pipeline pelatihan ini:
Konsol
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:
Jika Anda ingin menggunakan set data terkelola untuk pelatihan, tentukan Set Data dan Kumpulan anotasi.
Jika tidak, di menu drop-down Set data, pilih Tidak ada set data terkelola.
Pilih Pelatihan kustom (lanjutan).
Klik Continue.
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, di kolom Container image, tentukan Artifact Registry atau URI Docker Hub dari image container Anda.
Di kolom Model output directory, tentukan Cloud Storage URI 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.Di akhir pelatihan, Vertex AI akan mencari artefak model dalam subdirektori URI ini untuk membuat
Model
. (Subdirektori ini tersedia untuk kode pelatihan Anda sebagai variabel lingkunganAIP_MODEL_DIR
.)Jika Anda tidak menggunakan penyesuaian hyperparameter, Vertex AI diperkirakan akan menemukan artefak model di
BASE_OUTPUT_DIRECTORY/model/
.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 Penyesuaian hyperparameter, pastikan kotak centang Aktifkan penyesuaian hyperparameter tidak dicentang. Klik Lanjutkan.
Pada langkah Komputasi dan harga, 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 Lanjutkan.
Pada langkah Prediction container, tentukan setelan berikut:
Pilih apakah akan menggunakan Container bawaan atau Container kustom untuk menampilkan prediksi dari model terlatih Anda.
Bergantung pada pilihan Anda, lakukan salah satu hal berikut:
Jika Anda ingin menggunakan container bawaan untuk menampilkan prediksi, gunakan kolom Framework model, Versi framework model, dan Jenis Akselerator untuk memilih container prediksi bawaan yang akan digunakan untuk prediksi.
Cocokkan Framework model dan Versi framework model dengan framework machine learning yang Anda gunakan untuk pelatihan. Hanya tentukan jenis Akselerator jika Anda nanti ingin menggunakan GPU untuk prediksi online atau batch.
Jika Anda ingin menggunakan container kustom untuk menampilkan prediksi, lakukan hal berikut:
Di kolom Container image, tentukan URI Artifact Registry dari image container Anda.
Secara opsional, Anda dapat menentukan Command untuk mengganti petunjuk
ENTRYPOINT
container.
Kolom Model directory berisi nilai yang Anda tetapkan sebelumnya di kolom Model output directory pada langkah Training container. Mengubah salah satu kolom ini memiliki efek yang sama. Lihat petunjuk sebelumnya untuk mengetahui informasi selengkapnya tentang kolom ini.
Biarkan kolom di bagian Predict schemata kosong.
Klik Start training untuk memulai pipeline pelatihan kustom.
REST
Gunakan contoh kode berikut untuk membuat pipeline pelatihan menggunakan
metode create
dari resource trainingPipeline
.
Catatan: Jika ingin menetapkan pipeline ini untuk membuat versi model baru, Anda dapat menambahkan PARENT_MODEL
di kolom trainingPipeline
secara opsional.
Untuk mempelajari lebih lanjut, baca Pembuatan versi model dengan Vertex AI Model Registry.
Sebelum menggunakan data permintaan mana pun, lakukan penggantian berikut:
- LOCATION_ID: Region tempat kode pelatihan dijalankan dan
Model
disimpan. - PROJECT_ID: Project ID Anda.
- TRAINING_PIPELINE_NAME: Wajib diisi. Nama tampilan untuk trainingPipeline.
- Jika aplikasi pelatihan Anda menggunakan set data Vertex AI, tentukan hal berikut:
- DATASET_ID: ID set data.
- ANNOTATIONS_FILTER: Memfilter set data berdasarkan anotasi yang Anda tentukan.
- ANNOTATION_SCHEMA_URI: Memfilter set data berdasarkan URI skema anotasi yang ditentukan.
-
Gunakan salah satu opsi berikut untuk menentukan cara item data dibagi menjadi set pelatihan, validasi, dan pengujian.
- Untuk membagi set data berdasarkan bagian yang menentukan ukuran setiap set, tentukan
hal berikut:
- TRAINING_FRACTION: Bagian set data yang akan digunakan untuk melatih model Anda.
- VALIDATION_FRACTION: Bagian set data yang akan digunakan untuk memvalidasi model Anda.
- TEST_FRACTION: Bagian set data yang akan digunakan untuk mengevaluasi model Anda.
- Untuk memisahkan set data berdasarkan filter, tentukan hal berikut:
- TRAINING_FILTER: Memfilter set data ke item data yang akan digunakan untuk melatih model Anda.
- VALIDATION_FILTER: Memfilter set data ke item data yang akan digunakan untuk memvalidasi model Anda.
- TEST_FILTER: Memfilter set data ke item data yang akan digunakan untuk mengevaluasi model Anda.
- Untuk menggunakan pembagian yang telah ditentukan, tentukan opsi berikut:
- PREDEFINED_SPLIT_KEY: Nama kolom yang akan digunakan untuk membagi set data. Nilai yang dapat diterima dalam kolom ini termasuk `pelatihan`, `validasi`, dan `pengujian`.
-
Untuk membagi set data berdasarkan stempel waktu pada item data, tentukan hal berikut:
- TIMESTAMP_TRAINING_FRACTION: Bagian set data yang akan digunakan untuk melatih model Anda.
- TIMESTAMP_VALIDATION_FRACTION: Bagian set data yang akan digunakan untuk memvalidasi model Anda.
- TIMESTAMP_TEST_FRACTION: Bagian set data yang akan digunakan untuk mengevaluasi model Anda.
- TIMESTAMP_SPLIT_KEY: Nama kolom stempel waktu yang digunakan untuk membagi set data.
- Untuk membagi set data berdasarkan bagian yang menentukan ukuran setiap set, tentukan
hal berikut:
- OUTPUT_URI_PREFIX: Lokasi Cloud Storage tempat Vertex AI mengekspor set data pelatihan Anda, setelah dibagi menjadi set pelatihan, validasi, dan pengujian.
- Tentukan tugas pelatihan kustom:
- MACHINE_TYPE: Jenis mesin. Lihat jenis mesin yang tersedia 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 di Artifact Registry atau Docker Hub yang akan dijalankan di setiap replika worker.
- 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. Panjang maksimum untuk semua argumen yang digabungkan adalah 100.000 karakter.
- 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. Lihat container bawaan yang tersedia 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. Panjang maksimum untuk semua argumen yang digabungkan adalah 100.000 karakter.
- TIMEOUT: (Opsional.) Waktu berjalan maksimum untuk tugas.
- MODEL_NAME: Nama tampilan untuk model yang diupload (dibuat) oleh TrainingPipeline.
- MODEL_DESCRIPTION: Deskripsi model.
- IMAGE_URI: URI image container yang akan digunakan untuk menjalankan prediksi. Misalnya,
us-docker.pkg.dev/vertex-ai/prediction/tf2-cpu.2-1:latest
. Gunakan container bawaan atau container kustom. - modelToUpload.labels: Kumpulan key-value pair apa pun untuk mengatur model Anda. Contoh:
- "env": "prod"
- "tier": "backend"
- Tentukan LABEL_NAME dan LABEL_VALUE untuk setiap label yang ingin Anda terapkan ke pipeline pelatihan ini.
Metode HTTP dan URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/trainingPipelines
Isi JSON permintaan:
{ "displayName": "TRAINING_PIPELINE_NAME", "inputDataConfig": { "datasetId": DATASET_ID, "annotationsFilter": ANNOTATIONS_FILTER, "annotationSchemaUri": ANNOTATION_SCHEMA_URI, // Union field split can be only one of the following: "fractionSplit": { "trainingFraction": TRAINING_FRACTION, "validationFraction": VALIDATION_FRACTION, "testFraction": TEST_FRACTION }, "filterSplit": { "trainingFilter": TRAINING_FILTER, "validationFilter": VALIDATION_FILTER, "testFilter": TEST_FILTER }, "predefinedSplit": { "key": PREDEFINED_SPLIT_KEY }, "timestampSplit": { "trainingFraction": TIMESTAMP_TRAINING_FRACTION, "validationFraction": TIMESTAMP_VALIDATION_FRACTION, "testFraction": TIMESTAMP_TEST_FRACTION, "key": TIMESTAMP_SPLIT_KEY } // End of list of possible types for union field split. "gcsDestination": { "outputUriPrefix": OUTPUT_URI_PREFIX } }, "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/custom_task_1.0.0.yaml", "trainingTaskInputs": { "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 } } }, "modelToUpload": { "displayName": "MODEL_NAME", "predictSchemata": {}, "containerSpec": { "imageUri": "IMAGE_URI" } }, "labels": { LABEL_NAME_1": LABEL_VALUE_1, LABEL_NAME_2": LABEL_VALUE_2 } }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/trainingPipelines"
PowerShell
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/trainingPipelines" | Select-Object -Expand Content
Respons ini berisi informasi tentang spesifikasi serta TRAININGPIPELINE_ID.
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, lihat 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.
Contoh berikut menunjukkan cara menggunakan Vertex AI SDK untuk Python untuk membuat pipeline pelatihan kustom. Pilih apakah Anda berencana menggunakan container kustom atau container bawaan untuk pelatihan:
Container bawaan
Saat menggunakan Vertex AI SDK untuk Python untuk membuat pipeline pelatihan yang menjalankan kode Python di container bawaan, Anda dapat memberikan kode pelatihan dengan salah satu cara berikut:
Tentukan URI paket distribusi sumber Python di Cloud Storage.
(Opsi ini juga tersedia saat Anda membuat pipeline pelatihan tanpa menggunakan Vertex AI SDK untuk Python.)
Tentukan jalur ke skrip Python di mesin lokal Anda. Sebelum membuat pipeline pelatihan, Vertex AI SDK untuk Python mengemas skrip Anda sebagai distribusi sumber dan menguploadnya ke bucket Cloud Storage pilihan Anda.
(Opsi ini hanya tersedia saat Anda menggunakan Vertex AI SDK untuk Python.)
Untuk melihat contoh kode untuk setiap opsi ini, pilih tab yang sesuai:
Paket
Contoh berikut menggunakan class
CustomPythonPackageTrainingJob
.
Skrip
Contoh berikut menggunakan class
CustomTrainingJob
.
Container kustom
Contoh berikut menggunakan class
CustomContainerTrainingJob
.
Tugas penyesuaian hyperparameter dan upload model
Pipeline pelatihan ini mengenkapsulasi tugas penyesuaian hyperparameter dengan langkah praktis tambahan yang mempermudah deployment model Anda ke Vertex AI setelah pelatihan. Pipeline pelatihan ini melakukan dua hal utama:
Pipeline pelatihan membuat resource tugas penyesuaian hyperparameter. Tugas penyesuaian hyperparameter membuat beberapa uji coba. Untuk setiap uji coba, tugas kustom akan menjalankan aplikasi pelatihan Anda menggunakan resource komputasi dan hyperparameter yang Anda tentukan.
Setelah tugas penyesuaian hyperparameter selesai, pipeline pelatihan akan menemukan artefak model dari uji coba terbaik, dalam direktori output (
baseOutputDirectory
) yang Anda tentukan untuk bucket Cloud Storage. Pipeline pelatihan menggunakan artefak ini untuk membuat resource model, yang akan menyiapkan Anda untuk deployment model.
Untuk pipeline pelatihan ini, Anda harus menentukan baseOutputDirectory
tempat
Vertex AI menelusuri artefak model dari uji coba terbaik.
Tugas penyesuaian hyperparameter memiliki setelan tambahan yang perlu dikonfigurasi. Pelajari setelan untuk HyperparameterTuningJob
lebih lanjut.
REST
Gunakan contoh kode berikut untuk membuat pipeline pelatihan menggunakan
metode create
dari resource trainingPipeline
.
Sebelum menggunakan data permintaan mana pun, lakukan penggantian berikut:
- LOCATION_ID: Region project Anda.
- PROJECT_ID: Project ID Anda.
- TRAINING_PIPELINE_NAME: Wajib diisi. Nama tampilan untuk trainingPipeline.
- Jika aplikasi pelatihan Anda menggunakan set data Vertex AI, tentukan hal berikut:
- DATASET_ID: ID set data.
- ANNOTATIONS_FILTER: Memfilter set data berdasarkan anotasi yang Anda tentukan.
- ANNOTATION_SCHEMA_URI: Memfilter set data berdasarkan URI skema anotasi yang ditentukan.
-
Gunakan salah satu opsi berikut untuk menentukan cara item data dibagi menjadi set pelatihan, validasi, dan pengujian.
- Untuk membagi set data berdasarkan bagian yang menentukan ukuran setiap set, tentukan
hal berikut:
- TRAINING_FRACTION: Bagian set data yang akan digunakan untuk melatih model Anda.
- VALIDATION_FRACTION: Bagian set data yang akan digunakan untuk memvalidasi model Anda.
- TEST_FRACTION: Bagian set data yang akan digunakan untuk mengevaluasi model Anda.
- Untuk memisahkan set data berdasarkan filter, tentukan hal berikut:
- TRAINING_FILTER: Memfilter set data ke item data yang akan digunakan untuk melatih model Anda.
- VALIDATION_FILTER: Memfilter set data ke item data yang akan digunakan untuk memvalidasi model Anda.
- TEST_FILTER: Memfilter set data ke item data yang akan digunakan untuk mengevaluasi model Anda.
- Untuk menggunakan pembagian yang telah ditentukan, tentukan opsi berikut:
- PREDEFINED_SPLIT_KEY: Nama kolom yang akan digunakan untuk membagi set data. Nilai yang dapat diterima dalam kolom ini termasuk `pelatihan`, `validasi`, dan `pengujian`.
-
Untuk membagi set data berdasarkan stempel waktu pada item data, tentukan hal berikut:
- TIMESTAMP_TRAINING_FRACTION: Bagian set data yang akan digunakan untuk melatih model Anda.
- TIMESTAMP_VALIDATION_FRACTION: Bagian set data yang akan digunakan untuk memvalidasi model Anda.
- TIMESTAMP_TEST_FRACTION: Bagian set data yang akan digunakan untuk mengevaluasi model Anda.
- TIMESTAMP_SPLIT_KEY: Nama kolom stempel waktu yang digunakan untuk membagi set data.
- Untuk membagi set data berdasarkan bagian yang menentukan ukuran setiap set, tentukan
hal berikut:
- OUTPUT_URI_PREFIX: Lokasi Cloud Storage tempat Vertex AI mengekspor set data pelatihan Anda, setelah dibagi menjadi set pelatihan, validasi, dan pengujian.
- Tentukan tugas penyesuaian hyperparameter Anda:
- Tentukan metrik:
- METRIC_ID: Nama metrik ini.
- METRIC_GOAL: Sasaran metrik ini. Dapat berupa
MAXIMIZE
atauMINIMIZE
.
- Tentukan hyperparameter Anda:
- PARAMETER_ID: Nama hyperparameter ini.
- PARAMETER_SCALE: (Opsional.) Bagaimana 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 GANDA, tentukan nilai minimum (DOUBLE_MIN_VALUE) dan maksimum (DOUBLE_MAX_VALUE) untuk hyperparameter ini.
- Jika jenis hyperparameter ini adalah BILANGAN BULAT, tentukan nilai minimum (INTEGER_MIN_VALUE) dan maksimum (INTEGER_MAX_VALUE) untuk hyperparameter ini.
- Jika jenis hyperparameter ini adalah KATEGORIS, tentukan nilai yang dapat diterima (CATEGORICAL_VALUES) sebagai array string.
- Jika jenis hyperparameter ini adalah DISKRET, tentukan nilai yang dapat diterima (DISCRETE_VALUES) sebagai array angka.
- ALGORITHM: (Opsional.) Algoritme 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 di tugas ini.
- PARALLEL_TRIAL_COUNT: Jumlah maksimum uji coba yang dapat 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 mesin. Lihat jenis mesin yang tersedia 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 di Artifact Registry atau Docker Hub yang akan dijalankan di setiap replika worker.
- 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. Lihat container bawaan yang tersedia 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.
- Pelajari opsi penjadwalan tugas.
- 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.
- Tentukan metrik:
- MODEL_NAME: Nama tampilan untuk model yang diupload (dibuat) oleh TrainingPipeline.
- MODEL_DESCRIPTION: Opsional. Deskripsi model.
- PREDICTION_IMAGE_URI: Harus ada. Tentukan salah satu dari dua opsi berikut:
- URI gambar dari container bawaan yang akan digunakan untuk prediksi, seperti "tf2-cpu.2-1:latest".
- URI gambar dari container kustom Anda sendiri yang akan digunakan untuk prediksi.
- modelToUpload.labels: Opsional. Kumpulan key-value pair apa pun untuk mengatur model Anda. Contoh:
- "env": "prod"
- "tier": "backend"
- Tentukan LABEL_NAME dan LABEL_VALUE untuk setiap label yang ingin Anda terapkan ke pipeline pelatihan ini.
Metode HTTP dan URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/trainingPipelines
Isi JSON permintaan:
{ "displayName": "TRAINING_PIPELINE_NAME", "inputDataConfig": { "datasetId": DATASET_ID, "annotationsFilter": ANNOTATIONS_FILTER, "annotationSchemaUri": ANNOTATION_SCHEMA_URI, // Union field split can be only one of the following: "fractionSplit": { "trainingFraction": TRAINING_FRACTION, "validationFraction": VALIDATION_FRACTION, "testFraction": TEST_FRACTION }, "filterSplit": { "trainingFilter": TRAINING_FILTER, "validationFilter": VALIDATION_FILTER, "testFilter": TEST_FILTER }, "predefinedSplit": { "key": PREDEFINED_SPLIT_KEY }, "timestampSplit": { "trainingFraction": TIMESTAMP_TRAINING_FRACTION, "validationFraction": TIMESTAMP_VALIDATION_FRACTION, "testFraction": TIMESTAMP_TEST_FRACTION, "key": TIMESTAMP_SPLIT_KEY } // End of list of possible types for union field split. "gcsDestination": { "outputUriPrefix": OUTPUT_URI_PREFIX } }, "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/hyperparameter_tuning_task_1.0.0.yaml", "trainingTaskInputs": { "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. } ], "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 } }, "labels": { LABEL_NAME_1": LABEL_VALUE_1, LABEL_NAME_2": LABEL_VALUE_2 } }, "modelToUpload": { "displayName": "MODEL_NAME", "description": "MODEL_DESCRIPTION", "predictSchemata": {}, "containerSpec": { "imageUri": "PREDICTION_IMAGE_URI" } }, "labels": { LABEL_NAME_1": LABEL_VALUE_1, LABEL_NAME_2": LABEL_VALUE_2 } }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/trainingPipelines"
PowerShell
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/trainingPipelines" | Select-Object -Expand Content
Respons ini berisi informasi tentang spesifikasi serta TRAININGPIPELINE_ID.
Memantau pelatihan
Untuk melihat log pelatihan, lakukan hal berikut:
Di konsol Google Cloud, di bagian Vertex AI, buka halaman Pelatihan.
Klik nama tugas Anda untuk membuka halaman tugas kustom.
Klik Lihat log.
Anda juga dapat menggunakan shell interaktif untuk memeriksa container pelatihan saat pipeline pelatihan sedang berjalan.
Melihat model terlatih Anda
Ketika pipeline pelatihan kustom selesai, Anda dapat menemukan model terlatih di Konsol Google Cloud, di bagian Vertex AI, di halaman Model.
Langkah selanjutnya
- Mempelajari cara menemukan bottleneck performa pelatihan untuk melatih model dengan lebih cepat dan lebih murah menggunakan Cloud Profiler.
- Deploy model Anda ke endpoint.
- Buat tugas penyesuaian hyperparameter.
- Pelajari cara menjadwalkan tugas pelatihan kustom berdasarkan ketersediaan resource.