הרצת משימות אימון ללא שרת ב-Vertex AI במשאב מתמשך

בדף הזה מוסבר איך להריץ משימת אימון ללא שרת במשאב מתמשך באמצעות Google Cloud CLI,‏ Vertex AI SDK ל-Python ו-API בארכיטקטורת REST.

בדרך כלל, כשיוצרים משימת אימון בלי שרת (serverless), צריך לציין משאבי מחשוב שהמשימה יוצרת ומופעלת עליהם. אחרי שיוצרים משאב מתמשך, אפשר להגדיר את המשימה serverless trainingjob כך שתפעל במאגר משאבים אחד או יותר של המשאב המתמשך הזה. הפעלת משימת אימון בהתאמה אישית במשאב קבוע מקצרת משמעותית את זמן ההפעלה של המשימה, שנדרש בדרך כלל ליצירת משאב מחשוב.

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

כדי לקבל את ההרשאה שנדרשת להרצת משימות אימון בלי שרת (serverless) במשאב מתמשך, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM‏ Vertex AI User ‏(roles/aiplatform.user) בפרויקט. להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

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

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

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

כדי ליצור משימת אימון ללא שרת שפועלת במשאב מתמשך, מבצעים את השינויים הבאים בהוראות הרגילות ליצירת משימת אימון ללא שרת:

gcloud

  • מציינים את הדגל --persistent-resource-id ומגדירים את הערך למזהה של המשאב הקבוע (PERSISTENT_RESOURCE_ID) שרוצים להשתמש בו.
  • מציינים את הדגל --worker-pool-spec כך שהערכים של machine-type ו-disk-type יתאימו בדיוק למאגר משאבים תואם מהמשאב הקבוע. מציינים 1 לשימוש באימון של צומת יחיד, ומספר גדול יותר לאימון מבוזר.--worker-pool-spec
  • מציינים replica-count less than or equal to max-replica-count או replica-count של מאגר המשאבים המתאים.

Python

במאמר התקנת Vertex AI SDK ל-Python מוסבר איך להתקין או לעדכן את Vertex AI SDK ל-Python. מידע נוסף מופיע ב מאמרי העזרה של Python API.

def create_custom_job_on_persistent_resource_sample(
    project: str,
    location: str,
    staging_bucket: str,
    display_name: str,
    container_uri: str,
    persistent_resource_id: str,
    service_account: Optional[str] = None,
) -> None:
    aiplatform.init(
        project=project, location=location, staging_bucket=staging_bucket
    )

    worker_pool_specs = [{
        "machine_spec": {
            "machine_type": "n1-standard-4",
            "accelerator_type": "NVIDIA_TESLA_K80",
            "accelerator_count": 1,
        },
        "replica_count": 1,
        "container_spec": {
            "image_uri": container_uri,
            "command": [],
            "args": [],
        },
    }]

    custom_job = aiplatform.CustomJob(
        display_name=display_name,
        worker_pool_specs=worker_pool_specs,
        persistent_resource_id=persistent_resource_id,
    )

    custom_job.run(service_account=service_account)

REST

  • מציינים את הפרמטר persistent_resource_id ומגדירים את הערך למזהה של המשאב הקבוע (PERSISTENT_RESOURCE_ID) שרוצים להשתמש בו.
  • מציינים את הפרמטר worker_pool_specs כך שהערכים של machine_spec ושל disk_spec לכל מאגר משאבים יתאימו בדיוק למאגר משאבים תואם מהמשאב הקבוע. מציינים machine_spec לאימון של צומת יחיד, וכמה צמתים לאימון מבוזר.
  • מציינים ערך של replica_count שהוא קטן מ-replica_count או שווה לו, או max_replica_count של מאגר המשאבים המתאים, לא כולל את מספר הרפליקות של משימות אחרות שפועלות במאגר המשאבים הזה.

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