בקצרה
פרודקשן מתחיל בהגדרת שימוש ובעל אחריות. בונים תהליך שניתן לשחזר, בודקים אותו בסביבה מוגבלת ומתכננים ניטור וחזרה לאחור. קישור לאפליקציה הוא דרך גישה למודל, לא הוכחה שהמערכת מוכנה לשימוש שוטף.
מה בדיוק צריך לרוץ?
התחילו בחוזה פשוט: מי מבקש תחזית, איזה מידע הוא מספק, מתי הוא צריך תשובה ומה יעשה איתה. מערכת שמפיקה קובץ פעם בלילה עשויה להתאים למשימה גם בלי שירות בזמן אמת.
בדוגמה לימודית של תחזית ביקוש, מנהל מלאי עשוי להזדקק לדוח לפני הזמנה שבועית. במקרה כזה, הגדירו מתי הנתונים צריכים להגיע ומה עושים אם ההרצה נכשלה. אין צורך להניח מראש שכל מערכת צריכה ממשק רציף או זמינות בכל שעה.
ההבחנה הזו חשובה גם לתקציב: תדירות, נפח ושירות בזמן תקלה הם חלק מההיקף, לצד העבודה על המודל.
איך שומרים על עקביות בין אימון להרצה?
שמרו יחד את גרסת המודל ואת תהליך הכנת הנתונים שהוא מצפה לו. טיפול בחסרים, קידוד קטגוריות וסדר עמודות צריכים להתאים לאימון. אין ללמוד מחדש את פעולות העיבוד בכל בקשת חיזוי. התיעוד של scikit-learn מדגים את הבעיה ואת השימוש ב־Pipeline.
תעדו מאילו נתונים נבנתה הגרסה, את התלויות ואת תנאי ההערכה. המלצת העבודה שלנו: לפני שרת או ממשק, ודאו שאפשר להפיק שוב תוצאה מוכרת מקלט לדוגמה בסביבה נקייה.
מה בודקים לפני שחרור ראשון?
- קלט תקין: האם התוצאה תואמת לציפייה מהגרסה שנבדקה?
- קלט חסר או שגוי: האם המערכת דוחה אותו או מטפלת בו בדרך מוגדרת?
- נתונים חדשים: מה קורה לקטגוריה שלא הייתה באימון או לערך מחוץ לטווח?
- כשל חיבור: האם יש עצירה ברורה, התראה או מסלול חלופי?
- הרצה חוזרת: האם אותה בקשה עלולה ליצור פעמיים הזמנה, הודעה או רשומה?
- עומס ועלות: האם ההרצה עומדת בהיקף שהוגדר?
הרשימה היא מסגרת התחלה, לא תקן שמבטיח מוכנות. בחרו ספי קבלה לפי ההשלכה של טעות במשימה. התחילו עם קבוצת משתמשים או נתונים מוגבלת, ואפשרו להשוות לתהליך הקיים לפני שמסתמכים על המודל.
איך משחררים גרסה שאפשר גם לבטל?
הגדירו גרסה מזוהה, דרך בדיקה לפני שחרור ומסלול חזרה לגרסה קודמת. אל תסתפקו בהעתקת קובץ ידנית בלי לדעת איזו גרסה רצה. בדקו את החזרה בפועל בסביבה מתאימה.
תהליכי בדיקה, מסירה וניטור הם חלק מתפעול מערכות למידת מכונה, כפי שמפורט במדריך MLOps של Google Cloud. היקף האוטומציה צריך להתאים למערכת; אין חובה להתחיל מהתשתית המורכבת ביותר.
לצד הגרסה כתבו מי מאשר שחרור, מי מקבל התראה, ואיך ממשיכים לעבוד כשמשביתים את המודל. בחלק מהתהליכים הפתרון הזמני יהיה בדיקה ידנית או חזרה לכלל פשוט.
מה מודדים אחרי ההשקה?
הפרידו בין תקינות השירות לאיכות התחזיות. השירות יכול לענות בזמן בלי שגיאות טכניות, ועדיין להפיק תחזיות שאינן מועילות. כדאי לעקוב אחרי כשלים וזמני תגובה, שינויים בנתונים ותוצאות אמיתיות כשאלה מתקבלות.
שינוי בהתפלגות הנתונים הוא איתות לבדיקה, לא הוכחה שהדיוק ירד. אם התוצאה האמיתית מגיעה רק לאחר שבוע, גם הערכת האיכות תגיע באיחור. כללי העבודה של גוגל למערכות למידת מכונה עוסקים בניטור ובהבדלים בין האימון לשירות בפועל.
בתחזית ביקוש, למשל, אפשר לרשום את התחזית ואת גרסתה, ואז להשוות למכירות שנצפו. צריך גם לבדוק האם חוסר מלאי הסתיר ביקוש שלא יכול היה להתממש. זו דוגמה לכך שגם מדידת התוצאה דורשת הבנת תהליך עסקי.
מה צריך להיות במסירה?
רשימת מסירה:
השימוש והיקף ההרצה שהוגדרו.
גרסת מודל וקוד מזוהה.
דוגמת קלט ופלט ובדיקות קבלה.
מיקום הגדרות ההרצה וניהול ההרשאות.
ניטור, התראה ואיש קשר לתקלה.
דרך השבתה וחזרה לגרסה קודמת.
מגבלות ידועות ומועד בדיקה הבא.
דמו לתיק עבודות יכול להסתפק בהיקף מצומצם יותר, כל עוד מסמנים זאת. בפרויקט ארגוני צריך לתאם את המסירה עם בעלי המערכת ומי שיתפעלו אותה. מחיר וזמן נקבעים לפי ההיקף הזה, לא לפי מספר המודלים במחברת.
אם המטרה היא ללמוד ולבנות בעצמכם, אפשר להיעזר בליווי מקצועי. אם ארגון מבקש להעביר את דרך העבודה לצוות, הכיוון הוא הכשרה מותאמת.
מגדירים את הצעד שבין המודל לשימוש
אפשר להתחיל ממיפוי הפערים בפרויקט: מה כבר נבדק, מה חסר ומי אחראי לכל חלק בהפעלה.
לפרטים על המנטורינג