כשיוצרים משאב לטווח ארוך, שירות האימון מחפש קודם משאבים ממאגר המשאבים של Compute Engine על סמך המפרטים שסיפקתם, ואז מקצה לכם אשכול לטווח ארוך. בדף הזה מוסבר איך ליצור משאב לטווח ארוך כדי להריץ משימות אימון ללא שרת (serverless) באמצעות מסוף Google Cloud , Google Cloud CLI ו-API בארכיטקטורת REST.
התפקידים הנדרשים
כדי לקבל את ההרשאה שדרושה ליצירת משאב לטווח ארוך, צריך לבקש מהאדמין להקצות לכם את התפקיד אדמין של פלטפורמת הסוכנים (roles/aiplatform.admin) ב-IAM בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקיד המוגדר מראש הזה מכיל את ההרשאה aiplatform.persistentResources.create, שנדרשת כדי ליצור משאב לטווח ארוך.
יכול להיות שתוכלו לקבל את ההרשאה הזו גם בתפקידים בהתאמה אישית או בתפקידים מוגדרים מראש.
יצירת משאב לטווח ארוך
כדי ליצור משאב לטווח ארוך, בוחרים באחת מהכרטיסיות הבאות:
המסוף
כדי ליצור משאב לטווח ארוך באמצעות מסוף Google Cloud :
במסוף Google Cloud , נכנסים לדף משאבים לטווח ארוך.
לוחצים על Create cluster.
מגדירים את האשכול באופן הבא:
- Name: נותנים שם לאשכול.
- Description: (אופציונלי) תיאור של האשכול.
- Region: בוחרים את האזור שבו רוצים ליצור את האשכול.
לוחצים על Continue.
מגדירים את משאבי המחשוב של האשכול באופן הבא:
- לוחצים על Worker pool 1.
בוחרים את הכרטיסייה של משפחת המכונות שבה רוצים להשתמש ומגדירים את מאגר ה-Workers באופן הבא:
לשימוש כללי
מכונות וירטואליות למטרות כלליות מציעות את היחס הטוב ביותר בין מחיר לביצועים למגוון עומסי עבודה.
- סדרה: בוחרים סדרת מכונות.
- סוג המכונה: בוחרים סוג מכונה.
- סוג הדיסק: בוחרים באפשרות דיסק רגיל או דיסק SSD.
- Disk size: מזינים את גודל הדיסק הרצוי.
- Minimum replica count: מספר הרפליקות המינימלי שיהיו במאגר ה-workers.
- Maximum replica count: (אופציונלי) המספר המקסימלי של רפליקות שמותרות במאגר ה-Workers. אם מציינים את הפרמטר הזה, מאגר ה-Workers מבצע התאמה אוטומטית לעומס של מספר הרפליקות עד למספר המקסימלי שהוגדר, לפי הצורך.
מותאמת לצריכת מעבד גבוהה (compute-optimized)
מכונות וירטואליות שמותאמות לצריכת מעבד גבוהה מציעות את הביצועים הטובים ביותר לכל ליבה, והן מותאמות לעומסי עבודה שדורשים משאבי מחשוב רבים.
- סדרה: בוחרים סדרת מכונות.
- סוג המכונה: בוחרים סוג מכונה.
- סוג הדיסק: בוחרים באפשרות דיסק רגיל או דיסק SSD.
- Disk size: מזינים את גודל הדיסק הרצוי.
- Minimum replica count: מספר הרפליקות המינימלי שיהיו במאגר ה-workers.
- Maximum replica count: (אופציונלי) המספר המקסימלי של רפליקות שמותרות במאגר ה-Workers. אם מציינים את הפרמטר הזה, מאגר ה-Workers מבצע התאמה אוטומטית לעומס של מספר הרפליקות עד למספר המקסימלי שהוגדר, לפי הצורך.
מותאמת לצריכת זיכרון גבוהה (memory-optimized)
מכונות וירטואליות שמותאמות לצריכת זיכרון גבוהה (memory-optimized) מתאימות במיוחד לעומסי עבודה שצורכים הרבה זיכרון, כי הן מציעות יותר זיכרון לכל ליבה בהשוואה למשפחות מכונות אחרות, עם עד 12TB של זיכרון.
- סדרה: בוחרים סדרת מכונות.
- סוג המכונה: בוחרים סוג מכונה.
- סוג הדיסק: בוחרים באפשרות דיסק רגיל או דיסק SSD.
- Disk size: מזינים את גודל הדיסק הרצוי.
- Minimum replica count: מספר הרפליקות המינימלי שיהיו במאגר ה-workers.
- Maximum replica count: (אופציונלי) המספר המקסימלי של רפליקות שמותרות במאגר ה-Workers. אם מציינים את הפרמטר הזה, מאגר ה-Workers מבצע התאמה אוטומטית לעומס של מספר הרפליקות עד למספר המקסימלי שהוגדר, לפי הצורך.
מעבדים גרפיים (GPU)
המכונות הווירטואליות האלה, שעברו אופטימיזציה למאיצים, מתאימות במיוחד לעומסי עבודה של מחשוב מקבילי ב-Compute Unified Device Architecture (CUDA), כמו למידת מכונה (ML) ומחשוב עתיר ביצועים (HPC). משפחת המכונות הזו היא האפשרות הטובה ביותר לעומסי עבודה שדורשים מעבדי GPU.
- GPU type: בוחרים את סוג ה-GPU שבו רוצים להשתמש.
- מספר יחידות ה-GPU: מזינים את מספר יחידות ה-GPU שרוצים להשתמש בהן.
- סדרה: בוחרים סדרת מכונות.
- סוג המכונה: בוחרים סוג מכונה.
- סוג הדיסק: בוחרים באפשרות דיסק רגיל או דיסק SSD.
- Disk size: מזינים את גודל הדיסק הרצוי.
- Minimum replica count: מספר הרפליקות המינימלי שיהיו במאגר ה-workers.
- Maximum replica count: (אופציונלי) המספר המקסימלי של רפליקות שמותרות במאגר ה-Workers. אם מציינים את הפרמטר הזה, מאגר ה-Workers מבצע התאמה אוטומטית לעומס של מספר הרפליקות עד למספר המקסימלי שהוגדר, לפי הצורך.
לוחצים על סיום.
(אופציונלי) כדי להוסיף עוד מאגרי וורקרים, לוחצים על Add worker pool.
לוחצים על יצירה.
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בהודעת ה-API שלResourcePool. - ACCELERATOR_TYPE: (אופציונלי) סוג ה-GPU שרוצים לצרף לכל מכונה וירטואלית במאגר המשאבים. כאן תוכלו למצוא רשימה של מעבדי GPU נתמכים. השדה הזה תואם לשדה
machineSpec.acceleratorTypeבהודעת ה-API שלResourcePool. - ACCELERATOR_COUNT: (אופציונלי) מספר ה-GPU שצריך לצרף לכל מכונה וירטואלית במאגר המשאבים. ערך ברירת המחדל הוא
1. השדה הזה תואם לשדהmachineSpec.acceleratorCountבהודעת ה-API שלResourcePool. - REPLICA_COUNT: מספר הרפליקות שצריך ליצור כשיוצרים את מאגר המשאבים הזה. השדה הזה תואם לשדה
replicaCountבהודעת ה-API שלResourcePool. השדה הזה הוא חובה אם לא מציינים את MIN_REPLICA_COUNT ו-MAX_REPLICA_COUNT. - MIN_REPLICA_COUNT: (אופציונלי) המספר המינימלי של רפליקות שההתאמה האוטומטית לעומס יכולה לצמצם אנכית בהתאם לעומס (scale down) במאגר המשאבים הזה. כדי להפעיל התאמה אוטומטית לעומס (automatic scaling) במאגר המשאבים הזה, צריך להגדיר גם את MIN_REPLICA_COUNT וגם את MAX_REPLICA_COUNT.
- MAX_REPLICA_COUNT: (אופציונלי) המספר המקסימלי של רפליקות שאפשר להגדיל אליהן את מאגר המשאבים הזה באמצעות התאמה אוטומטית לעומס. כדי להפעיל התאמה אוטומטית לעומס (automatic scaling) במאגר המשאבים הזה, צריך להגדיר גם את MIN_REPLICA_COUNT וגם את MAX_REPLICA_COUNT.
- BOOT_DISK_TYPE: (אופציונלי) סוג הדיסק שישמש כדיסק האתחול של כל מכונה וירטואלית במאגר המשאבים. השדה הזה תואם לשדה
diskSpec.bootDiskTypeבהודעת ה-API שלResourcePool. הערכים הקבילים כוללים: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, צריך להגדיר את 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בהודעת ה-API שלResourcePool. - ACCELERATOR_TYPE: (אופציונלי) סוג ה-GPU שרוצים לצרף לכל מכונה וירטואלית במאגר המשאבים. כאן תוכלו למצוא רשימה של מעבדי GPU נתמכים. השדה הזה תואם לשדה
machineSpec.acceleratorTypeבהודעת ה-API שלResourcePool. - ACCELERATOR_COUNT: (אופציונלי) מספר ה-GPU שצריך לצרף לכל מכונה וירטואלית במאגר המשאבים. ערך ברירת המחדל הוא
1. השדה הזה תואם לשדהmachineSpec.acceleratorCountבהודעת ה-API שלResourcePool. - REPLICA_COUNT: מספר הרפליקות שצריך ליצור כשיוצרים את מאגר המשאבים הזה. השדה הזה תואם לשדה
replicaCountבהודעת ה-API שלResourcePool. השדה הזה הוא חובה אם לא מציינים את MIN_REPLICA_COUNT ו-MAX_REPLICA_COUNT. - MIN_REPLICA_COUNT: (אופציונלי) המספר המינימלי של רפליקות שההתאמה האוטומטית לעומס יכולה לצמצם אנכית בהתאם לעומס (scale down) במאגר המשאבים הזה. כדי להפעיל התאמה אוטומטית לעומס (automatic scaling) במאגר המשאבים הזה, צריך להגדיר גם את MIN_REPLICA_COUNT וגם את MAX_REPLICA_COUNT.
- MAX_REPLICA_COUNT: (אופציונלי) המספר המקסימלי של רפליקות שאפשר להגדיל אליהן את מאגר המשאבים הזה באמצעות התאמה אוטומטית לעומס. כדי להפעיל התאמה אוטומטית לעומס (automatic scaling) במאגר המשאבים הזה, צריך להגדיר גם את MIN_REPLICA_COUNT וגם את MAX_REPLICA_COUNT.
- BOOT_DISK_TYPE: (אופציונלי) סוג הדיסק שישמש כדיסק האתחול של כל מכונה וירטואלית במאגר המשאבים. השדה הזה תואם לשדה
diskSpec.bootDiskTypeבהודעת ה-API שלResourcePool. הערכים הקבילים כוללים: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 משודרגות באופן קבוע כדי לטפל בנקודות חולשה באבטחה, Gemini Enterprise Agent Platform לא משדרגת באופן אוטומטי את האשכולות הקיימים של Ray ב-Gemini Enterprise Agent Platform ואת המשאבים לטווח ארוך, כדי למנוע הפרעה לעומסי העבודה שפועלים. לכן אתם אחראים למשימות כמו:
- כדאי למחוק וליצור מחדש מדי פעם את האשכולות והמשאבים לטווח ארוך של Ray ב-Gemini Enterprise Agent Platform, כדי להשתמש בגרסאות התשתית העדכניות ביותר. ב-Gemini Enterprise Agent Platform מומלץ ליצור מחדש את האשכולות והמשאבים לטווח ארוך לפחות פעם ב-30 יום.
- להגדיר בצורה נכונה את התמונות המותאמות אישית שבהן אתם משתמשים.
מידע נוסף זמין במאמר אחריות משותפת.