Mengekspor model

Halaman ini menunjukkan cara mengekspor model BigQuery ML. Anda dapat mengekspor model BigQuery ML ke Cloud Storage, dan menggunakannya untuk prediksi online, atau mengeditnya di Python. Anda dapat mengekspor model BigQuery ML dengan:

Anda dapat mengekspor jenis model berikut:

  • AUTOENCODER
  • AUTOML_CLASSIFIER
  • AUTOML_REGRESSOR
  • BOOSTED_TREE_CLASSIFIER
  • BOOSTED_TREE_REGRESSOR
  • DNN_CLASSIFIER
  • DNN_REGRESSOR
  • DNN_LINEAR_COMBINED_CLASSIFIER
  • DNN_LINEAR_COMBINED_REGRESSOR
  • KMEANS
  • LINEAR_REG
  • LOGISTIC_REG
  • MATRIX_FACTORIZATION
  • RANDOM_FOREST_CLASSIFIER
  • RANDOM_FOREST_REGRESSOR
  • TENSORFLOW (model TensorFlow yang diimpor)
  • PCA
  • TRANSFORM_ONLY

Mengekspor format dan contoh model

Tabel berikut menampilkan format tujuan ekspor untuk setiap jenis model BigQuery ML dan memberikan sampel file yang ditulis di bucket Cloud Storage.

Jenis model Mengekspor format model Contoh file yang diekspor
AUTOML_CLASSIFIER TensorFlow SavedModel (TF 2.1.0) gcs_bucket/
  assets/
    f1.txt
    f2.txt
  saved_model.pb
  variables/
    variables.data-00-of-01
    variables.index
AUTOML_REGRESSOR
AUTOENCODER TensorFlow SavedModel (TF 1.15 atau yang lebih tinggi)
DNN_CLASSIFIER
DNN_REGRESSOR
DNN_LINEAR_COMBINED_CLASSIFIER
DNN_LINEAR_COMBINED_REGRESSOR
KMEANS
LINEAR_REGRESSOR
LOGISTIC_REG
MATRIX_FACTORIZATION
PCA
TRANSFORM_ONLY
BOOSTED_TREE_CLASSIFIER Booster (XGBoost 0.82) gcs_bucket/
  assets/
    0.txt
    1.txt
    model_metadata.json
  main.py
  model.bst
  xgboost_predictor-0.1.tar.gz
    ....
     predictor.py
    ....


main.py adalah untuk operasi lokal. Lihat Deployment model untuk detail selengkapnya.
BOOSTED_TREE_REGRESSOR
RANDOM_FOREST_REGRESSOR
RANDOM_FOREST_REGRESSOR
TENSORFLOW (diimpor) TensorFlow SavedModel File yang sama persis dengan yang ada saat mengimpor model

Mengekspor model yang dilatih dengan TRANSFORM

Jika model dilatih dengan klausa TRANSFORM, maka model pra-pemrosesan tambahan akan menjalankan logika yang sama dalam klausa TRANSFORM dan disimpan dalam format TensorFlow SavedModel di bawah subdirektori transform. Anda dapat men-deploy model yang dilatih dengan klausa TRANSFORM ke Vertex AI serta secara lokal. Untuk informasi selengkapnya, lihat deployment model.

Mengekspor format model Contoh file yang diekspor
Model prediksi: TensorFlow SavedModel atau Booster (XGBoost 0.82).
Model pra-pemrosesan untuk klausa TRANSFORM: TensorFlow SavedModel (TF 2.5 atau yang lebih tinggi)
gcs_bucket/
  ....(model files)
  transform/
    assets/
        f1.txt/
        f2.txt/
    saved_model.pb
    variables/
        variables.data-00-of-01
        variables.index

Model tidak berisi informasi tentang rekayasa fitur yang dilakukan di luar klausa TRANSFORM selama pelatihan. Misalnya, apa pun dalam pernyataan SELECT. Jadi, Anda harus mengonversi data input secara manual sebelum memasukkannya ke model pra-pemrosesan.

Jenis data yang didukung

Saat mengekspor model yang dilatih dengan klausa TRANSFORM, jenis data berikut didukung untuk dimasukkan ke klausa TRANSFORM.

Jenis input TRANSFORM Contoh input TRANSFORM Contoh input model pra-pemrosesan yang diekspor
INT64 10,
11
tf.constant(
  [10, 11],
  dtype=tf.int64)
NUMERIC NUMERIC 10,
NUMERIC 11
tf.constant(
  [10, 11],
  dtype=tf.float64)
BIGNUMERIC BIGNUMERIC 10,
BIGNUMERIC 11
tf.constant(
  [10, 11],
  dtype=tf.float64)
FLOAT64 10.0,
11.0
tf.constant(
  [10, 11],
  dtype=tf.float64)
BOOL TRUE,
FALSE
tf.constant(
  [True, False],
  dtype=tf.bool)
STRING 'abc',
'def'
tf.constant(
  ['abc', 'def'],
  dtype=tf.string)
BYTES b'abc',
b'def'
tf.constant(
  ['abc', 'def'],
  dtype=tf.string)
DATE DATE '2020-09-27',
DATE '2020-09-28'
tf.constant(
  [
    '2020-09-27',
    '2020-09-28'
  ],
  dtype=tf.string)

"%F" format
DATETIME DATETIME '2023-02-02 02:02:01.152903',
DATETIME '2023-02-03 02:02:01.152903'
tf.constant(
  [
    '2023-02-02 02:02:01.152903',
    '2023-02-03 02:02:01.152903'
  ],
  dtype=tf.string)

"%F %H:%M:%E6S" format
TIME TIME '16:32:36.152903',
TIME '17:32:36.152903'
tf.constant(
  [
    '16:32:36.152903',
    '17:32:36.152903'
  ],
  dtype=tf.string)

"%H:%M:%E6S" format
TIMESTAMP TIMESTAMP '2017-02-28 12:30:30.45-08',
TIMESTAMP '2018-02-28 12:30:30.45-08'
tf.constant(
  [
    '2017-02-28 20:30:30.4 +0000',
    '2018-02-28 20:30:30.4 +0000'
  ],
  dtype=tf.string)

"%F %H:%M:%E1S %z" format
ARRAY ['a', 'b'],
['c', 'd']
tf.constant(
  [['a', 'b'], ['c', 'd']],
  dtype=tf.string)
ARRAY< STRUCT< INT64, FLOAT64>> [(1, 1.0), (2, 1.0)],
[(2, 1.0), (3, 1.0)]
tf.sparse.from_dense(
  tf.constant(
    [
      [0, 1.0, 1.0, 0],
      [0, 0, 1.0, 1.0]
    ],
    dtype=tf.float64))
NULL NULL,
NULL
tf.constant(
  [123456789.0e10, 123456789.0e10],
  dtype=tf.float64)

tf.constant(
  [1234567890000000000, 1234567890000000000],
  dtype=tf.int64)

tf.constant(
  [' __MISSING__ ', ' __MISSING__ '],
  dtype=tf.string)

Fungsi SQL yang didukung

Saat mengekspor model yang dilatih dengan klausa TRANSFORM, Anda dapat menggunakan fungsi SQL berikut di dalam klausa TRANSFORM.

  • Operator
    • +, -, *, /, =, <, >, <=, >=, !=, <>, [NOT] BETWEEN, [NOT] IN, IS [NOT] NULL, IS [NOT] TRUE, IS [NOT] FALSE, NOT, AND, OR.
  • Ekspresi bersyarat
    • CASE expr, CASE, COALESCE, IF, IFNULL, NULLIF.
  • Fungsi matematika
    • ABS, ACOS, ACOSH, ASINH, ATAN, ATAN2, ATANH, CBRT, CEIL, CEILING, COS, COSH, COT, COTH, CSC, CSCH, EXP, FLOOR, IS_INF, IS_NAN, LN, LOG, LOG10, MOD, POW, POWER, SEC, SECH, SIGN, SIN, SINH, SQRT, TAN, TANH.
  • Fungsi konversi
    • CAST AS INT64, CAST AS FLOAT64, CAST AS NUMERIC, CAST AS BIGNUMERIC, CAST AS STRING, SAFE_CAST AS INT64, SAFE_CAST AS FLOAT64
  • Fungsi string
    • CONCAT, LEFT, LENGTH, LOWER, REGEXP_REPLACE, RIGHT, SPLIT, SUBSTR, SUBSTRING, TRIM, UPPER.
  • Fungsi tanggal
    • Date, DATE_ADD, DATE_SUB, DATE_DIFF, DATE_TRUNC, EXTRACT, FORMAT_DATE, PARSE_DATE, SAFE.PARSE_DATE.
  • Fungsi tanggal dan waktu
    • DATETIME, DATETIME_ADD, DATETIME_SUB, DATETIME_DIFF, DATETIME_TRUNC, EXTRACT, PARSE_DATETIME, SAFE.PARSE_DATETIME.
  • Fungsi waktu
    • TIME, TIME_ADD, TIME_SUB, TIME_DIFF, TIME_TRUNC, EXTRACT, FORMAT_TIME, PARSE_TIME, SAFE.PARSE_TIME.
  • Fungsi stempel waktu
    • TIMESTAMP, TIMESTAMP_ADD, TIMESTAMP_SUB, TIMESTAMP_DIFF, TIMESTAMP_TRUNC, FORMAT_TIMESTAMP, PARSE_TIMESTAMP, SAFE.PARSE_TIMESTAMP, TIMESTAMP_MICROS, TIMESTAMP_MILLIS, TIMESTAMP_SECONDS, EXTRACT, STRING, UNIX_MICROS, UNIX_MILLIS, UNIX_SECONDS.
  • Fungsi pra-pemrosesan manual
    • ML.IMPUTER, ML.HASH_BUCKETIZE, ML.LABEL_ENCODER, ML.MULTI_HOT_ENCODER, ML.NGRAMS, ML.ONE_HOT_ENCODER, ML.BUCKETIZE, ML.MAX_ABS_SCALER, ML.MIN_MAX_SCALER, ML.NORMALIZER, ML.QUANTILE_BUCKETIZE, ML.ROBUST_SCALER, ML.STANDARD_SCALER.

Batasan

Batasan berikut berlaku saat mengekspor model:

  • Ekspor model tidak didukung jika salah satu fitur berikut digunakan selama pelatihan:

    • Jenis fitur ARRAY, TIMESTAMP, atau GEOGRAPHY ada dalam data input.
  • Model yang diekspor untuk jenis model AUTOML_REGRESSOR dan AUTOML_CLASSIFIER tidak mendukung deployment Vertex AI untuk prediksi online.

  • Batas ukuran model adalah 1 GB untuk ekspor model faktorisasi matriks. Ukuran model kurang lebih sebanding dengan num_factors, jadi Anda dapat mengurangi num_factors selama pelatihan untuk memperkecil ukuran model jika mencapai batas.

  • Untuk model yang dilatih dengan klausa TRANSFORM BigQuery ML untuk pra-pemrosesan fitur manual, lihat jenis data dan fungsi yang didukung untuk ekspor.

  • Model yang dilatih dengan klausa TRANSFORM BigQuery ML sebelum 18 September 2023 harus dilatih ulang agar dapat di-deploy melalui Registry Model untuk prediksi online.

  • Selama ekspor model, ARRAY<STRUCT<INT64, FLOAT64>>, ARRAY, dan TIMESTAMP didukung sebagai data pra-transformasi, tetapi tidak didukung sebagai data pasca-transformasi.

Mengekspor model BigQuery ML

Untuk mengekspor model:

Konsol

  1. Buka halaman BigQuery di Konsol Google Cloud.

    Buka halaman BigQuery

  2. Di panel navigasi, di bagian Resource, luaskan project Anda dan klik set data untuk meluaskannya. Temukan dan klik model yang ingin diekspor.

  3. Di sisi kanan jendela, klik Export Model.

    Mengekspor model

  4. Pada dialog Ekspor model ke Cloud Storage:

    • Untuk Select Cloud Storage location, cari lokasi bucket atau folder tempat Anda ingin mengekspor model.
    • Klik Export untuk mengekspor model.

Untuk memeriksa progres tugas, lihat di dekat bagian atas navigasi untuk Job history untuk tugas Export.

SQL

Dengan pernyataan EXPORT MODEL, Anda dapat mengekspor model BigQuery ML ke Cloud Storage menggunakan sintaksis kueri GoogleSQL.

Untuk mengekspor model BigQuery ML di Konsol Google Cloud menggunakan pernyataan EXPORT MODEL, ikuti langkah-langkah berikut:

  1. Di Konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Klik Compose new query.

  3. Di kolom Query editor, ketik pernyataan EXPORT MODEL Anda.

    Kueri berikut mengekspor model bernama myproject.mydataset.mymodel ke bucket Cloud Storage dengan URI gs://bucket/path/to/saved_model/.

     EXPORT MODEL `myproject.mydataset.mymodel`
     OPTIONS(URI = 'gs://bucket/path/to/saved_model/')
     

  4. Klik Run. Setelah kueri selesai, berikut akan muncul dalam panel Query results: Successfully exported model.

bq

Gunakan perintah bq extract dengan flag --model.

(Opsional) Berikan flag --destination_format dan pilih format model yang diekspor. (Opsional) Berikan flag --location dan tetapkan nilainya ke lokasi Anda.

bq --location=location extract \
--destination_format format \
--model project_id:dataset.model \
gs://bucket/model_folder

Di mana:

  • location adalah nama lokasi Anda. Flag --location bersifat opsional. Misalnya, jika menggunakan BigQuery di region Tokyo, Anda dapat menetapkan nilai flag ke asia-northeast1. Anda dapat menetapkan nilai default untuk lokasi menggunakan file .bigqueryrc.
  • destination_format adalah format untuk model yang diekspor: ML_TF_SAVED_MODEL (default), atau ML_XGBOOST_BOOSTER.
  • project_id adalah project ID Anda.
  • dataset adalah nama set data sumber.
  • model adalah model yang Anda ekspor.
  • bucket adalah nama bucket Cloud Storage tempat Anda mengekspor data. Set data BigQuery dan bucket Cloud Storage harus berada di lokasi yang sama.
  • model_folder adalah nama folder tempat file model yang diekspor akan ditulis.

Contoh:

Misalnya, perintah berikut mengekspor mydataset.mymodel dalam format TensorFlow SavedModel ke bucket Cloud Storage bernama mymodel_folder.

bq extract --model \
'mydataset.mymodel' \
gs://example-bucket/mymodel_folder

Nilai default destination_format adalah ML_TF_SAVED_MODEL.

Perintah berikut mengekspor mydataset.mymodel dalam format XGBoost Booster ke bucket Cloud Storage bernama mymodel_folder.

bq extract --model \
--destination_format ML_XGBOOST_BOOSTER \
'mydataset.mytable' \
gs://example-bucket/mymodel_folder

API

Untuk mengekspor model, buat tugas extract dan isi konfigurasi tugas.

(Opsional) Tentukan lokasi Anda di properti location di bagian jobReference di resource tugas.

  1. Buat tugas ekstrak yang mengarah ke model BigQuery ML dan tujuan Cloud Storage.

  2. Tentukan model sumber menggunakan objek konfigurasi sourceModel yang berisi project ID, ID set data, dan ID model.

  3. Properti destination URI(s) harus sepenuhnya memenuhi syarat, dalam format gs://bucket/model_folder.

  4. Tentukan format tujuan dengan menyetel properti configuration.extract.destinationFormat. Misalnya, untuk mengekspor model hierarki yang ditingkatkan, tetapkan properti ini ke nilai ML_XGBOOST_BOOSTER.

  5. Untuk memeriksa status tugas, panggil jobs.get(job_id) dengan ID tugas yang ditampilkan oleh permintaan awal.

    • Jika status.state = DONE, tugas berhasil diselesaikan.
    • Jika properti status.errorResult ada, permintaan gagal, dan objek tersebut akan menyertakan informasi yang menjelaskan penyebabnya.
    • Jika status.errorResult tidak ada, tugas berhasil diselesaikan, meskipun mungkin ada beberapa error non-fatal. Error non-fatal tercantum dalam properti status.errors objek tugas yang ditampilkan.

Catatan API:

  • Sebagai praktik terbaik, buat ID unik dan teruskan sebagai jobReference.jobId saat memanggil jobs.insert untuk membuat tugas. Pendekatan ini lebih andal untuk kegagalan jaringan karena klien dapat melakukan polling atau mencoba lagi pada ID tugas yang diketahui.

  • Memanggil jobs.insert pada ID pekerjaan tertentu bersifat idempoten. Dengan kata lain, Anda dapat mencoba sebanyak yang Anda inginkan pada ID tugas yang sama, dan maksimal satu dari operasi tersebut akan berhasil.

Java

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Java API.

Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.

import com.google.cloud.bigquery.BigQuery;
import com.google.cloud.bigquery.BigQueryException;
import com.google.cloud.bigquery.BigQueryOptions;
import com.google.cloud.bigquery.ExtractJobConfiguration;
import com.google.cloud.bigquery.Job;
import com.google.cloud.bigquery.JobInfo;
import com.google.cloud.bigquery.ModelId;

// Sample to extract model to GCS bucket
public class ExtractModel {

  public static void main(String[] args) throws InterruptedException {
    // TODO(developer): Replace these variables before running the sample.
    String projectName = "bigquery-public-data";
    String datasetName = "samples";
    String modelName = "model";
    String bucketName = "MY-BUCKET-NAME";
    String destinationUri = "gs://" + bucketName + "/path/to/file";
    extractModel(projectName, datasetName, modelName, destinationUri);
  }

  public static void extractModel(
      String projectName, String datasetName, String modelName, String destinationUri)
      throws InterruptedException {
    try {
      // Initialize client that will be used to send requests. This client only needs to be created
      // once, and can be reused for multiple requests.
      BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();

      ModelId modelId = ModelId.of(projectName, datasetName, modelName);

      ExtractJobConfiguration extractConfig =
          ExtractJobConfiguration.newBuilder(modelId, destinationUri).build();

      Job job = bigquery.create(JobInfo.of(extractConfig));

      // Blocks until this job completes its execution, either failing or succeeding.
      Job completedJob = job.waitFor();
      if (completedJob == null) {
        System.out.println("Job not executed since it no longer exists.");
        return;
      } else if (completedJob.getStatus().getError() != null) {
        System.out.println(
            "BigQuery was unable to extract due to an error: \n" + job.getStatus().getError());
        return;
      }
      System.out.println("Model extract successful");
    } catch (BigQueryException ex) {
      System.out.println("Model extraction job was interrupted. \n" + ex.toString());
    }
  }
}

Deployment model

Anda dapat men-deploy model yang diekspor ke Vertex AI serta secara lokal. Jika klausa TRANSFORM model berisi fungsi Tanggal, fungsi Tanggal Waktu, fungsi Waktu, atau fungsi Stempel Waktu, Anda harus menggunakan library bigquery-ml-utils ke dalam container. Pengecualiannya adalah jika Anda men-deploy melalui Model Registry, yang tidak memerlukan model yang diekspor atau container penayangan.

Deployment Vertex AI

Mengekspor format model Deployment
TensorFlow SavedModel (model non-AutoML) Deploy TensorFlow SavedModel. Anda harus membuat file SavedModel menggunakan versi yang didukung dari TensorFlow.
TensorFlow SavedModel (model AutoML) Tidak didukung.
XGBoost Booster Gunakan rutinitas prediksi kustom. Untuk model XGBoost Booster, informasi pra-pemrosesan dan pasca-pemrosesan disimpan dalam file yang diekspor, dan rutinitas prediksi kustom memungkinkan Anda men-deploy model dengan file tambahan yang diekspor.

Anda harus membuat file model menggunakan versi XGBoost yang didukung.

Deployment lokal

Mengekspor format model Deployment
TensorFlow SavedModel (model non-AutoML) SavedModel adalah format standar, dan Anda dapat men-deploy-nya di container docker TensorFlow Serving.

Anda juga dapat memanfaatkan operasi lokal pada prediksi online Vertex AI.
TensorFlow SavedModel (model AutoML) Mengemas dan menjalankan model.
XGBoost Booster Untuk menjalankan model XGBoost Booster secara lokal, Anda dapat menggunakan file main.py yang diekspor:
  1. Download semua file dari Cloud Storage ke direktori lokal.
  2. Ekstrak file predictor.py dari xgboost_predictor-0.1.tar.gz ke direktori lokal.
  3. Jalankan main.py (lihat petunjuk di main.py).

Format output prediksi

Bagian ini menampilkan format output prediksi dari model yang diekspor untuk setiap jenis model. Semua model yang diekspor mendukung prediksi batch; model ini dapat menangani beberapa baris input sekaligus. Misalnya, ada dua baris input di setiap contoh format output berikut.

AUTOENCODER

Format output prediksi Contoh output
+------------------------+------------------------+------------------------+
|      LATENT_COL_1      |      LATENT_COL_2      |           ...          |
+------------------------+------------------------+------------------------+
|       [FLOAT]          |         [FLOAT]        |           ...          |
+------------------------+------------------------+------------------------+
        
+------------------+------------------+------------------+------------------+
|   LATENT_COL_1   |   LATENT_COL_2   |   LATENT_COL_3   |   LATENT_COL_4   |
+------------------------+------------+------------------+------------------+
|    0.21384512    |    0.93457112    |    0.64978097    |    0.00480489    |
+------------------+------------------+------------------+------------------+
        

AUTOML_CLASSIFIER

Format output prediksi Contoh output
+------------------------------------------+
| predictions                              |
+------------------------------------------+
| [{"scores":[FLOAT], "classes":[STRING]}] |
+------------------------------------------+
        
+---------------------------------------------+
| predictions                                 |
+---------------------------------------------+
| [{"scores":[1, 2], "classes":['a', 'b']},   |
|  {"scores":[3, 0.2], "classes":['a', 'b']}] |
+---------------------------------------------+
        

AUTOML_REGRESSOR

Format output prediksi Contoh output
+-----------------+
| predictions     |
+-----------------+
| [FLOAT]         |
+-----------------+
        
+-----------------+
| predictions     |
+-----------------+
| [1.8, 2.46]     |
+-----------------+
        

BOOSTED_TREE_CLASSIFIER dan RANDOM_FOREST_CLASSIFIER

Format output prediksi Contoh output
+-------------+--------------+-----------------+
| LABEL_PROBS | LABEL_VALUES | PREDICTED_LABEL |
+-------------+--------------+-----------------+
| [FLOAT]     | [STRING]     | STRING          |
+-------------+--------------+-----------------+
        
+-------------+--------------+-----------------+
| LABEL_PROBS | LABEL_VALUES | PREDICTED_LABEL |
+-------------+--------------+-----------------+
| [0.1, 0.9]  | ['a', 'b']   | ['b']           |
+-------------+--------------+-----------------+
| [0.8, 0.2]  | ['a', 'b']   | ['a']           |
+-------------+--------------+-----------------+
        

BOOSTED_TREE_REGRESSOR DAN RANDOM_FOREST_REGRESSOR

Format output prediksi Contoh output
+-----------------+
| predicted_label |
+-----------------+
| FLOAT           |
+-----------------+
        
+-----------------+
| predicted_label |
+-----------------+
| [1.8]           |
+-----------------+
| [2.46]          |
+-----------------+
        

DNN_CLASSIFIER

Format output prediksi Contoh output
+---------------+-------------+-----------+---------+------------------------+--------+---------------+
| ALL_CLASS_IDS | ALL_CLASSES | CLASS_IDS | CLASSES | LOGISTIC (binary only) | LOGITS | PROBABILITIES |
+---------------+-------------+-----------+---------+------------------------+--------+---------------+
| [INT64]       | [STRING]    | INT64     | STRING  | FLOAT                  | [FLOAT]| [FLOAT]       |
+---------------+-------------+-----------+---------+------------------------+--------+---------------+
        
+---------------+-------------+-----------+---------+------------------------+--------+---------------+
| ALL_CLASS_IDS | ALL_CLASSES | CLASS_IDS | CLASSES | LOGISTIC (binary only) | LOGITS | PROBABILITIES |
+---------------+-------------+-----------+---------+------------------------+--------+---------------+
| [0, 1]        | ['a', 'b']  | [0]       | ['a']   | [0.36]                 | [-0.53]| [0.64, 0.36]  |
+---------------+-------------+-----------+---------+------------------------+--------+---------------+
| [0, 1]        | ['a', 'b']  | [0]       | ['a']   | [0.2]                  | [-1.38]| [0.8, 0.2]    |
+---------------+-------------+-----------+---------+------------------------+--------+---------------+
        

DNN_REGRESSOR

Format output prediksi Contoh output
+-----------------+
| PREDICTED_LABEL |
+-----------------+
| FLOAT           |
+-----------------+
        
+-----------------+
| PREDICTED_LABEL |
+-----------------+
| [1.8]           |
+-----------------+
| [2.46]          |
+-----------------+
        

DNN_LINEAR_COMBINED_CLASSIFIER

Format output prediksi Contoh output
+---------------+-------------+-----------+---------+------------------------+--------+---------------+
| ALL_CLASS_IDS | ALL_CLASSES | CLASS_IDS | CLASSES | LOGISTIC (binary only) | LOGITS | PROBABILITIES |
+---------------+-------------+-----------+---------+------------------------+--------+---------------+
| [INT64]       | [STRING]    | INT64     | STRING  | FLOAT                  | [FLOAT]| [FLOAT]       |
+---------------+-------------+-----------+---------+------------------------+--------+---------------+
        
+---------------+-------------+-----------+---------+------------------------+--------+---------------+
| ALL_CLASS_IDS | ALL_CLASSES | CLASS_IDS | CLASSES | LOGISTIC (binary only) | LOGITS | PROBABILITIES |
+---------------+-------------+-----------+---------+------------------------+--------+---------------+
| [0, 1]        | ['a', 'b']  | [0]       | ['a']   | [0.36]                 | [-0.53]| [0.64, 0.36]  |
+---------------+-------------+-----------+---------+------------------------+--------+---------------+
| [0, 1]        | ['a', 'b']  | [0]       | ['a']   | [0.2]                  | [-1.38]| [0.8, 0.2]    |
+---------------+-------------+-----------+---------+------------------------+--------+---------------+
        

DNN_LINEAR_COMBINED_REGRESSOR

Format output prediksi Contoh output
+-----------------+
| PREDICTED_LABEL |
+-----------------+
| FLOAT           |
+-----------------+
        
+-----------------+
| PREDICTED_LABEL |
+-----------------+
| [1.8]           |
+-----------------+
| [2.46]          |
+-----------------+
        

KMEANS

Format output prediksi Contoh output
+--------------------+--------------+---------------------+
| CENTROID_DISTANCES | CENTROID_IDS | NEAREST_CENTROID_ID |
+--------------------+--------------+---------------------+
| [FLOAT]            | [INT64]      | INT64               |
+--------------------+--------------+---------------------+
        
+--------------------+--------------+---------------------+
| CENTROID_DISTANCES | CENTROID_IDS | NEAREST_CENTROID_ID |
+--------------------+--------------+---------------------+
| [1.2, 1.3]         | [1, 2]       | [1]                 |
+--------------------+--------------+---------------------+
| [0.4, 0.1]         | [1, 2]       | [2]                 |
+--------------------+--------------+---------------------+
        

LINEAR_REG

Format output prediksi Contoh output
+-----------------+
| PREDICTED_LABEL |
+-----------------+
| FLOAT           |
+-----------------+
        
+-----------------+
| PREDICTED_LABEL |
+-----------------+
| [1.8]           |
+-----------------+
| [2.46]          |
+-----------------+
       

LOGISTIC_REG

Format output prediksi Contoh output
+-------------+--------------+-----------------+
| LABEL_PROBS | LABEL_VALUES | PREDICTED_LABEL |
+-------------+--------------+-----------------+
| [FLOAT]     | [STRING]     | STRING          |
+-------------+--------------+-----------------+
        
+-------------+--------------+-----------------+
| LABEL_PROBS | LABEL_VALUES | PREDICTED_LABEL |
+-------------+--------------+-----------------+
| [0.1, 0.9]  | ['a', 'b']   | ['b']           |
+-------------+--------------+-----------------+
| [0.8, 0.2]  | ['a', 'b']   | ['a']           |
+-------------+--------------+-----------------+
        

MATRIX_FACTORIZATION

Catatan: Saat ini, kami hanya mendukung pengambilan pengguna input 50 pasangan (predicted_rating, predicted_item) teratas pengguna output yang diurutkan berdasarkan predicted_rating dalam urutan menurun.

Format output prediksi Contoh output
+--------------------+--------------+
| PREDICTED_RATING | PREDICTED_ITEM |
+------------------+----------------+
| [FLOAT]          | [STRING]       |
+------------------+----------------+
        
+--------------------+--------------+
| PREDICTED_RATING | PREDICTED_ITEM |
+------------------+----------------+
| [5.5, 1.7]       | ['A', 'B']     |
+------------------+----------------+
| [7.2, 2.7]       | ['B', 'A']     |
+------------------+----------------+
        

TENSORFLOW (diimpor)

Format output prediksi
Sama seperti model yang diimpor

PCA

Format output prediksi Contoh output
+-------------------------+---------------------------------+
| PRINCIPAL_COMPONENT_IDS | PRINCIPAL_COMPONENT_PROJECTIONS |
+-------------------------+---------------------------------+
|       [INT64]           |             [FLOAT]             |
+-------------------------+---------------------------------+
        
+-------------------------+---------------------------------+
| PRINCIPAL_COMPONENT_IDS | PRINCIPAL_COMPONENT_PROJECTIONS |
+-------------------------+---------------------------------+
|       [1, 2]            |             [1.2, 5.0]          |
+-------------------------+---------------------------------+
        

TRANSFORM_ONLY

Format output prediksi
Sama dengan kolom yang ditentukan dalam klausa TRANSFORM model

Visualisasi model XGBoost

Anda dapat memvisualisasikan hierarki yang dikuatkan menggunakan Python API plot_tree setelah ekspor model. Misalnya, Anda dapat memanfaatkan Colab tanpa menginstal dependensi:

  1. Mengekspor model pohon yang dikuatkan ke bucket Cloud Storage.
  2. Download file model.bst dari bucket Cloud Storage.
  3. Di notebook Colab, upload file model.bst ke Files.
  4. Jalankan kode berikut di notebook:

    import xgboost as xgb
    import matplotlib.pyplot as plt
    
    model = xgb.Booster(model_file="model.bst")
    num_iterations = <iteration_number>
    for tree_num in range(num_iterations):
      xgb.plot_tree(model, num_trees=tree_num)
    plt.show
    

Contoh ini memetakan beberapa pohon (satu pohon per iterasi):

Mengekspor model

Saat ini, kami tidak menyimpan nama fitur dalam model, sehingga Anda akan melihat nama seperti "f0", "f1", dan seterusnya. Anda dapat menemukan nama fitur yang sesuai dalam file assets/model_metadata.json yang diekspor menggunakan nama ini (seperti "f0") sebagai indeks.

Izin yang diperlukan

Untuk mengekspor model BigQuery ML ke Cloud Storage, Anda memerlukan izin untuk mengakses model BigQuery ML, izin untuk menjalankan tugas ekspor, dan izin untuk menulis data ke bucket Cloud Storage.

Izin BigQuery

  • Setidaknya, untuk mengekspor model, Anda harus diberi izin bigquery.models.export. Peran Identity and Access Management (IAM) bawaan berikut diberi izin bigquery.models.export:

    • bigquery.dataViewer
    • bigquery.dataOwner
    • bigquery.dataEditor
    • bigquery.admin
  • Setidaknya, untuk menjalankan tugas ekspor, Anda harus diberi izin bigquery.jobs.create. Peran IAM bawaan berikut diberi izin bigquery.jobs.create:

    • bigquery.user
    • bigquery.jobUser
    • bigquery.admin

Izin Cloud Storage

  • Untuk menulis data ke bucket Cloud Storage yang sudah ada, Anda harus diberi izin storage.objects.create. Peran IAM bawaan berikut diberi izin storage.objects.create:

    • storage.objectCreator
    • storage.objectAdmin
    • storage.admin

Untuk informasi selengkapnya tentang peran dan izin IAM dalam BigQuery ML, lihat Kontrol akses.

Pertimbangan lokasi

Saat Anda memilih lokasi untuk data Anda, pertimbangkan hal berikut:

    Lakukan kolokasi pada bucket Cloud Storage Anda untuk mengekspor data:
    • Jika set data BigQuery Anda berada di multi-region EU, bucket Cloud Storage yang berisi data yang Anda ekspor harus berada di multi-region yang sama atau di lokasi yang terdapat dalam multi-region. Misalnya, jika set data BigQuery Anda berada di multi-region EU, bucket Cloud Storage dapat berada di region Belgia europe-west1, yang berada di Uni Eropa.

      Jika set data Anda berada di multi-region US, Anda dapat mengekspor data ke bucket Cloud Storage di lokasi mana pun.

    • Jika set data Anda berada di suatu region, bucket Cloud Storage Anda harus berada di region yang sama. Misalnya, jika set data Anda berada di region Tokyo asia-northeast1, bucket Cloud Storage Anda tidak boleh berada di multi-region ASIA.
    Kembangkan rencana pengelolaan data:

Untuk informasi selengkapnya tentang lokasi Cloud Storage, lihat Lokasi Bucket dalam dokumentasi Cloud Storage.

Memindahkan data BigQuery antarlokasi

Anda tidak dapat mengubah lokasi set data setelah dibuat, tetapi Anda dapat membuat salinan set data.

Kebijakan kuota

Untuk informasi mengenai kuota tugas ekspor, lihat Tugas ekspor di halaman Kuota dan batas.

Harga

Mengekspor model BigQuery ML tidak dikenai biaya, tetapi ekspor tunduk pada Kuota dan batas BigQuery. Untuk informasi selengkapnya tentang harga BigQuery, lihat halaman Harga.

Setelah data diekspor, Anda dikenai biaya penyimpanan data di Cloud Storage. Untuk informasi selengkapnya tentang harga Cloud Storage, lihat halaman Harga Cloud Storage.

Langkah berikutnya