המסמך הזה הוא החלק הראשון בסדרה שמיועדת למהנדסי למידת מכונה (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: מידע על קונטיינרים, Pods, צמתים וקלאסטרים, ואיך הם קשורים זה לזה.
- מצבי הפעולה של 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 מדווח באופן אוטומטי על מדדי תשתית כמו מעבד (CPU), זיכרון ושימוש במאיץ. כדי לענות על שאלות לגבי הביצועים של מודל ספציפי, אפשר להשתמש בשירות מנוהל של 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 עם ארכיטקטורה שהוגדרה מראש