כדי להסיק מסקנות באמצעות מודל שעבר אימון בהתאמה אישית, באמצעות מסגרת למידת מכונה כמו TensorFlow או PyTorch, צריך לשמור את המודל ולהעלות אותו ל-Vertex AI, ליצור נקודת קצה לחיזוי ולפרוס את המודל כדי לשרת את התנועה בנקודת הקצה שנוצרה.
קלט המודל
לפני ששומרים ומעלים את המודל ל-Vertex AI, צריך לוודא שהמודל מקבל נתונים בפורמט של מטען ייעודי (payload) שנתמך ב-Earth Engine. פרטים נוספים זמינים בדף פורמטים של מטען ייעודי (payload).
ארטיפקט של מודל
השלב הבא הוא לשמור את המודל בפורמט שאפשר לארח ב-Vertex AI.
TensorFlow
אפשר לשמור מודלים שמבוססים על TensorFlow בכמה פורמטים שונים, אבל ב-Vertex AI נדרש הפורמט SavedModel. מודלים שמבוססים על Keras צריך לייצא כ-SavedModels באמצעות tf.keras.Model.export().
במודלים אחרים של TensorFlow צריך להשתמש ב-tf.saved_model.save() הפרימיטיבי יותר.
למידע נוסף, קראו את המאמר בנושא פורמט SavedModel.
PyTorch
במודלים של PyTorch, הכנת פריטי המידע שנוצר במודל להצגת חיזויים מתבצעת בצורה קצת שונה. אם יוצרים מודל עם אימון בהתאמה אישית, קודם צריך לשמור את המודל. מסיבות שקשורות לביצועים, מומלץ להמיר את המודל של PyTorch ל-TorchScript ולשמור את קובץ המודל באמצעות:
model_scripted = torch.jit.script(model) # Export to TorchScript
model_scripted.save('model.pt') # Save
אחרי ששומרים את קובץ המודל, צריך להעביר אותו לארכיון כדי לפרוס אותו ב-Vertex AI. כשמשתמשים בקונטיינר מוגדר מראש, צריך לקרוא למודל model. כדי להעביר את המודל לארכיון, צריך להפעיל את torch-model-archiver, כולל כל handler בהתאמה אישית וקבצים נוספים שהמודל דורש. הנה דוגמה:
torch-model-archiver -f \
--model-name model \
--version 1.0 \
--serialized-file $model_file \
--handler $hander_file \
--extra-files $index_to_name_file \
--export-path $model_path
פריסת מודלים ב-Vertex AI
אחרי ששומרים את קובצי המודל, השלב הבא הוא להעלות את המודל ל-Vertex AI. אם פריט המידע שנוצר מהמודל עדיין לא נמצא ב-Google Cloud Storage, קודם צריך להעתיק לשם את ארכיון המודל באמצעות פקודה כמו gsutil cp $model_path
gs://${your-bucket}/models/model.
אחרי ההעתקה, אפשר להשתמש ב-Vertex AI מרשם המודלים כדי להעלות את המודל, או להשתמש בשורת הפקודה של gcloud ולהריץ פקודה כמו:
gcloud ai models upload \
--artifact-uri=gs://{your-bucket}/models/model \
--display-name=${display-name} \
--container-image-uri=${model-container} \
--container-grpc-ports=8500
טיפ: כדי להשיג ביצועים אופטימליים, הפעילו חיזויים של gRPC באמצעות הדגל container-grpc-ports. מידע נוסף על חיזויים של gRPC זמין במסמכי התיעוד של פורמטים של מטען ייעודי (payload).
אפשר לציין את הדגל הזה רק באמצעות כלי שורת הפקודה של gcloud.
ניהול נקודות קצה של מודלים
אחרי שמעלים מודל ל-Vertex AI, יוצרים נקודת קצה ופורסים את המודל דרך הדף Online Prediction. כדי לעשות את זה, יוצרים נקודת קצה חדשה או משתמשים בשורת הפקודה של gcloud עם הפקודות endpoints create ו-endpoints deploy-model. לדוגמה:
יצירת מודל:
gcloud ai endpoints create \
--display-name=${endpoint-name}
פריסת מודל
gcloud ai endpoints deploy-model {endpoint-id} \
--model=${model-id} \
--traffic-split=0=100 \
--display-name=${model-display-name} \
--min-replica-count=${min-replica-count} \
--max-replica-count=${max-replica-count}
אחרי פריסת המודל, אפשר להתחבר למודל ב-Earth Engine כדי לבצע הסקות.