Vertex AI menawarkan container bawaan untuk menyajikan prediksi dan penjelasan dari model yang dilatih menggunakan framework machine learning (ML) berikut:
- TensorFlow
- PyTorch
- XGBoost
- scikit-learn
Untuk menggunakan salah satu container bawaan ini, Anda harus menyimpan model sebagai satu atau beberapa artefak model yang sesuai dengan persyaratan container bawaan. Persyaratan ini berlaku terlepas dari apakah artefak model Anda dibuat di Vertex AI atau tidak.
Jika ingin menggunakan penampung kustom untuk menyajikan prediksi, Anda tidak perlu mematuhi persyaratan di halaman ini, tetapi Anda tetap dapat menggunakannya sebagai pedoman.
Persyaratan khusus framework untuk mengekspor ke container bawaan
Bergantung pada framework ML yang ingin Anda gunakan untuk prediksi, Anda harus mengekspor artefak model dalam berbagai format. Bagian berikut ini menjelaskan format model yang dapat diterima untuk setiap framework ML.
TensorFlow
Jika Anda menggunakan TensorFlow untuk melatih model, ekspor model Anda sebagai direktori SavedModel TensorFlow.
Ada beberapa cara untuk mengekspor SavedModels dari kode pelatihan TensorFlow. Daftar berikut menjelaskan beberapa cara yang sesuai untuk berbagai API TensorFlow:
Jika Anda telah menggunakan Keras untuk pelatihan, gunakan
tf.keras.Model.save
untuk mengekspor SavedModelJika Anda menggunakan Estimator untuk pelatihan, gunakan
tf.estimator.Estimator.export_saved_model
untuk mengekspor SavedModel.Jika tidak, gunakan
tf.saved_model.save
atau gunakantf.compat.v1.saved_model.SavedModelBuilder
.Jika Anda tidak menggunakan Keras atau ANALYTICS, pastikan untuk menggunakan tag
serve
dan tanda tanganserving_default
saat mengekspor SavedModel untuk memastikan Vertex AI dapat menggunakan artefak model Anda untuk menyajikan prediksi. Keras dan Estimator akan menangani hal ini secara otomatis. Pelajari lebih lanjut cara menentukan tanda tangan selama ekspor.
Untuk menampilkan prediksi menggunakan artefak ini, buat Model
dengan container bawaan untuk prediksi yang cocok dengan versi TensorFlow yang Anda gunakan untuk pelatihan.
TensorFlow untuk Vertex Explainable AI
Jika Anda inginmendapatkan penjelasan dari Model
yang menggunakan container bawaan TensorFlow untuk menyajikan prediksi, lalu membaca persyaratan tambahan
untuk mengekspor model TensorFlow untuk
Vertex Explainable AI.
Mengaktifkan btach permintaan sisi server untuk Tensorflow
Jika Anda ingin mengaktifkan batch permintaan untuk Model
yang menggunakan container bawaan TensorFlow untuk menyajikan prediksi, sertakan config/batching_parameters_config dalam direktori gcs yang sama dengan file saved_model.pb
. Untuk mengonfigurasi file konfigurasi batch, lihat dokumentasi resmi Tensorflow.
PyTorch
Anda harus mengemas artefak model, termasuk pengendali
default atau
kustom dengan
membuat file arsip menggunakan
Model Torch pengarsip.
Image PyTorch bawaan mengharapkan arsip diberi nama model.mar
, jadi pastikan
Anda menetapkan nama model ke 'model'.
Untuk informasi tentang cara mengoptimalkan penggunaan, latensi, atau throughput memori model PyTorch yang disajikan dengan TorchServe, lihat panduan performa PyTorch.
XGBoost
Jika menggunakan XGBoost untuk melatih model, Anda dapat mengekspor model terlatih dengan salah satu dari tiga cara berikut:
- Gunakan metode
save_model
xgboost.Booster
untuk mengekspor file bernamamodel.bst
. - Gunakan library
joblib
untuk mengekspor file bernamamodel.joblib
. - Gunakan modul
pickle
Python untuk mengekspor file bernamamodel.pkl
.
Nama file artefak model Anda harus sama persis dengan salah satu opsi ini.
Contoh dengan tab berikut menunjukkan cara melatih dan mengekspor model dengan ketiga cara tersebut:
xgboost.Booster
import os
from google.cloud import storage
from sklearn import datasets
import xgboost as xgb
digits = datasets.load_digits()
dtrain = xgb.DMatrix(digits.data, label=digits.target)
bst = xgb.train({}, dtrain, 20)
artifact_filename = 'model.bst'
# Save model artifact to local filesystem (doesn't persist)
local_path = artifact_filename
bst.save_model(local_path)
# Upload model artifact to Cloud Storage
model_directory = os.environ['AIP_MODEL_DIR']
storage_path = os.path.join(model_directory, artifact_filename)
blob = storage.blob.Blob.from_string(storage_path, client=storage.Client())
blob.upload_from_filename(local_path)
joblib
import os
from google.cloud import storage
from sklearn import datasets
import joblib
import xgboost as xgb
digits = datasets.load_digits()
dtrain = xgb.DMatrix(digits.data, label=digits.target)
bst = xgb.train({}, dtrain, 20)
artifact_filename = 'model.joblib'
# Save model artifact to local filesystem (doesn't persist)
local_path = artifact_filename
joblib.dump(bst, local_path)
# Upload model artifact to Cloud Storage
model_directory = os.environ['AIP_MODEL_DIR']
storage_path = os.path.join(model_directory, artifact_filename)
blob = storage.blob.Blob.from_string(storage_path, client=storage.Client())
blob.upload_from_filename(local_path)
pickle
import os
import pickle
from google.cloud import storage
from sklearn import datasets
import xgboost as xgb
digits = datasets.load_digits()
dtrain = xgb.DMatrix(digits.data, label=digits.target)
bst = xgb.train({}, dtrain, 20)
artifact_filename = 'model.pkl'
# Save model artifact to local filesystem (doesn't persist)
local_path = artifact_filename
with open(local_path, 'wb') as model_file:
pickle.dump(bst, model_file)
# Upload model artifact to Cloud Storage
model_directory = os.environ['AIP_MODEL_DIR']
storage_path = os.path.join(model_directory, artifact_filename)
blob = storage.blob.Blob.from_string(storage_path, client=storage.Client())
blob.upload_from_filename(local_path)
Untuk menyajikan prediksi menggunakan artefak ini, buat Model
dengan container bawaan untuk prediksi yang cocok dengan versi XGBoost yang Anda gunakan untuk pelatihan.
scikit-learn
Jika menggunakan scikit-learn untuk melatih model, Anda dapat mengekspornya dengan salah satu dari dua cara berikut:
- Gunakan library
joblib
untuk mengekspor file bernamamodel.joblib
. - Gunakan modul
pickle
Python untuk mengekspor file bernamamodel.pkl
.
Nama file artefak model Anda harus sama persis dengan salah satu opsi ini. Anda dapat mengekspor estimator scikit-learn standar atau pipeline scikit-learn.
Contoh dengan tab berikut menunjukkan cara melatih dan mengekspor model dengan kedua cara tersebut:
joblib
import os
from google.cloud import storage
from sklearn import datasets
from sklearn.ensemble import RandomForestClassifier
import joblib
digits = datasets.load_digits()
classifier = RandomForestClassifier()
classifier.fit(digits.data, digits.target)
artifact_filename = 'model.joblib'
# Save model artifact to local filesystem (doesn't persist)
local_path = artifact_filename
joblib.dump(classifier, local_path)
# Upload model artifact to Cloud Storage
model_directory = os.environ['AIP_MODEL_DIR']
storage_path = os.path.join(model_directory, artifact_filename)
blob = storage.blob.Blob.from_string(storage_path, client=storage.Client())
blob.upload_from_filename(local_path)
pickle
import os
import pickle
from google.cloud import storage
from sklearn import datasets
from sklearn.ensemble import RandomForestClassifier
digits = datasets.load_digits()
classifier = RandomForestClassifier()
classifier.fit(digits.data, digits.target)
artifact_filename = 'model.pkl'
# Save model artifact to local filesystem (doesn't persist)
local_path = artifact_filename
with open(local_path, 'wb') as model_file:
pickle.dump(classifier, model_file)
# Upload model artifact to Cloud Storage
model_directory = os.environ['AIP_MODEL_DIR']
storage_path = os.path.join(model_directory, artifact_filename)
blob = storage.blob.Blob.from_string(storage_path, client=storage.Client())
blob.upload_from_filename(local_path)
Untuk menyajikan prediksi menggunakan artefak ini, buat Model
dengan container bawaan untuk prediksi yang cocok dengan versi scikit-learn yang Anda gunakan untuk pelatihan.
Langkah selanjutnya
Baca persyaratan tambahan untuk kode pelatihan yang harus Anda pertimbangkan saat melakukan pelatihan kustom di Vertex AI.
Pelajari cara membuat resource
TrainingPipeline
kustom untuk menjalankan kode pelatihan kustom Anda dan membuatModel
dari artefak model yang dihasilkan.Pelajari cara mengimpor
Model
dari artefak model di Cloud Storage. Hal ini berlaku untuk artefak model yang telah Anda buat menggunakan resourceCustomJob
atau resourceHyperparameterTuningJob
, serta artefak model yang Anda latih di luar Vertex AI.