יצירת משאב מתמשך

כשיוצרים משאב מתמשך, שירות ההדרכה קודם מחפש משאבים ממאגר המשאבים של Compute Engine על סמך המפרטים שסיפקתם, ואז מקצה לכם אשכול לטווח ארוך. בדף הזה מוסבר איך ליצור משאב קבוע להרצת משימות אימון בלי שרת (serverless) באמצעות המסוף, Google Cloud CLI ו-API בארכיטקטורת REST. Google Cloud

התפקידים הנדרשים

כדי לקבל את ההרשאה שנדרשת ליצירת משאב קבוע, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM‏ Agent Platform Administrator ‏ (roles/aiplatform.admin) בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

התפקיד המוגדר מראש הזה מכיל את ההרשאה aiplatform.persistentResources.create, שנדרשת כדי ליצור משאב קבוע.

יכול להיות שתוכלו לקבל את ההרשאה הזו גם בתפקידים בהתאמה אישית או בתפקידים אחרים שמוגדרים מראש.

יצירת משאב מתמשך

כדי לקבל הוראות ליצירת משאב מתמשך, בוחרים באחת מהכרטיסיות הבאות.

המסוף

כדי ליצור משאב קבוע באמצעות מסוף Google Cloud :

  1. נכנסים לדף Persistent resources במסוף Google Cloud .

    כניסה לדף Persistent resources

  2. לוחצים על יצירת אשכול.

  3. מגדירים את האשכול באופן הבא:

    • שם: מזינים שם לאשכול.
    • תיאור: (אופציונלי) מזינים תיאור של האשכול.
    • אזור: בוחרים את האזור שבו רוצים ליצור את האשכול.
  4. לוחצים על Continue.

  5. מגדירים את משאבי המחשוב של האשכול באופן הבא:

    1. לוחצים על Worker pool 1 (מאגר עובדים 1).
    2. בוחרים את הכרטיסייה של משפחת המכונות שרוצים להשתמש בה ומגדירים את מאגר העובדים באופן הבא:

      לשימוש כללי

      מכונות וירטואליות לשימוש כללי מציעות את יחס המחיר-ביצועים הטוב ביותר למגוון עומסי עבודה.

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

      מותאם לצריכת מעבד גבוהה (compute-optimized)

      מכונות וירטואליות מותאמות לצריכת מעבד גבוהה (compute-optimized) מציעות את הביצועים הכי גבוהים לכל ליבה, והן מותאמות לעומסי עבודה שדורשים הרבה חישובים.

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

      מותאם לצריכת זיכרון גבוהה

      מכונות וירטואליות מותאמות לצריכת זיכרון גבוהה (memory-optimized) הן אידיאליות לעומסי עבודה שדורשים הרבה זיכרון, ומציעות יותר זיכרון לכל ליבה בהשוואה למשפחות אחרות של מכונות, עם זיכרון של עד 12TB.

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

      יחידות GPU

      המכונות הווירטואליות האלה שעברו אופטימיזציה לשימוש במאיצים מתאימות במיוחד לעומסי עבודה של מחשוב מקבילי מסיבי ב-Compute Unified Device Architecture ‏ (CUDA), כמו למידת מכונה (ML) ומחשוב עתיר ביצועים (HPC). הסדרה הזו היא האפשרות הטובה ביותר לעומסי עבודה שדורשים מעבדי GPU.

      • סוג ה-GPU: בוחרים את סוג ה-GPU שרוצים להשתמש בו.
      • מספר יחידות ה-GPU: מזינים את מספר יחידות ה-GPU שרוצים להשתמש בהן.
      • סדרה: בוחרים סדרת מכונות.
      • סוג המכונה: בוחרים סוג מכונה.
      • סוג הדיסק: בוחרים באפשרות דיסק רגיל או דיסק SSD.
      • גודל הדיסק: מזינים את גודל הדיסק הרצוי.
      • מספר מינימלי של עותקים: מזינים את המספר המינימלי של עותקים שיהיו במאגר העובדים.
      • מספר רפליקות מקסימלי: (אופציונלי) מזינים את המספר המקסימלי של רפליקות שמותרות במאגר העובדים. אם מציינים את מספר העותקים, מאגר העובדים משנה את מספר העותקים באופן אוטומטי עד למספר המקסימלי שהוגדר, לפי הצורך.
    3. לוחצים על סיום.

    4. (אופציונלי) כדי להוסיף עוד מאגרי עובדים, לוחצים על הוספת מאגר עובדים.

  6. לוחצים על יצירה.

gcloud

למשאב קבוע יכולים להיות מאגר משאבים אחד או יותר. כדי ליצור כמה מאגרי משאבים במשאב קבוע, מציינים כמה דגלים של --resource-pool-spec.

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

אפשר לציין את כל ההגדרות של מאגר המשאבים כחלק משורת הפקודה, או להשתמש בדגל --config כדי לציין את הנתיב לקובץ YAML שמכיל את ההגדרות.

לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט של Google Cloud הפרויקט שבו רוצים ליצור את המשאב הקבוע.
  • LOCATION: האזור שבו רוצים ליצור את המשאב הקבוע. רשימה של האזורים הנתמכים מופיעה במאמר בנושא זמינות התכונות.
  • PERSISTENT_RESOURCE_ID: המזהה של המשאב המתמשך.
  • DISPLAY_NAME: (אופציונלי) השם המוצג של המשאב הקבוע.
  • MACHINE_TYPE: סוג המכונה הווירטואלית שבה רוצים להשתמש. רשימה של מכונות וירטואליות נתמכות זמינה במאמר סוגי מכונות. השדה הזה תואם לשדה machineSpec.machineType בהודעת ResourcePool API.
  • ACCELERATOR_TYPE: (אופציונלי) סוג ה-GPU לצירוף לכל מכונת VM במאגר המשאבים. רשימת מעבדי ה-GPU הנתמכים מופיעה כאן. השדה הזה תואם לשדה machineSpec.acceleratorType בהודעת ResourcePool API.
  • ACCELERATOR_COUNT: (אופציונלי) מספר יחידות ה-GPU לצירוף לכל מכונה וירטואלית במאגר המשאבים. ערך ברירת המחדל הוא 1. השדה הזה תואם לשדה machineSpec.acceleratorCount בהודעת ResourcePool API.
  • REPLICA_COUNT: מספר הרפליקות שייווצרו כשיוצרים את מאגר המשאבים הזה. השדה הזה תואם לשדה replicaCount בהודעת ResourcePool API. חובה למלא את השדה הזה אם לא מציינים את MIN_REPLICA_COUNT ואת MAX_REPLICA_COUNT.
  • MIN_REPLICA_COUNT: (אופציונלי) מספר הרפליקות המינימלי שאפשר להקטין את קנה המידה שלו באמצעות שינוי גודל אוטומטי במאגר המשאבים הזה. כדי להפעיל שינוי גודל אוטומטי במאגר המשאבים הזה, צריך להגדיר גם את MIN_REPLICA_COUNT וגם את MAX_REPLICA_COUNT.
  • MAX_REPLICA_COUNT: (אופציונלי) מספר הרפליקות המקסימלי שההתאמה האוטומטית לעומס יכולה להגדיל עבור מאגר המשאבים הזה. כדי להפעיל התאמה אוטומטית לעומס במאגר המשאבים הזה, צריך להגדיר גם את MIN_REPLICA_COUNT וגם את MAX_REPLICA_COUNT.
  • BOOT_DISK_TYPE: (אופציונלי) סוג הדיסק שבו רוצים להשתמש כדיסק האתחול של כל מכונה וירטואלית במאגר המשאבים. השדה הזה תואם לשדה diskSpec.bootDiskType בהודעת ResourcePool API. הערכים הקבילים כוללים את האפשרויות הבאות:
    • pd-standard (ברירת מחדל)
    • pd-ssd
  • BOOT_DISK_SIZE_GB: (אופציונלי) גודל הדיסק ב-GiB של דיסק האתחול של כל מכונת VM במאגר המשאבים. הערכים הקבילים הם 100 (ברירת מחדל) עד 64000. השדה הזה תואם לשדה diskSpec.bootDiskSizeGb בהודעת ה-API‏ ResourcePool.
  • CONFIG: הנתיב לקובץ ההגדרות של משאב מתמשך בפורמט YAML. הקובץ הזה צריך להכיל רשימה של ResourcePool. אם מציינים אפשרות גם בקובץ ההגדרות וגם בארגומנטים של שורת הפקודה, הארגומנטים של שורת הפקודה מבטלים את קובץ ההגדרות. שימו לב שמפתחות עם קווים תחתונים הם לא תקינים.

    קובץ הגדרות לדוגמה ב-YAML:

    resourcePoolSpecs:
      machineSpec:
        machineType: n1-standard-4
      replicaCount: 1
        

מריצים את הפקודה הבאה:

‫Linux,‏ macOS או Cloud Shell

gcloud ai persistent-resources create \
    --persistent-resource-id=PERSISTENT_RESOURCE_ID \
    --display-name=DISPLAY_NAME \
    --project=PROJECT_ID \
    --region=LOCATION \
    --resource-pool-spec="replica-count=REPLICA_COUNT,min-replica-count=MIN_REPLICA_COUNT,max-replica-count=MAX_REPLICA_COUNT,machine-type=MACHINE_TYPE,accelerator-type=ACCELERATOR_TYPE,accelerator-count=ACCELERATOR_COUNT,disk-type=BOOT_DISK_TYPE,disk-size=BOOT_DISK_SIZE_GB"

‏Windows (PowerShell)

gcloud ai persistent-resources create `
    --persistent-resource-id=PERSISTENT_RESOURCE_ID `
    --display-name=DISPLAY_NAME `
    --project=PROJECT_ID `
    --region=LOCATION `
    --resource-pool-spec="replica-count=REPLICA_COUNT,min-replica-count=MIN_REPLICA_COUNT,max-replica-count=MAX_REPLICA_COUNT,machine-type=MACHINE_TYPE,accelerator-type=ACCELERATOR_TYPE,accelerator-count=ACCELERATOR_COUNT,disk-type=BOOT_DISK_TYPE,disk-size=BOOT_DISK_SIZE_GB"

Windows‏ (cmd.exe)

gcloud ai persistent-resources create ^
    --persistent-resource-id=PERSISTENT_RESOURCE_ID ^
    --display-name=DISPLAY_NAME ^
    --project=PROJECT_ID ^
    --region=LOCATION ^
    --resource-pool-spec="replica-count=REPLICA_COUNT,min-replica-count=MIN_REPLICA_COUNT,max-replica-count=MAX_REPLICA_COUNT,machine-type=MACHINE_TYPE,accelerator-type=ACCELERATOR_TYPE,accelerator-count=ACCELERATOR_COUNT,disk-type=BOOT_DISK_TYPE,disk-size=BOOT_DISK_SIZE_GB"

אמורים לקבל תגובה שדומה לזו:

Using endpoint [https://us-central1-aiplatform.googleapis.com/]
Operation to create PersistentResource [projects/123456789012/locations/us-central1/persistentResources/mypersistentresource/operations/1234567890123456789] is submitted successfully.

You may view the status of your PersistentResource create operation with the command

  $ gcloud ai operations describe projects/sample-project/locations/us-central1/operations/1234567890123456789

פקודה gcloud לדוגמה:

gcloud ai persistent-resources create \
    --persistent-resource-id=my-persistent-resource \
    --region=us-central1 \
    --resource-pool-spec="min-replica-count=4,max-replica-count=12,machine-type=n1-highmem-2,accelerator-type=NVIDIA_TESLA_T4,accelerator-count=1,disk-type=pd-standard,disk-size=200" \
    --resource-pool-spec="replica-count=4,machine-type=n1-standard-4"

הגדרות מתקדמות gcloud

אם רוצים לציין אפשרויות הגדרה שלא זמינות בדוגמאות הקודמות, אפשר להשתמש בדגל --config כדי לציין את הנתיב לקובץ config.yaml בסביבה המקומית שמכיל את השדות של persistentResources. לדוגמה:

gcloud ai persistent-resources create \
    --persistent-resource-id=PERSISTENT_RESOURCE_ID \
    --project=PROJECT_ID \
    --region=LOCATION \
    --config=CONFIG

Python

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Pythonההוראות להגדרה במאמר מדריך למתחילים של Agent Platform באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Agent Platform Python API.

כדי לבצע אימות ב-Agent Platform, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

כדי ליצור משאב מתמשך שאפשר להשתמש בו בהרצת צינור, צריך להגדיר את הפרמטר enable_custom_service_account לערך True באובייקט ResourceRuntimeSpec בזמן יצירת המשאב המתמשך.

from google.cloud.aiplatform.preview import persistent_resource
from google.cloud.aiplatform_v1beta1.types.persistent_resource import ResourcePool
from google.cloud.aiplatform_v1beta1.types.machine_resources import MachineSpec

# Create the persistent resource. This method returns the created resource.

my_example_resource = persistent_resource.PersistentResource.create(
    persistent_resource_id='PERSISTENT_RESOURCE_ID',
    display_name='DISPLAY_NAME',
    resource_pools=[
        ResourcePool(
            machine_spec=MachineSpec(
                machine_type='MACHINE_TYPE'
            ),
            replica_count=REPLICA_COUNT
        )
    ],
    enable_custom_service_account=True,
)

# Setting `sync` to `False` makes the method is non-blocking and the resource
# object returned syncs when the method completes.

SYNC=False

if not SYNC:
    my_example_resource.wait()

מחליפים את מה שכתוב בשדות הבאים:

  • PERSISTENT_RESOURCE_ID: מזהה ייחודי שהמשתמש מגדיר עבור המשאב הקבוע. הוא חייב להתחיל באות, להסתיים באות או במספר, ולהכיל רק אותיות קטנות, מספרים ומקפים (-).
  • DISPLAY_NAME: אופציונלי. השם המוצג של המשאב הקבוע.
  • MACHINE_TYPE: סוג המכונה הווירטואלית (VM) שרוצים להשתמש בה. רשימה של מכונות וירטואליות נתמכות זמינה במאמר סוגי מכונות. השדה הזה תואם לשדה machineSpec.machineType ב
  • REPLICA_COUNT: מספר העותקים שייווצרו כשיוצרים את מאגר המשאבים הזה.

REST

למשאב קבוע יכול להיות מאגר משאבים אחד או יותר (machine_spec), ובכל מאגר משאבים יכולה להיות מופעלת או מושבתת התאמה אוטומטית לעומס.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט של Google Cloud הפרויקט שבו רוצים ליצור את המשאב הקבוע.
  • LOCATION: האזור שבו רוצים ליצור את המשאב הקבוע. רשימה של האזורים הנתמכים מופיעה במאמר בנושא זמינות התכונות.
  • PERSISTENT_RESOURCE_ID: המזהה של המשאב המתמשך.
  • DISPLAY_NAME: (אופציונלי) השם המוצג של המשאב הקבוע.
  • MACHINE_TYPE: סוג המכונה הווירטואלית שבה רוצים להשתמש. רשימה של מכונות וירטואליות נתמכות זמינה במאמר סוגי מכונות. השדה הזה תואם לשדה machineSpec.machineType בהודעת ResourcePool API.
  • ACCELERATOR_TYPE: (אופציונלי) סוג ה-GPU לצירוף לכל מכונת VM במאגר המשאבים. רשימת מעבדי ה-GPU הנתמכים מופיעה כאן. השדה הזה תואם לשדה machineSpec.acceleratorType בהודעת ResourcePool API.
  • ACCELERATOR_COUNT: (אופציונלי) מספר יחידות ה-GPU לצירוף לכל מכונה וירטואלית במאגר המשאבים. ערך ברירת המחדל הוא 1. השדה הזה תואם לשדה machineSpec.acceleratorCount בהודעת ResourcePool API.
  • REPLICA_COUNT: מספר הרפליקות שייווצרו כשיוצרים את מאגר המשאבים הזה. השדה הזה תואם לשדה replicaCount בהודעת ResourcePool API. חובה למלא את השדה הזה אם לא מציינים את MIN_REPLICA_COUNT ואת MAX_REPLICA_COUNT.
  • MIN_REPLICA_COUNT: (אופציונלי) מספר הרפליקות המינימלי שאפשר להקטין את קנה המידה שלו באמצעות שינוי גודל אוטומטי במאגר המשאבים הזה. כדי להפעיל שינוי גודל אוטומטי במאגר המשאבים הזה, צריך להגדיר גם את MIN_REPLICA_COUNT וגם את MAX_REPLICA_COUNT.
  • MAX_REPLICA_COUNT: (אופציונלי) מספר הרפליקות המקסימלי שההתאמה האוטומטית לעומס יכולה להגדיל עבור מאגר המשאבים הזה. כדי להפעיל התאמה אוטומטית לעומס במאגר המשאבים הזה, צריך להגדיר גם את MIN_REPLICA_COUNT וגם את MAX_REPLICA_COUNT.
  • BOOT_DISK_TYPE: (אופציונלי) סוג הדיסק שבו רוצים להשתמש כדיסק האתחול של כל מכונה וירטואלית במאגר המשאבים. השדה הזה תואם לשדה diskSpec.bootDiskType בהודעת ResourcePool API. הערכים הקבילים כוללים את האפשרויות הבאות:
    • pd-standard (ברירת מחדל)
    • pd-ssd
  • BOOT_DISK_SIZE_GB: (אופציונלי) גודל הדיסק ב-GiB של דיסק האתחול של כל מכונת VM במאגר המשאבים. הערכים הקבילים הם 100 (ברירת מחדל) עד 64000. השדה הזה תואם לשדה diskSpec.bootDiskSizeGb בהודעת ה-API‏ ResourcePool.

ה-method של ה-HTTP וכתובת ה-URL:

POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/persistentResources?persistent_resource_id=PERSISTENT_RESOURCE_ID

תוכן בקשת JSON:

{
  "display_name": "DISPLAY_NAME",
  "resource_pools": [
    {
      "machine_spec": {
        "machine_type": "MACHINE_TYPE",
        "accelerator_type": "ACCELERATOR_TYPE",
        "accelerator_count": ACCELERATOR_COUNT
      },
      "replica_count": REPLICA_COUNT,
      "autoscaling_spec": {
        "min_replica_count": MIN_REPLICA_COUNT,
        "max_replica_count": MAX_REPLICA_COUNT
      },
      "disk_spec": {
        "boot_disk_type": "BOOT_DISK_TYPE",
        "boot_disk_size_gb": BOOT_DISK_SIZE_GB
      }
    }
  ]
}

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

{
  "name": "projects/123456789012/locations/us-central1/persistentResources/mypersistentresource/operations/1234567890123456789",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreatePersistentResourceOperationMetadata",
    "genericMetadata": {
      "createTime": "2023-02-08T21:17:15.009668Z",
      "updateTime": "2023-02-08T21:17:15.009668Z"
    }
  }
}

מלאי משאבים חסר

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

אחריות משותפת

אבטחת עומסי העבודה ב-Gemini Enterprise Agent Platform היא אחריות משותפת. ‫Gemini Enterprise Agent Platform משדרגת באופן קבוע את תצורות התשתית כדי לטפל בנקודות חולשה באבטחה, אבל היא לא משדרגת אוטומטית את האשכולות הקיימים של Ray ב-Vertex AI ואת המשאבים הקבועים כדי למנוע שיבוש של עומסי עבודה פעילים. לכן, אתם אחראים למשימות כמו:

  1. כדי להשתמש בגרסאות התשתית העדכניות ביותר, מומלץ למחוק את האשכולות ואת המשאבים הקבועים של Ray ב-Vertex AI וליצור אותם מחדש מדי פעם. פלטפורמת הסוכנים של Gemini Enterprise ממליצה ליצור מחדש את האשכולות ואת המשאבים הקבועים לפחות אחת ל-30 יום.
  2. הגדרת תמונות בהתאמה אישית בצורה נכונה.

מידע נוסף זמין במאמר בנושא אחריות משותפת.

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