שימוש בכתובת IP פרטית לאימון בלי שרת (serverless) ב-Vertex AI

שימוש בכתובת IP פרטית כדי להתחבר למשימות האימון מספק אבטחת רשת טובה יותר וחביון רשת נמוך יותר מאשר שימוש בכתובת IP ציבורית. כדי להשתמש בכתובת IP פרטית, אתם משתמשים בענן וירטואלי פרטי (VPC) כדי לקשר את הרשת שלכם לכל סוג של משימת אימון ב-Vertex AI ללא שרתים. כך קוד האימון יכול לגשת לכתובות IP פרטיות בתוךGoogle Cloud או ברשתות מקומיות.

במדריך הזה מוסבר איך להריץ משימות הדרכה ללא שרת ברשת שלכם אחרי שכבר הגדרתם שיוך של רשתות VPC כדי לשייך את הרשת שלכם למשאב של Vertex AI CustomJob, HyperparameterTuningJob או TrainingPipeline מותאם אישית.

סקירה כללית

לפני ששולחים משימת אימון ללא שרת באמצעות כתובת IP פרטית, צריך להגדיר גישה לשירותים פרטיים כדי ליצור קישור בין הרשת שלכם לבין Vertex AI. אם כבר הגדרתם את זה, אתם יכולים להשתמש בחיבורי ה-Peering הקיימים.

במדריך הזה מוסבר איך לבצע את המשימות הבאות:

  • הסבר על טווחי כתובות ה-IP שצריך לשריין לאימון בלי שרת (serverless).
  • בודקים את הסטטוס של חיבורי ה-Peering הקיימים.
  • לבצע אימון בלי שרת (serverless) ב-Vertex AI ברשת שלכם.
  • לפני שמבצעים אימון ברשת אחרת, צריך לבדוק אם מתבצע אימון פעיל ברשת אחת.
  • בודקים שלקוד האימון יש גישה לכתובות IP פרטיות ברשת.

שמירת טווחי כתובות IP לאימון בלי שרת (serverless)

כשמזמינים טווח כתובות IP לבעלי שירותים מנוהלים, אפשר להשתמש בטווח הזה ב-Vertex AI ובשירותים אחרים. בטבלה הזו מוצג המספר המקסימלי של משימות אימון מקבילות שאפשר להריץ עם טווחי כתובות שמורים מ-/16 עד ‎ /18, בהנחה שהטווחי הכתובות האלה משמשים כמעט רק את Vertex AI. אם אתם מתחברים לבעלים של שירותים מנוהלים אחרים באמצעות אותו טווח, הקצו טווח גדול יותר כדי למנוע מיצוי של כתובות IP.

הגדרת המכונה למשימת אימון טווח שמור מספר מקסימלי של משימות מקבילות
עד 8 צמתים.
לדוגמה: עותק משוכפל ראשי אחד במאגר העובדים הראשון, 6 עותקים משוכפלים במאגר העובדים השני ועובד אחד במאגר העובדים השלישי (שישמש כשרת פרמטרים)
/16 63
/17 31
/18 15
עד 16 צמתים.
לדוגמה: עותק משוכפל ראשי אחד במאגר העובדים הראשון, 14 עותקים משוכפלים במאגר העובדים השני ועובד אחד במאגר העובדים השלישי (שישמש כשרת פרמטרים)
/16 31
/17 15
/18 7
עד 32 צמתים.
לדוגמה: עותק משוכפל ראשי אחד במאגר העובדים הראשון, 30 עותקים משוכפלים במאגר העובדים השני ועובד אחד במאגר העובדים השלישי (שישמש כשרת פרמטרים)
/16 15
/17 7
/18 3

מידע נוסף על הגדרת מאגרי עובדים לאימון מבוזר

בדיקת הסטטוס של חיבורי קישור בין רשתות שכנות (peering) קיימים

אם יש לכם חיבורי Peering קיימים שבהם אתם משתמשים עם Vertex AI, אתם יכולים לרשום אותם כדי לבדוק את הסטטוס:

gcloud compute networks peerings list --network NETWORK_NAME

הסטטוס של חיבורי ה-Peering אמור להיות ACTIVE. מידע נוסף על חיבורי Peering פעילים

ביצוע אימון ללא שרת

כשמבצעים אימון בלי שרת (serverless), צריך לציין את שם הרשת שרוצים של-Vertex AI תהיה גישה אליה.

בהתאם לאופן שבו אתם מבצעים אימון ללא שרת, מציינים את הרשת באחד משדות ה-API הבאים:

אם לא מציינים שם רשת, מערכת Vertex AI מריצה את האימון בלי שרת (serverless) בלי חיבור קישור בין רשתות שכנות (peering), ובלי גישה לכתובות IP פרטיות בפרויקט.

דוגמה: יצירת CustomJob באמצעות ה-CLI של gcloud

בדוגמה הבאה מוסבר איך לציין רשת כשמשתמשים ב-CLI של gcloud כדי להריץ CustomJob שמשתמש בקונטיינר מוכן מראש. אם אתם מבצעים אימון בלי שרת (serverless) בדרך אחרת, צריך להוסיף את השדה network כמו שמתואר לסוג של משימת אימון בלי שרת (serverless) שבה אתם משתמשים.

  1. יוצרים קובץ config.yaml כדי לציין את הרשת. אם אתם משתמשים ב-VPC משותף, צריך להשתמש במספר של פרויקט המארח ב-VPC.

    מוודאים ששם הרשת בפורמט הנכון:

    PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
    
    cat <<EOF > config.yaml
    network: projects/PROJECT_NUMBER/global/networks/NETWORK_NAME
    EOF
    
  2. יוצרים אפליקציית אימון להרצה ב-Vertex AI.

  3. יוצרים את CustomJob ומעבירים את קובץ config.yaml:

    gcloud ai custom-jobs create \
      --region=LOCATION \
      --display-name=JOB_NAME \
      --python-package-uris=PYTHON_PACKAGE_URIS \
      --worker-pool-spec=machine-type=MACHINE_TYPE,replica-count=REPLICA_COUNT,executor-image-uri=PYTHON_PACKAGE_EXECUTOR_IMAGE_URI,python-module=PYTHON_MODULE \
      --config=config.yaml
    

במאמר יצירת משימות אימון בהתאמה אישית מוסבר איך להחליף את ה-placeholders בפקודה הזו.

הפעלת משימות ברשתות שונות

אי אפשר לבצע אימון בלי שרת (serverless) ברשת חדשה בזמן שעדיין מתבצע אימון בלי שרת (serverless) ברשת אחרת. לפני שאתם עוברים לרשת אחרת, אתם צריכים לחכות עד שכל המשאבים שהוגשו מסוג CustomJob,‏ HyperparameterTuningJob ו-TrainingPipeline (בהתאמה אישית) יסתיימו, או לבטל אותם.

בדיקת הגישה למשימת אימון

בקטע הזה מוסבר איך לבדוק אם משאב אימון בלי שרת (serverless) יכול לגשת לכתובות IP פרטיות ברשת.

  1. יוצרים מכונה של Compute Engine ברשת ה-VPC.
  2. בודקים את הכללים של חומת האש כדי לוודא שהם לא מגבילים את תעבורת הנתונים הנכנסת (ingress) מרשת Vertex AI. אם כן, צריך להוסיף כלל כדי לוודא שלרשת Vertex AI תהיה גישה לטווח כתובות ה-IP שהזמנתם ל-Vertex AI (ולספקי שירותים אחרים).
  3. מגדירים שרת מקומי במכונה הווירטואלית כדי ליצור נקודת קצה לגישה אל Vertex AI CustomJob.
  4. יוצרים אפליקציית אימון ב-Python להפעלה ב-Vertex AI. במקום קוד לאימון המודל, יוצרים קוד שנותן גישה לנקודת הקצה שהגדרתם בשלב הקודם.
  5. יוצרים CustomJob לפי הדוגמה הקודמת.

בעיות נפוצות

בקטע הזה מפורטות כמה בעיות נפוצות בהגדרת קישור בין רשתות VPC שכנות (peering) עם Vertex AI.

  • כשמגדירים את Vertex AI לשימוש ברשת, מציינים את השם המלא של הרשת:

    "projects/YOUR_PROJECT_NUMBER/global/networks/YOUR_NETWORK_NAME"

  • חשוב לוודא שלא מבצעים אימון בלי שרת (serverless) ברשת מסוימת לפני שמבצעים אימון בלי שרת (serverless) ברשת אחרת.

  • מוודאים שהקציתם טווח מספיק של כתובות IP לכל ספקי השירותים שהרשת שלכם מתחברת אליהם, כולל Vertex AI.

מידע נוסף על פתרון בעיות זמין במדריך לפתרון בעיות ב-VPC Network Peering.

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