ייצוא פריטי מידע שנוצרו בתהליך פיתוח (Artifact) של מודל להסקת מסקנות ולהסבר

‫Gemini Enterprise Agent Platform מציעה קונטיינרים מוכנים מראש להצגת מסקנות והסברים ממודלים שאומנו באמצעות מסגרות למידת המכונה (ML) הבאות:

  • TensorFlow
  • PyTorch
  • XGBoost
  • scikit-learn

כדי להשתמש באחד מהקונטיינרים המוכנים מראש האלה, צריך לשמור את המודל כארטיפקטים של מודל שעומדים בדרישות של הקונטיינר המובנה. הדרישות האלה חלות גם אם הארטיפקטים של המודל נוצרו ב-Agent Platform וגם אם לא.

אם אתם משתמשים במאגר תגים בהתאמה אישית כדי להציג מסקנות, אתם לא צריכים לעמוד בדרישות שמופיעות בדף הזה, אבל אתם יכולים להשתמש בהן כהנחיות.

דרישות ספציפיות למסגרות לייצוא לקונטיינרים מוכנים מראש

בהתאם למסגרת למידת המכונה שבה אתם מתכננים להשתמש להסקת מסקנות, אתם צריכים לייצא את ארטיפקטים של המודל בפורמטים שונים. בקטעים הבאים מתוארים פורמטים מקובלים של מודלים לכל מסגרת למידת מכונה.

TensorFlow

אם משתמשים ב-TensorFlow כדי לאמן מודל, צריך לייצא את המודל כספרייה של TensorFlow SavedModel.

יש כמה דרכים לייצא מודלים מסוג SavedModel מקוד אימון של TensorFlow. ברשימה הבאה מפורטות כמה דרכים שמתאימות לממשקי TensorFlow API שונים:

כדי להציג מסקנות באמצעות הארטיפקטים האלה, צריך ליצור 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 כדי לאמן מודל, אפשר לייצא את המודל המאומן בדרכים הבאות:

שם הקובץ של ארטיפקט המודל צריך להיות זהה בדיוק לאחת מהאפשרויות האלה.

בדוגמאות הבאות אפשר לראות איך מאמנים מודל ומייצאים אותו:

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 שבה השתמשתם לאימון.

המאמרים הבאים