Meningkatkan performa model dengan penyesuaian hyperparameter


Tutorial ini menunjukkan cara menggunakan penyesuaian hyperparameter pada BigQuery ML dengan menentukan opsi pelatihan NUM_TRIALS untuk mengaktifkan sekumpulan uji coba pelatihan model.

Dalam tutorial ini, Anda menggunakan tabel contoh tlc_yellow_trips_2018 untuk membuat model yang memprediksi tip perjalanan dengan taksi. Dengan penyesuaian hyperparameter, model ini menunjukkan peningkatan performa sebesar ~40% dalam tujuan penyesuaian hyperparameter R2_SCORE.

Tujuan

Dalam tutorial ini, Anda akan menggunakan:

  • BigQuery ML untuk membuat model regresi linear menggunakan pernyataan CREATE MODEL dengan NUM_TRIALS yang disetel ke 20.
  • Fungsi ML.TRIAL_INFO untuk memeriksa ringkasan 20 uji coba
  • Fungsi ML.EVALUATE untuk mengevaluasi model ML
  • Fungsi ML.PREDICT untuk membuat prediksi menggunakan model ML

Biaya

Tutorial ini menggunakan komponen Google Cloud yang dapat ditagih, termasuk:

  • BigQuery
  • BigQuery ML

Untuk mengetahui informasi selengkapnya tentang biaya BigQuery, lihat halaman harga BigQuery.

Sebelum memulai

  1. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  2. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  3. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  4. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  5. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  6. BigQuery secara otomatis diaktifkan dalam project baru. Untuk mengaktifkan BigQuery dalam project yang sudah ada, buka

    Enable the BigQuery API.

    Enable the API

Langkah pertama: Buat set data pelatihan Anda

Buat set data BigQuery untuk menyimpan model ML Anda:

  1. Di konsol Google Cloud, buka halaman BigQuery.

    Buka halaman BigQuery

  2. Di panel Explorer, klik nama project Anda.

  3. Klik View actions > Create dataset.

    Buat set data.

  4. Di halaman Create dataset, lakukan hal berikut:

    • Untuk Dataset ID, masukkan bqml_tutorial.

    • Untuk Location type, pilih Multi-region, lalu pilih US (multiple regions in United States).

      Set data publik disimpan di US multi-region. Untuk mempermudah, simpan set data Anda di lokasi yang sama.

    • Jangan ubah setelan default yang tersisa, lalu klik Create dataset.

      Halaman Create dataset.

Langkah kedua: Buat tabel input pelatihan Anda

Pada langkah ini, Anda akan merealisasikan tabel input pelatihan dengan 100 ribu baris.

  1. Lihat skema tabel sumber tlc_yellow_trips_2018.

    Skema tabel.

  2. Membuat tabel data input pelatihan.

CREATE TABLE `bqml_tutorial.taxi_tip_input` AS
SELECT
  * EXCEPT(tip_amount), tip_amount AS label
FROM
  `bigquery-public-data.new_york_taxi_trips.tlc_yellow_trips_2018`
WHERE
  tip_amount IS NOT NULL
LIMIT 100000

Langkah ketiga: Buat model Anda

Selanjutnya, buat model regresi linear dengan penyesuaian hyperparameter menggunakan tabel sampel tlc_yellow_trips_2018 di BigQuery. Kueri GoogleSQL berikut digunakan untuk membuat model dengan penyesuaian hyperparameter.

CREATE MODEL `bqml_tutorial.hp_taxi_tip_model`
OPTIONS
  (MODEL_TYPE='LINEAR_REG',
   NUM_TRIALS=20,
   MAX_PARALLEL_TRIALS=2) AS
SELECT
  *
FROM
  `bqml_tutorial.taxi_tip_input`

Detail kueri

Model LINEAR_REG memiliki dua hyperparameter yang dapat disesuaikan: l1_reg dan l2_reg. Kueri di atas menggunakan ruang penelusuran default. Anda juga dapat menentukan ruang penelusuran secara eksplisit:

OPTIONS
  (...
    L1_REG=HPARAM_RANGE(0, 20),
    L2_REG=HPARAM_CANDIDATES([0, 0.1, 1, 10]))

Selain itu, opsi pelatihan penyesuaian hyperparameter lain juga menggunakan nilai defaultnya:

  • HPARAM_TUNING_ALGORITHM: "VIZIER_DEFAULT"
  • HPARAM_TUNING_OBJECTIVES: ["r2_score"]

MAX_PARALLEL_TRIALS disetel ke 2 untuk mempercepat proses penyesuaian. Dengan 2 uji coba yang berjalan kapan saja, seluruh penyesuaian akan memerlukan waktu sekitar 10 tugas pelatihan serial, bukan 20. Namun, perlu diperhatikan bahwa kedua uji coba serentak tidak dapat memberikan manfaat dari hasil pelatihan satu sama lain.

Menjalankan kueri CREATE MODEL

Untuk menjalankan kueri CREATE MODEL guna membuat dan melatih model Anda:

  1. Di konsol Google Cloud, klik tombol Compose new query.

  2. Masukkan kueri GoogleSQL di atas di area teks Query editor.

  3. Klik Run.

    Kueri membutuhkan waktu sekitar 17 menit untuk menyelesaikannya. Anda dapat melacak progres penyesuaian pada detail eksekusi di bagian Stages:

    Progres penyesuaian.

Langkah keempat: Dapatkan informasi uji coba

Untuk melihat ringkasan semua uji coba termasuk hyperparameter, tujuan, status, dan uji coba yang optimal, Anda dapat menggunakan fungsi ML.TRIAL_INFO, dan Anda dapat melihat hasilnya di konsol Google Cloud setelah menjalankan SQL.

SELECT *
FROM
  ML.TRIAL_INFO(MODEL `bqml_tutorial.hp_taxi_tip_model`)

Anda dapat menjalankan kueri SQL ini segera setelah satu uji coba selesai. Jika penyesuaian dihentikan di tengah, semua uji coba yang telah selesai akan tetap dapat digunakan.

Langkah kelima: Evaluasi model Anda

Setelah membuat model, Anda bisa mendapatkan metrik evaluasi dari semua uji coba dengan menggunakan fungsi ML.EVALUATE atau melalui konsol Google Cloud.

Jalankan ML.EVALUATE

SELECT *
FROM
  ML.EVALUATE(MODEL `bqml_tutorial.hp_taxi_tip_model`)

SQL ini mengambil metrik evaluasi untuk semua uji coba yang dihitung dari data TEST. Lihat bagian Pembagian Data untuk melihat perbedaan antara tujuan ML.TRIAL_INFO dan metrik evaluasi ML.EVALUATE.

Anda juga dapat mengevaluasi uji coba tertentu dengan menyediakan data Anda sendiri. Harap periksa ML.EVALUATE untuk mengetahui detail selengkapnya.

Memeriksa metrik evaluasi melalui konsol Google Cloud

Anda juga dapat memeriksa metrik evaluasi dengan memilih tab EVALUATION.

Evaluasi penyesuaian.

Langkah keenam: Gunakan model Anda untuk memprediksi tip taksi

Setelah mengevaluasi model, langkah berikutnya adalah menggunakannya untuk memprediksi tip taksi.

Kueri yang digunakan untuk memprediksi tip adalah sebagai berikut:

SELECT
  *
FROM
  ML.PREDICT(MODEL `bqml_tutorial.hp_taxi_tip_model`,
    (
    SELECT
      *
    FROM
      `bqml_tutorial.taxi_tip_input`
    LIMIT 10))

Detail kueri

Pernyataan SELECT paling atas mengambil semua kolom termasuk kolom predicted_label. Kolom ini dihasilkan oleh fungsi ML.PREDICT. Saat Anda menggunakan fungsi ML.PREDICT, nama kolom output untuk model adalah predicted_label_column_name.

Prediksi dibuat terhadap uji coba optimal secara default. Anda dapat memilih uji coba lainnya dengan menentukan parameter trial_id.

SELECT
  *
FROM
  ML.PREDICT(MODEL `bqml_tutorial.hp_taxi_tip_model`,
    (
    SELECT
      *
    FROM
      `bqml_tutorial.taxi_tip_input`
    LIMIT
      10),
    STRUCT(3 AS trial_id))

Lihat ML.PREDICT untuk mengetahui detail selengkapnya tentang cara menggunakan fungsi inferensi model.

Pembersihan

Agar akun Google Cloud Anda tidak dikenai biaya untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource tersebut, atau simpan project dan hapus resource satu per satu.

  • Anda dapat menghapus project yang dibuat.
  • Atau, Anda dapat menyimpan project dan menghapus set data.

Menghapus set data

Jika project Anda dihapus, semua set data dan semua tabel dalam project akan dihapus. Jika ingin menggunakan kembali project tersebut, Anda dapat menghapus set data yang dibuat dalam tutorial ini:

  1. Jika perlu, buka halaman BigQuery di konsol Google Cloud.

    Buka halaman BigQuery

  2. Di panel navigasi, klik set data bqml_tutorial yang telah Anda buat.

  3. Di sisi kanan jendela, klik Delete dataset. Tindakan ini akan menghapus set data, tabel, dan semua data.

  4. Di kotak dialog Delete dataset, konfirmasi perintah hapus dengan mengetikkan nama set data Anda (bqml_tutorial), lalu klik Delete.

Menghapus project Anda

Untuk menghapus project:

  1. Di konsol Google Cloud, buka halaman Manage resource.

    Buka Manage resource

  2. Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
  3. Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.

Langkah selanjutnya