מסגור בעיה של למידת מכונה

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

  • מגדירים את התוצאה האידיאלית ואת היעד של המודל.
  • מזהים את הפלט של המודל.
  • הגדרת מדדי הצלחה.

להגדיר את התוצאה האידיאלית ואת יעד המודל

מהי התוצאה האידיאלית, ללא קשר למודל למידת המכונה? במילים אחרות, מהי המשימה המדויקת שאתם רוצים שהמוצר או התכונה יבצעו? זהו אותו הצהרה שהגדרתם בקטע State the goal (הצהרת היעד).

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

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

זיהוי הפלט הדרוש

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

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

בטבלאות הבאות מפורטות הפונקציות החזויות של למידת מכונה ובינה מלאכותית גנרטיבית:

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

להשיב לביקורות של לקוחות.

תרגום מסמכים מאנגלית למנדרין.

מנסחים את תיאורי המוצרים.

לנתח מסמכים משפטיים.
תמונה
הפקת תמונות שיווקיות.

הוספת אפקטים חזותיים לתמונות.

ליצור וריאציות של עיצוב מוצר.
אודיו
יצירת דו-שיח במבטא ספציפי.

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

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

סיווג

מודל הסיווג קובע את הקטגוריה שאליה שייכים נתוני הקלט. לדוגמה, אם צריך לסווג קלט בתור A, B או C.

מודל סיווג יוצר חיזויים.

איור 1. מודל סיווג שמבצע חיזויים.

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

קוד המוצר מתבסס על הפלט של המודל כדי לקבל החלטה.

איור 2. הפלט של מודל הסיווג המשמש לקבלת החלטה בקוד המוצר.

רגרסיה

מודל רגרסיה יוצר תחזית של ערך מספרי.

מודל רגרסיה יוצר חיזוי.

איור 3. מודל רגרסיה שיוצר חיזוי מספרי.

על סמך חיזוי המודל, האפליקציה שלך עשויה לקבל החלטה. לדוגמה, אם החיזוי נמצא בטווח A, מבצעים את X, ואם החיזוי נמצא בטווח B, מבצעים את Y. אם החיזוי נמצא בטווח C, מבצעים את Z. במקרים מסוימים, החיזוי הוא הפלט של האפליקציה.

קוד המוצר מתבסס על הפלט של המודל כדי לקבל החלטה.

איור 4. שימוש בפלט של מודל רגרסיה בקוד המוצר לצורך קבלת החלטה.

חשוב לזכור את התרחיש הבא:

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

  • אם סרטון צפוי לקבל 50 צפיות או יותר, תשתמשו במטמון היקר.
  • אם סרטון צפוי לקבל בין 30 ל-50 צפיות, תשתמשו במטמון הזול.
  • אם הסרטון צפוי לצבור פחות מ-30 צפיות, הוא לא יישמר במטמון.

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

מודל שעבר אימון ומתבצעת הערכה של אובדן המודל.

איור 5. אימון של מודל רגרסיה.

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

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

תרחיש זה מדגיש שתי נקודות חשובות:

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

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

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

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

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

התוצאה האידיאלית תווית אידיאלית
ספרו למשתמשים כמה גשם צפוי באזור שלהם בשש השעות הקרובות. precipitation_amount

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

התוצאה האידיאלית תווית אידיאלית
המלצות על סרטונים שימושיים. ?

לכן צריך למצוא תווית של שרת proxy.

תוויות של שרת proxy

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

תווית שרת proxy לתועלת יכול להיות אם המשתמש ישתף או לא ישתף את הסרטון.

התוצאה האידיאלית תווית שרת ה-proxy
המלצות על סרטונים שימושיים. shared OR liked

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

תווית שרת ה-proxy בעיה
אתם יכולים לחזות אם המשתמש ילחץ על לחצן לייק. רוב המשתמשים אף פעם לא לוחצים על "לייק".
אתם יכולים לחזות אם סרטון מסוים יהיה פופולרי. לא מותאמת אישית. ייתכן שחלק מהמשתמשים לא יאהבו סרטונים פופולריים.
אתם יכולים לחזות אם המשתמש ישתף את הסרטון. חלק מהמשתמשים לא משתפים סרטונים. לפעמים אנשים משתפים סרטונים כי הם לא אוהבים אותם.
אתם יכולים לחזות אם המשתמש ילחץ על 'הפעלה'. למקסם את השימוש בקליקבייט.
תוכלו לחזות למשך כמה זמן הם יצפו בסרטון. המערכת מתעדפת סרטונים ארוכים באופן שונה על פני סרטונים קצרים.
נסו לחזות כמה פעמים המשתמש יצפה שוב בסרטון. העדפה של סרטונים ש'ניתן לצפות בהם מחדש' על פני ז'אנרים של סרטונים שאינם ניתנים לצפייה חוזרת.

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

בחינת ההבנה

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

דור

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

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

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

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

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

    Produce 100-word summaries for each article.
    

    אם רוצים שהמודל ייצור טקסט לרמת קריאה מסוימת, אפשר להזין את הפרטים הבאים:

    All the output should be at a reading level for a 12-year-old.
    

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

    Translate words from English to Spanish.
    
    English: Car
    Spanish: Auto
    
    English: Airplane
    Spanish: Avión
    
    English: Home
    Spanish:______
    

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

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

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

הגדרת מדדי הצלחה

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

לדוגמה, מדדי ההצלחה והכישלון של אפליקציית מזג האוויר יכולים להיות מוגדרים כך:

הצלחה משתמשים פותחים את התכונה "האם ירד גשם?" בתדירות גבוהה ב-50 אחוזים, בהשוואה לקודם.
כישלון המשתמשים פותחים את התכונה 'האם ירד גשם?' לא לעיתים קרובות יותר.

מדדי אפליקציות הווידאו יכולים להיות מוגדרים כך:

הצלחה משתמשים מבלים בממוצע 20 אחוזים יותר זמן באתר.
כישלון משך השהייה הממוצע של המשתמשים באתר הוא לא יותר זמן מבעבר.

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

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

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

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

  • טוב, אפשר להמשיך. אפשר להשתמש במודל בסביבת הייצור, ויכול להיות שהוא ישתפר.

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

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

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

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

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

בחינת ההבנה

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

איך הם צריכים להציב את הבעיה שלהם במונחים של למידת מכונה?

תוצאה אידיאלית: עליכם להחליט אילו מוצרים לייצר.

היעד של הדוגמנית: יצירת תחזית לגבי פריטי הלבוש האופנתיים.

פלט המודל: סיווג בינארי, in_fashion, not_in_fashion

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

תוצאה אידיאלית: עליכם להחליט כמה בד וציוד להזמין.

יעד המודל: אתם יכולים לחזות את כמות הייצור מכל פריט.

פלט המודל: סיווג בינארי, make, do_not_make

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

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