Halaman ini menunjukkan cara untuk melatih model klasifikasi atau regresi dari set data tabulasi menggunakan Konsol Google Cloud, atau Vertex AI API.
Sebelum Anda memulai
Sebelum dapat melatih model, Anda harus menyelesaikan langkah-langkah berikut ini:
Melatih model
Konsol Google Cloud
Di konsol Google Cloud, di bagian Vertex AI, buka halaman Datasets.
Klik nama set data yang ingin Anda gunakan untuk melatih model agar dapat membuka halaman detailnya.
Jika jenis data Anda menggunakan kumpulan anotasi, pilih kumpulan anotasi yang ingin digunakan untuk model ini.
Klik Train new model.
Pilih Other.
Di halaman Train new model, selesaikan langkah-langkah berikut ini:
Pilih metode pelatihan modelnya.
AutoML
adalah pilihan yang tepat untuk berbagai macam kasus penggunaan.
Klik Continue.
Masukkan nama tampilan untuk model baru Anda.
Pilih kolom target Anda.
Kolom target adalah nilai yang akan diprediksi oleh model.
Pelajari lebih lanjut tentang persyaratan kolom target.
Opsional: Untuk mengekspor set data pengujian ke BigQuery, centang Export test dataset to BigQuery dan berikan nama tabel.
Opsional: Untuk memilih cara memisahkan data antara set pelatihan, pengujian, dan validasi, buka Advanced options. Anda dapat memilih di antara opsi pemisahan data berikut ini:
- Random (Default): Vertex AI secara acak memilih baris yang terkait dengan masing-masing set data. Secara default, Vertex AI memilih 80% baris data Anda untuk set pelatihan, 10% untuk set validasi, dan 10% untuk set pengujian.
- Manual: Vertex AI memilih baris data untuk setiap set data berdasarkan nilai dalam kolom pemisahan data. Berikan nama kolom pembagian data tersebut.
- Chronological: Vertex AI membagi data berdasarkan stempel waktu dalam kolom waktu. Masukkan nama kolom waktu.
Pelajari lebih lanjut tentang pemisahan data.
Klik Continue.
Opsional: Klik Generate statistics. Membuat statistik akan mengisi menu drop-down Transformation.
Di halaman Training options, tinjau daftar kolom Anda, dan kecualikan kolom apa pun dari pelatihan yang tidak boleh digunakan untuk melatih model.
Tinjau transformasi yang dipilih untuk fitur yang disertakan, beserta apakah data yang tidak valid diizinkan, dan lakukan pembaruan apa pun yang diperlukan.
Pelajari transformasi dan data yang tidak valid lebih lanjut.
Jika Anda ingin menentukan kolom bobot, atau mengubah tujuan pengoptimalan dari default, buka Advanced options, lalu tentukan pilihan Anda.
Pelajari kolom bobot dan tujuan pengoptimalan lebih lanjut.
Klik Continue.
Di dalam jendela Compute and price, konfigurasi sebagai berikut:
Masukkan jumlah jam maksimum yang diinginkan untuk melatih model Anda.
Setelan ini membantu Anda untuk membatasi biaya pelatihan. Waktu berlalu sebenarnya dapat lebih lama dari nilai ini, karena ada operasi lain yang terlibat dalam pembuatan model baru.
Waktu pelatihan yang disarankan berkaitan dengan ukuran data pelatihan Anda. Tabel di bawah ini menunjukkan rentang waktu pelatihan yang disarankan berdasarkan jumlah baris; kolom dalam jumlah yang besar juga akan meningkatkan waktu pelatihan yang diperlukan.
Baris Waktu pelatihan yang disarankan Kurang dari 100.000 1-3 jam 100.000 - 1.000.000 1-6 jam 1.000.000 - 10.000.000 1-12 jam Lebih dari 10.000.000 3 - 24 jam Klik Start Training.
Pelatihan model dapat memerlukan waktu berjam-jam, bergantung pada ukuran dan kompleksitas data serta anggaran pelatihan, jika Anda menentukannya. Anda dapat menutup tab ini dan kembali membukanya lagi di lain waktu. Anda akan menerima email saat model telah menyelesaikan pelatihan.
API
Pilih tujuan jenis data tabulasi.
Klasifikasi
Pilih tab untuk bahasa atau lingkungan Anda:
REST
Anda menggunakan perintah trainingPipelines.create untuk melatih model.
Melatih model.
Sebelum menggunakan salah satu data permintaan, buat pengganti berikut ini:
- LOCATION: Region Anda.
- PROJECT: Project ID Anda.
- TRAININGPIPELINE_DISPLAY_NAME: Nama tampilan untuk pipeline pelatihan yang dibuat untuk operasi ini.
- TARGET_COLUMN: Kolom (nilai) yang Anda inginkan untuk diprediksi oleh model ini.
- WEIGHT_COLUMN: (Opsional) Kolom bobot. Pelajari lebih lanjut.
- TRAINING_BUDGET: Jumlah waktu maksimum yang Anda inginkan untuk dilatih model, dalam milidetik jam kerja node (1.000 milidetik jam kerja node sama dengan satu jam kerja node).
- OPTIMIZATION_OBJECTIVE: Diperlukan hanya jika Anda tidak menginginkan tujuan pengoptimalan default untuk jenis prediksi Anda. Pelajari lebih lanjut.
- TRANSFORMATION_TYPE: Jenis transformasi disediakan untuk setiap kolom yang digunakan untuk melatih model. Pelajari lebih lanjut.
- COLUMN_NAME: Nama kolom dengan jenis transformasi yang telah ditentukan. Setiap kolom yang digunakan untuk melatih model harus ditetapkan.
- MODEL_DISPLAY_NAME: Nama tampilan untuk model yang baru dilatih.
- DATASET_ID: ID untuk Dataset pelatihan.
-
Anda dapat menyediakan objek
Split
untuk mengontrol pembagian data Anda. Untuk informasi tentang mengontrol pembagian data, lihat Mengontrol pemisahan data menggunakan REST. - PROJECT_NUMBER: Nomor project yang dibuat secara otomatis untuk project Anda
Metode HTTP dan URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines
Meminta isi JSON:
{ "displayName": "TRAININGPIPELINE_DISPLAY_NAME", "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_tabular_1.0.0.yaml", "trainingTaskInputs": { "targetColumn": "TARGET_COLUMN", "weightColumn": "WEIGHT_COLUMN", "predictionType": "classification", "trainBudgetMilliNodeHours": TRAINING_BUDGET, "optimizationObjective": "OPTIMIZATION_OBJECTIVE", "transformations": [ {"TRANSFORMATION_TYPE_1": {"column_name" : "COLUMN_NAME_1"} }, {"TRANSFORMATION_TYPE_2": {"column_name" : "COLUMN_NAME_2"} }, ... }, "modelToUpload": {"displayName": "MODEL_DISPLAY_NAME"}, "inputDataConfig": { "datasetId": "DATASET_ID", } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
{ "name": "projects/PROJECT_NUMBER/locations/us-central1/trainingPipelines/4567", "displayName": "myModelName", "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_tabular_1.0.0.yaml", "modelToUpload": { "displayName": "myModelName" }, "state": "PIPELINE_STATE_PENDING", "createTime": "2020-08-18T01:22:57.479336Z", "updateTime": "2020-08-18T01:22:57.479336Z" }
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.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Node.js 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.
Regresi
Pilih tab untuk bahasa atau lingkungan Anda:
REST
Anda menggunakan perintah trainingPipelines.create untuk melatih model.
Melatih model.
Sebelum menggunakan salah satu data permintaan, buat pengganti berikut ini:
- LOCATION: Region Anda.
- PROJECT: Project ID Anda.
- TRAININGPIPELINE_DISPLAY_NAME: Nama tampilan untuk pipeline pelatihan yang dibuat untuk operasi ini.
- TARGET_COLUMN: Kolom (nilai) yang Anda inginkan untuk diprediksi oleh model ini.
- WEIGHT_COLUMN: (Opsional) Kolom bobot. Pelajari lebih lanjut.
- TRAINING_BUDGET: Jumlah waktu maksimum yang Anda inginkan untuk dilatih model, dalam milidetik jam kerja node (1.000 milidetik jam kerja node sama dengan satu jam kerja node).
- OPTIMIZATION_OBJECTIVE: Diperlukan hanya jika Anda tidak menginginkan tujuan pengoptimalan default untuk jenis prediksi Anda. Pelajari lebih lanjut.
- TRANSFORMATION_TYPE: Jenis transformasi disediakan untuk setiap kolom yang digunakan untuk melatih model. Pelajari lebih lanjut.
- COLUMN_NAME: Nama kolom dengan jenis transformasi yang telah ditentukan. Setiap kolom yang digunakan untuk melatih model harus ditetapkan.
- MODEL_DISPLAY_NAME: Nama tampilan untuk model yang baru dilatih.
- DATASET_ID: ID untuk Dataset pelatihan.
-
Anda dapat menyediakan objek
Split
untuk mengontrol pembagian data Anda. Untuk informasi tentang mengontrol pembagian data, lihat Mengontrol pemisahan data menggunakan REST. - PROJECT_NUMBER: Nomor project yang dibuat secara otomatis untuk project Anda
Metode HTTP dan URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines
Meminta isi JSON:
{ "displayName": "TRAININGPIPELINE_DISPLAY_NAME", "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_tabular_1.0.0.yaml", "trainingTaskInputs": { "targetColumn": "TARGET_COLUMN", "weightColumn": "WEIGHT_COLUMN", "predictionType": "regression", "trainBudgetMilliNodeHours": TRAINING_BUDGET, "optimizationObjective": "OPTIMIZATION_OBJECTIVE", "transformations": [ {"TRANSFORMATION_TYPE_1": {"column_name" : "COLUMN_NAME_1"} }, {"TRANSFORMATION_TYPE_2": {"column_name" : "COLUMN_NAME_2"} }, ... }, "modelToUpload": {"displayName": "MODEL_DISPLAY_NAME"}, "inputDataConfig": { "datasetId": "DATASET_ID", } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
{ "name": "projects/PROJECT_NUMBER/locations/us-central1/trainingPipelines/4567", "displayName": "myModelName", "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_tabular_1.0.0.yaml", "modelToUpload": { "displayName": "myModelName" }, "state": "PIPELINE_STATE_PENDING", "createTime": "2020-08-18T01:22:57.479336Z", "updateTime": "2020-08-18T01:22:57.479336Z" }
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.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Node.js 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.
Mengontrol pemisahan data menggunakan REST
Anda dapat mengontrol pembagian data pelatihan antara set pelatihan,
validasi, dan pengujian. Saat Anda menggunakan Vertex AI API, gunakan
objek Split
untuk
menentukan pembagian data Anda. Objek Split
dapat disertakan dalam
objek inputDataConfig
sebagai salah satu dari beberapa jenis objek, yang masing-masing memberikan
cara yang berbeda untuk membagi data pelatihan.
Metode yang dapat Anda gunakan untuk memisahkan data bergantung pada jenis data Anda:
FractionSplit
:- TRAINING_FRACTION: Pecahan dari data pelatihan yang akan digunakan untuk set pelatihan.
- VALIDATION_FRACTION: Pecahan dari data pelatihan yang akan digunakan untuk set validasi.
- TEST_FRACTION: Pecahan dari data pelatihan yang akan digunakan untuk set pengujian.
Jika ada pecahan yang telah ditentukan, maka semuanya harus ditentukan. Jumlah pecahan harus berjumlah 1,0. Pelajari lebih lanjut.
"fractionSplit": { "trainingFraction": TRAINING_FRACTION, "validationFraction": VALIDATION_FRACTION, "testFraction": TEST_FRACTION },
PredefinedSplit
:- DATA_SPLIT_COLUMN: Kolom yang berisi nilai pemisahan data
(
TRAIN
,VALIDATION
,TEST
).
Tentukan pemisahan data secara manual untuk setiap baris dengan menggunakan kolom pemisahan. Pelajari lebih lanjut.
"predefinedSplit": { "key": DATA_SPLIT_COLUMN },
- DATA_SPLIT_COLUMN: Kolom yang berisi nilai pemisahan data
(
TimestampSplit
:- TRAINING_FRACTION: Persentase data pelatihan yang akan digunakan untuk set pelatihan tersebut. Setelan defaultnya adalah 0,80.
- VALIDATION_FRACTION: Persentase data pelatihan yang akan digunakan untuk set validasi tersebut. Setelan defaultnya adalah 0,10.
- TEST_FRACTION: Persentase data pelatihan yang akan digunakan untuk set pengujian tersebut. Setelan defaultnya adalah 0,10.
- TIME_COLUMN: Kolom yang berisi stempel waktu.
Jika ada pecahan yang telah ditentukan, maka semuanya harus ditentukan. Pecahan tersebut harus berjumlah 1,0. Pelajari lebih lanjut.
"timestampSplit": { "trainingFraction": TRAINING_FRACTION, "validationFraction": VALIDATION_FRACTION, "testFraction": TEST_FRACTION, "key": TIME_COLUMN }
Tujuan pengoptimalan untuk model klasifikasi atau regresi
Saat Anda sedang melatih model, Vertex AI akan memilih tujuan pengoptimalan default berdasarkan jenis model Anda, serta jenis data yang digunakan untuk kolom target Anda.
Model klasifikasi paling cocok untuk:Tujuan pengoptimalan | Nilai API | Gunakan tujuan ini jika Anda ingin... |
---|---|---|
AUC ROC | maximize-au-roc |
Memaksimalkan area di bagian bawah kurva karakteristik operasi penerima (ROC). Membedakan antar-class. Memberikan nilai default untuk klasifikasi biner. |
Kerugian log | minimize-log-loss |
Membuat probabilitas prediksi seakurat mungkin. Hanya mendukung tujuan untuk klasifikasi multi-class. |
AUC PR | maximize-au-prc |
Memaksimalkan area di bagian bawah kurva presisi-perolehan. Mengoptimalkan hasil prediksi untuk class yang kurang umum. |
Presisi pada Perolehan | maximize-precision-at-recall |
Mengoptimalkan presisi pada nilai perolehan tertentu. |
Perolehan pada Presisi | maximize-recall-at-precision |
Mengoptimalkan perolehan pada nilai presisi tertentu. |
Tujuan pengoptimalan | Nilai API | Gunakan tujuan ini jika Anda ingin ... |
---|---|---|
RMSE | minimize-rmse |
Meminimalkan error akar rataan kuadrat (RMSE). Merekam nilai yang lebih ekstrem secara akurat. Nilai default. |
MAE | minimize-mae |
Meminimalkan error rata-rata absolut (MAE). Melihat nilai ekstrem sebagai pencilan dengan dampak yang lebih sedikit terhadap model. |
RMSLE | minimize-rmsle |
Meminimalkan error log akar rataan kuadrat (RMSLE). Menindak error pada ukuran relatif, bukan nilai absolut. Berguna saat nilai aktual dan yang diprediksi cukup besar. |
Langkah berikutnya
- Mengevaluasi model Anda.
- Mempelajari cara untuk mengekspor model Anda.