Melatih model dengan AutoML End-to-End

Halaman ini menunjukkan cara melatih model klasifikasi atau regresi dari set data berbentuk tabel dengan Tabular Workflow untuk AutoML End-to-End.

Sebelum memulai

Sebelum dapat melatih model, Anda harus menyelesaikan langkah-langkah berikut ini:

Jika Anda menerima error terkait kuota saat menjalankan Tabular Workflow untuk AutoML End-to-End, Anda mungkin perlu meminta kuota yang lebih tinggi. Untuk mempelajari lebih lanjut, lihat Mengelola kuota untuk Tabular Workflow.

Mendapatkan URI dari hasil penyesuaian hyperparameter sebelumnya

Jika sebelumnya telah menyelesaikan alur kerja AutoML End-to-End, Anda dapat menggunakan hasil penyesuaian hyperparameter dari proses sebelumnya untuk menghemat waktu dan resource pelatihan. Anda dapat menemukan hasil penyesuaian hyperparameter sebelumnya dengan menggunakan konsol Google Cloud, atau dengan memuatnya secara terprogram menggunakan API.

Konsol Google Cloud

Untuk menemukan URI hasil penyesuaian hyperparameter menggunakan Konsol Google Cloud, lakukan langkah-langkah berikut ini:

  1. Di Konsol Google Cloud, di bagian Vertex AI, buka halaman Pipeline.

    Buka halaman Pipeline

  2. Pilih tab Operasi.

  3. Pilih operasi pipeline yang ingin Anda gunakan.

  4. Pilih Luaskan Artefak.

  5. Klik komponen exit-handler-1.

  6. Klik komponen stage_1_tuning_result_artifact_uri_empty.

  7. Cari komponen automl-tabular-cv-trainer-2.

  8. Klik artefak terkait tuning_result_output.

  9. Pilih tab Info Node.

  10. Salin URI untuk digunakan di langkah Melatih model.

hasil penelusuran arsitektur

API: Python

Kode contoh berikut ini menunjukkan cara agar Anda dapat memuat hasil penyesuaian hyperparameter menggunakan API. Variabel job mengacu pada operasi pipeline pelatihan model sebelumnya.


def get_task_detail(
  task_details: List[Dict[str, Any]], task_name: str
) -> List[Dict[str, Any]]:
  for task_detail in task_details:
      if task_detail.task_name == task_name:
          return task_detail

pipeline_task_details = job.gca_resource.job_detail.task_details

stage_1_tuner_task = get_task_detail(
    pipeline_task_details, "automl-tabular-stage-1-tuner"
)
stage_1_tuning_result_artifact_uri = (
    stage_1_tuner_task.outputs["tuning_result_output"].artifacts[0].uri
)

Melatih model

Konsol Google Cloud

Untuk melatih model menggunakan konsol Google Cloud, lakukan langkah-langkah berikut:

  1. Di Konsol Google Cloud, di bagian Vertex AI, buka halaman Pipeline.

    Buka halaman Pipeline

  2. Pilih tab Galeri Template.

  3. Di kartu AutoML untuk Klasifikasi/Regresi Tabel, klik Buat operasi.

  4. Di halaman Detail operasi, konfigurasi sebagai berikut:

    1. Masukkan nama operasi pipeline.
    2. Opsional: Jika Anda ingin menetapkan akun layanan Vertex AI Pipelines atau akun layanan worker Dataflow, buka menu Opsi lanjutan. Pelajari akun layanan lebih lanjut
    3. Klik Lanjutkan.

  5. Di halaman Konfigurasi runtime, konfigurasikan sebagai berikut:

    1. Masukkan bucket Cloud Storage atau folder dalam bucket untuk digunakan sebagai direktori output root. Direktori ini akan digunakan untuk menyimpan file perantara, seperti set data terwujud dan model. Jangan lupa untuk membersihkan direktori setelah pelatihan selesai dan model serta artefak penting lainnya disalin ke bucket Cloud Storage lain. Sebagai alternatif, tetapkan Time to Live (TTL) untuk bucket Cloud Storage.

      Bucket untuk project Anda tercantum di bagian Cloud Storage pada konsol Google Cloud.

      Buka halaman Bucket

    2. Klik Lanjutkan.

  6. Di halaman Metode pelatihan, konfigurasi sebagai berikut:

    1. Pilih nama set data yang ingin Anda gunakan untuk melatih model.
    2. Pilih kolom target. Kolom target adalah nilai yang akan diprediksi oleh model. Pelajari persyaratan kolom target lebih lanjut.
    3. Masukkan nama tampilan untuk model baru Anda.
    4. Opsional: Untuk memilih cara memisahkan data antara set pelatihan, pengujian, dan validasi, buka Opsi lanjutan. Anda dapat memilih di antara opsi pemisahan data berikut:
      • Acak (Default): Vertex AI secara acak memilih baris yang terkait dengan tiap set data. Secara default, Vertex AI memilih 80% baris data Anda untuk set pelatihan, 10% untuk set validasi, dan 10% untuk set pengujian. Tetapkan persentase baris data yang ingin dikaitkan dengan masing-masing set data.
      • Manual: Vertex AI memilih baris data untuk setiap set data berdasarkan nilai dalam kolom pemisahan data. Berikan nama kolom pembagian data.
      • Kronologis: Vertex AI membagi data berdasarkan stempel waktu dalam kolom waktu. Masukkan nama kolom waktu. Anda juga dapat menetapkan persentase baris data yang ingin dikaitkan dengan set pelatihan, set validasi, dan set pengujian.
      • Bertingkat: Vertex AI secara acak memilih baris yang terkait dengan setiap set data, tetapi mempertahankan distribusi nilai kolom target. Masukkan nama kolom target. Anda juga dapat menetapkan persentase baris data yang ingin dikaitkan dengan set pelatihan, set validasi, dan set pengujian.
      Pelajari pemisahan data lebih lanjut.
    5. Opsional: Anda dapat menjalankan pipeline tanpa penelusuran arsitektur. Jika memilih Lewati penelusuran arsitektur, Anda akan diminta untuk menyediakan set hyperparameter dari operasi pipeline sebelumnya yang dijalankan di halaman Opsi pelatihan.
    6. Klik Lanjutkan.

  7. Di halaman Opsi pelatihan, konfigurasikan sebagai berikut:

    1. Opsional: Klik Buat statistik. Membuat statistik akan mengisi menu dropdown Transformasi.
    2. Tinjau daftar kolom Anda dan kecualikan setiap kolom dari pelatihan yang tidak boleh digunakan untuk melatih model.
    3. 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.
    4. Jika Anda memilih untuk melewati penelusuran arsitektur di halaman Metode pelatihan, berikan jalur ke hasil penyesuaian hyperparameter dari operasi pipeline sebelumnya.
    5. Opsional: Jika Anda ingin menentukan kolom bobot, buka Opsi lanjutan dan tentukan pilihan Anda. Pelajari kolom bobot lebih lanjut.
    6. Opsional: Jika Anda ingin mengubah tujuan pengoptimalan dari default, buka Opsi lanjutan dan tentukan pilihan Anda. Pelajari tujuan pengoptimalan lebih lanjut.
    7. Opsional: Jika memilih untuk melakukan penelusuran arsitektur di halaman Metode pelatihan, Anda dapat menentukan jumlah uji coba paralel. Buka Opsi lanjutan, lalu masukkan nilai Anda.
    8. Opsional: Anda dapat memberikan nilai tetap untuk subset hyperparameter. Vertex AI menelusuri nilai optimal dari hyperparameter yang tidak tetap lainnya. Opsi ini adalah pilihan yang baik jika Anda memiliki preferensi yang kuat untuk jenis model tersebut. Anda dapat memilih antara jaringan neural dan hierarki yang ditingkatkan untuk jenis model Anda. Buka Opsi lanjutan dan berikan penggantian spesifikasi studi dalam format JSON.

      Misalnya, jika Anda ingin menetapkan jenis model ke Jaringan Neural (NN), masukkan jenis model berikut:

      [
        {
          "parameter_id": "model_type",
          "categorical_value_spec": {
            "values": ["nn"]
          }
        }
      ]
      

    9. Klik Lanjutkan.

  8. Di halaman Komputasi dan harga, konfigurasi sebagai berikut:

    1. Masukkan jumlah jam maksimum yang diinginkan untuk melatih model Anda. Pelajari pricing lebih lanjut.
    2. Opsional: Di bagian Setelan Komputasi, Anda dapat mengonfigurasi jenis mesin dan jumlah mesin untuk setiap tahap alur kerja. Opsi ini adalah pilihan yang tepat jika Anda memiliki set data besar dan ingin mengoptimalkan hardware mesin.

  9. Klik Kirim.

API: Python

Kode contoh berikut ini menunjukkan Anda cara untuk menjalankan pipeline pelatihan model:

job = aiplatform.PipelineJob(
    ...
    template_path=template_path,
    parameter_values=parameter_values,
    ...
)
job.run(service_account=SERVICE_ACCOUNT)

Parameter service_account opsional di job.run() memungkinkan Anda menetapkan akun layanan Vertex AI Pipelines ke akun pilihan Anda.

Pipeline dan nilai parameter ditentukan oleh fungsi berikut. Data pelatihan dapat berupa file CSV di Cloud Storage, atau tabel di BigQuery.

template_path, parameter_values = automl_tabular_utils.get_automl_tabular_pipeline_and_parameters(...)

Berikut adalah subset parameter get_automl_tabular_pipeline_and_parameters:

Nama parameter Jenis Definisi
data_source_csv_filenames String URI untuk CSV yang disimpan di Cloud Storage.
data_source_bigquery_table_path String URI untuk tabel BigQuery.
dataflow_service_account String (Opsional) Akun layanan kustom untuk menjalankan tugas Dataflow. Tugas Dataflow dapat dikonfigurasi untuk menggunakan IP pribadi dan subnet VPC tertentu. Parameter ini berfungsi sebagai pengganti untuk akun layanan worker Dataflow default.
prediction_type String Pilih classification untuk melatih model klasifikasi atau regression untuk melatih model regresi.
optimization_objective String Jika Anda melatih model klasifikasi biner, tujuan {i>default<i} adalah ABK ROC. Jika Anda melatih model regresi, tujuan defaultnya adalah RMSE. Jika Anda menginginkan tujuan pengoptimalan yang berbeda untuk model Anda, pilih salah satu opsi di Tujuan pengoptimalan untuk model klasifikasi atau regresi.
enable_probabilistic_inference Boolean Jika Anda melatih model regresi dan menetapkan nilai ini ke true, Vertex AI akan memodelkan distribusi probabilitas prediksi. Inferensi probabilistik dapat meningkatkan kualitas model dengan menangani data yang mengandung noise dan mengukur ketidakpastian. Jika quantiles ditentukan, Vertex AI juga akan menampilkan kuantil distribusi.
quantiles Daftar[float] Kuantile yang akan digunakan untuk inferensi probabilistik. Kuantil menunjukkan kemungkinan bahwa target kurang dari nilai yang diberikan. Berikan daftar hingga lima nomor unik antara 0 dan 1, eksklusif.

Opsi penyesuaian alur kerja

Anda dapat menyesuaikan alur kerja AutoML End-to-End dengan menentukan nilai argumen yang diteruskan selama definisi pipeline. Anda dapat menyesuaikan alur kerja Anda dengan cara berikut ini:

  • Mengganti ruang penelusuran
  • Mengonfigurasi hardware
  • Menyaring model
  • Melewati penelusuran arsitektur

Mengganti ruang penelusuran

Parameter get_automl_tabular_pipeline_and_parameters berikut memungkinkan Anda memberikan nilai tetap untuk subset hyperparameter. Vertex AI menelusuri nilai optimal dari hyperparameter yang tidak tetap lainnya. Gunakan parameter ini jika Anda ingin memilih antara jaringan neural dan hierarki yang ditingkatkan untuk jenis model Anda.

Nama parameter Jenis Definisi
study_spec_parameters_override List[Dict[String, Any]] (Opsional) Subset kustom hyperparameter. Parameter ini mengonfigurasi komponen automl-tabular-stage-1-tuner dari pipeline tersebut.

Kode berikut menunjukkan cara menetapkan jenis model ke Jaringan Neural (NN):

study_spec_parameters_override = [
  {
    "parameter_id": "model_type",
    "categorical_value_spec": {
      "values": ["nn"] # The default value is ["nn", "boosted_trees"], this reduces the search space
    }
  }
]

Mengonfigurasi hardware

Parameter get_automl_tabular_pipeline_and_parameters berikut memungkinkan Anda mengonfigurasi jenis mesin dan jumlah mesin untuk pelatihan. Opsi ini adalah pilihan yang tepat jika Anda memiliki set data besar dan ingin mengoptimalkan hardware mesin.

Nama parameter Jenis Definisi
stage_1_tuner_worker_pool_specs_override Dict[String, Any] (Opsional) Konfigurasi kustom jenis mesin, dan jumlah mesin untuk pelatihan. Parameter ini mengonfigurasi komponen automl-tabular-stage-1-tuner dari pipeline tersebut.
cv_trainer_worker_pool_specs_override Dict[String, Any] (Opsional) Konfigurasi kustom jenis mesin, dan jumlah mesin untuk pelatihan. Parameter ini mengonfigurasi komponen automl-tabular-stage-1-tuner dari pipeline tersebut.

Kode berikut menunjukkan cara menetapkan jenis mesin n1-standard-8 untuk node utama TensorFlow dan jenis mesin n1-standard-4 untuk node evaluator TensorFlow:

worker_pool_specs_override = [
  {"machine_spec": {"machine_type": "n1-standard-8"}}, # override for TF chief node
  {},  # override for TF worker node, since it's not used, leave it empty
  {},  # override for TF ps node, since it's not used, leave it empty
  {
    "machine_spec": {
        "machine_type": "n1-standard-4" # override for TF evaluator node
    }
  }
]

Menyaring model

Parameter get_automl_tabular_pipeline_and_parameters berikut memungkinkan Anda membuat versi model ansambel yang lebih kecil. Model yang lebih kecil mengurangi latensi dan biaya untuk prediksi.

Nama parameter Jenis Definisi
run_distillation Boolean Jika TRUE, akan membuat versi model ansambel yang lebih kecil.

Melewati penelusuran arsitektur

Parameter get_automl_tabular_pipeline_and_parameters berikut memungkinkan Anda menjalankan pipeline tanpa penelusuran arsitektur dan menyediakan sekumpulan hyperparameter dari operasi pipeline sebelumnya.

Nama parameter Jenis Definisi
stage_1_tuning_result_artifact_uri String (Opsional) URI hasil penyesuaian hyperparameter dari operasi pipeline sebelumnya.

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.
Model regresi paling cocok untuk:
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 selanjutnya