Halaman ini menunjukkan cara melatih model perkiraan dari set data tabel menggunakan konsol Google Cloud atau Vertex AI API.
Sebelum memulai
Sebelum dapat melatih model perkiraan, Anda harus menyelesaikan langkah-langkah berikut:
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 Lainnya.
Di halaman Metode pelatihan, konfigurasi sebagai berikut:
Pilih metode pelatihan model. Untuk mempelajari lebih lanjut, lihat Metode pelatihan model.
Klik Lanjutkan.
Di halaman Detail model, konfigurasi sebagai berikut:
Masukkan nama tampilan untuk model baru Anda.
Pilih kolom target.
Kolom target adalah nilai yang akan diperkirakan oleh model. Pelajari persyaratan kolom target lebih lanjut.
Jika Anda belum menetapkan kolom ID seri dan Stempel waktu di set data, pilih kolom tersebut sekarang.
Pilih Perincian data. Pilih
Daily
jika Anda ingin menggunakan pemodelan efek musim liburan. Pelajari cara memilih tingkat perincian data.Opsional: Di menu dropdown Wilayah liburan, pilih satu atau beberapa wilayah geografis untuk mengaktifkan pemodelan efek musim liburan. Selama pelatihan, Vertex AI membuat fitur kategori liburan dalam model berdasarkan tanggal dari kolom Stempel waktu dan wilayah geografis yang ditentukan. Anda dapat memilih opsi ini hanya jika Perincian data ditetapkan ke
Daily
. Secara default, pemodelan efek liburan dinonaktifkan. Untuk mempelajari wilayah geografis yang digunakan untuk pemodelan efek hari libur, lihat Wilayah liburan.Masukkan Periode konteks dan Horizon perkiraan.
Horizon perkiraan menentukan seberapa jauh model akan memperkirakan nilai target untuk setiap baris data prediksi di masa mendatang. Horizon perkiraan ditentukan dalam unit Perincian data.
Periode konteks menetapkan rentang waktu ke belakang model selama pelatihan (dan untuk perkiraan). Dengan kata lain, untuk setiap titik data pelatihan, jendela konteks menentukan seberapa jauh model mencari pola prediktif. Periode konteks ditentukan dalam unit Perincian data.
Jika Anda ingin mengekspor set data pengujian ke BigQuery, centang Ekspor set data pengujian ke BigQuery dan berikan nama tabelnya.
Jika Anda ingin mengontrol pembagian data secara manual atau mengonfigurasi periode perkiraan, buka Opsi lanjutan.
Pembagian data default dilakukan secara kronologis, dengan persentase standar 80/10/10. Jika Anda ingin menentukan baris mana yang ditetapkan ke pemisahan secara manual, pilih Manual dan tentukan kolom Pemisahan data Anda.
Pelajari pemisahan data lebih lanjut.
Pilih strategi periode bergulir untuk pembuatan periode perkiraan. Strategi defaultnya adalah Jumlah.
- Jumlah: Tetapkan nilai untuk jumlah maksimum periode di kotak teks yang disediakan.
- Jangka: Tetapkan nilai panjang jangka waktu di kotak teks yang disediakan.
- Kolom: Pilih nama kolom yang sesuai dari menu dropdown yang disediakan.
Untuk mempelajari lebih lanjut, lihat Strategi periode bergulir.
Klik Lanjutkan.
Di halaman Opsi pelatihan, konfigurasikan sebagai berikut:
Jika belum melakukannya, klik Buat statistik.
Membuat statistik akan mengisi menu dropdown Transformasi.
Tinjau daftar kolom Anda dan kecualikan setiap kolom dari pelatihan yang tidak boleh digunakan untuk melatih model.
Jika Anda menggunakan kolom pembagian data, kolom tersebut harus disertakan.
Tinjau transformasi yang dipilih untuk fitur yang disertakan dan lakukan update yang diperlukan.
Baris berisi data yang tidak valid untuk transformasi yang dipilih akan dikecualikan dari pelatihan. Pelajari transformasi lebih lanjut
Untuk setiap kolom yang Anda sertakan untuk pelatihan, tentukan Jenis fitur untuk hubungan fitur tersebut dengan deret waktunya, dan apakah fitur tersebut tersedia pada perkiraan waktu. Pelajari jenis dan ketersediaan fitur lebih lanjut.
Jika Anda ingin menentukan kolom bobot, mengubah objektif pengoptimalan dari default, atau mengaktifkan perkiraan hierarkis, buka Opsi lanjutan.
Opsional. Jika Anda ingin menentukan kolom bobot, pilih kolom tersebut dari daftar dropdown. Pelajari kolom bobot lebih lanjut.
Opsional. Jika Anda ingin memilih tujuan pengoptimalan, pilih tujuan tersebut dari daftar. Pelajari tujuan pengoptimalan lebih lanjut.
Opsional. Jika Anda ingin menggunakan perkiraan hierarkis, pilih Aktifkan peningkatan hierarkis. Anda dapat memilih di antara tiga opsi pengelompokkan:
No grouping
Group by columns
Group all
Anda juga dapat memilih untuk menetapkan bobot penurunan agregat berikut:
Group total weight
. Kolom ini hanya dapat ditetapkan jika Anda memilih opsiGroup by columns
atauGroup all
.Temporal total weight
.Group temporal total weight
. Kolom ini hanya dapat ditetapkan jika Anda memilih opsiGroup by columns
atauGroup all
.
Pelajari perkiraan hierarkis lebih lanjut.
Klik Lanjutkan.
Di halaman Komputasi dan harga, konfigurasi sebagai berikut:
Masukkan jumlah jam maksimum yang diinginkan untuk melatih model Anda. Setelan ini membantu Anda membatasi biaya pelatihan. Waktu berlalu sebenarnya bisa lebih lama dari nilai ini, karena ada operasi lain yang terlibat dalam pembuatan model baru.
Waktu pelatihan yang disarankan berkaitan dengan ukuran horizon perkiraan dan data pelatihan Anda. Tabel di bawah ini memberikan beberapa contoh pelatihan perkiraan yang dijalankan, dan rentang waktu pelatihan yang diperlukan untuk melatih model berkualitas tinggi.
Baris Fitur Horizon perkiraan Waktu pelatihan 12 juta 10 6 3-6 jam 20 juta 50 13 6-12 jam 16 juta 30 365 24-48 jam Untuk informasi tentang harga pelatihan, lihat halaman harga.
Klik Mulai Pelatihan.
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 tab untuk bahasa atau lingkungan Anda:
REST
Anda menggunakan perintah trainingPipelines.create untuk melatih model.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- LOCATION: Region Anda.
- PROJECT: Project ID Anda.
- TRAINING_PIPELINE_DISPLAY_NAME: Nama tampilan untuk pipeline pelatihan yang dibuat untuk operasi ini.
-
TRAINING_TASK_DEFINITION: Metode pelatihan model.
- Encoder Padat deret waktu (TiDE)
gs://google-cloud-aiplatform/schema/trainingjob/definition/time_series_dense_encoder_forecasting_1.0.0.yaml
- Transformator Temporal Fusion (TFT)
gs://google-cloud-aiplatform/schema/trainingjob/definition/temporal_fusion_transformer_time_series_forecasting_1.0.0.yaml
- AutoML (L2L)
gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_forecasting_1.0.0.yaml
- Seq2Seq+
gs://google-cloud-aiplatform/schema/trainingjob/definition/seq2seq_plus_time_series_forecasting_1.0.0.yaml
- Encoder Padat deret waktu (TiDE)
- TARGET_COLUMN: Kolom (nilai) yang Anda inginkan untuk diprediksi oleh model ini.
- TIME_COLUMN: Kolom waktu. Pelajari lebih lanjut.
- TIME_SERIES_IDENTIFIER_COLUMN: Kolom ID deret waktu. Pelajari lebih lanjut.
- WEIGHT_COLUMN: (Opsional) Kolom bobot. Pelajari lebih lanjut.
- TRAINING_BUDGET: Jumlah waktu maksimum yang Anda inginkan untuk dilatih model, dalam milidetik jam node (1.000 milidetik jam node sama dengan satu jam node).
-
GRANULARITY_UNIT: Unit yang akan digunakan untuk perincian data pelatihan serta horizon perkiraan dan periode konteks Anda. Dapat berupa
minute
,hour
,day
,week
,month
, atauyear
. Pilihday
jika Anda ingin menggunakan pemodelan efek musim liburan. Pelajari cara memilih tingkat perincian data. - GRANULARITY_QUANTITY: Jumlah unit perincian yang membentuk interval di antara pengamatan dalam data pelatihan Anda. Harus berupa satu untuk semua unit kecuali menit, yang dapat berupa 1, 5, 10, 15, atau 30. Pelajari cara memilih tingkat perincian data.
- GROUP_COLUMNS: Nama kolom dalam tabel input pelatihan Anda yang mengidentifikasi pengelompokan untuk tingkat hierarki. Kolom harus berupa `time_Series_attribute_columns`. Pelajari lebih lanjut.
- GROUP_TOTAL_WEIGHT: Berat kerugian gabungan grup relatif terhadap kerugian individual. Dinonaktifkan jika disetel ke `0,0` atau tidak disetel. Jika kolom grup tidak ditetapkan, semua deret waktu akan diperlakukan sebagai bagian dari grup yang sama dan digabungkan pada semua deret waktu. Pelajari lebih lanjut.
- TEMPORAL_TOTAL_WEIGHT: Berat waktu kerugian gabungan relatif terhadap kerugian individual. Dinonaktifkan jika disetel ke `0,0` atau tidak disetel. Pelajari lebih lanjut.
- GROUP_TEMPORAL_TOTAL_WEIGHT: Berat kerugian gabungan total (grup x waktu) yang relatif terhadap kerugian individual. Dinonaktifkan jika disetel ke `0,0` atau tidak disetel. Jika kolom grup tidak ditetapkan, semua deret waktu akan diperlakukan sebagai bagian dari grup yang sama dan digabungkan ke semua deret waktu. Pelajari lebih lanjut.
-
HOLIDAY_REGIONS: (Opsional) Anda dapat memilih satu atau beberapa wilayah geografis untuk mengaktifkan pemodelan efek musim liburan. Selama pelatihan, Vertex AI membuat fitur kategori liburan dalam model berdasarkan tanggal dari TIME_COLUMN dan wilayah geografis yang ditentukan. Untuk mengaktifkannya, tetapkan GRANULARITY_UNIT ke
day
dan tentukan satu atau beberapa region di kolom HOLIDAY_REGIONS. Secara default, pemodelan efek liburan dinonaktifkan. Untuk mempelajari lebih lanjut, lihat Wilayah liburan. - FORECAST_HORIZON: Horizon perkiraan menentukan seberapa jauh model memperkirakan nilai target untuk setiap baris data prediksi di masa mendatang. Horizon perkiraan ditentukan dalam unit perincian data (GRANULARITY_UNIT). Pelajari lebih lanjut.
- CONTEXT_WINDOW: Periode konteks menetapkan rentang waktu ke belakang model selama pelatihan (dan untuk perkiraan). Dengan kata lain, untuk setiap titik data pelatihan, periode konteks menentukan seberapa jauh model mencari pola prediktif. Periode konteks ditentukan dalam unit perincian data (GRANULARITY_UNIT). Pelajari lebih lanjut.
- OPTIMIZATION_OBJECTIVE: Secara default, Vertex AI meminimalkan error akar rata-rata kuadrat (RMSE). Jika Anda menginginkan tujuan pengoptimalan yang berbeda untuk model perkiraan Anda, pilih salah satu opsi di Tujuan pengoptimalan untuk model perkiraan. Jika memilih untuk meminimalkan kerugian kuantil, Anda juga harus menentukan nilai untuk QUANTILES.
-
PROBABILISTIC_INFERENCE: (Opsional) Jika ditetapkan ke
true
, Vertex AI akan memodelkan distribusi probabilitas perkiraan. Inferensi probabilistik dapat meningkatkan kualitas model dengan menangani data yang mengandung noise dan mengukur ketidakpastian. Jika QUANTILES ditentukan, maka Vertex AI juga menampilkan kuantil distribusi probabilitas. Inferensi probabilistik hanya kompatibel denganTime series Dense Encoder (TiDE)
and the
AutoML (L2L)
training methods. It is incompatible with hierarchical forecasting and theminimize-quantile-loss
optimization objective. -
QUANTILES: Quantiles to use for the
minimize-quantile-loss
optimization objective and probabilistic inference. Provide a list of up to five unique numbers between0
and1
, exclusive. - TIME_SERIES_ATTRIBUTE_COL: The name or names of the columns that are time series attributes. Learn more.
- AVAILABLE_AT_FORECAST_COL: The name or names of the covariate columns whose value is known at forecast time. Learn more.
- UNAVAILABLE_AT_FORECAST_COL: The name or names of the covariate columns whose value is unknown at forecast time. Learn more.
- TRANSFORMATION_TYPE: The transformation type is provided for each column used to train the model. Learn more.
- COLUMN_NAME: The name of the column with the specified transformation type. Every column used to train the model must be specified.
- MODEL_DISPLAY_NAME: Display name for the newly trained model.
- DATASET_ID: ID for the training Dataset.
-
You can provide a
Split
object to control your data split. For information about controlling data split, see Control the data split using REST. -
You can provide a
windowConfig
object to configure a rolling window strategy for forecast window generation. For further information, see Configure the rolling window strategy using REST. - PROJECT_NUMBER: Your project's automatically generated project number
HTTP method and URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines
Request JSON body:
{
"displayName": "TRAINING_PIPELINE_DISPLAY_NAME",
"trainingTaskDefinition": "TRAINING_TASK_DEFINITION",
"trainingTaskInputs": {
"targetColumn": "TARGET_COLUMN",
"timeColumn": "TIME_COLUMN",
"timeSeriesIdentifierColumn": "TIME_SERIES_IDENTIFIER_COLUMN",
"weightColumn": "WEIGHT_COLUMN",
"trainBudgetMilliNodeHours": TRAINING_BUDGET,
"dataGranularity": {"unit": "GRANULARITY_UNIT", "quantity": GRANULARITY_QUANTITY},
"hierarchyConfig": {"groupColumns": GROUP_COLUMNS, "groupTotalWeight": GROUP_TOTAL_WEIGHT, "temporalTotalWeight": TEMPORAL_TOTAL_WEIGHT, "groupTemporalTotalWeight": GROUP_TEMPORAL_TOTAL_WEIGHT}
"holidayRegions" : ["HOLIDAY_REGIONS_1", "HOLIDAY_REGIONS_2", ...]
"forecast_horizon": FORECAST_HORIZON,
"context_window": CONTEXT_WINDOW,
"optimizationObjective": "OPTIMIZATION_OBJECTIVE",
"quantiles": "QUANTILES",
"enableProbabilisticInference": "PROBABILISTIC_INFERENCE",
"time_series_attribute_columns": ["TIME_SERIES_ATTRIBUTE_COL_1", "TIME_SERIES_ATTRIBUTE_COL_2", ...]
"available_at_forecast_columns": ["AVAILABLE_AT_FORECAST_COL_1", "AVAILABLE_AT_FORECAST_COL_2", ...]
"unavailable_at_forecast_columns": ["UNAVAILABLE_AT_FORECAST_COL_1", "UNAVAILABLE_AT_FORECAST_COL_2", ...]
"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",
}
}
To send your request, expand one of these options:
You should receive a JSON response similar to the following:
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION/trainingPipelines/TRAINING_PIPELINE_ID",
"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"
}
Python
To learn how to install or update the Vertex AI SDK for Python, see Install the Vertex AI SDK for Python.
For more information, see the
Python API reference documentation.
Python
To learn how to install or update the Vertex AI SDK for Python, see Install the Vertex AI SDK for Python.
For more information, see the
Python API reference documentation.
Python
To learn how to install or update the Vertex AI SDK for Python, see Install the Vertex AI SDK for Python.
For more information, see the
Python API reference documentation.
Python
To learn how to install or update the Vertex AI SDK for Python, see Install the Vertex AI SDK for Python.
For more information, see the
Python API reference documentation.
Control the data split using REST
You can control how your training data is split between the training,
validation, and test sets. Use a split column to manually specify the data
split for each row and provide it as part of a PredefinedSplit
Split
object in the
inputDataConfig
of the JSON request.
DATA_SPLIT_COLUMN is the column containing the data split values
(TRAIN
, VALIDATION
, TEST
).
"predefinedSplit": {
"key": DATA_SPLIT_COLUMN
},
Learn more about data splits.
Configure the rolling window strategy using REST
You can provide a windowConfig
object to configure a rolling window strategy for
forecast window generation. The default strategy is maxCount
.
To use the maxCount
option, add the following to trainingTaskInputs
of
the JSON request. MAX_COUNT_VALUE refers to the maximum number
of windows.
"windowConfig": {
"maxCount": MAX_COUNT_VALUE
},
```
To use the strideLength
option, add the following to trainingTaskInputs
of the JSON request. STRIDE_LENGTH_VALUE refers to the value of
the stride length.
"windowConfig": {
"strideLength": STRIDE_LENGTH_VALUE
},
```
To use the column
option, add the following to trainingTaskInputs
of
the JSON request. COLUMN_NAME refers to the name of the column
with True
or False
values.
"windowConfig": {
"column": "COLUMN_NAME"
},
```
To learn more, see Rolling window strategies.
What's next