Pernyataan CREATE MODEL untuk model khusus transformasi

Dokumen ini menjelaskan pernyataan CREATE MODEL untuk membuat model khusus transformasi di BigQuery. Model khusus transformasi menggunakan klausa TRANSFORM untuk menerapkan fungsi pra-pemrosesan guna memasukkan data dan menampilkan data yang sudah diproses sebelumnya. Model khusus transformasi memisahkan pra-pemrosesan data dari pelatihan model, sehingga memudahkan Anda untuk mengambil dan menggunakan kembali sekumpulan aturan pra-pemrosesan data.

Anda dapat menggunakan model khusus transformasi bersama dengan fungsi ML.TRANSFORM untuk memberikan data yang telah diproses sebelumnya ke model lain:

  • Anda dapat menggunakannya dalam pernyataan kueri saat membuat model lain untuk menggunakan data yang ditransformasi sebagai data pelatihan untuk model tersebut.
  • Anda dapat menggunakannya dalam argumen query statement pada fungsi ML.PREDICT agar dapat menyediakan data untuk prediksi yang diproses dengan cara yang diharapkan oleh model target.

Untuk transformasi fitur batch, sebaiknya gunakan model khusus transformasi karena memungkinkan Anda memproses data dalam jumlah besar dalam waktu singkat. Untuk transformasi fitur online, sebaiknya gunakan Vertex AI Feature Store karena menyediakan respons dengan latensi rendah.

Anda juga dapat menggunakan model khusus transformasi dengan fungsi ML.FEATURE_INFO untuk menampilkan informasi tentang transformasi fitur dalam model.

Untuk mengetahui informasi tentang pernyataan dan fungsi SQL yang didukung pada setiap jenis model, lihat Perjalanan pengguna menyeluruh untuk setiap model.

Sintaksis CREATE MODEL

{CREATE MODEL | CREATE MODEL IF NOT EXISTS | CREATE OR REPLACE MODEL} model_name
TRANSFORM (select_list)
OPTIONS(MODEL_TYPE = 'TRANSFORM_ONLY')
AS query_statement

CREATE MODEL

Membuat dan melatih model baru di set data yang ditentukan. Jika nama model ada, CREATE MODEL akan menampilkan error.

CREATE MODEL IF NOT EXISTS

Membuat dan melatih model baru hanya jika model tersebut tidak ada dalam set data yang ditentukan.

CREATE OR REPLACE MODEL

Membuat dan melatih model serta mengganti model yang ada dengan nama yang sama dalam set data yang ditentukan.

model_name

Nama model yang Anda buat atau ganti. Nama model dalam set data harus unik: tidak ada model atau tabel lain yang dapat memiliki nama yang sama. Nama model harus mengikuti aturan penamaan yang sama dengan tabel BigQuery. Nama model dapat:

  • Berisi maksimal 1.024 karakter
  • Berisi huruf (huruf besar atau kecil), angka, dan garis bawah

model_name tidak peka huruf besar/kecil.

Jika tidak memiliki project default yang dikonfigurasi, Anda harus menambahkan project ID ke nama model dalam format berikut, termasuk tanda kutip terbalik:

`[PROJECT_ID].[DATASET].[MODEL]`

Misalnya, `myproject.mydataset.mymodel`.

select_list

Anda dapat meneruskan kolom dari query_statement ke pelatihan model tanpa transformasi menggunakan ** EXCEPT(), atau dengan langsung mencantumkan nama kolom.

Tidak semua kolom dari query_statement harus muncul dalam klausa TRANSFORM, sehingga Anda dapat menghapus kolom yang muncul di query_statement dengan menghilangkannya dari klausa TRANSFORM.

Anda dapat mengubah input dari query_statement menggunakan ekspresi dalam select_list. select_list mirip dengan pernyataan SELECT normal. select_list mendukung sintaksis berikut:

  • *
  • * EXCEPT()
  • * REPLACE()
  • expression
  • expression.*

Hal berikut tidak dapat muncul di dalam select_list:

  • Fungsi agregasi.
  • Fungsi analisis ML non-BigQuery. Untuk mengetahui informasi selengkapnya tentang fungsi yang didukung, lihat Prapemrosesan fitur manual.
  • UDF.
  • {i>Subqueries<i}
  • Kolom anonim. Misalnya, a + b as c diizinkan, sedangkan a + b tidak diizinkan.

Kolom output select_list dapat berupa jenis data apa pun yang didukung BigQuery.

Jika ada, kolom berikut harus muncul di select_list tanpa transformasi:

  • label
  • data_split_col
  • kmeans_init_col
  • instance_weight_col

Jika kolom ini ditampilkan oleh query_statement, Anda harus mereferensikannya di select_list dengan nama kolom di luar ekspresi apa pun, atau menggunakan *. Anda tidak dapat menggunakan alias dengan kolom ini.

MODEL_TYPE

Sintaks

MODEL_TYPE = 'TRANSFORM_ONLY'

Deskripsi

Tentukan jenis model. Opsi ini wajib diisi.

query_statement

Kueri GoogleSQL yang berisi data yang akan diproses sebelumnya. Statistik yang dihitung saat mengubah data ini diterapkan ke data input fungsi apa pun yang Anda gunakan dengan model tersebut.

Contoh

Contoh berikut menunjukkan cara membuat dan menggunakan model khusus transformasi.

Contoh 1

Contoh berikut membuat model bernama mymodel di mydataset dalam project default Anda. Model ini mengubah beberapa kolom dari tabel publik BigQuery bigquery-public-data.ml_datasets.penguins:

CREATE MODEL `mydataset.transform_model`
  TRANSFORM(
    species,
    island,
    ML.MAX_ABS_SCALER(culmen_length_mm) OVER () AS culmen_length_mm,
    ML.MAX_ABS_SCALER(culmen_depth_mm) OVER () AS culmen_depth_mm,
    ML.MAX_ABS_SCALER(flipper_length_mm) OVER () AS flipper_length_mm,
    sex,
    body_mass_g)
  OPTIONS (
    model_type = 'transform_only')
AS (
  SELECT *
  FROM `bigquery-public-data.ml_datasets.penguins`
);

Contoh 2

Contoh berikut membuat model bernama mymodel di mydataset dalam project default Anda. Model ini dilatih pada data yang telah diproses sebelumnya menggunakan model khusus transformasi:

CREATE MODEL `mydataset.mymodel`
OPTIONS
  ( MODEL_TYPE = 'LINEAR_REG',
    MAX_ITERATIONS = 5,
    INPUT_LABEL_COLS = ['body_mass_g'] ) AS
SELECT
  *
FROM
  ML.TRANSFORM(
    MODEL `mydataset.transform_model`,
    TABLE `bigquery-public-data.ml_datasets.penguins`)
WHERE body_mass_g IS NOT NULL;