Mendapatkan prediksi ML dari model scikit-learn atau XGBoost
Layanan prediksi online AI Platform Prediction mengelola resource komputasi di cloud untuk menjalankan model Anda. Model ini dapat berupa model scikit-learn atau XGBoost yang telah Anda latih di tempat lain (secara lokal, atau melalui layanan lain) dan diekspor ke file. Halaman ini menjelaskan proses untuk mendapatkan prediksi online dari model yang diekspor ini menggunakan AI Platform Prediction.
Sebelum memulai
Ringkasan
Dalam tutorial ini, Anda akan melatih model sederhana untuk memprediksi spesies bunga, menggunakan set data Iris. Setelah melatih dan menyimpan model secara lokal, Anda men-deploy-nya ke AI Platform Prediction dan membuat kueri untuk mendapatkan prediksi online.
Sebelum memulai
Selesaikan langkah-langkah berikut untuk menyiapkan akun GCP, mengaktifkan AI Platform Prediction API, serta menginstal dan mengaktifkan Cloud SDK.
Menyiapkan project GCP
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the AI Platform Training & Prediction and Compute Engine APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the AI Platform Training & Prediction and Compute Engine APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Menyiapkan lingkungan Anda
Pilih salah satu opsi di bawah untuk menyiapkan lingkungan secara lokal di macOS atau di lingkungan jarak jauh di Cloud Shell.
Untuk pengguna macOS, sebaiknya siapkan lingkungan Anda menggunakan tab MACOS di bawah. Cloud Shell, yang ditampilkan di tab CLOUD SHELL, tersedia di macOS, Linux, dan Windows. Cloud Shell menyediakan cara cepat untuk mencoba Prediksi AI Platform, tetapi tidak cocok untuk pekerjaan pengembangan yang sedang berlangsung.
macOS
-
Periksa penginstalan Python
Pastikan Anda telah menginstal Python dan, jika perlu, instal.python -V
-
Periksa penginstalan
pip
pip
adalah pengelola paket Python, yang disertakan dengan versi Python saat ini. Periksa apakah Anda telah menginstalpip
dengan menjalankanpip --version
. Jika belum, lihat cara menginstalpip
.Anda dapat mengupgrade
pip
menggunakan perintah berikut:pip install -U pip
Lihat dokumentasi pip untuk mengetahui detail selengkapnya.
-
Instal
virtualenv
virtualenv
adalah alat untuk membuat lingkungan Python yang terisolasi. Periksa apakah Anda telah menginstalvirtualenv
dengan menjalankanvirtualenv --version
. Jika tidak, instalvirtualenv
:pip install --user --upgrade virtualenv
Untuk membuat lingkungan pengembangan terisolasi bagi panduan ini, buat lingkungan virtual baru di
virtualenv
. Misalnya, perintah berikut mengaktifkan lingkungan bernamaaip-env
:virtualenv aip-env source aip-env/bin/activate
-
Untuk tujuan tutorial ini, jalankan perintah lainnya dalam lingkungan virtual Anda.
Lihat informasi selengkapnya tentang penggunaanvirtualenv
. Untuk keluar darivirtualenv
, jalankandeactivate
.
Cloud Shell
-
Buka konsol Google Cloud.
-
Klik tombol Activate Google Cloud Shell di bagian atas jendela konsol.
Sesi Cloud Shell akan terbuka di dalam frame baru di bagian bawah konsol dan menampilkan perintah command line. Perlu waktu beberapa detik hingga sesi shell diinisialisasi.
Sesi Cloud Shell Anda siap digunakan.
-
Konfigurasikan alat command line
gcloud
untuk menggunakan project yang Anda pilih.gcloud config set project [selected-project-id]
dengan
[selected-project-id]
sebagai project ID Anda. (Hapus tanda kurung yang mengapit.)
Menginstal framework
macOS
Dalam lingkungan virtual Anda, jalankan perintah berikut untuk menginstal versi scikit-learn, XGBoost, dan pandas yang digunakan di AI Platform Prediction versi runtime 2.11:
(aip-env)$ pip install scikit-learn==1.0.2 xgboost==1.6.2 pandas==1.3.5
Dengan memberikan nomor versi dalam perintah sebelumnya, Anda memastikan bahwa dependensi di lingkungan virtual cocok dengan dependensi dalam versi runtime. Hal ini membantu mencegah perilaku yang tidak terduga saat kode Anda berjalan di AI Platform Prediction.
Untuk mengetahui detail selengkapnya, opsi penginstalan, dan informasi pemecahan masalah, lihat petunjuk penginstalan untuk setiap framework:
Cloud Shell
Jalankan perintah berikut untuk menginstal scikit-learn, XGBoost, dan pandas:
pip install --user scikit-learn xgboost pandas
Untuk mengetahui detail selengkapnya, opsi penginstalan, dan informasi pemecahan masalah, lihat petunjuk penginstalan untuk setiap framework:
Versi scikit-learn dan XGBoost
Versi runtime AI Platform Prediction diperbarui secara berkala untuk menyertakan dukungan untuk rilis baru scikit-learn dan XGBoost. Lihat detail lengkap untuk setiap versi runtime.
Melatih dan menyimpan model
Mulailah dengan melatih model sederhana untuk set data Iris.
scikit-learn
Dengan mengikuti contoh scikit-learn tentang persistensi model, Anda dapat melatih dan mengekspor model seperti yang ditunjukkan di bawah ini:
from sklearn.externals import joblib
from sklearn import datasets
from sklearn import svm
# Load the Iris dataset
iris = datasets.load_iris()
# Train a classifier
classifier = svm.SVC()
classifier.fit(iris.data, iris.target)
# Export the classifier to a file
joblib.dump(classifier, 'model.joblib')
Untuk mengekspor model, Anda juga memiliki opsi untuk menggunakan library pickle sebagai berikut:
import pickle
with open('model.pkl', 'wb') as model_file:
pickle.dump(classifier, model_file)
XGBoost
Anda dapat mengekspor model dengan menggunakan metode "save_model" dari objek Booster.
Untuk tujuan tutorial ini, scikit-learn hanya digunakan dengan XGBoost untuk mengimpor set data Iris.
from sklearn import datasets
import xgboost as xgb
# Load the Iris dataset
iris = datasets.load_iris()
# Load data into DMatrix object
dtrain = xgb.DMatrix(iris.data, label=iris.target)
# Train XGBoost model
bst = xgb.train({}, dtrain, 20)
# Export the classifier to a file
bst.save_model('./model.bst')
Untuk mengekspor model, Anda juga memiliki opsi untuk menggunakan library pickle sebagai berikut:
import pickle
with open('model.pkl', 'wb') as model_file:
pickle.dump(bst, model_file)
Persyaratan penamaan file model
Untuk prediksi online, file model tersimpan yang Anda upload ke
Cloud Storage harus diberi nama salah satu dari: model.pkl
, model.joblib
, atau
model.bst
, bergantung pada library yang Anda gunakan. Batasan ini memastikan bahwa
Prediksi AI Platform menggunakan pola yang sama untuk merekonstruksi model saat impor seperti yang
digunakan selama ekspor.
Persyaratan ini tidak berlaku jika Anda membuat rutinitas prediksi kustom (beta).
scikit-learn
Library yang digunakan untuk mengekspor model | Perbaiki nama model |
---|---|
pickle |
model.pkl |
sklearn.externals.joblib |
model.joblib |
XGBoost
Library yang digunakan untuk mengekspor model | Perbaiki nama model |
---|---|
pickle |
model.pkl |
joblib |
model.joblib |
xgboost.Booster |
model.bst |
Untuk iterasi model Anda di masa mendatang, atur bucket Cloud Storage agar setiap model baru memiliki direktori khusus.
Menyimpan model di Cloud Storage
Untuk tujuan tutorial ini, cara termudah adalah menggunakan bucket Cloud Storage khusus di project yang sama dengan yang Anda gunakan untuk Prediksi AI Platform.
Jika menggunakan bucket di project lain, Anda harus memastikan bahwa akun layanan AI Platform Prediction dapat mengakses model Anda di Cloud Storage. Tanpa izin yang sesuai, permintaan Anda untuk membuat versi model AI Platform Prediction akan gagal. Lihat selengkapnya tentang memberikan izin untuk penyimpanan.
Menyiapkan bucket Cloud Storage
Bagian ini menunjukkan cara membuat bucket baru. Anda dapat menggunakan bucket yang ada, tetapi harus berada di region yang sama dengan tempat Anda berencana menjalankan tugas AI Platform. Selain itu, jika ini bukan bagian dari project yang Anda gunakan untuk menjalankan AI Platform Prediction, Anda harus secara eksplisit memberikan akses ke akun layanan AI Platform Prediction.
-
Tentukan nama untuk bucket baru Anda. Nama harus unik di semua bucket di Cloud Storage.
BUCKET_NAME="YOUR_BUCKET_NAME"
Misalnya, gunakan nama project Anda dengan tambahan
-aiplatform
:PROJECT_ID=$(gcloud config list project --format "value(core.project)") BUCKET_NAME=${PROJECT_ID}-aiplatform
-
Periksa nama bucket yang Anda buat.
echo $BUCKET_NAME
-
Pilih region untuk bucket Anda dan tetapkan variabel lingkungan
REGION
.Gunakan region yang sama dengan tempat Anda berencana menjalankan tugas Prediksi AI Platform. Lihat region yang tersedia untuk layanan AI Platform Prediction.
Misalnya, kode berikut membuat
REGION
dan menetapkannya keus-central1
:REGION=us-central1
-
Buat bucket baru:
gcloud storage buckets create gs://$BUCKET_NAME --location=$REGION
Mengupload file model yang diekspor ke Cloud Storage
Jalankan perintah berikut untuk mengupload model yang Anda ekspor sebelumnya dalam tutorial ini, ke bucket di Cloud Storage:
gcloud storage cp ./model.joblib gs://$BUCKET_NAME/model.joblib
Anda dapat menggunakan bucket Cloud Storage yang sama untuk beberapa file model. Setiap file model harus berada dalam direktorinya sendiri di dalam bucket.
Memformat data untuk prediksi
gcloud
Buat file input.json
dengan setiap instance input di baris terpisah:
[6.8, 2.8, 4.8, 1.4]
[6.0, 3.4, 4.5, 1.6]
Perhatikan bahwa format instance input harus sesuai dengan yang diharapkan oleh model Anda. Dalam contoh ini, model Iris memerlukan 4 fitur, sehingga input Anda
harus berupa matriks dengan bentuk (num_instances, 4
).
REST API
Buat file input.json
yang diformat sebagai daftar float sederhana, dengan setiap
instance input di baris terpisah:
{
"instances": [
[6.8, 2.8, 4.8, 1.4],
[6.0, 3.4, 4.5, 1.6]
]
}
Perhatikan bahwa format instance input harus sesuai dengan yang diharapkan oleh model Anda. Dalam contoh ini, model Iris memerlukan 4 fitur, sehingga input Anda
harus berupa matriks dengan bentuk (num_instances, 4
).
Untuk XGBoost, AI Platform Prediction tidak mendukung representasi renggang
instance input. Jika nilai fitur adalah nol, gunakan 0.0
dalam
input yang sesuai. Jika nilai fitur tidak ada, gunakan NaN
dalam
input yang sesuai.
Lihat informasi selengkapnya tentang memformat input untuk prediksi online.
Menguji model Anda dengan prediksi lokal
Anda dapat menggunakan perintah
gcloud ai-platform local predict
untuk menguji cara model menayangkan prediksi sebelum men-deploynya ke
AI Platform Prediction. Perintah ini menggunakan dependensi di lingkungan lokal Anda
untuk melakukan prediksi dan menampilkan hasil dalam format yang sama dengan
yang digunakan
gcloud ai-platform predict
saat melakukan prediksi online. Menguji prediksi secara lokal dapat membantu Anda menemukan error sebelum Anda dikenai biaya untuk permintaan prediksi online.
Untuk argumen --model-dir
, tentukan direktori yang berisi
model machine learning yang diekspor, baik di komputer lokal maupun di
Cloud Storage. Untuk argumen --framework
, tentukan tensorflow
,
scikit-learn
, atau xgboost
. Anda tidak dapat menggunakan
perintah gcloud ai-platform local predict
dengan rutinitas
prediksi kustom.
Contoh berikut menunjukkan cara melakukan prediksi lokal:
gcloud ai-platform local predict --model-dir LOCAL_OR_CLOUD_STORAGE_PATH_TO_MODEL_DIRECTORY/ \
--json-instances LOCAL_PATH_TO_PREDICTION_INPUT.JSON \
--framework NAME_OF_FRAMEWORK
Men-deploy model dan versi
AI Platform Prediction mengatur model terlatih Anda menggunakan resource model dan versi. Model AI Platform Prediction adalah penampung untuk versi model machine learning Anda.
Untuk men-deploy model, Anda membuat resource model di AI Platform Prediction, membuat versi model tersebut, lalu menautkan versi model ke file model yang disimpan di Cloud Storage.
Membuat resource model
AI Platform Prediction menggunakan resource model untuk mengatur berbagai versi model Anda.
Saat ini, Anda harus memutuskan apakah ingin versi model yang termasuk dalam model ini menggunakan endpoint regional atau endpoint global. Pada umumnya, pilih endpoint regional. Jika Anda memerlukan fungsi yang hanya tersedia di jenis mesin lama (MLS1), gunakan endpoint global.
Anda juga harus memutuskan pada saat ini apakah Anda ingin versi model yang termasuk dalam model ini mengekspor log apa pun saat menayangkan prediksi. Contoh berikut tidak mengaktifkan logging. Pelajari cara mengaktifkan logging.
console
Buka halaman Model AI Platform Prediction di konsol Google Cloud:
Klik tombol Model Baru di bagian atas halaman Model. Tindakan ini akan membawa Anda ke halaman Buat model.
Masukkan nama unik untuk model Anda di kolom Model name.
Jika kotak centang Gunakan endpoint regional dipilih, AI Platform Prediction akan menggunakan endpoint regional. Untuk menggunakan endpoint global, hapus centang pada kotak Gunakan endpoint regional.
Dari menu drop-down Region, pilih lokasi untuk node prediksi Anda. Region yang tersedia berbeda-beda, bergantung pada apakah Anda menggunakan endpoint regional atau endpoint global.
Klik Create.
Pastikan Anda telah kembali ke halaman Model, dan model baru Anda muncul dalam daftar.
gcloud
Endpoint regional
Jalankan perintah berikut:
gcloud ai-platform models create MODEL_NAME \
--region=REGION
Ganti kode berikut:
- MODEL_NAME: Nama yang Anda pilih untuk model.
- REGION: Region endpoint regional tempat Anda ingin node prediksi dijalankan. Region ini harus berupa region yang mendukung jenis mesin Compute Engine (N1).
Jika Anda tidak menentukan flag --region
, gcloud CLI akan meminta Anda untuk memilih endpoint regional (atau menggunakan us-central
di endpoint global).
Atau, Anda dapat menetapkan properti ai_platform/region
ke region tertentu untuk memastikan gcloud CLI selalu menggunakan endpoint regional yang sesuai untuk AI Platform Prediction, meskipun Anda tidak menentukan flag --region
. (Konfigurasi ini tidak berlaku
untuk perintah dalam
grup perintah
gcloud ai-platform operations
.)
Endpoint global
Jalankan perintah berikut:
gcloud ai-platform models create MODEL_NAME \
--regions=REGION
Ganti kode berikut:
- MODEL_NAME: Nama yang Anda pilih untuk model.
- REGION: Region di endpoint global tempat Anda ingin node prediksi dijalankan. Region ini harus mendukung jenis mesin lama (MLS1).
Jika Anda tidak menentukan flag --regions
, gcloud CLI akan meminta Anda untuk memilih endpoint regional (atau menggunakan us-central1
di endpoint global).
REST API
Endpoint regional
Format permintaan Anda dengan menempatkan objek model dalam isi permintaan. Minimal, tentukan nama untuk model Anda dengan mengganti MODEL_NAME dalam contoh berikut:
{ "name": "MODEL_NAME" }
Lakukan panggilan REST API ke URL berikut, dengan mengganti PROJECT_ID dengan ID project Google Cloud Anda:
POST https://REGION-ml.googleapis.com/v1/projects/PROJECT_ID/models/
Ganti kode berikut:
REGION: Region endpoint regional tempat men-deploy model Anda. Region ini harus berupa region yang mendukung jenis mesin Compute Engine (N1).
PROJECT_ID: ID project Google Cloud Anda.
Misalnya, Anda dapat membuat permintaan berikut menggunakan perintah
curl
. Perintah ini memberikan otorisasi permintaan menggunakan kredensial yang terkait dengan penginstalan Google Cloud CLI Anda.curl -X POST -H "Content-Type: application/json" \ -d '{"name": "MODEL_NAME"}' \ -H "Authorization: Bearer `gcloud auth print-access-token`" \ "https://REGION-ml.googleapis.com/v1/projects/PROJECT_ID/models"
API akan menampilkan respons yang mirip dengan berikut ini:
{ "name": "projects/PROJECT_ID/models/MODEL_NAME", "regions": [ "REGION" ] }
Endpoint global
Format permintaan Anda dengan menempatkan objek model dalam isi permintaan. Minimal, tentukan nama untuk model Anda dengan mengganti MODEL_NAME dalam contoh berikut, dan tentukan region dengan mengganti REGION dengan region yang mendukung jenis mesin lama (MLS1):
{ "name": "MODEL_NAME", "regions": ["REGION"] }
Lakukan panggilan REST API ke URL berikut, dengan mengganti PROJECT_ID dengan ID project Google Cloud Anda:
POST https://ml.googleapis.com/v1/projects/PROJECT_ID/models/
Misalnya, Anda dapat membuat permintaan berikut menggunakan perintah
curl
. Perintah ini memberikan otorisasi permintaan menggunakan kredensial yang terkait dengan penginstalan Google Cloud CLI Anda.curl -X POST -H "Content-Type: application/json" \ -d '{"name": "MODEL_NAME", "regions": ["REGION"]}' \ -H "Authorization: Bearer `gcloud auth print-access-token`" \ "https://ml.googleapis.com/v1/projects/PROJECT_ID/models"
API akan menampilkan respons yang mirip dengan berikut ini:
{ "name": "projects/PROJECT_ID/models/MODEL_NAME", "regions": [ "REGION" ] }
Lihat API model AI Platform Prediction untuk mengetahui detail selengkapnya.
Membuat versi model
Sekarang Anda siap membuat versi model dengan model terlatih yang sebelumnya diupload ke Cloud Storage. Saat membuat versi, Anda dapat menentukan sejumlah parameter. Daftar berikut menjelaskan parameter umum, yang beberapa di antaranya diperlukan:
name
: harus unik dalam model AI Platform Prediction.deploymentUri
: jalur ke direktori model Anda di Cloud Storage.- Jika Anda men-deploy model TensorFlow, ini adalah direktori SavedModel.
- Jika Anda men-deploy model scikit-learn atau XGBoost,
ini adalah direktori yang berisi file
model.joblib
,model.pkl
, ataumodel.bst
. - Jika Anda men-deploy rutinitas prediksi kustom, ini adalah direktori yang berisi semua artefak model Anda. Ukuran total direktori ini harus 500 MB atau kurang.
framework
:TENSORFLOW
,SCIKIT_LEARN
, atauXGBOOST
.runtimeVersion
: Versi runtime berdasarkan dependensi yang diperlukan model Anda. Jika Anda men-deploy model scikit-learn atau model XGBoost, versinya harus setidaknya 1.4. Jika berencana untuk menggunakan versi model untuk prediksi batch, Anda harus menggunakan runtime versi 2.1 atau yang lebih lama.pythonVersion
: harus ditetapkan ke "3.5" (untuk runtime versi 1.4 hingga 1.14) atau "3.7" (untuk runtime versi 1.15 dan yang lebih baru) agar kompatibel dengan file model yang diekspor menggunakan Python 3. Juga dapat ditetapkan ke "2.7" jika digunakan dengan runtime versi 1.15 atau yang lebih lama.machineType
(opsional): jenis virtual machine yang digunakan AI Platform Prediction untuk node yang menayangkan prediksi. Pelajari jenis mesin lebih lanjut. Jika tidak ditetapkan, nilai ini akan ditetapkan secara default ken1-standard-2
di endpoint regional danmls1-c1-m2
di endpoint global.
Lihat informasi selengkapnya tentang setiap parameter ini, serta parameter tambahan yang kurang umum, di referensi API untuk resource versi.
Selain itu, jika Anda membuat model di endpoint regional, pastikan untuk juga membuat versi di endpoint regional yang sama.
console
Buka halaman Model AI Platform Prediction di konsol Google Cloud:
Di halaman Model, pilih nama resource model yang ingin Anda gunakan untuk membuat versi. Tindakan ini akan mengarahkan Anda ke halaman Detail Model.
Klik tombol Versi Baru di bagian atas halaman Detail Model. Tindakan ini akan mengarahkan Anda ke halaman Buat versi.
Masukkan nama versi Anda di kolom Name. Secara opsional, masukkan deskripsi untuk versi Anda di kolom Description.
Masukkan informasi berikut tentang cara Anda melatih model di kotak dropdown yang sesuai:
- Pilih versi Python yang Anda gunakan untuk melatih model.
- Pilih Framework dan Framework version.
- Pilih Versi runtime ML. Pelajari lebih lanjut versi runtime AI Platform Prediction.
Pilih Jenis mesin untuk menjalankan prediksi online.
Di kolom Model URI, masukkan lokasi bucket Cloud Storage tempat Anda mengupload file model. Anda dapat menggunakan tombol Browse untuk menemukan jalur yang benar.
Pastikan untuk menentukan jalur ke direktori yang berisi file, bukan jalur ke file model itu sendiri. Misalnya, gunakan
gs://your_bucket_name/model-dir/
, bukangs://your_bucket_name/model-dir/saved_model.pb
ataugs://your_bucket_name/model-dir/model.pkl
.Pilih opsi Penskalaan untuk deployment prediksi online:
Jika Anda memilih "Penskalaan otomatis", kolom Jumlah minimum node opsional akan ditampilkan. Anda dapat memasukkan jumlah minimum node yang akan terus berjalan setiap saat, saat layanan telah diskalakan.
Jika memilih "Penskalaan manual", Anda harus memasukkan Jumlah node yang ingin terus berjalan setiap saat.
Pelajari perbedaan opsi penskalaan bergantung pada jenis mesin.
Pelajari lebih lanjut harga untuk biaya prediksi.
Untuk menyelesaikan pembuatan versi model, klik Simpan.
gcloud
Tetapkan variabel lingkungan untuk menyimpan jalur ke direktori Cloud Storage tempat biner model Anda berada, nama model, nama versi, dan pilihan framework Anda.
Saat membuat versi dengan gcloud CLI, Anda dapat memberikan nama framework dalam huruf besar dengan garis bawah (misalnya,
SCIKIT_LEARN
) atau dalam huruf kecil dengan tanda hubung (misalnya,scikit-learn
). Kedua opsi tersebut menghasilkan perilaku yang identik.Ganti
[VALUES_IN_BRACKETS]
dengan nilai yang sesuai:MODEL_DIR="gs://your_bucket_name/" VERSION_NAME="[YOUR-VERSION-NAME]" MODEL_NAME="[YOUR-MODEL-NAME]" FRAMEWORK="[YOUR-FRAMEWORK_NAME]"
Buat versi:
gcloud ai-platform versions create $VERSION_NAME \ --model=$MODEL_NAME \ --origin=$MODEL_DIR \ --runtime-version=2.11 \ --framework=$FRAMEWORK \ --python-version=3.7 \ --region=REGION \ --machine-type=MACHINE_TYPE
Ganti kode berikut:
REGION: Region endpoint regional tempat Anda membuat model. Jika Anda membuat model di endpoint global, hapus tanda
--region
.MACHINE_TYPE: Jenis mesin, yang menentukan resource komputasi yang tersedia untuk node prediksi Anda.
Pembuatan versi memerlukan waktu beberapa menit. Setelah siap, Anda akan melihat output berikut:
Creating version (this might take a few minutes)......done.
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: '2018-02-28T16:30:45Z' deploymentUri: gs://your_bucket_name framework: [YOUR-FRAMEWORK-NAME] machineType: mls1-c1-m2 name: projects/[YOUR-PROJECT-ID]/models/[YOUR-MODEL-NAME]/versions/[YOUR-VERSION-NAME] pythonVersion: '3.7' runtimeVersion: '2.11' state: READY
REST API
Format isi permintaan Anda agar berisi objek versi. Contoh ini menentukan versi
name
,deploymentUri
,runtimeVersion
,framework
, danmachineType
. Ganti[VALUES_IN_BRACKETS]
dengan nilai yang sesuai:{ "name": "[YOUR-VERSION-NAME]", "deploymentUri": "gs://your_bucket_name/", "runtimeVersion": "2.11", "framework": "[YOUR_FRAMEWORK_NAME]", "pythonVersion": "3.7", "machineType": "[YOUR_MACHINE_TYPE]" }
Lakukan panggilan REST API ke jalur berikut, dengan mengganti
[VALUES_IN_BRACKETS]
dengan nilai yang sesuai:POST https://REGION-ml.googleapis.com/v1/projects/[YOUR-PROJECT-ID]/models/[YOUR-MODEL-NAME]/versions
Ganti REGION dengan region endpoint regional tempat Anda membuat model. Jika Anda membuat model di endpoint global, gunakan
ml.googleapis.com
.Misalnya, Anda dapat membuat permintaan berikut menggunakan perintah
curl
:curl -X POST -H "Content-Type: application/json" \ -d '{"name": "[YOUR-VERSION-NAME]", "deploymentUri": "gs://your_bucket_name/", "runtimeVersion": "2.11", "framework": "[YOUR_FRAMEWORK_NAME]", "pythonVersion": "3.7", "machineType": "[YOUR_MACHINE_TYPE]"}' \ -H "Authorization: Bearer `gcloud auth print-access-token`" \ "https://REGION-ml.googleapis.com/v1/projects/[YOUR-PROJECT-ID]/models/[YOUR-MODEL-NAME]/versions"
Pembuatan versi memerlukan waktu beberapa menit. Jika sudah siap, Anda akan melihat output yang mirip dengan ini:
{ "name": "projects/[YOUR-PROJECT-ID]/operations/create_[YOUR-MODEL-NAME]_[YOUR-VERSION-NAME]-[TIMESTAMP]", "metadata": { "@type": "type.googleapis.com/google.cloud.ml.v1.OperationMetadata", "createTime": "2018-07-07T02:51:50Z", "operationType": "CREATE_VERSION", "modelName": "projects/[YOUR-PROJECT-ID]/models/[YOUR-MODEL-NAME]", "version": { "name": "projects/[YOUR-PROJECT-ID]/models/[YOUR-MODEL-NAME]/versions/[YOUR-VERSION-NAME]", "deploymentUri": "gs://your_bucket_name", "createTime": "2018-07-07T02:51:49Z", "runtimeVersion": "2.11", "framework": "[YOUR_FRAMEWORK_NAME]", "machineType": "[YOUR_MACHINE_TYPE]", "pythonVersion": "3.7" } } }
Mengirim permintaan prediksi online
Setelah Anda berhasil membuat versi model, AI Platform Prediction akan memulai server baru yang siap menayangkan permintaan prediksi.
gcloud
Tetapkan variabel lingkungan untuk nama model, nama versi, dan nama file input Anda:
MODEL_NAME="iris" VERSION_NAME="v1" INPUT_FILE="input.json"
Kirim permintaan prediksi:
gcloud ai-platform predict --model $MODEL_NAME --version \ $VERSION_NAME --json-instances $INPUT_FILE
Python
Contoh ini mengasumsikan bahwa Anda sudah memahami library Klien Google Cloud untuk Python. Jika Anda belum terbiasa dengannya, lihat Menggunakan Library Klien Python.
import googleapiclient.discovery
def predict_json(project, model, instances, version=None):
"""Send json data to a deployed model for prediction.
Args:
project (str): project where the AI Platform Prediction Model is deployed.
model (str): model name.
instances ([[float]]): List of input instances, where each input
instance is a list of floats.
version: str, version of the model to target.
Returns:
Mapping[str: any]: dictionary of prediction results defined by the
model.
"""
# Create the AI Platform Prediction service object.
# To authenticate set the environment variable
# GOOGLE_APPLICATION_CREDENTIALS=<path_to_service_account_file>
service = googleapiclient.discovery.build('ml', 'v1')
name = 'projects/{}/models/{}'.format(project, model)
if version is not None:
name += '/versions/{}'.format(version)
response = service.projects().predict(
name=name,
body={'instances': instances}
).execute()
if 'error' in response:
raise RuntimeError(response['error'])
return response['predictions']
Lihat informasi selengkapnya tentang setiap parameter ini di AI Platform Prediction API untuk input prediksi.
Pembersihan
Agar tidak menimbulkan biaya pada akun Google Cloud Anda untuk resource yang digunakan pada halaman ini, ikuti langkah-langkah berikut.