MLOps, או פעולות למידת מכונה, הוא סט של פרקטיקות שמשלבות למידת מכונה (ML), הנדסת נתונים ו-DivOps כדי לייעל ולמכן את מחזור חיי מודל הלמידה מכונה מההתחלה ועד הסוף. MLOps הוא היבט חיוני בתהליכי המדע הנתונים הנוכחיים. זהו מרכיב בסיסי בנוף טכנולוגיות המידע המודרני, והשפעתו צפויה לגדול באופן משמעותי בשנים הקרובות. הוא כולל הכל מהליך עיבוד נתונים ופיתוח מודלים ועד לפריסה, ניטור ושיפור מתמשך, מה שהופך אותו לדיסציפלינה קריטית בשילוב למידת מכונה בסביבות ייצור.
עם זאת, אתגר משמעותי ב-MLOps טמון בדרישה לתשתית ניתנת להרחבה וגמישה המסוגלת להתמודד עם הדרישות המיוחדות של העומסים של למידת מכונה. בעוד שמחזור הפיתוח הוא לעיתים קרובות ניסי, בדרך כלל באמצעות כלים אינטראקטיביים כמו מחברות ג'ופיטר, פריסת ייצור דורשת אוטומציה ויכולת הרחבה.
קוברנטיס, כלי מיכלים או תיאום, מציע את התשתית הזו הנדרשת לתמוך ב-MLOps בקנה מידה, תוך הבטחת גמישות, יכולת הרחבה וניהול משאבים יעיל עבור זרימות העבודה השונות של ML. כדי להבין את משמעותו עוד יותר, נפרק זאת באמצעות דוגמאות פשוטות מחיי היום-יום.
1. יכולת הרחבה וניהול משאבים
Kubernetes מספק תמיכה יוצאת דופן בסקאלינג של זרימות עבודה בלמידת מכונה, שבדרך כלל מחייבות משאבים חישוביים משמעותיים. במיוחד עבור מודלי למידת עמוק, הסקאלינג דינמי חיוני לניהול עומסי עבודה משתנים במהלך שלבי האימון וההצפנה. Kubernetes מאופטמת אורכסטרציה של משאבים, מאפשרת סקאלינג אופקי של שירותים בקונטיינרים בתגובה לבקשות בזמן אמת. בצינורות MLOps, עומסי עבודה כוללים בדרך כלל סטים נתונים גדולים, מספר משימות להנדסת ייחודים, ואימון מודלים דורשים משאבים. Kubernetes מפיץ בצורה אפקטיבית את המשימות האלה על צמתים בתוך אשכול, מאפשר הקצאה דינמית של משאבי CPU, GPU, וזיכרון על פי צורכי כל משימה. הגישה הזו מבטיחה ביצועים אופטימליים במהלך זרימות עבודה בלמידת מכונה, ללא קשר לגודל התשתית. בנוסף, יכולות הסקאלינג האוטומטי של Kubernetes משפרות את יעילות העלויות על ידי הפחתת משאבים לא מנוצלים בתקופות דרישה נמוכה.
לדוגמה
לדוגמה, חברה שמפעילה מערכת המלצות (כמו Netflix שממליץ על סרטים) עשויה לראות דרישה גבוהה בשעות מסוימות ביום. Kubernetes מבטיחה שהמערכת תוכל לטפל במספר בקשות גבוה יותר בשעות העומס ולהקטין את הסקאלה כאשר העומס נמוך. באופן דומה, Airbnb משתמשת ב-Kubernetes לניהול עומסי עבודת הלמידה המתמטית עבור חיפושים והמלצות אישיות. עם תעבורת משתמשים שמשתנה, Airbnb משתמשת ב-Kubernetes כדי לסקאל אוטומטית את שירותי הלמידה המתמטית שלה. לדוגמה, בעת עונות הנסיעות הצפויות, Kubernetes מקצה דינמית יותר משאבים כדי לטפל בבקשות משתמשים נוספות, מקסימיזציה עלויות והבטיחות זמינות גבוהה.
2. עקביות בסביבות
אחת מהאתגרים המרכזיים בMLOps היא להבטיח את השחזור של ניסויים ומודלים בלמידת מכונה. דמיינו שאתם אופים עוגה ורוצים שהיא תצא אותו דבר, בין אם אתם אופים בבית או במטבח מסחרי. אתם עוקבים אחרי אותה מתכון כדי להבטיח עקביות. קוברנטיס עושה משהו דומה על ידי שימוש במיכלים. המיכלים הללו אורזים את מודל הלמידה של המכונה ואת כל התלויות שלו (תוכנה, ספריות וכו'), כך שהוא עובד באותה דרך בין אם הוא נבדק על מחשב נייד של מפתח או פועל בסביבה ענקית של ענן. זה חיוני לפרויקטי למידת מכונה כי אפילו הבדלים קטנים בהגדרה יכולים להוביל לתוצאות בלתי צפויות.
דוגמה
ספוטיפיי אימצה את קוברנטיס כדי לארוז את מודלי הלמידה שלה במיכלים ולהבטיח שחזוריות בסביבות שונות. על ידי אריזת מודלים עם כל התלויות שלהם במיכלים, ספוטיפיי ממזערת את ההבדלים שעשויים להתרחש במהלך הפריסה. פרקטיקה זו אפשרה לספוטיפיי לשמור על עקביות באופן שבו המודלים פועלים בסביבות פיתוח, בדיקה וייצור, ובכך להפחית את בעיית ‘עובד במחשב שלי’.
3. אוטומציה של העבודה
במהלך עבודה טיפוסית של MLOps, מדעני נתונים מגישים קוד ועדכוני מודלים למערכות בקרת גרסאות. עדכונים אלה מפעילים צינורות CI אוטומטיים שמטפלים בבנייה, בדיקה ואימות של מודלים בסביבות מיכליות. קוברנטיס מפשט את התהליך הזה על ידי תיאום המשימות המיכליות, ומבטיח שכל שלב בפיתוח ובדיקת המודל מתבצע בסביבה ניתנת להרחבה ומבודדת. במהלך זה, מודלים, לאחר אימות, מועברים בצורה חלקה לסביבות ייצור תוך שימוש בתכונות ההפצה וההרחבה המקוריות של קוברנטיס, מה שמאפשר עדכונים רציפים, אמינים ובזמן נמוך למודלים של למידת מכונה.
דוגמה
לדוגמה, כאשר גרסה חדשה של מודל ML מוכנה (כמו מסנן ספאם בג'ימייל), קוברנטיס יכול להפעיל אותה אוטומטית, מה שמבטיח שהיא תפעל היטב ותשנה את הגרסה הישנה ללא הפרעה. כמו כן, זלנדו – קמעונאית אופנה אירופאית גדולה – משתמשת בקוברנטיס בצינור ה-CI/CD שלה לעדכוני מודלים של ML.
4. שיפור המעקב וממשלת המודלים
מעקב אחר מודלי למידת מכונה בייצור יכול להיות מאתגר מאוד בשל הטבע המשתנה ללא הרף של קלטי הנתונים והתנהגות המודלים שמתפתחת עם הזמן. קוברנטיס משפר מאוד את הנראות של מערכות ML על ידי הצעת כלים משולבים למעקב כמו פרומתיוס וגרפנה, כמו גם את יכולות הלוגינג המקוריות שלו. כלים אלה מאפשרים למדעני נתונים ומהנדסי MLOps לעקוב אחר מדדים חיוניים הקשורים לביצועי המערכת, כמו שימוש ב-CPU, זיכרון ו-GPU, כמו גם מדדים ספציפיים למודל כמו דיוק חיזוי, זמן תגובה וגילוי סטייה.
דוגמה
למשל, יכולות קוברנטיס מסייעות ל-NVIDIA להגדיר מדדים מותאמים אישית הקשורים למודלים של למידת מכונה שלהם, כגון שינוי מודל או שינויים בדיוק לאורך זמן. הם הקימו התראות כדי להודיע למדעני נתונים ולמהנדסי MLOps כאשר מדדים אלו חורגים מהמגבלות המקובלות. ניטור פרואקטיבי זה מסייע לשמור על ביצועי המודל ומבטיח שהמודלים פועלים כפי שמתוכנן.
5. אורקסטרציה של אימון מפוזר ואינפרנציה
קוברנטיס היה חיוני לאורקסטרציה של אימון מפוזר ואינפרנציה של מודלים של למידת מכונה בקנה מידה רחב. אימון מודלים מורכבים, במיוחד רשתות נוירונים עמוקות, לעיתים קרובות דורש הפצת משימות חישוביות על פני מספר מכונות או צמתים, תוך שימוש בחומרה מיוחדת כמו GPUs או TPUs. קוברנטיס מציע תמיכה מקומית במבני חישוב מפוזרים כמו טנסורפלואו, פייטורץ' והורובוד, ומאפשר למהנדסי למידת מכונה להרחיב ביעילות את אימון המודלים על פני אשכולות.
דוגמה
אובר, לדוגמה, עושה שימוש בקוברנטיס לאימון מפוזר של מודלי למידת מכונה שלה המיועדים לשירותים שונים, כולל שיתוף נסיעות ומשלוחי מזון. בנוסף, קוברנטיס מספק מודלים בזמן אמת כדי לספק זמני הגעה משוערים (ETA) ומחירים למשתמשים עם השהיה נמוכה, תוך הרחבה בהתאם לביקוש בשעות שיא.
6. גמישות היברידית ורב-ענן
ב- MLOps, ארגונים לעתים קרובות משיגים דגמים בסביבות שונות, כולל באתר, עננים ציבוריים והתקנים של Edge. העיצוב הסלעות של Kubernetes מאפשר אורכסטרציה חלקה בהגדרות היברידיות ורב-ענניות, מספק גמישות שקריטית לצרכי רישות הנתונים והנמוכה-לטנציה. על ידי הפשטת התשתיות, Kubernetes מאפשר לדגמים של למידת מכונה להיות מושגשם ולהגדל את עצמם בין אזורים וספקים, תומך בריסואה, החזקת מחסניות והתאמה לתקנים ללא נעילת ספק.
דוגמה
לדוגמה, אליבאבא משתמשת ב- Kubernetes כדי להפעיל את העומסים של למידת המכונה שלה בין מרכזי נתונים באתר וסביבות ענן ציבוריות. ההגדרה ההיברידית הזו מאפשרת ל- אליבאבא לנהל את בעיות רישות הנתונים ולספק את הגמישות להגדיל את העומסים בהתאם לבקשה. על ידי תמיכה ביכולות הסלעות של Kubernetes, אליבאבא יכולה להפעיל ולנהל את הדגמים שלה ביעילות בסביבות שונות, מיטבת ביצועים ועלות.
7. עמידות בפני תקלות
עמידות תקלות של Kubernetes מבטיחה כי עומסי עבודת למידת מכונה יכולים להמשיך באופן חלק, גם אם צמתים או תופסי תוכנה פרטיים חוו כשלים. התכונה הזאת חיונית לאימון מבוזר, שבו אובדן של צומת עשוי לדרוש איתחול מחדש של תהליך האימון כולו, ולכן לבזבז זמן ומשאבים חישוביים. מערכת השליטה של Kubernetes מקפידה על צפייה רציפה על בריאות הצמתים והקפסולות, וכאשר היא זוהת כשל בצומת, היא מסמנת באופן אוטומטי את הקפסולה המושפעת כ"לא בריאה". Kubernetes מתזמן מחדש לעומת העומס מהקפסולה הנכשלת לצומת אחרת הידידותית באשכול. אם קיימים צמתי GPU, Kubernetes יבחר באופן אוטומטי אחד, מאפשר לאימון להמשיך מבלי הפסקה.
דוגמה
אובר מנצלת את Kubernetes עם Horovod לאימון דגמי למידה עמוקה מבוזרת. בהגדרה זו, Kubernetes מציעה עמידות תקלות; אם צומת שמפעילה עובד Horovod נכשלת, Kubernetes מפעילה מחדש באופן אוטומטי את העובד על צומת אחרת. על ידי שילוב של checkpointing, עבודות האימון של אובר יכולות לשחזר מכשלים כאלו בפגיעה מינימלית. המערכת הזו מאפשרת לאובר לאמן דגמים בקניין גדול עם יותר אמינות, גם בעת התמודדות עם בעיות חומרה או רשת מזדמנותיות.
מסקנה
קוברנטיס הפך להיות חיוני במהלכי MLOps, מספק תשתית חזקה לניהול ולהרחבת זרימות עבודה של למידת מכונה בצורה יעילה. החוזקות שלו בה orchestration של משאבים, קונטיינריזציה, פריסה מתמשכת, ומעקב מקלות על כל מחזור חיי מודל ML, מהפיתוח ועד לייצור. ככל שמודלי הלמידה המכנית מתפתחים במורכבות ובחשיבותם בתוך פעולות הארגון, קוברנטיס ימשיך להיות גורם מרכזי בשיפור ההרחבה, היעילות, והאמינות של פרקטיקות MLOps. מעבר לתמיכה ביישום טכנולוגי, קוברנטיס גם מקדם חדשנות ומצוינות תפעולית במערכות מונעות AI.
Source:
https://dzone.com/articles/the-importance-of-kubernetes-in-mlops