ייצור מערכות למידת מכונה: בדיקת פריסה

אתם מוכנים לפרוס את מודל חד-הקרן שחוזה את המראה של חדי-קרן! במהלך הפריסה, צינור עיבוד הנתונים של למידת המכונה (ML) צריך לרוץ, לעדכן ומוצגות ללא בעיה. אם רק פריסת המודל הייתה קלה כמו לחיצה לחצן Deploy גדול. לצערנו, מערכת למידת מכונה מלאה נדרשות בדיקות ל:

  • מתבצע אימות של נתוני הקלט.
  • מתבצע אימות של הנדסת פיצ'רים (feature engineering).
  • אימות האיכות של גרסאות מודלים חדשות.
  • מתבצע אימות של התשתית להצגת מודעות.
  • בדיקת השילוב בין רכיבי צינור עיבוד נתונים.

מהנדסי תוכנה רבים מעדיפים פיתוח מבוסס-בדיקות (TDD). ב-TDD, תוכנה מהנדסי התוכנה כותבים בדיקות לפני הכתיבה "האמיתית" קוד המקור. עם זאת, ה-TDD יכול להיות מסובך בלמידת מכונה. לדוגמה, לפני אימון המודל, אי אפשר לכתוב בדיקה כדי לאמת על האובדן. במקום זאת, קודם צריך לגלות מהו האובדן שניתן להשיג במהלך המודל וואז לבדוק גרסאות חדשות של המודל נגד האובדן שניתן להשיג.

מידע על מודל חד-קרן

הקטע הזה מתייחס למודל חד-קרן. דברים שעליך לדעת:

אתם משתמשים בלמידת מכונה כדי ליצור מודל סיווג שחוזה מראה של חד-קרן. במערך הנתונים שלך מפורטות 10,000 מראה של חד-קרן 10,000 דמויות של חדי-קרן. מערך הנתונים מכיל את המיקום, השעה ביום, גובה, טמפרטורה, לחות, כיסוי עצים, נוכחות של של קשת בענן, וכמה תכונות אחרות.

בדיקת עדכונים של מודל באמצעות אימון חוזר

אולי כדאי לך להמשיך לשפר את המודל של חד-קרן. לדוגמה, נניח מבצעים הנדסת פיצ'רים נוספת בפיצ'ר מסוים, ואז לאמן מחדש את המודל, בתקווה לקבל תוצאות טובות יותר (או לפחות זהות). לצערנו, לפעמים קשה לשחזר אימון מודלים. כדי לשפר את השחזור, כדאי לפעול לפי ההמלצות הבאות:

  • מקור המספרים האקראיים במחולל המספרים האקראיים. לפרטים נוספים, אפשר לעיין במאמר בנושא אקראיות בנתונים ליצירת תמונות,

  • לאתחל את רכיבי המודל בסדר קבוע כדי להבטיח שהרכיבים מקבלים אותו מספר אקראי ממחולל המספרים האקראיים בכל הרצה. ספריות למידת מכונה בדרך כלל מטפלות בדרישה הזו באופן אוטומטי.

  • חשבו על הממוצע של מספר הפעלות של המודל.

  • להשתמש בניהול גרסאות, גם באיטרציות ראשוניות, כדי קוד ופרמטרים מדויקים כשבוחנים את המודל או צינור עיבוד הנתונים.

גם לאחר הציות להנחיות האלה, מקורות אחרים של אי-דטרמיניזם עשויים עדיין קיימים.

בדיקת קריאות ל-API של למידת מכונה

איך בודקים עדכונים לקריאות ל-API? אתם יכולים לאמן מחדש את המודל, אבל שצורך הרבה זמן. במקום זאת, כתבו בדיקת יחידה כדי ליצור נתוני קלט אקראיים ומריצים שלב אחד של ירידה הדרגתית. אם השלב הזה מסתיים אז סביר להניח שעדכונים ב-API לא הרסו את המודל שלכם.

כתיבת בדיקות אינטגרציה של רכיבי צינור עיבוד נתונים

בצינור עיבוד נתונים של למידת מכונה, שינויים ברכיב אחד עלולים לגרום לשגיאות רכיבים. כדי לבדוק שהרכיבים פועלים יחד, בדיקת שילוב שמריצה את כל צינור עיבוד הנתונים מקצה לקצה.

מלבד הרצה רציפה של בדיקות שילוב, צריך להריץ בדיקות שילוב כשדוחפים מודלים חדשים וגרסאות תוכנה חדשות. האיטיות של הפעלת כל צינור עיבוד הנתונים מקשה על בדיקות אינטגרציה רציפה (CI). כדי להפעיל את השילוב לבצע בדיקות מהר יותר, לאמן קבוצת משנה של הנתונים או להשתמש במודל פשוט יותר. הפרטים תלויות במודל ובנתונים שלכם. כדי לקבל כיסוי רציף, עליך לשנות את בדיקות מהירות יותר כדי שיפעלו בכל גרסה חדשה של מודל או תוכנה. בינתיים, הבדיקות האיטיות יפעלו ברקע באופן רציף.

בדיקת איכות המודל לפני הצגה

לפני שדוחפים גרסת מודל חדשה לסביבת הייצור, מומלץ לבדוק את שני הסוגים הבאים של פגיעה באיכות:

  • ירידה פתאומית. באג בגרסה החדשה עלול לגרום באופן משמעותי באיכות נמוכה יותר. ניתן לאמת גרסאות חדשות על ידי בדיקת האיכות שלהן לעומת הגרסה הקודמת.

  • התדרדרות איטית. ייתכן שהבדיקה שלך לאיתור ירידה פתאומית לא תזהה איכות נמוכה של המודל בהשוואה לגרסאות מרובות. במקום זאת, צריך לוודא החיזויים של המודל במערך נתונים לאימות עומדות בסף קבוע. אם במערך הנתונים לאימות יש סטייה מנתונים פעילים, ואז לעדכן את האימות של מערך הנתונים ולוודא שהמודל עדיין עומד באותו סף איכות.

בדיקת תאימות של מודל-תשתית לפני הצגת מודעות

אם המודל מתעדכן מהר יותר מהשרת, ייתכן שהמודל יחסי תלות שונים של התוכנה מהשרת שלכם, ועלולים לגרום של חוסר תאימות. חשוב לוודא שהפעולות שהמודל משתמש בהן קיימות השרת על ידי הצבת המודל בגרסת Sandbox של השרת.