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 menggunakan penampung kustom untuk menayangkan prediksi, Anda tidak perlu mematuhi persyaratan di halaman ini, tetapi Anda masih dapat menggunakannya sebagai panduan.
Persyaratan khusus framework untuk mengekspor ke penampung 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 menggunakan Keras untuk pelatihan, gunakan
tf.keras.Model.save
untuk mengekspor SavedModel.Jika 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 Estimator, pastikan Anda menggunakan tag
serve
dan tanda tanganserving_default
saat mengekspor SavedModel untuk memastikan Vertex AI dapat menggunakan artefak model Anda untuk menampilkan 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 ingin mendapatkan penjelasan dari Model
yang menggunakan
container bawaan TensorFlow untuk menyajikan prediksi, baca persyaratan tambahan
untuk mengekspor model TensorFlow untuk
Vertex Explainable AI.
Mengaktifkan batch 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 Cloud Storage 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
Torch model 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 container bawaan XGBoost untuk melatih model, Anda dapat mengekspor model terlatih dengan 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 berikut menunjukkan cara melatih dan mengekspor model:
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 model bawaan scikit-learn
untuk melatih model, Anda dapat mengekspornya dengan 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 berikut menunjukkan cara melatih dan mengekspor model:
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 Anda buat menggunakan resourceCustomJob
atau resourceHyperparameterTuningJob
, serta artefak model yang Anda latih di luar Vertex AI.