ניסויים

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

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

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

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

    בהמשך מפורטות דוגמאות לניסויים שבהם מתבצע שינוי קטן אחד:

    • כולל את התכונה X.
    • משתמשים ב-dropout של 0.5 בשכבה החבויה הראשונה.
    • מבצעים טרנספורמציה לוגרית של התכונה Y.
    • משנים את קצב הלמידה ל-0.001.
  • תיעוד של התקדמות הניסויים סביר להניח שתצטרכו לבצע הרבה ניסויים. עדיין כדאי לעקוב אחרי ניסויים עם איכות חיזוי נמוכה (או ניטרלית) בהשוואה לקו הבקרה. הם מסמנים אילו גישות לא יפעלו. מכיוון שההתקדמות בדרך כלל לא לינארית, חשוב להראות שאתם עובדים על הבעיה על ידי הדגשת כל הדרכים שמצאתם שלא עובדות, בנוסף להתקדמות שלכם בשיפור האיכות הבסיסית.

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

רעש בתוצאות הניסוי

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

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

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

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

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

הפעלת ניסוי כמה פעמים עוזרת לאשר את תוצאות הניסוי.

תיאום שיטות הניסוי

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

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

  • שיטות תכנות האם כל אחד ישתמש בסביבות ניסיוניות משלו? עד כמה אפשר (או קל) לאחד את העבודה של כולם בספריות משותפות?

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

חיזויים שגויים

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

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

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

הטמעת פתרון מקצה לקצה

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

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

פתרון בעיות בפרויקטים שנתקעו

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

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

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

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

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

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

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

בדיקת ההבנה

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