שימוש בכתובת IP פרטית לאימון של אפליקציות serverless

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

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

סקירה כללית

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

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

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

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

כשמזמינים טווח כתובות IP לבעלי שירותים מנוהלים, אפשר להשתמש בטווח הזה ב-Agent Platform ובשירותים אחרים. בטבלה הזו מוצג המספר המקסימלי של משימות אימון מקבילות שאפשר להריץ עם טווחי כתובות שמורים מ-/16 עד ‎ /18, בהנחה שהטווחי הכתובות האלה משמשים כמעט באופן בלעדי את Agent Platform. אם אתם מתחברים לספקי שירותים אחרים באמצעות אותו טווח, הקצו טווח גדול יותר כדי למנוע מיצוי של כתובות ה-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 קיימים שבהם אתם משתמשים עם Agent Platform, אתם יכולים להציג אותם כדי לבדוק את הסטטוס:

gcloud compute networks peerings list --network NETWORK_NAME

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

ביצוע הדרכה ללא שרת

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

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

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

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

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

  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 בפקודה הזו, אפשר לקרוא את המאמר יצירת משימות אימון בהתאמה אישית.

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

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

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

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

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

בעיות נפוצות

בקטע הזה מפורטות כמה בעיות נפוצות שקשורות להגדרת קישור בין רשתות VPC שכנות (peering) באמצעות Agent Platform.

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

    "projects/YOUR_PROJECT_NUMBER/global/networks/YOUR_NETWORK_NAME"

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

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

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

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