מספר סקטורים גלובליים מתחילים להשקיע באופן משמעותי יותר בלמידת מכונה (ML).
מודלים של ML ניתנים להפעלה ותחילה על ידי צוותים של מומחים, אך אחד המכשולים הגדולים ביותר הוא העברת הידע שנצבר למודל הבא כדי שניתן יהיה להרחיב את התהליכים.
כדי לשפר ולתקן את התהליכים המעורבים בניהול מחזור חיים של מודל, טכניקות MLOps נמצאות יותר ויותר בשימוש על ידי הצוותים היוצרים מודלים של למידת מכונה.
המשך לקרוא כדי לגלות עוד על כמה מהכלים והפלטפורמות הטובות ביותר של MLOps הזמינות כיום וכיצד הם יכולים להקל על למידת מכונה מנקודת מבט של כלי, מפתח ופרוצדורלי.
מה זה MLOps?
טכניקה ליצירת מדיניות, נורמות ושיטות עבודה מומלצות עבור מודלים של למידת מכונה ידועה בשם "פעולות למידת מכונה" או "MLOps".
מטרת MLOps היא להבטיח שכל מחזור החיים של פיתוח ML - מהתפיסה ועד לפריסה - מתועד ומנוהל בקפידה לקבלת התוצאות הטובות ביותר במקום להשקיע בו זמן ומשאבים רבים ללא אסטרטגיה.
המטרה של MLOps היא להגדיר שיטות עבודה מומלצות באופן שיהפוך את פיתוח למידת מכונה לניתנת להרחבה יותר עבור מפעילי ומפתחי ML, כמו גם לשפר את האיכות והאבטחה של מודלים של ML.
יש המתייחסים ל-MLOps כ"DevOps for Machine learning" מכיוון שהוא מיישם בהצלחה את עקרונות DevOps לתחום מיוחד יותר של פיתוח טכנולוגי.
זוהי דרך שימושית לחשוב על MLOps מכיוון שבדומה ל-DevOps, היא מדגישה שיתוף ידע, שיתוף פעולה ושיטות עבודה מומלצות בין צוותים וכלים.
MLOps מספקת למפתחים, מדעני נתונים וצוותי תפעול מסגרת לשיתוף פעולה וכתוצאה מכך לייצור מודלים ML החזקים ביותר.
למה להשתמש בכלי MLOps?
כלי MLOps יכולים לבצע מגוון רחב של משימות עבור צוות ML, עם זאת, לעתים קרובות הם מחולקים לשתי קבוצות: ניהול פלטפורמה וניהול רכיבים בודדים.
בעוד שחלק ממוצרי MLOps מתמקדים רק בפונקציית ליבה אחת, כגון ניהול נתונים או מטא נתונים, כלים אחרים מאמצים אסטרטגיה מקיפה יותר ומספקים פלטפורמת MLOps לשליטה במספר היבטים של מחזור החיים של ML.
חפש פתרונות MLOps המסייעים לצוות שלך בניהול אזורי פיתוח ML אלה, בין אם אתה מחפש מומחה או כלי רחב יותר:
- טיפול בנתונים
- עיצוב ודוגמנות
- ניהול פרויקטים ומקום עבודה
- פריסת מודל ML ותחזוקה רציפה
- ניהול מחזור חיים מתחילתו ועד סופו, המוצע בדרך כלל על ידי פלטפורמות MLOps בשירות מלא.
כלים של MLOps
1. MLFlow
מחזור החיים של למידת המכונה נשלט על ידי פלטפורמת הקוד הפתוח MLflow וכולל רישום מודל מרכזי, פריסה וניסוי.
ניתן להשתמש ב-MLflow על ידי צוות בכל גודל, הן בנפרד והן ביחד. לספריות אין כל השפעה על הכלי.
כל שפת תכנות וספריית למידת מכונה יכולה להשתמש בה.
כדי להקל על האימון, הפריסה והניהול של יישומי למידת מכונה, MLFlow מקיים אינטראקציה עם מספר מסגרות למידת מכונה, כולל TensorFlow ו-Pytorch.
בנוסף, MLflow מספקת ממשקי API קלים לשימוש שניתן לכלול בכל תוכנה או ספריות קיימות של למידת מכונה.
ל-MLflow יש ארבע תכונות מפתח המאפשרות מעקב ותכנון ניסויים:
- MLflow Tracking - ממשק API וממשק משתמש לרישום פרמטרים, גרסאות, מדדים וחפצים של קוד למידת מכונה, וכן להצגת התוצאות והניגודים שלהן.
- MLflow Projects - אריזת קוד למידת מכונה בפורמט שניתן לשימוש חוזר וניתן לשחזור להעברה לייצור או שיתוף עם מדעני נתונים אחרים
- MLflow Models - תחזוקה ופריסה של מודלים למגוון מערכות הגשה והסקת מודלים מספריות ML שונות
- MLflow Model Registry – חנות דגמים מרכזית המאפשרת ניהול שיתופי של כל תוחלת החיים של מודל MLflow, לרבות גרסאות מודל, מעברי שלבים והערות.
2. קובפלו
ארגז הכלים של ML עבור Kubernetes נקרא Kubeflow. אריזה וניהול מכולות Docker, מסייעים בתחזוקה של מערכות למידת מכונה.
על ידי פישוט תזמור הפעלה ופריסה של תהליכי עבודה של למידת מכונה, הוא מקדם את המדרגיות של מודלים של למידת מכונה.
זהו פרויקט בקוד פתוח הכולל קבוצה שנבחרה בקפידה של כלים ומסגרות משלימות המותאמות לצרכי ML שונים.
ניתן להתמודד עם משימות אימון ML ארוכות, ניסויים ידניים, חזרתיות ואתגרי DevOps באמצעות Kubeflow Pipelines.
עבור מספר שלבים של למידת מכונה, כולל הדרכה, פיתוח צינורות ותחזוקה של מחברות יופיטר, Kubeflow מציעה שירותים מיוחדים ואינטגרציה.
זה מקל על ניהול ומעקב אחר משך החיים של עומסי העבודה של הבינה המלאכותית שלך, כמו גם לפרוס מודלים של למידת מכונה (ML) וצינורות נתונים באשכולות Kubernetes.
זה מציע:
- מחברות לשימוש ב-SDK לאינטראקציה עם המערכת
- ממשק משתמש (UI) לשליטה ובקרה על ריצות, עבודות וניסויים
- לתכנן במהירות פתרונות מקצה לקצה ללא צורך בבנייה מחדש בכל פעם, ושימוש חוזר ברכיבים ובצינורות.
- כמרכיב מפתח של Kubeflow או כהתקנה עצמאית, Kubeflow Pipelines מוצע.
3. בקרת גרסאות נתונים
פתרון בקרת גרסאות בקוד פתוח עבור פרויקטים של למידת מכונה נקרא DVC, או בקרת גרסאות נתונים.
בכל שפה שתבחר, זהו כלי ניסיוני המסייע בהגדרת צינור.
DVC משתמש בקוד, ניהול גרסאות של נתונים ושיחזור כדי לעזור לך לחסוך זמן כאשר אתה מגלה בעיה בגרסה קודמת של דגם ה-ML שלך.
בנוסף, אתה יכול להשתמש בצינורות DVC כדי לאמן את המודל שלך ולהפיץ אותו לחברי הצוות שלך. ארגון Big Data וניהול גרסאות יכולים להיות מטופלים על ידי DVC, וניתן לאחסן את הנתונים בצורה נגישה בקלות.
למרות שהוא כולל כמה תכונות (מוגבלות) של מעקב אחר ניסויים, הוא מתמקד בעיקר בעיבוד גרסאות וניהול של נתונים וצינורות.
זה מציע:
- זה אגנוסטי לאחסון, לכן אפשר להשתמש במגוון סוגי אחסון.
- זה מספק גם סטטיסטיקות מעקב.
- אמצעי בנוי מראש לחיבור שלבי ML ל-DAG והרצת כל הצינור מתחילתו ועד סופו
- ניתן לעקוב אחר כל הפיתוח של כל מודל ML באמצעות כל הקוד ומקור הנתונים שלו.
- יכולת שחזור על ידי שמירה נאמנה של התצורה הראשונית, נתוני הקלט וקוד התוכנית עבור ניסוי.
4. פאצ'יידרם
Pachyderm היא תוכנית בקרת גרסאות ללמידת מכונה ומדעי נתונים, בדומה ל-DVC.
בנוסף, מכיוון שהוא נוצר באמצעות דוקר וקוברנטס, הוא יכול להפעיל ולפרוס יישומי Machine Learning בכל פלטפורמת ענן.
Pachyderm מבטיחה שניתן לעקוב אחר כל פיסת נתונים הנצרכת למודל למידת מכונה ולשנות אותה.
הוא משמש ליצירה, הפצה, ניהול ומעקב אחר מודלים של למידת מכונה. רישום מודלים, מערכת ניהול מודלים וארגז כלים של CLI כלולים כולם.
מפתחים יכולים לבצע אוטומציה ולהרחיב את מחזור החיים של למידת המכונה שלהם באמצעות בסיס הנתונים של Pachyderm, אשר גם מבטיח חזרה.
הוא תומך בתקני ממשל נתונים מחמירים, מוריד את עלויות עיבוד הנתונים והאחסון, ומסייע לעסקים להוציא את יוזמות מדעי הנתונים שלהם לשוק מהר יותר.
5. פוליאקסון
באמצעות פלטפורמת Polyaxon, ניתן לשכפל ולנהל פרויקטים של למידת מכונה ויישומי למידה עמוקה לאורך כל מחזור החיים שלהם.
Polyaxon מסוגל לארח ולנהל את הכלי, וניתן למקם אותו בכל מרכז נתונים או ספק ענן. כגון Torch, Tensorflow ו-MXNet, התומכים בכל מסגרות הלמידה העמוקה הפופולריות ביותר.
כשזה מגיע לתזמור, Polyaxon מאפשר לך להפיק את המרב מהאשכול שלך על ידי תזמון משימות ובדיקות באמצעות ה-CLI, לוח המחוונים, SDKs או REST API שלהם.
זה מציע:
- אתה יכול להשתמש בגרסת הקוד הפתוח כבר עכשיו, אך היא כוללת גם אפשרויות עבור החברה.
- למרות שהוא מכסה את מחזור החיים המלא, כולל תזמור ריצה, הוא מסוגל להרבה יותר.
- עם מסמכי עזר טכניים, הנחיות לתחילת העבודה, חומרי למידה, מדריכים, מדריכים, יומני שינויים ועוד, זוהי פלטפורמה מתועדת היטב.
- עם לוח המחוונים של תובנות הניסוי, ניתן לפקוח עין על כל ניסוי אופטימיזציה, לעקוב ולהעריך אותו.
6. כוכב שביט
Comet היא פלטפורמה ללמידת מכונה מטה שעוקבת אחר, מנוגדת, מסבירה ומשפרת ניסויים ומודלים.
ניתן לראות ולהשוות את כל הניסויים שלך במיקום אחד.
זה מתפקד עבור כל משימת למידת מכונה, בכל מקום שבו הקוד שלך מבוצע, ועם כל ספריית למידת מכונה.
Comet מתאים לקבוצות, יחידים, מוסדות אקדמיים, עסקים וכל מי שרוצה להמחיש במהירות ניסויים, לייעל את העבודה ולערוך ניסויים.
מדעני נתונים וצוותים יכולים לעקוב, להבהיר, לשפר ולהשוות ניסויים ומודלים באמצעות פלטפורמת למידת מטה-מכונה Comet המתארחת בעצמה ומבוססת ענן.
זה מציע:
- קיימות יכולות רבות עבור חברי הצוות לחלוק משימות.
- יש לו כמה אינטגרציות שמאפשרות לקשר אותו בקלות לטכנולוגיות אחרות
- מתפקד היטב עם ספריות ML נוכחיות
- דואג לניהול משתמשים
- השוואת ניסויים מופעלת, כולל השוואה של קוד, היפרפרמטרים, מדדים, תחזיות, תלות ומדדי מערכת.
- מספק מודולים נפרדים עבור חזון, אודיו, טקסט ונתוני טבלאות המאפשרים לך לדמיין דוגמאות.
7. אופטונה
Optuna היא מערכת לאופטימיזציה של היפרפרמטרים אוטונומיים שניתן ליישם הן למידת מכונה והן ללמידה עמוקה, כמו גם לתחומים אחרים.
הוא מכיל מגוון אלגוריתמים חדשניים מהם ניתן לבחור (או לקשר), מקל מאוד על הפצת אימונים על מספר רב של מחשבים, ומציע הדמיה של תוצאות אטרקטיביות.
ספריות למידת מכונה פופולריות כמו PyTorch, TensorFlow, Keras, FastAI, Sci-kit-learn, LightGBM ו-XGBoost כולן משולבות בו.
הוא מספק אלגוריתמים חדישים המאפשרים ללקוחות להשיג תוצאות מהר יותר על ידי צמצום מהיר של הדגימות שאינן נראות מבטיחות.
באמצעות אלגוריתמים מבוססי Python, הוא מחפש אוטומטית את ההיפרפרמטרים האידיאליים. Optuna מעודד חיפושי היפרפרמטרים מקבילים על פני שרשורים רבים מבלי לשנות את הקוד המקורי.
זה מציע:
- הוא תומך באימון מבוזר על אשכול כמו גם במחשב יחיד (רב-תהליכים) (רב-צמתים)
- הוא תומך במספר טכניקות חיתוך כדי להאיץ את ההתכנסות (ולהשתמש בפחות מחשוב)
- יש לו מגוון של הדמיות חזקות, כגון עלילת פרוסה, עלילת קווי מתאר וקואורדינטות מקבילות.
8. קדרו
Kedro היא מסגרת חינמית של Python לכתיבת קוד שניתן לעדכן ולתחזק עבור פרויקטים של מדעי נתונים.
הוא מביא רעיונות משיטות עבודה מומלצות בהנדסת תוכנה לקוד למידת מכונה. Python הוא הבסיס של כלי תזמור זרימת עבודה זה.
כדי להפוך את תהליכי ה-ML שלך לפשוטים ומדויקים יותר, אתה יכול לפתח זרימות עבודה ניתנות לשחזור, לתחזוקה ומודולריות.
Kedro משלבת עקרונות הנדסת תוכנה כמו מודולריות, הפרדת אחריות וניהול גרסאות בסביבת למידת מכונה.
על בסיס Cookiecutter Data Science, הוא מספק מסגרת פרוייקט משותפת ניתנת להתאמה.
מספר מחברי נתונים פשוטים המשמשים לאחסון וטעינת נתונים על פני מספר מערכות קבצים ופורמטים של קבצים, מנוהלים על ידי קטלוג הנתונים. זה הופך פרויקטים של למידת מכונה ליעילים יותר ומקל על בניית צינור נתונים.
זה מציע:
- Kedro מאפשר פריסת מכונה מפוזרת או בודדת.
- אתה יכול להפוך תלות לאוטומטית בין קוד Python והדמיית זרימת עבודה באמצעות הפשטת צינורות.
- באמצעות שימוש בקוד מודולרי לשימוש חוזר, טכנולוגיה זו מאפשרת שיתוף פעולה בין צוות במגוון רמות ומשפרת את הפרודוקטיביות בסביבת הקידוד.
- המטרה העיקרית היא להתגבר על החסרונות של מחברות Jupyter, סקריפטים חד פעמיים וקוד דבק על ידי כתיבת תכנות מדעי נתונים שניתן לתחזוקה.
9. BentoML
בניית נקודות קצה של API ללמידה מכונה קלה יותר עם BentoML.
הוא מספק תשתית טיפוסית אך דחוסה להעברת מודלים נלמדים של למידת מכונה לייצור.
זה מאפשר לך לארוז מודלים נלמדים לשימוש במסגרת ייצור, לפרש אותם באמצעות כל מסגרת ML. נתמכים גם הגשה אצווה לא מקוונת וגם הגשה מקוונת של API.
שרת מודל בעל ביצועים גבוהים וזרימת עבודה גמישה הם תכונות של BentoML.
בנוסף, השרת מציע מיקרו-אצווה אדפטיבית. גישה מאוחדת לארגון מודלים ומעקב אחר נהלי הפריסה מסופקת על ידי לוח המחוונים של ממשק המשתמש.
לא תהיה השבתת שרת מכיוון שמנגנון ההפעלה הוא מודולרי והתצורה ניתנת לשימוש חוזר. זוהי פלטפורמה גמישה לאספקה, ארגון ופריסה של מודלים של ML.
זה מציע:
- יש לו עיצוב מודולרי הניתן להתאמה.
- זה מאפשר פריסה על פני מספר פלטפורמות.
- זה לא יכול להתמודד אוטומטית עם קנה מידה אופקי.
- הוא מאפשר פורמט דגם יחיד, ניהול מודלים, אריזת דגמים והגשת מודלים בעלי ביצועים גבוהים.
10. סלדון
מדעני נתונים יכולים ליצור, לפרוס ולנהל מודלים וניסויים של למידת מכונה בקנה מידה ב-Kubernetes באמצעות מסגרת הקוד הפתוח של Seldon Core.
TensorFlow, Sci-kit-learn, Spark, R, Java ו-H2O הם רק חלק מערכי הכלים הנתמכים על ידי זה.
זה גם מתממשק עם Kubeflow ו-OpenShift של RedHat. הליבה של Seldon הופכת מודלים של למידת מכונה (מודלים של ML) או עטיפת שפות (שפות כמו Python, Java וכו') לשירותי REST/GRPC של ייצור.
אחד הכלים הטובים ביותר של MLOps לשיפור תהליכי למידת מכונה הוא זה.
קל לאחסן דגמי ML ולבדוק שימושיות ואבטחה באמצעות Seldon Core.
זה מציע:
- ניתן להפוך את פריסת המודל לפשוטה יותר עם מספר חלופות, כגון פריסת קנרית.
- כדי להבין מדוע נעשו תחזיות ספציפיות, השתמש במסבירי מודל.
- כאשר מתעוררות בעיות, שימו עין על דגמי הייצור באמצעות מערכת ההתראה.
סיכום
MLOps יכול לעזור לשפר את פעולות למידת מכונה. MLOps יכולים להאיץ את הפריסה, להפוך את איסוף הנתונים וניפוי הבאגים לפשוטים יותר, ולשפר את שיתוף הפעולה בין מהנדסים ומדעני נתונים.
על מנת שתוכלו לבחור בכלי MLOps המתאים ביותר לצרכיכם, פוסט זה בחן 10 פתרונות MLOps פופולריים, רובם בקוד פתוח.
השאירו תגובה