עומס עבודה ואשכול GKE של הסקת מסקנות שעברו אימון מראש על ידי AI

כדי ליצור אפליקציית AI, צריך להקצות אשכול מאובטח ופרטי של Google Kubernetes Engine ‏ (GKE) שעבר אופטימיזציה לעומסי עבודה של AI, ואז לפרוס את עומס העבודה באמצעות תרשים helm. במדריך הזה מתוארות התבניות הבאות, שאפשר להתאים אישית כדי לפרוס אפליקציית AI:

  • אשכול GKE של הסקת מסקנות שעבר אימון מראש על ידי AI: יצירת התשתית הבסיסית שנדרשת להצגת מודלים עם ביצועים גבוהים. התבנית הזו מגדירה אשכול GKE מאובטח ופרטי שממוטב להסקת מסקנות מ-AI.

  • עומס עבודה של GKE עם מסקנות שנוצרו על ידי AI שעבר אימון מראש (תצוגה מקדימה): פריסה של תרשים helm שכולל את ההגדרה של עומס עבודה של AI. משתמשים בתרשים helm כדי לפרוס מודל Gemma שעבר אימון מראש באמצעות מנוע ההגשה vLLM. עומס העבודה מוגדר לבקשות יעילות של משאבי GPU ול-Horizontal Pod Autoscaler ‏ (HPA) כדי לבצע שינוי גודל על סמך השימוש במטמון GPU.

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

דוגמה הצורך העסקי הטמעה
ניתוח סרטונים בזמן אמת חברת אבטחה צריכה לעבד זרמי וידאו ממאות מצלמות כדי לזהות אנומליות או אובייקטים ספציפיים בזמן אמת. פריסת מודלים לעיבוד וידאו במאגר הצמתים עם תמיכה ב-GPU. מעבדי GPU יכולים לעבד את הדרישות של נפח נתונים גבוה וזמן אחזור נמוך של סטרימינג של סרטונים בו-זמנית.
עיבוד מסמכים מיוחד חברת ביטוח צריכה לחלץ באופן אוטומטי מידע מאלפי טפסים של תביעות שמגיעים מדי יום, עם פריסות שונות וכתב יד שונה. משתמשים באשכול GKE כדי לארח מודלים בהתאמה אישית, ומוודאים שהנתונים לא יוצאים מהסביבה המאובטחת במהלך העיבוד.
מערכת המלצות עם נפח גבוה פלטפורמת מסחר אלקטרוני צריכה להציג המלצות מותאמות אישית למוצרים למשתמשים במהלך אירועי קניות של חגים. משתמשים ב-Google Kubernetes Engine Gateway API כדי לנתב נפחים גדולים של תעבורת משתמשים למודלים של ההמלצות. ממשק Gateway API יכול להתמודד עם עליות פתאומיות בנפח התנועה בלי להאריך את זמן האחזור.

ארכיטקטורה

בתמונה הבאה מוצגים הרכיבים והחיבורים בתבנית:

אוסף של צמתים שמחובר למאגר צמתים באזור העיצוב

בטבלה הבאה מתוארות הגדרות הרכיבים בתבנית הזו:

  • אשכול GKE Standard: אשכול מאובטח ופרטי שבו פועל עומס העבודה של ה-AI.

    בטבלה הבאה מפורטת הגדרת האשכול בתבנית הזו:

    הגדרות אישיות מטרה
    הערך של node_locations הוא ["us-central1-a", "us-central1-b", "us-central1-c"]. הפצת הצמתים של האשכול על פני שלושה אזורים באזור us-central1 מבטיחה זמינות גבוהה ועמידות.
    הערך של enable_intranode_visibility הוא true. מאפשרת לראות את התנועה בין הפודים באותו צומת ביומני התנועה של VPC. התובנות האלה נדרשות למעקב אחרי הרשת, לפתרון בעיות ולניתוח אבטחה.
    gateway_api_config מופעל באמצעות {"channel":"CHANNEL_STANDARD"}. ממשק ה-API של GKE Inference Gateway עוזר לכם לנהל את תעבורת הכניסה לשירותי Kubernetes. ה-API עוזר לכם להגדיר ניתוב מדויק, איזון עומסים מתקדם וצירוף מרכזי של כללי מדיניות.
    הערך של private_cluster_config.enable_private_endpoint הוא false. private_cluster_config.enable_private_nodes הוא true. הערך של control_plane_endpoints_config.dns_endpoint_config.allow_external_traffic הוא true. מוודאים שלצמתי העובדים שבהם מודלי ה-AI פועלים יש כתובות IP פרטיות. כך הצמתים שלכם מבודדים מהאינטרנט הציבורי. מישור הבקרה של GKE מוגדר כך שניתן לגשת אליו באופן ציבורי, כדי שתוכלו לנהל את האשכול מחוץ לרשת הענן הווירטואלי הפרטי (VPC).
    הערך של release_channel הוא {"channel":"REGULAR"}. העדכונים האלה מבטיחים שהעדכונים של אשכול GKE יהיו יציבים וצפויים, ויוצרים איזון בין תכונות חדשות לבין מהימנות.
  • מאגר צמתים של GKE: קבוצה של צמתים של עובדים שמריצים את הקונטיינרים של האפליקציה.

    בטבלה הבאה מפורטות ההגדרות של מאגר הצמתים בתבנית הזו:

    הגדרות אישיות מטרה
    הערך של autoscaling.min_node_count הוא 0. הערך של autoscaling.max_node_count מוגדר כ-3 (ברירת המחדל היא 100). כשאין עומסי עבודה של AI, אפשר להקטין את גודל מאגר הצמתים עד לאפס, וכך לצמצם את העלויות בתקופות שבהן אין פעילות. הגבול העליון של ההתאמה לעומס עוזר לשלוט בעלויות ובצריכת המשאבים.
    הפרמטר node_config.guest_accelerator נוסף. הערך של gpu_driver_installation_config.gpu_driver_version: הוא "LATEST". ‫gpu_sharing_config מופעל עם TIME_SHARING. הערך של max_shared_clients_per_gpu: הוא 2. מציין את השימוש ביחידות GPU מסוג NVIDIA L4 למשימות של הסקת מסקנות מ-AI. מנהלי ההתקנים הנדרשים של ה-GPU מותקנים באופן אוטומטי. כמה עומסי עבודה קטנים יכולים לחלוק GPU אחד.
    הערך של node_config.machine_type השתנה ל-"g2-standard-8". סוג המכונה מתוכנן במיוחד כדי להשלים את יחידות ה-GPU מסוג L4. ליבות ה-vCPU ‏ (8) והזיכרון (32GB) נוצרים כדי לתמוך ב-GPU ולהריץ את אפליקציות ההסקה של ה-AI.
    node_config.oauth_scopes כולל https://www.googleapis.com/auth/cloud-platform. לחשבון השירות של הצומת יש גישה רחבה לשירותי Google Cloud , והוא מאפשר אינטראקציה עם ה-API למשימות כמו רישום ביומן, מעקב ושליפה של קובצי אימג' בקונטיינר.
    הערך של node_config.shielded_instance_config.enable_secure_boot הוא true. האתחול המאובטח עוזר להגן על הצמתים מפני תוכנות זדוניות ברמת האתחול, על ידי אימות החתימות הקריפטוגרפיות של טוען האתחול והליבה לפני שהם מופעלים.

הגדרת תרשים Helm

בטבלה הבאה מפורטות ההגדרות של תרשים ה-Helm, שהותאמו לפריסה ולשינוי של קנה מידה של שירות הסקת מסקנות מ-AI ב-GKE.

הגדרות אישיות מטרה
replicaCount: 1 יוצר עותק יחיד ראשוני.
image.repository: vllm/vllm-openai משתמש בתמונה של vLLM, ספרייה שעברה אופטימיזציה להסקת מסקנות של מודל שפה גדול (LLM), שנחשפת באמצעות API שתואם ל-OpenAI.
model.id: google/gemma-7b-it ההגדרה מגדירה את מודל Gemma 7B שעבר כוונון להוראות כמודל שיוצג.
model.hfSecret: hf-secret המודל דורש אימות באמצעות סוד של Kubernetes לניהול מאובטח של פרטי כניסה.
resources.limits וגם requests במחיר nvidia.com/gpu: "1" התכונה הזו מבטיחה שכל פוד יקבל GPU ייעודי.
nodeSelector.cloud.google.com/gke-accelerator: nvidia-l4 התכונה הזו מבטיחה שהפודים של מודל ה-AI יתוזמנו באופן בלעדי בצמתי GKE Standard שמצוידים במעבדי NVIDIA L4 GPU, שהם אידיאליים להסקת מסקנות חסכונית ועם ביצועים גבוהים.
hpa.enabled: true הפעלת Horizontal Pod Autoscaler (HPA), שמאפשרת לאפליקציה לשנות באופן אוטומטי את מספר הפודים (בין minReplicas: 1 ל-maxReplicas: 10) על סמך targetCPUUtilizationPercentage: 80%. הפתרון מבטיח ביצועים טובים בזמן עומסים גבוהים ויעילות בעלויות בזמן שימוש נמוך.
tensorParallelSize: 1 מציין שהמודל לא מפולח בין כמה יחידות GPU בתוך פוד יחיד.
maxModelLen: 512 המדיניות קובעת את האורך המקסימלי של רצף שהמודל Gemma 7B יכול לעבד.
service.type: ClusterIP השירות מוגדר לגישה פנימית בתוך האשכול.
pdb.enabled: true וגם minAvailable: 1 תקציב לשיבוש Pod מופעל כדי להבטיח זמינות גבוהה. לפחות רפליקה אחת של מודל ה-AI שלכם נשארת זמינה במהלך שיבושים מרצון, כמו תחזוקת צמתים.

יצירת אפליקציית AI

אפשר להשתמש בתבניות AI Pre-trained Inference אשכול GKE ועומס עבודה כדי לפרוס את אפליקציית ה-AI.

פריסת תשתית ה-AI

מגדירים ופורסים את תבנית אשכול GKE של מסקנות מ-AI שעבר אימון מראש כדי ליצור את התשתית הבסיסית שבה יפעל עומס העבודה של ה-AI.

  1. משכפלים ופורסים את התבנית AI Pre-trained Inference אשכול GKE כאפליקציה.

    אשכול GKE נוצר בפרויקט הפריסה שבחרתם.

  2. מגדירים את הרכיבים. למידע נוסף, קראו את המאמרים הבאים:

  3. לוחצים על פריסה. הפריסה של האפליקציה מתבצעת אחרי כמה דקות.

  4. בחלונית פרטי האפליקציה, לוחצים על הכרטיסייה פלט.

  5. מזהים את cluster_id של האפליקציה. תצטרכו להשתמש במידע הזה כשפורסים את תרשים ה-Helm.

פריסת עומס העבודה של ה-AI

משתמשים בתבנית AI Pre-trained Inference GKE workload כדי לפרוס את עומס העבודה של ה-AI באשכול שיצרתם. תפרסו תרשים Helm שכולל את הגדרות עומס העבודה של ה-AI.

  1. בדף קטלוג Google, בתבנית AI Pre-trained Inference GKE workload (עומס עבודה של GKE להסקת מסקנות שאומן מראש על ידי AI), לוחצים על Create new application (יצירת אפליקציה חדשה).

  2. בשדה שם, מזינים שם ייחודי לאפליקציה.

  3. בקטע GKE Deployment Target (יעד הפריסה של GKE), מבצעים את הפעולות הבאות:

    1. ברשימה Project list, בוחרים את הפרויקט שבו פרסתם את אשכול GKE מהאפליקציה AI Pre-trained Inference GKE cluster.

    2. ברשימה אזור, בוחרים את האזור שבו פרסתם את אשכול GKE.

    3. ברשימה Clusters (אשכולות), בוחרים את אשכול GKE שנפרס.

    4. ברשימה Namespace, מזינים את מרחב השמות שבו פרסתם את אשכול GKE. אם לא שיניתם את השם, מזינים default.

    5. לוחצים על יצירת אפליקציה.

    האפליקציה נוצרת ומוצגים קובצי ההגדרות.

  4. בחלונית Helm chart:

    1. בודקים את פרטי ההגדרה.

    2. אופציונלי: אפשר להתאים אישית את ההגדרה לפי הצרכים הייחודיים שלכם.

    3. כדי לפרוס את תרשים ה-Helm לאשכול, לוחצים על Deploy (פריסה).

      הוראות מפורטות מופיעות במאמר פריסת אפליקציות.

    אחרי כמה דקות, הגדרת תרשים ה-Helm נפרסת באשכול GKE.

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