המסמך הזה הוא החלק הראשון בסדרה שמיועדת למהנדסי למידת מכונה (ML) שחדשים בשימוש ב-Google Kubernetes Engine (GKE) ורוצים להתחיל להריץ עומסי עבודה של הסקת מסקנות ב-GKE במהירות האפשרית.
בסדרה הזו לא ננסה ללמד אתכם על כל האפשרויות הזמינות של GKE. במקום זאת, אנחנו מספקים לכם את המידע הבסיסי שאתם צריכים לדעת כדי להפעיל את עומסי העבודה שלכם ב-GKE. הסדרה הזו כוללת את המסמכים הבאים:
- למה כדאי להשתמש ב-GKE להסקת מסקנות של AI/ML (המסמך הזה)
- מידע על הסקת מסקנות ממודלים של AI/ML ב-GKE
- מושגים פשוטים של התאמה אוטומטית לעומס (autoscaling) לעומסי עבודה של AI/ML ב-GKE
מהנדסי פלטפורמות AI/ML יכולים להשתמש ב-GKE כדי לנהל את פריסות המודלים שלהם. GKE הוא שירות שמאפשר לכם להפוך לאוטומטיים את הפריסה, ההרחבה והמעקב של עומסי העבודה של ההסקה מבוססת Kubernetes ושל תשתית המחשוב שעליה מופעלים עומסי העבודה. במסמך הזה נסביר על כמה מהיתרונות המרכזיים של שימוש ב-GKE להסקת מסקנות ממודלים, כולל:
- ביצועים עקביים של האפליקציה
- גישה יעילה לציוד ייעודי להסקת מסקנות
- התאמה אוטומטית לעומס של עומסי העבודה של ההיקש
- ניטור אוטומטי ורישום ביומן של הביצועים והתקינות של עומסי העבודה
- ניידות וגמישות בשימוש בתקנים פתוחים ובטכנולוגיות קוד פתוח
לפני שמתחילים
לפני שקוראים את המסמך הזה, חשוב להכיר את הנושאים הבאים:
- מושגי יסוד ב-Kubernetes: מידע על קונטיינרים, Pod, צמתים וקלאסטרים, ואיך הם קשורים זה לזה.
- מצבי הפעלה של GKE: מידע על אשכולות GKE במצב Autopilot ובמצב Standard, על השימושים שלהם ועל ההבדלים ביניהם.
איך אורזים את המודלים כדי לשמור על ביצועים עקביים
הסקת מסקנות עקבית ומהימנה ממודלים היא חיונית לאפליקציית ה-AI שלכם, ו-GKE יכול לצמצם את המורכבות התפעולית של ניהול הסקת מסקנות בהיקף נרחב. כשאתם אורזים את המודל המאומן, את שרת ההסקה ואת כל התלות בקונטיינר, אתם יוצרים ארטיפקט נייד וסטנדרטי שפועל ב-GKE. השימוש בקונטיינרים עוזר לצמצם שגיאות שנגרמות בגלל תלות לא תואמת או סביבות לא עקביות. GKE פורס ומנהל את הקונטיינרים האלה באופן אוטומטי. הוא מטפל במשימות כמו הפעלה מחדש של עומסי עבודה שקורסים או הקצאה מחדש של משאבים, כדי לייצב את הביצועים של עומסי העבודה של ה-AI/ML.
שימוש ב-GPU וב-TPU כדי להפחית את זמן האחזור של הצגת המודעות
השהיה היא בעיה בעומסי עבודה של הסקת מסקנות, וחלק מהמודלים המורכבים מסתמכים על מאיצי חומרה כמו מעבדי GPU ו-TPU כדי להאיץ את ההסקה. GKE מייעלת את התהליך של שימוש ב-GPU או ב-TPU עבור עומסי עבודה של הסקת מסקנות שרגישים לזמן האחזור, על ידי פישוט של הקצאת חומרה וניהול שלה. אתם בוחרים את תצורות החומרה הספציפיות שהכי מתאימות לדרישות שלכם מבחינת ביצועים ועלות, ו-GKE מקצה באופן אוטומטי צמתים עם החומרה שבחרתם כדי להריץ את עומסי העבודה. בנוסף, GKE מבצע אוטומטית שלבי הגדרה שבדרך כלל דורשים הגדרה ידנית ב-Kubernetes, כמו התקנת דרייברים של NVIDIA. כדי לקבל שליטה מדויקת יותר בהגדרת הצמתים, אפשר להשתמש במחלקות מחשוב מותאמות אישית כדי ליצור פרופילי חומרה ספציפיים לשימוש חוזר, ש-GKE משתמש בהם כשהוא מקצה צמתים.
ב-GKE יש גם יכולות לניהול משאבים, כך שתוכלו להשתמש במשאבי TPU ו-GPU בצורה יעילה יותר להסקת מסקנות. לדוגמה, אפשר לשפר את ניצול ה-GPU על ידי אירוח של כמה מודלים בשרת GPU יחיד באמצעות שיתוף GPU, או להפחית את העלויות של משימות הסקה עמידות בכשלים על ידי הפעלתן ב-VM במודל Spot עם מאיצים. עבור עומסי עבודה קטנים עד בינוניים עם דרישות משתנות או משכי זמן קצרים, אפשר להשתמש ב-Flex-start, טכניקה גמישה וחסכונית לשימוש במשאבי מחשוב מיוחדים, כמו מעבדי GPU או TPU. היכולות האלה עוזרות לכם למקסם את השימוש במשאבי המאיץ, תוך אופטימיזציה של זמן האחזור של הצגת המודעות ושל העלות.
טיפול אוטומטי בתנודות בדפוסי התנועה
התנועה ועומס העבודה של עומסי עבודה של הסקת מסקנות בזמן אמת יכולים להיות לא צפויים ודינמיים. עלייה חדה בביקוש עלולה להוביל לזמן אחזור ארוך יותר ולביצועים פחות טובים. ב-GKE יש גישה רב-שכבתית להתאמה אוטומטית לעומס (automatic scaling), כך שתוכלו להוסיף או להסיר משאבים באופן אוטומטי כדי לעמוד בדרישות משתנות של היקש. לדוגמה, אפשר להשתמש ב-Horizontal Pod Autoscaler (HPA) כדי לשנות אוטומטית את מספר ה-Pods בפריסה, או ב-Cluster Autoscaler כדי לשנות אוטומטית את מספר הצמתים במאגר צמתים קיים. בעזרת יכולות ההתאמה האוטומטית לעומס ב-GKE, אתם יכולים להתאים באופן יעיל את כמות המשאבים שעומס העבודה של ההסקות צריך לכמות הביקוש של האפליקציה.
מעקב אחרי התקינות והביצועים של עומס העבודה של ההסקות
GKE משולב עם Google Cloud חבילת כלי הניטור (Cloud Logging ו-Cloud Monitoring), ואפשר להשתמש בתכונות ניטור מובנות כדי לעקוב אחרי התקינות והביצועים של עומסי העבודה של ההסקות. תכונות הניטור האלה מספקות תובנות ושקיפות לגבי הביצועים של עומס העבודה אחרי הפריסה. לדוגמה, יכול להיות שתרצו לדעת אם המודל פועל כמצופה, או אם עומס העבודה עומד בדרישות שלכם לגבי זמן האחזור והדיוק.
GKE מדווח באופן אוטומטי על מדדי תשתית כמו ניצול המעבד, הזיכרון והמאיץ. כדי לענות על שאלות לגבי הביצועים של מודל ספציפי, אפשר להשתמש בשירות מנוהל של Google Cloud ל-Prometheus או לשלוח מדדים בהתאמה אישית מאפליקציית ההסקה אל Cloud Monitoring. לדוגמה, אתם יכולים להגדיר מעקב אוטומטי אחרי אפליקציות ולעקוב אחרי מדדי הסקה מרכזיים, כמו בקשות לשנייה (RPS). אתם יכולים גם לעקוב אחרי סחף מושגים באמצעות ניתוח של מדדים ספציפיים למודל, כמו חלוקת נתוני הקלט, ולנפות באגים באמצעות ניתוח היסטורי של יומנים.
שימוש ב-GKE לניידות ולגמישות
באמצעות תקנים פתוחים כמו קונטיינרים וטכנולוגיות קוד פתוח כמו Kubernetes, GKE מאפשר לכם להעביר את עומסי העבודה של שירותי ההסקה למיקומים שונים, ולהשתמש במשאבים ובכלים שונים כשהדרישות שלכם משתנות. לדוגמה, אתם יכולים לפתח ולבדוק את אפליקציית ההסקה ב-GKE, ואז לפרוס את אותה אפליקציה מבוססת-קונטיינר בסביבה המקומית שלכם לצורך ייצור.
לסיכום, אתם יכולים להשתמש ב-GKE כדי לייעל את התהליך של העברת מודלים של AI/ML מפיתוח לייצור. GKE מטפל בהרבה מורכבויות שקשורות לניהול התשתית, כך שאתם יכולים להתמקד בהרצת עומסי העבודה של ההסקות בסביבה יעילה, ניתנת להרחבה וניתנת לצפייה. במהלך הצפייה בסדרה הזו, תלמדו איך להשתמש ב-GKE כדי להפוך את המודלים של AI/ML לאפליקציות חזקות שמוכנות לייצור.
המאמרים הבאים
- מידע על הסקת מסקנות ממודלים של AI/ML ב-GKE (המסמך הבא בסדרה)
- שיטות מומלצות להרצת עומסי עבודה של הסקה ב-GKE
- איך מפעילים מודל עם GPU יחיד ב-GKE
- איך מפעילים מודלים גדולים של שפה (LLM) בקוד פתוח ב-GKE עם ארכיטקטורה שהוגדרה מראש
- איך מפעילים מודלים גדולים של שפה (LLM) בקוד פתוח ב-GKE באמצעות TPU עם ארכיטקטורה שהוגדרה מראש