Gemini Enterprise Agent Platform מציעה קונטיינרים מוכנים מראש להצגת מסקנות והסברים ממודלים שאומנו באמצעות מסגרות למידת המכונה (ML) הבאות:
- TensorFlow
- PyTorch
- XGBoost
- scikit-learn
כדי להשתמש באחד מהקונטיינרים המוכנים מראש האלה, צריך לשמור את המודל כארטיפקטים של מודל שעומדים בדרישות של הקונטיינר המובנה. הדרישות האלה חלות גם אם הארטיפקטים של המודל נוצרו ב-Agent Platform וגם אם לא.
אם אתם משתמשים במאגר תגים בהתאמה אישית כדי להציג מסקנות, אתם לא צריכים לעמוד בדרישות שמופיעות בדף הזה, אבל אתם יכולים להשתמש בהן כהנחיות.
דרישות ספציפיות למסגרות לייצוא לקונטיינרים מוכנים מראש
בהתאם למסגרת למידת המכונה שבה אתם מתכננים להשתמש להסקת מסקנות, אתם צריכים לייצא את ארטיפקטים של המודל בפורמטים שונים. בקטעים הבאים מתוארים פורמטים מקובלים של מודלים לכל מסגרת למידת מכונה.
TensorFlow
אם משתמשים ב-TensorFlow כדי לאמן מודל, צריך לייצא את המודל כספרייה של TensorFlow SavedModel.
יש כמה דרכים לייצא מודלים מסוג SavedModel מקוד אימון של TensorFlow. ברשימה הבאה מפורטות כמה דרכים שמתאימות לממשקי TensorFlow API שונים:
אם אתם משתמשים ב-Keras לאימון, צריך להשתמש ב-
tf.keras.Model.saveכדי לייצא SavedModel.אם משתמשים ב-Estimator לאימון, משתמשים ב-
tf.estimator.Estimator.export_saved_modelכדי לייצא SavedModel.אחרת, משתמשים ב-
tf.saved_model.saveאו ב-משתמשים ב-tf.compat.v1.saved_model.SavedModelBuilder.אם אתם לא משתמשים ב-Keras או ב-Estimator, הקפידו להשתמש בתג
serveובחתימהserving_defaultכשאתם מייצאים את SavedModel כדי לוודא שפלטפורמת הסוכנים תוכל להשתמש בארטיפקטים של המודל כדי להציג מסקנות. Keras ו-Estimator מטפלים בזה באופן אוטומטי. מידע נוסף על ציון חתימות במהלך ייצוא
כדי להציג מסקנות באמצעות הארטיפקטים האלה, צריך ליצור Model עם קונטיינר מוכן מראש להסקת מסקנות שתואם לגרסה של TensorFlow שבה השתמשתם לאימון.
TensorFlow for Vertex AI ניתן להסברה
אם רוצים לקבל הסברים מModel שמשתמש בקונטיינר מוכן מראש של TensorFlow כדי להציג מסקנות, כדאי לקרוא את הדרישות הנוספות לייצוא מודל TensorFlow ל-Vertex Explainable AI.
הפעלת אצווה של בקשות בצד השרת עבור TensorFlow
אם רוצים להפעיל את האפשרות של שליחת בקשות בקבוצות עבור Model שמשתמש במאגר TensorFlow מוכן מראש כדי להציג מסקנות, צריך לכלול את config/batching_parameters_config באותה תיקייה ב-Cloud Storage שבה נמצא הקובץ saved_model.pb. מידע על הגדרת קובץ התצורה של אצווה מופיע במסמכי התיעוד הרשמיים של TensorFlow.
PyTorch
צריך לארוז את ארטיפקטים של המודל בקובץ ארכיון של המודל (.mar).
הארכיון הזה חייב לכלול סקריפט של handler, מסוג default או custom, שמגדיר איך המודל מעבד בקשות הסקה. לסביבות עבודה מתקדמות יותר, כדאי להשתמש בקונטיינרים בהתאמה אישית במקום להסתמך על אימג' מוכן מראש של PyTorch serving.
התמונות המוכנות מראש של PyTorch מצפות שהארכיון ייקרא model.mar, לכן חשוב לוודא ששם המודל מוגדר כ-'model' כשיוצרים את הארכיון.
מידע על אופטימיזציה של השימוש בזיכרון, זמן האחזור או קצב העברת הנתונים של מודל PyTorch שמוצג באמצעות TorchServe זמין במדריך הביצועים של PyTorch.
XGBoost
אם משתמשים בקונטיינר מוכן מראש של XGBoost כדי לאמן מודל, אפשר לייצא את המודל המאומן בדרכים הבאות:
- כדי לייצא קובץ בשם
model.bst, משתמשים בשיטהsave_modelשלxgboost.Booster. - משתמשים בספריית
joblibכדי לייצא קובץ בשםmodel.joblib.
שם הקובץ של ארטיפקט המודל צריך להיות זהה בדיוק לאחת מהאפשרויות האלה.
בדוגמאות הבאות אפשר לראות איך מאמנים מודל ומייצאים אותו:
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)
כדי להכניס לשימוש בסביבת הייצור היקשים באמצעות הארטיפקט הזה, צריך ליצור Model עם קונטיינר מוכן מראש להסקת מסקנות שתואם לגרסה של XGBoost שבה השתמשתם לאימון.
scikit-learn
אם משתמשים במודל מוכן מראש של scikit-learn כדי לאמן מודל, אפשר לייצא אותו באמצעות הספרייה joblib כדי לייצא קובץ בשם model.joblib.
שם הקובץ של ארטיפקט המודל צריך להיות זהה בדיוק לאחת מהאפשרויות האלה. אפשר לייצא אומדנים סטנדרטיים של scikit-learn או צינורות של scikit-learn.
בדוגמה הבאה אפשר לראות איך מאמנים מודל ומייצאים אותו:
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)
כדי להציג מסקנות באמצעות הארטיפקט הזה, צריך ליצור Model עם קונטיינר מוכן מראש להסקת מסקנות שתואם לגרסה של scikit-learn שבה השתמשתם לאימון.
המאמרים הבאים
כדאי לקרוא על דרישות נוספות לקוד האימון שצריך לקחת בחשבון כשמבצעים אימון ללא שרת בפלטפורמת הסוכנים.
איך יוצרים
TrainingPipelineמשאב בהתאמה אישית כדי להריץ את קוד האימון המותאם אישית וליצורModelמפריטי המודל שנוצרו.איך מייבאים
Modelמפריטי מידע של מודל ב-Cloud Storage. זה רלוונטי לפריטי מידע של מודל שנוצרו באמצעות משאבCustomJobאו משאבHyperparameterTuningJob, וגם לפריטי מידע של מודל שאומנו מחוץ ל-Agent Platform.