Tutorial ini menunjukkan cara mengekspor model BigQuery ML, lalu men-deploy model tersebut di Vertex AI atau di mesin lokal. Anda akan menggunakan tabel iris
dari set data publik BigQuery dan mengerjakan tiga skenario menyeluruh berikut:
- Melatih dan men-deploy model regresi logistik - juga berlaku untuk pengklasifikasi DNN, regressor DNN, k-means, regresi linear, dan model faktorisasi matriks.
- Melatih dan men-deploy model pengklasifikasi pohon yang ditingkatkan - juga berlaku untuk model regressor pohon yang ditingkatkan.
- Melatih dan men-deploy model pengklasifikasi AutoML - juga berlaku untuk model regressor AutoML.
Membuat set data
Buat set data BigQuery untuk menyimpan model ML Anda.
Konsol
Di konsol Google Cloud , buka halaman BigQuery.
Di panel Explorer, klik nama project Anda.
Klik
View actions > Create dataset.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).
Jangan ubah setelan default yang tersisa, lalu klik Create dataset.
bq
Untuk membuat set data baru, gunakan perintah bq mk
dengan flag --location
. Untuk daftar lengkap kemungkinan parameter, lihat referensi
perintah bq mk --dataset
.
Buat set data bernama
bqml_tutorial
dengan lokasi data yang ditetapkan keUS
dan deskripsiBigQuery ML tutorial dataset
:bq --location=US mk -d \ --description "BigQuery ML tutorial dataset." \ bqml_tutorial
Perintah ini menggunakan pintasan
-d
, bukan flag--dataset
. Jika Anda menghapus-d
dan--dataset
, perintah defaultnya adalah membuat set data.Pastikan set data telah dibuat:
bq ls
API
Panggil metode datasets.insert
dengan resource set data yang ditentukan.
{ "datasetReference": { "datasetId": "bqml_tutorial" } }
BigQuery DataFrames
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan BigQuery DataFrames di Panduan memulai BigQuery menggunakan BigQuery DataFrames. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi BigQuery DataFrames.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.
Melatih dan men-deploy model regresi logistik
Gunakan bagian berikut untuk mempelajari cara melatih dan men-deploy model regresi logistik.
Melatih model
Latih model regresi logistik yang memprediksi jenis iris menggunakan pernyataan CREATE MODEL
BigQuery ML. Tugas pelatihan ini akan memerlukan waktu sekitar 1 menit.
bq query --use_legacy_sql=false \ 'CREATE MODEL `bqml_tutorial.iris_model` OPTIONS (model_type="logistic_reg", max_iterations=10, input_label_cols=["species"]) AS SELECT * FROM `bigquery-public-data.ml_datasets.iris`;'
Mengekspor model
Ekspor model ke bucket Cloud Storage menggunakan alat command line bq. Guna mengetahui cara lain untuk mengekspor model, lihat Mengekspor model BigQuery ML. Tugas ekstrak ini memerlukan waktu kurang dari 1 menit untuk diselesaikan.
bq extract -m bqml_tutorial.iris_model gs://some/gcs/path/iris_model
Deployment dan inferensi lokal
Anda dapat men-deploy model TensorFlow yang diekspor menggunakan container TensorFlow Serving Docker. Langkah-langkah berikut mengharuskan Anda menginstal Docker.
Mendownload file model yang diekspor ke direktori sementara
mkdir tmp_dir
gcloud storage cp gs://some/gcs/path/iris_model tmp_dir --recursive
Membuat subdirektori versi
Langkah ini akan menetapkan nomor versi (dalam hal ini 1) untuk model tersebut.
mkdir -p serving_dir/iris_model/1
cp -r tmp_dir/iris_model/* serving_dir/iris_model/1
rm -r tmp_dir
Mengambil image Docker
docker pull tensorflow/serving
Menjalankan container Docker
docker run -p 8500:8500 --network="host" --mount type=bind,source=`pwd`/serving_dir/iris_model,target=/models/iris_model -e MODEL_NAME=iris_model -t tensorflow/serving &
Menjalankan prediksi
curl -d '{"instances": [{"sepal_length":5.0, "sepal_width":2.0, "petal_length":3.5, "petal_width":1.0}]}' -X POST http://localhost:8501/v1/models/iris_model:predict
Deployment dan inferensi online
Bagian ini menggunakan Google Cloud CLI untuk men-deploy dan menjalankan prediksi terhadap model yang diekspor.
Untuk mengetahui informasi selengkapnya tentang men-deploy model ke Vertex AI untuk prediksi online atau batch, lihat Men-deploy model ke endpoint.
Membuat resource model
MODEL_NAME="IRIS_MODEL"
gcloud ai-platform models create $MODEL_NAME
Membuat versi model
1) Tetapkan variabel lingkungan:
MODEL_DIR="gs://some/gcs/path/iris_model"
// Select a suitable version for this model
VERSION_NAME="v1"
FRAMEWORK="TENSORFLOW"
2) Buat versi:
gcloud ai-platform versions create $VERSION_NAME --model=$MODEL_NAME --origin=$MODEL_DIR --runtime-version=1.15 --framework=$FRAMEWORK
Langkah ini mungkin memerlukan waktu beberapa menit hingga selesai. Anda akan melihat pesan
Creating version (this might take a few minutes)......
.
3) (opsional) Dapatkan informasi tentang versi baru Anda:
gcloud ai-platform versions describe $VERSION_NAME --model $MODEL_NAME
Anda akan melihat output yang serupa dengan ini:
createTime: '2020-02-28T16:30:45Z'
deploymentUri: gs://your_bucket_name
framework: TENSORFLOW
machineType: mls1-c1-m2
name: projects/[YOUR-PROJECT-ID]/models/IRIS_MODEL/versions/v1
pythonVersion: '2.7'
runtimeVersion: '1.15'
state: READY
Prediksi online
Untuk mengetahui informasi selengkapnya tentang menjalankan prediksi online terhadap model yang di-deploy, lihat Mendapatkan inferensi online dari model terlatih kustom.
1) Buat file JSON yang dibatasi baris baru untuk input, misalnya file instances.json
dengan konten berikut:
{"sepal_length":5.0, "sepal_width":2.0, "petal_length":3.5, "petal_width":1.0}
{"sepal_length":5.3, "sepal_width":3.7, "petal_length":1.5, "petal_width":0.2}
2) Siapkan variabel lingkungan untuk memprediksi:
INPUT_DATA_FILE="instances.json"
3) Jalankan prediksi:
gcloud ai-platform predict --model $MODEL_NAME --version $VERSION_NAME --json-instances $INPUT_DATA_FILE
Melatih dan men-deploy model pengklasifikasi hierarki yang ditingkatkan
Gunakan bagian berikut untuk mempelajari cara melatih dan men-deploy model pengklasifikasi hierarki yang ditingkatkan.
Melatih model
Latih model pengklasifikasi hierarki yang ditingkatkan yang memprediksi jenis iris menggunakan pernyataan CREATE MODEL
. Tugas pelatihan ini akan memerlukan waktu sekitar 7 menit.
bq query --use_legacy_sql=false \ 'CREATE MODEL `bqml_tutorial.boosted_tree_iris_model` OPTIONS (model_type="boosted_tree_classifier", max_iterations=10, input_label_cols=["species"]) AS SELECT * FROM `bigquery-public-data.ml_datasets.iris`;'
Mengekspor model
Ekspor model ke bucket Cloud Storage menggunakan alat command line bq. Guna mengetahui cara tambahan untuk mengekspor model, lihat Mengekspor model BigQuery ML.
bq extract --destination_format ML_XGBOOST_BOOSTER -m bqml_tutorial.boosted_tree_iris_model gs://some/gcs/path/boosted_tree_iris_model
Deployment dan inferensi lokal
Dalam file yang diekspor, ada file main.py
untuk dijalankan secara lokal.
Mendownload file model yang diekspor ke direktori lokal
mkdir serving_dir
gcloud storage cp gs://some/gcs/path/boosted_tree_iris_model serving_dir --recursive
Mengekstrak prediktor
tar -xvf serving_dir/boosted_tree_iris_model/xgboost_predictor-0.1.tar.gz -C serving_dir/boosted_tree_iris_model/
Menginstal library XGBoost
Instal library XGBoost - versi 0.82 atau yang lebih baru.
Menjalankan prediksi
cd serving_dir/boosted_tree_iris_model/
python main.py '[{"sepal_length":5.0, "sepal_width":2.0, "petal_length":3.5, "petal_width":1.0}]'
Deployment dan inferensi online
Bagian ini menggunakan Google Cloud CLI untuk men-deploy dan menjalankan prediksi terhadap model yang diekspor. Untuk mengetahui informasi selengkapnya, lihat Mendapatkan inferensi online dari model terlatih kustom.
Untuk mengetahui informasi selengkapnya tentang men-deploy model ke Vertex AI untuk prediksi online atau batch menggunakan rutinitas kustom, lihat Men-deploy model ke endpoint.
Membuat resource model
MODEL_NAME="BOOSTED_TREE_IRIS_MODEL"
gcloud ai-platform models create $MODEL_NAME
Membuat versi model
1) Tetapkan variabel lingkungan:
MODEL_DIR="gs://some/gcs/path/boosted_tree_iris_model"
VERSION_NAME="v1"
2) Buat versi:
gcloud beta ai-platform versions create $VERSION_NAME --model=$MODEL_NAME --origin=$MODEL_DIR --package-uris=${MODEL_DIR}/xgboost_predictor-0.1.tar.gz --prediction-class=predictor.Predictor --runtime-version=1.15
Langkah ini mungkin memerlukan waktu beberapa menit hingga selesai. Anda akan melihat pesan
Creating version (this might take a few minutes)......
.
3) (opsional) Dapatkan informasi tentang versi baru Anda:
gcloud ai-platform versions describe $VERSION_NAME --model $MODEL_NAME
Anda akan melihat output yang serupa dengan ini:
createTime: '2020-02-07T00:35:42Z'
deploymentUri: gs://some/gcs/path/boosted_tree_iris_model
etag: rp090ebEnQk=
machineType: mls1-c1-m2
name: projects/[YOUR-PROJECT-ID]/models/BOOSTED_TREE_IRIS_MODEL/versions/v1
packageUris:
- gs://some/gcs/path/boosted_tree_iris_model/xgboost_predictor-0.1.tar.gz
predictionClass: predictor.Predictor
pythonVersion: '2.7'
runtimeVersion: '1.15'
state: READY
Prediksi online
Untuk mengetahui informasi selengkapnya tentang menjalankan prediksi online terhadap model yang di-deploy, lihat Mendapatkan inferensi online dari model terlatih kustom.
1) Buat file JSON yang dibatasi baris baru untuk input. Misalnya, file instances.json
dengan konten berikut:
{"sepal_length":5.0, "sepal_width":2.0, "petal_length":3.5, "petal_width":1.0}
{"sepal_length":5.3, "sepal_width":3.7, "petal_length":1.5, "petal_width":0.2}
2) Menyiapkan variabel lingkungan untuk memprediksi:
INPUT_DATA_FILE="instances.json"
3) Jalankan prediksi:
gcloud ai-platform predict --model $MODEL_NAME --version $VERSION_NAME --json-instances $INPUT_DATA_FILE
Melatih dan men-deploy model pengklasifikasi AutoML
Gunakan bagian berikut untuk mempelajari cara melatih dan men-deploy model pengklasifikasi AutoML.
Melatih model
Latih model pengklasifikasi AutoML yang memprediksi jenis iris menggunakan pernyataan CREATE MODEL
. Model AutoML memerlukan setidaknya 1.000 baris data input. Karena ml_datasets.iris
hanya memiliki 150 baris, kita duplikasi data tersebut 10 kali. Tugas pelatihan ini akan memerlukan waktu sekitar 2 jam.
bq query --use_legacy_sql=false \ 'CREATE MODEL `bqml_tutorial.automl_iris_model` OPTIONS (model_type="automl_classifier", budget_hours=1, input_label_cols=["species"]) AS SELECT * EXCEPT(multiplier) FROM `bigquery-public-data.ml_datasets.iris`, unnest(GENERATE_ARRAY(1, 10)) as multiplier;'
Mengekspor model
Ekspor model ke bucket Cloud Storage menggunakan alat command line bq. Guna mengetahui cara tambahan untuk mengekspor model, lihat Mengekspor model BigQuery ML.
bq extract -m bqml_tutorial.automl_iris_model gs://some/gcs/path/automl_iris_model
Deployment dan inferensi lokal
Untuk mengetahui detail tentang cara mem-build container AutoML, lihat Mengekspor model. Langkah-langkah berikut mengharuskan Anda menginstal Docker.
Menyalin file model yang diekspor ke direktori lokal
mkdir automl_serving_dir
gcloud storage cp gs://some/gcs/path/automl_iris_model/* automl_serving_dir/ --recursive
Menarik image Docker AutoML
docker pull gcr.io/cloud-automl-tables-public/model_server
Memulai container Docker
docker run -v `pwd`/automl_serving_dir:/models/default/0000001 -p 8080:8080 -it gcr.io/cloud-automl-tables-public/model_server
Menjalankan prediksi
1) Buat file JSON yang dibatasi baris baru untuk input. Misalnya, file input.json
dengan konten berikut:
{"instances": [{"sepal_length":5.0, "sepal_width":2.0, "petal_length":3.5, "petal_width":1.0},
{"sepal_length":5.3, "sepal_width":3.7, "petal_length":1.5, "petal_width":0.2}]}
2) Lakukan panggilan prediksi:
curl -X POST --data @input.json http://localhost:8080/predict
Deployment dan inferensi online
Prediksi online untuk model regressor AutoML dan pengklasifikasi AutoML tidak didukung di Vertex AI.