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

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

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

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

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

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