הרצת משימות אימון ללא שרת ב-Gemini Enterprise Agent Platform במשאב מתמשך

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

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

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

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

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

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

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

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

gcloud

  • מציינים את הדגל --persistent-resource-id ומגדירים את הערך למזהה של המשאב הקבוע (PERSISTENT_RESOURCE_ID) שרוצים להשתמש בו.
  • מציינים את הדגל --worker-pool-spec כך שהערכים של machine-type ו-disk-type יתאימו בדיוק למאגר משאבים תואם מהמשאב הקבוע. מציינים --worker-pool-spec לאימון של צומת יחיד, וכמה צמתים לאימון מבוזר.
  • מציינים replica-count שקטן מ-replica-count או שווה לו או max-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 של מאגר המשאבים המתאים, לא כולל מספר העותקים של משימות אחרות שפועלות במאגר המשאבים הזה.

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