מודל מותאם אישית באירוח ל-Earth Engine

כדי לבצע הסקת מסקנות באמצעות מודל מותאם אישית שהוכשרה באמצעות מסגרת של למידת מכונה, כמו TensorFlow או PyTorch, צריך לשמור את המודל ולהעלות אותו ל-Vertex AI, ליצור נקודת קצה לחיזוי ולפרוס את המודל כדי לשרת את התנועה בנקודת הקצה שנוצרה.

קלט המודל

לפני ששומרים ומעלים את המודל ל-Vertex AI, צריך לוודא שהוא מקבל נתונים בפורמט של עומס שימושי (payload) שנתמך ב-Earth Engine. פרטים נוספים זמינים בדף פורמטים של עומסי נתונים.

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

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

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.

אחרי ההעתקה, תוכלו להשתמש ב-Model Registry של 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 כדי לבצע השערות.