תבניות ההסקה שאומנו מראש באמצעות AI ב-Application Design Center מאפשרות להקצות תשתית של Google Kubernetes Engine (GKE) ולפרוס עומסי עבודה של פרסום מודלים. אתם יכולים להשתמש בתבנית AI Pre-trained Inference GKE cluster כדי להגדיר אשכול GKE מאובטח ופרטי להסקת מסקנות עם ביצועים גבוהים. אחרי זה תוכלו להשתמש בתבנית AI Pre-trained Inference GKE workload (גרסת טרום-השקה (Preview)) כדי לפרוס מודל Gemma שעבר אימון מראש עם תרשים Helm ומנוע השירות vLLM. עומס העבודה מגדיר בקשות למשאבי GPU ו-Horizontal Pod Autoscaler (HPA) שמשתנה בהתאם לשימוש במטמון של ה-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.מאפשרת לראות תנועה בין Pods באותו צומת ביומני הזרימה של VPC. החשיפה הזו נדרשת למעקב אחרי הרשת, לפתרון בעיות ולניתוח אבטחה. gateway_api_configמופעל באמצעות{"channel":"CHANNEL_STANDARD"}.GKE Inference Gateway API עוזר לכם לנהל את תעבורת הנתונים הנכנסת (ingress) לשירותי 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, מאגר הצמתים יכול להצטמצם אנכית בהתאם לעומס (scale down) באופן מלא, וכך להפחית את העלויות בתקופות של חוסר פעילות. הגבול העליון של ההתאמה לעומס עוזר לשלוט בעלויות ובצריכת המשאבים. הפרמטר node_config.guest_acceleratorנוסף. gpu_driver_installation_config.gpu_driver_version:מוגדר לערך"LATEST". gpu_sharing_configמופעל עםTIME_SHARING. max_shared_clients_per_gpu:מוגדר לערך2.מציינת את השימוש במעבדי NVIDIA L4 GPU למשימות של הסקת מסקנות באמצעות 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 Secret לניהול מאובטח של פרטי כניסה. |
resources.limits ו-requests עבור nvidia.com/gpu: "1" |
ההגדרה הזו מבטיחה שכל pod יקבל GPU ייעודי. |
nodeSelector.cloud.google.com/gke-accelerator: nvidia-l4 |
מוודא שהפודים של מודל ה-AI מתוזמנים רק בצומתי GKE Standard שמצוידים במעבדי NVIDIA L4 GPU, שמתאימים במיוחד להסקת מסקנות חסכונית ובעלת ביצועים גבוהים. |
hpa.enabled: true |
הפעלת Horizontal Pod Autoscaler (HPA), שמאפשר לאפליקציה לשנות באופן אוטומטי את מספר ה-Pods (בין minReplicas: 1 ל-maxReplicas: 10) על סמך targetCPUUtilizationPercentage: 80%. מבטיחה ביצועים טובים בעומסי שיא וחיסכון בעלויות כשהשימוש נמוך. |
tensorParallelSize: 1 |
מציין שהמודל לא מפוצל בין כמה מעבדי GPU ב-Pod אחד. |
maxModelLen: 512 |
המדיניות קובעת את אורך הרצף המקסימלי שמודל Gemma 7B יכול לעבד. |
service.type: ClusterIP |
השירות מוגדר לגישה פנימית בתוך האשכול. |
pdb.enabled: true וגם minAvailable: 1 |
כדי להבטיח זמינות גבוהה, מופעל תקציב לשיבוש Pod. לפחות רפליקה אחת של מודל ה-AI תישאר זמינה במהלך שיבושים יזומים, כמו תחזוקת צמתים. |
יצירת אפליקציית AI
כדי לפרוס את אפליקציית ה-AI, משתמשים בתבניות אשכול GKE ועומס עבודה להסקת מסקנות מ-AI שאומן מראש.
פריסת תשתית ה-AI
מגדירים ופורסים את התבנית AI Pre-trained Inference אשכול GKE כדי ליצור את התשתית הבסיסית שבה פועל עומס העבודה של ה-AI.
משכפלים ופורסים את התבנית AI Pre-trained Inference אשכול GKE כאפליקציה.
אשכול GKE נוצר בפרויקט הפריסה שבחרתם.
מגדירים את הרכיבים. למידע נוסף, קראו את המאמרים הבאים:
לוחצים על Deploy. האפליקציה נפרסת אחרי כמה דקות.
בחלונית Application details, לוחצים על הכרטיסייה Outputs.
מזהים את ה-cluster_id של האפליקציה. תשתמשו במידע הזה כשתפרסו את תרשים ה-Helm.
פריסת עומס העבודה של ה-AI
משתמשים בתבנית AI Pre-trained Inference GKE workload כדי לפרוס את עומס העבודה של ה-AI באשכול שיצרתם. תפרסו תרשים Helm שכולל את ההגדרות של עומס העבודה של ה-AI.
בדף Google catalog, בתבנית AI Pre-trained Inference GKE workload, לוחצים על Create new application.
בשדה Name, מזינים שם ייחודי לאפליקציה.
באזור GKE Deployment Target:
ב-Project list, בוחרים את הפרויקט שבו פרסתם את אשכול GKE מהאפליקציה AI Pre-trained Inference GKE cluster.
ברשימה Region, בוחרים את האזור שבו פרסתם את אשכול GKE.
ברשימה Clusters, בוחרים את אשכול GKE שנפרס.
ברשימה Namespace, מזינים את מרחב השמות שבו פרסתם את אשכול GKE. אם לא שיניתם את השם, הזינו
default.לוחצים על Create application.
האפליקציה נוצרת ומוצגים קובצי התצורה.
בחלונית Helm chart:
בודקים את פרטי ההגדרות האישיות.
אופציונלי: התאמה אישית של ההגדרות בהתאם לצרכים הייחודיים שלכם.
כדי לפרוס את תרשים ה-Helm באשכול, לוחצים על Deploy.
הוראות מפורטות זמינות במאמר פריסת אפליקציות.
אחרי כמה דקות, תרשים ה-Helm נפרס באשכול GKE.
המאמרים הבאים
- במאמר מדריך למתחילים: התאמה אישית ופריסה של תבנית Google מוסבר איך לשכפל ולהתאים אישית תבניות.
- להגדיר תצורות משלכם באמצעות עיצוב תבניות של אפליקציות.
- לזהות שיטות מומלצות כלליות לארכיטקטורה באמצעות Google Cloud Architecture Framework.