מבוא
במדריך הזה למתחילים נסביר על AutoML. כדי להבין את ההבדלים העיקריים בין AutoML לבין אימון מותאם אישית, אפשר לעיין במאמר בחירת שיטת אימון.
דמיינו:
- אתם עובדים במחלקת השיווק של קמעונאי דיגיטלי.
- אתם עובדים על פרויקט אדריכלי שבו מוגדרים סוגים של בניינים.
- לעסק יש טופס ליצירת קשר באתר.
הוספה ידנית של תמונות וטבלאות היא תהליך מייגע שגוזל זמן. ללמד מחשב לזהות ולסמן את התוכן באופן אוטומטי.
תמונה
אתה עובד עם ועדה לשימור אדריכלי שמנסה לזהות שכונות בעיר שלך שבהן יש סגנון אדריכלי עקבי. יש לכם מאות אלפי תמונות מצב של בתים שצריך לסנן. אבל אם מנסים לסווג את כל התמונות האלה באופן ידני, התהליך מייגע ומועד לשגיאות. מתמחה תייגה כמה מאות מהם לפני כמה חודשים, אבל אף אחד אחר לא בדק את הנתונים. היה ממש שימושי אם היית יכול ללמד את המחשב שלך לבצע את הבדיקה הזו בשבילך!
טבלאי
אתם עובדים במחלקת השיווק של קמעונאי דיגיטלי. אתם והצוות שלכם יוצרים תוכנית אימייל בהתאמה אישית שמבוססת על פרסונות של לקוחות. יצרתם את דמויות הקונים, והאימיילים השיווקיים מוכנים לשליחה. עכשיו אתם צריכים ליצור מערכת שמסווגת את הלקוחות לכל אחת מדמויות הקונים על סמך העדפות הקניות והתנהגות ההוצאות שלהם, גם אם הם לקוחות חדשים. כדי למקסם את מעורבות הלקוח, כדאי גם לחזות את הרגלי ההוצאות שלהם כדי לבצע אופטימיזציה של מועדי שליחת האימיילים.
בתור קמעונאים דיגיטליים, יש לכם נתונים על הלקוחות ועל הרכישות שהם ביצעו. אבל מה לגבי לקוחות חדשים? בגישות מסורתיות אפשר לחשב את הערכים האלה עבור לקוחות קיימים עם היסטוריית רכישות ארוכה, אבל הגישות האלה לא מתאימות ללקוחות עם מעט נתונים היסטוריים. מה אם הייתם יכולים ליצור מערכת שתנבא את הערכים האלה ותגדיל את המהירות שבה אתם מציעים תוכניות שיווק בהתאמה אישית לכל הלקוחות שלכם?
למזלנו, למידת מכונה ו-Vertex AI יכולים לפתור את הבעיות האלה.
במדריך הזה מוסבר איך Vertex AI פועל עם מערכי נתונים ומודלים של AutoML, ומוצגות דוגמאות לבעיות ש-Vertex AI פותר.
הערה לגבי הוגנות
Google מחויבת להתקדם ביישום שיטות לפיתוח אחראי של AI. לשם כך, מוצרי ה-ML שלנו, כולל AutoML, מבוססים על עקרונות ליבה כמו הוגנות ולמידת מכונה שמתמקדת באדם.
למה Vertex AI הוא הכלי המתאים לפתרון הבעיה הזו?
בתכנות קלאסי, המתכנת צריך לציין הוראות מפורטות למחשב. יש כל כך הרבה וריאציות בצבע, בזווית, ברזולוציה ובתאורה, שנדרש קידוד של יותר מדי כללים כדי ללמד מכונה איך לקבל את ההחלטה הנכונה. קשה לדמיין מאיפה בכלל מתחילים. או שהלקוחות משתמשים במילים ובמבנים מגוונים, ולכן קשה לזהות את התגובות שלהם באמצעות כללים פשוטים. אם תנסו ליצור מסננים ידניים, תגלו מהר מאוד שאי אפשר לסווג את רוב התגובות של הלקוחות. אתם צריכים מערכת שיכולה להכליל מגוון רחב של תגובות. בתרחיש שבו רצף של כללים ספציפיים צפוי להתרחב באופן אקספוננציאלי, צריך מערכת שיכולה ללמוד מדוגמאות.
למזלנו, למידת מכונה פותרת את הבעיות האלה.
איך Vertex AI עובד?
Vertex AI כולל משימות של למידה מפוקחת כדי להשיג תוצאה נבחרת. הפרטים הספציפיים של האלגוריתם ושיטות האימון משתנים בהתאם לסוג הנתונים ולתרחיש השימוש. קיימות הרבה קטגוריות משנה שונות של למידת מכונה, וכל אחת מהן פותרת בעיות שונות ועובדת במסגרת אילוצים שונים.
תמונה
אתם מאמנים, בודקים ומאמתים את מודל למידת המכונה באמצעות תמונות לדוגמה שמוערות בתוויות לסיווג, או בתוויות ובתיבות תוחמות לזיהוי אובייקטים. באמצעות למידה מפוקחת, אתם יכולים לאמן מודל לזיהוי הדפוסים והתוכן שחשובים לכם בתמונות.
טבלאי
מאמנים מודל למידת מכונה עם נתונים לדוגמה. Vertex AI
משתמש בנתונים טבלאיים (מובְנים) כדי לאמן מודל של למידת מכונה, במטרה להסיק מסקנות לגבי נתונים חדשים. עמודה אחת ממערך הנתונים, שנקראת היעד, היא מה שהמודל ילמד לחזות. מספר מסוים של עמודות הנתונים האחרות
הן נתוני קלט (שנקראים תכונות) שהמודל ילמד מהם דפוסים. אתם יכולים להשתמש באותן תכונות קלט כדי ליצור כמה סוגים של מודלים, רק על ידי שינוי של עמודת היעד ואפשרויות ההדרכה. בדוגמה של שיווק באימייל, המשמעות היא שאפשר ליצור מודלים עם אותן תכונות קלט אבל עם מסקנות שונות לגבי היעד. מודל אחד יכול לחזות את פרסונת הלקוח (יעד קטגורי), מודל אחר יכול לחזות את ההוצאה החודשית שלו (יעד מספרי), ומודל נוסף יכול לחזות את הביקוש היומי למוצרים שלכם בשלושת החודשים הבאים (סדרה של יעדים מספריים).
תהליך העבודה ב-Vertex AI
ב-Vertex AI נעשה שימוש בתהליך עבודה סטנדרטי של למידת מכונה:
- איסוף הנתונים: קובעים אילו נתונים נדרשים לאימון ולבדיקה של המודל, בהתאם לתוצאה שרוצים להשיג.
- הכנת הנתונים: מוודאים שהפורמט של הנתונים תקין ושהם מסומנים בצורה נכונה.
- אימון: הגדרת פרמטרים ובניית המודל.
- הערכה: בודקים את מדדי המודל.
- פריסה וחיזוי: הפיכת המודל לזמין לשימוש.
הכנת נתונים
אבל לפני שמתחילים לאסוף את הנתונים, כדאי לחשוב על הבעיה שרוצים לפתור. ההגדרות האלה משפיעות על דרישות הנתונים.
הערכת תרחיש השימוש
מתחילים עם הבעיה: מה התוצאה שרוצים להשיג?
תמונה
כשיוצרים את מערך הנתונים, תמיד מתחילים עם תרחיש לדוגמה. אפשר להתחיל עם השאלות הבאות:
- מה התוצאה שאתם מנסים להשיג?
- אילו סוגים של קטגוריות או אובייקטים צריך לזהות כדי להשיג את התוצאה הזו?
- האם בני אדם יכולים לזהות את הקטגוריות האלה? למרות ש-Vertex AI יכול להתמודד עם מספר גדול יותר של קטגוריות מאשר בני אדם יכולים לזכור ולהקצות בכל זמן נתון, אם אדם לא יכול לזהות קטגוריה מסוימת, גם ל-Vertex AI יהיה קשה לעשות זאת.
- אילו סוגי דוגמאות ישקפו בצורה הטובה ביותר את הסוג והטווח של הנתונים שהמערכת תראה ותנסה לסווג?
טבלאי
איזה סוג נתונים יש בעמודת היעד? כמה נתונים יש לכם גישה אליהם? בהתאם לתשובות שלכם, Vertex AI יוצר את המודל הדרוש כדי לפתור את תרחיש השימוש שלכם:
- מודל סיווג בינארי חוזה תוצאה בינארית (אחת מתוך שתי קטגוריות). אפשר להשתמש בו לשאלות עם תשובות של כן או לא, למשל כדי לחזות אם לקוח ירכוש מינוי (או לא). בהנחה שכל שאר התנאים שווים, בעיה של סיווג בינארי דורשת פחות נתונים מאשר סוגים אחרים של מודלים.
- מודל סיווג רב-מחלקתי חוזה מחלקה אחת מתוך שלוש או יותר מחלקות נפרדות. אפשר להשתמש בזה כדי לסווג דברים. בדוגמה של קמעונאות, כדאי לבנות מודל סיווג רב-מחלקתי כדי לפלח את הלקוחות לפרופילים שונים.
- מודל חיזוי חוזה רצף של ערכים. לדוגמה, קמעונאים יכולים להשתמש בתחזיות כדי לחזות את הביקוש היומי למוצרים שלהם במהלך 3 החודשים הבאים, כדי שיוכלו להכין מראש את מלאי המוצרים שלהם בהתאם.
- מודל רגרסיה חוזה ערך רציף. בדוגמה של הקמעונאות, כדאי ליצור מודל רגרסיה כדי לחזות כמה לקוח יוציא בחודש הבא.
איסוף הנתונים
אחרי שמגדירים את תרחיש השימוש, אוספים את הנתונים שמאפשרים ליצור את המודל הרצוי.
תמונה
אחרי שמחליטים אילו נתונים צריך, צריך למצוא דרך להשיג אותם. אתם יכולים להתחיל בבדיקה של כל הנתונים שהארגון שלכם אוסף. יכול להיות שכבר יש לכם את הנתונים הרלוונטיים שדרושים לאימון מודל. אם אין לכם את הנתונים האלה, אתם יכולים להשיג אותם באופן ידני או להעביר את האחריות לטיפול בהם לספק צד שלישי.
לכלול מספיק דוגמאות מתויגות בכל קטגוריה
המספר המינימלי של דוגמאות תמונות שנדרש על ידי Vertex AI Training לסיווג הוא 100 לכל קטגוריה או תווית.
הסיכוי לזיהוי מוצלח של תווית עולה עם מספר הדוגמאות האיכותיות לכל תווית. באופן כללי, ככל שתספקו יותר נתונים מתויגים לתהליך האימון, כך המודל יהיה טוב יותר. כדאי לטרגט לפחות 1,000 דוגמאות לכל תווית.
חלוקת הדוגמאות באופן שווה בין הקטגוריות
חשוב ללכוד בערך מספר דומה של דוגמאות לאימון לכל קטגוריה. גם אם יש לכם הרבה נתונים לתווית אחת, מומלץ שתהיה חלוקה שווה לכל תווית. כדי להבין למה, נניח ש-80% מהתמונות שבהן השתמשתם כדי לבנות את המודל הן תמונות של בתים פרטיים בסגנון מודרני. בגלל חוסר האיזון הזה בחלוקת התוויות, סביר מאוד שהמודל ילמד שאין סיכון לטעות אם הוא יגיד שתמונה היא של בית מודרני חד-משפחתי, במקום לנסות לחזות תווית שהיא הרבה פחות נפוצה.
זה כמו לכתוב מבחן רב-ברירה שבו כמעט כל התשובות הנכונות הן 'ג' – בקרוב הנבחן החכם יבין שהוא יכול לענות 'ג' בכל פעם בלי אפילו להסתכל על השאלה.
אנחנו מבינים שלא תמיד אפשר למצוא מספר שווה בערך של דוגמאות לכל תווית. יכול להיות שיהיה קשה יותר למצוא דוגמאות איכותיות ונטולות הטיה לחלק מהקטגוריות. במקרים כאלה, אפשר לפעול לפי כלל האצבע הבא: התווית עם מספר הדוגמאות הנמוך ביותר צריכה לכלול לפחות 10% מהדוגמאות שמופיעות בתווית עם מספר הדוגמאות הגבוה ביותר. לכן, אם התווית הגדולה ביותר כוללת 10,000 דוגמאות, התווית הקטנה ביותר צריכה לכלול לפחות 1,000 דוגמאות.
תיעוד השונות במאפייני הבעיה
מסיבות דומות, חשוב לוודא שהנתונים שלכם משקפים את המגוון והשונות של תחום הבעיה. ככל שהבחירה רחבה יותר, כך תהליך אימון המודל יראה יותר דוגמאות, והמודל יוכל ליצור כלל שרלוונטי לדוגמאות חדשות בקלות רבה יותר. לדוגמה, אם מנסים לסווג תמונות של מוצרי אלקטרוניקה ביתיים לקטגוריות, ככל שהמודל נחשף למגוון רחב יותר של מוצרי אלקטרוניקה ביתיים במהלך האימון, כך גדל הסיכוי שהוא יוכל להבחין בין דגם חדש של טאבלט, טלפון או מחשב נייד, גם אם הוא מעולם לא ראה את הדגם הספציפי הזה.
התאמת הנתונים לפלט המיועד של המודל

חיפוש תמונות שדומות מבחינה חזותית למה שאתם מתכננים להסיק לגביו מסקנות. אם מנסים לסווג תמונות של בתים שצולמו במזג אוויר חורפי מושלג, סביר להניח שלא יתקבלו ביצועים טובים ממודל שאומן רק על תמונות של בתים שצולמו במזג אוויר שטוף שמש, גם אם תייגתם אותן בסיווגים שמעניינים אתכם, כי התאורה והנוף עשויים להיות שונים מספיק כדי להשפיע על הביצועים. מומלץ שדוגמאות האימון יהיו נתונים מהעולם האמיתי שנלקחו מאותו מערך נתונים שבו אתם מתכננים להשתמש במודל כדי לבצע סיווג.
טבלאי
אחרי שמגדירים את תרחיש השימוש, צריך לאסוף נתונים כדי לאמן את המודל.
השגת נתונים והכנתם הם שלבים חשובים מאוד בבניית מודל של למידת מכונה.
סוג הבעיות שתוכלו לפתור תלוי בנתונים שזמינים לכם. כמה נתונים זמינים לך? האם הנתונים רלוונטיים לשאלות שאתם מנסים לענות עליהן? כשמלקטים את הנתונים, חשוב לזכור את הנקודות העיקריות הבאות.
בחירת ישויות רלוונטיות
תכונה היא מאפיין קלט שמשמש לאימון המודל. התכונות הן האופן שבו המודל מזהה דפוסים כדי להסיק מסקנות, ולכן הן צריכות להיות רלוונטיות לבעיה. לדוגמה, כדי ליצור מודל שמנבא אם עסקה בכרטיס אשראי היא שמקורו בתרמית או לא, צריך ליצור מערך נתונים שמכיל פרטי עסקה כמו הקונים, בית העסק, הסכום, התאריך והשעה והפריטים שנרכשו. תכונות מועילות אחרות יכולות להיות מידע היסטורי על הקונה והמוכר, ועל התדירות שבה הפריט שנרכש היה מעורב בהונאה. אילו תכונות נוספות עשויות להיות רלוונטיות?
נחזור לתרחיש לדוגמה מהמבוא בנושא שיווק באימייל בענף הקמעונאות. ריכזנו כמה עמודות של מאפיינים שאולי תצטרכו:
- רשימת פריטים שנרכשו (כולל מותגים, קטגוריות, מחירים והנחות)
- מספר הפריטים שנרכשו (ביום האחרון, בשבוע האחרון, בחודש האחרון, בשנה האחרונה)
- סכום הכסף שהוצא (ביום האחרון, בשבוע האחרון, בחודש האחרון, בשנה האחרונה)
- לכל פריט, המספר הכולל שנמכר בכל יום
- לכל פריט, סך המלאי בכל יום
- אם אתם מריצים מבצע ליום מסוים
- פרופיל דמוגרפי ידוע של הקונה
הכללת מספיק נתונים
באופן כללי, ככל שיש לכם יותר דוגמאות לאימון, כך התוצאה טובה יותר. כמות נתוני הדוגמה הנדרשת משתנה בהתאם למורכבות הבעיה שאתם מנסים לפתור. לא תצטרכו כמות גדולה של נתונים כדי לקבל מודל סיווג בינארי מדויק, בהשוואה למודל רב-סיווגי, כי קל יותר לחזות סיווג אחד מתוך שניים מאשר מתוך הרבה.
אין נוסחה מושלמת, אבל יש מינימום מומלץ של נתוני דוגמה:
- בעיית סיווג: 50 שורות כפול מספר התכונות
- בעיה בתחזיות:
- 5,000 שורות כפול מספר התכונות
- 10 ערכים ייחודיים בעמודת המזהה של סדרת הזמן כפול מספר התכונות
- בעיית רגרסיה: 200 כפול מספר התכונות
תיעוד הווריאציה
מערך הנתונים צריך לשקף את המגוון של תחום הבעיה. ככל שהמודל נחשף ליותר דוגמאות מגוונות במהלך האימון, כך הוא יכול להכליל בקלות רבה יותר דוגמאות חדשות או פחות נפוצות. תארו לעצמכם שמודל קמעונאי אומן רק באמצעות נתוני רכישה מהחורף. האם המודל יוכל לחזות בהצלחה את ההעדפות או את התנהגויות הרכישה של בגדי קיץ?
הכנת הנתונים
תמונה
אחרי שמחליטים איזו שיטה מתאימה לכם – חלוקה ידנית או חלוקת ברירת המחדל – אפשר להוסיף נתונים ב-Vertex AI באחת מהשיטות הבאות:
- אפשר לייבא נתונים מהמחשב או מ-Cloud Storage בפורמט זמין (CSV או JSON Lines) עם התוויות (ומסגרות תוחמות, אם צריך) בשורה. מידע נוסף על הפורמט של קובץ הייבוא זמין במאמר הכנת נתוני האימון. אם רוצים לפצל את מערך הנתונים באופן ידני, אפשר לציין את הפיצולים בקובץ הייבוא בפורמט CSV או JSON Lines.
- אם הנתונים שלכם לא תויגו, אתם יכולים להעלות תמונות לא מתויגות ולהשתמש במסוף Google Cloud כדי להוסיף תיוגים. אפשר לנהל את ההערות האלה בכמה קבוצות של הערות לאותה קבוצת תמונות. לדוגמה, עבור קבוצה אחת של תמונות יכולה להיות קבוצת ביאורים אחת עם תיבת תוחמת ופרטי תווית לזיהוי אובייקטים, וגם קבוצת ביאורים נוספת עם ביאורי תווית בלבד לסיווג.
טבלאי
אחרי שמזהים את הנתונים הזמינים, צריך לוודא שהם מוכנים לאימון.
אם הנתונים מוטים או מכילים ערכים חסרים או שגויים, זה משפיע על איכות המודל. לפני שמתחילים לאמן את המודל, כדאי לשקול את הנקודות הבאות.
מידע נוסף
מניעת דליפת נתונים ו-training-serving skew
זליגת נתונים מתרחשת כשמשתמשים בתכונות קלט במהלך האימון ש "מזליגות" מידע על היעד שמנסים לחזות, שלא זמין כשהמודל מופעל בפועל. אפשר לזהות את זה כשכוללים כמאפיין קלט מאפיין שיש לו קורלציה גבוהה עם עמודת היעד. לדוגמה, אם אתם בונים מודל לחיזוי אם לקוח יירשם למינוי בחודש הבא, ואחד ממאפייני הקלט הוא תשלום עתידי על מינוי מאותו לקוח. הדבר עלול להוביל לביצועים טובים של המודל במהלך הבדיקות, אבל לא כשהוא מופעל בסביבת ייצור, כי פרטי התשלום של המינוי העתידי לא זמינים בזמן הצגת המודל.
הטיה בין אימון להצגה היא מצב שבו תכונות הקלט שמשמשות בזמן האימון שונות מאלה שמועברות למודל בזמן ההצגה, וכתוצאה מכך איכות המודל בסביבת הייצור נמוכה. לדוגמה, בניית מודל לחיזוי טמפרטורות לפי שעה, אבל אימון המודל עם נתונים שמכילים רק טמפרטורות שבועיות. דוגמה נוספת: תמיד מספקים את הציונים של התלמיד בנתוני האימון כשמנסים לחזות נשירה של תלמידים, אבל לא מספקים את המידע הזה בזמן ההצגה.
חשוב להבין את נתוני האימון כדי למנוע דליפת נתונים ו-training-serving skew:
- לפני שמשתמשים בנתונים, חשוב להבין מה המשמעות שלהם ולקבוע אם כדאי להשתמש בהם כמאפיין
- בודקים את המתאם בכרטיסייה Train (אימון). צריך לסמן מתאמים גבוהים לבדיקה.
- הטיה בין אימון להצגה: מוודאים שאתם מספקים למודל רק תכונות קלט שזמינות בדיוק באותו פורמט בזמן ההצגה.
ניקוי נתונים חסרים, חלקיים ולא עקביים
בנתונים לדוגמה, בדרך כלל יש ערכים חסרים ולא מדויקים. לפני שמשתמשים בנתונים לאימון, כדאי להקדיש זמן לבדיקה ולשיפור איכות הנתונים, אם אפשר. ככל שיש יותר ערכים חסרים, כך הנתונים פחות שימושיים לאימון של מודל למידת מכונה.
- בודקים אם חסרים ערכים בנתונים ומתקנים אותם אם אפשר, או משאירים את הערך ריק אם העמודה מוגדרת כעמודה שיכולה להכיל ערך null. Vertex AI יכול לטפל בערכים חסרים, אבל סביר יותר שתקבלו תוצאות אופטימליות אם כל הערכים יהיו זמינים.
- לצורך חיזוי, צריך לוודא שהמרווח בין שורות האימון עקבי. Vertex AI יכול להשלים ערכים חסרים, אבל סביר יותר שתקבלו תוצאות אופטימליות אם כל השורות יהיו זמינות.
- מנקים את הנתונים על ידי תיקון או מחיקה של שגיאות או רעשי רקע בנתונים. מוודאים שהנתונים עקביים: בודקים את האיות, הקיצורים והפורמט.
ניתוח הנתונים אחרי הייבוא
אחרי הייבוא של מערך הנתונים, תוכלו לראות סקירה כללית שלו ב-Vertex AI. בודקים את קבוצת הנתונים המיובאת כדי לוודא שלכל עמודה הוגדר סוג המשתנה הנכון. Vertex AI יזהה באופן אוטומטי את סוג המשתנה על סמך הערכים בעמודות, אבל מומלץ לבדוק כל אחד מהם. כדאי גם לבדוק את מאפיין המציין אם ערך יכול להיות ריק (nullability) של כל עמודה, שקובעת אם בעמודה יכולים להיות ערכים חסרים או ערכי null.
דגם הרכבת
תמונה
איך מערכת Vertex AI משתמשת במערך הנתונים שלכם כדי ליצור מודל בהתאמה אישית
מערך הנתונים מכיל קבוצות אימון, אימות ובדיקה. אם לא מציינים את החלוקות (ראו הכנת הנתונים), מערכת Vertex AI משתמשת באופן אוטומטי ב-80% מהתמונות לאימון, ב-10% לאימות וב-10% לבדיקה.
קבוצת נתונים לאימון
רוב הנתונים צריכים להיות בקבוצת נתונים לאימון. אלה הנתונים שהמודל 'רואה' במהלך האימון: הם משמשים ללימוד הפרמטרים של המודל, כלומר המשקלים של הקשרים בין הצמתים של הרשת הנוירונית.
קבוצת נתונים לתיקוף
קבוצת הנתונים לתיקוף, שנקראת לפעמים גם קבוצת הפיתוח, משמשת גם במהלך תהליך האימון.
אחרי שמסגרת הלמידה של המודל משלבת נתוני אימון במהלך כל איטרציה של תהליך האימון, היא משתמשת בביצועים של המודל בקבוצת נתונים לתיקוף כדי לכוונן את ההיפרפרמטרים של המודל, שהם משתנים שמציינים את המבנה של המודל. אם ניסיתם להשתמש בקבוצת הנתונים לאימון כדי לכוונן את ההיפר-פרמטרים, סביר מאוד שהמודל יתמקד יתר על המידה בנתוני האימון שלכם, ויתקשה להכליל דוגמאות שלא תואמות לו בדיוק.
שימוש במערך נתונים חדש יחסית כדי לשפר ולחדד את מבנה המודל, יאפשר למודל להכליל טוב יותר.
קבוצת נתונים לבדיקה
קבוצת הנתונים לבדיקה לא מעורבת בתהליך האימון בכלל. אחרי שהמודל סיים את האימון שלו לגמרי, אנחנו משתמשים בקבוצת נתונים לבדיקה כאתגר חדש לגמרי עבור המודל. הביצועים של המודל שלכם במערך הבדיקה אמורים לתת לכם מושג טוב לגבי הביצועים של המודל שלכם בנתונים מהעולם האמיתי.
פיצול ידני
אפשר גם לפצל את מערך הנתונים בעצמכם. פיצול ידני של הנתונים הוא בחירה טובה אם אתם רוצים יותר שליטה בתהליך, או אם יש דוגמאות ספציפיות שאתם בטוחים שאתם רוצים לכלול בחלק מסוים של מחזור החיים של אימון המודל.
טבלאי
אחרי שמייבאים את מערך הנתונים, השלב הבא הוא לאמן מודל. Vertex AI ייצור מודל מהימן של למידת מכונה עם הגדרות ברירת המחדל של האימון, אבל יכול להיות שתרצו לשנות חלק מהפרמטרים בהתאם לתרחיש השימוש שלכם.
כדאי לבחור כמה שיותר עמודות של תכונות לאימון, אבל חשוב לבדוק כל אחת מהן כדי לוודא שהיא מתאימה לאימון. חשוב לזכור את הנקודות הבאות כשבוחרים תכונות:
- לא כדאי לבחור עמודות של תכונות שייצרו רעשי רקע, כמו עמודות של מזהים שהוקצו באופן אקראי עם ערך ייחודי לכל שורה.
- חשוב להבין את כל עמודה של מאפיין ואת הערכים שלה.
- אם יוצרים כמה מודלים ממערך נתונים אחד, צריך להסיר עמודות יעד שלא קשורות לבעיית ההסקה הנוכחית.
- נזכיר את עקרונות ההוגנות: האם אתם מאמנים את המודל באמצעות תכונה שעלולה להוביל לקבלת החלטות מוטה או לא הוגנת לגבי קבוצות מוחלשות?
איך Vertex AI משתמש במערך הנתונים שלכם
מערך הנתונים יפוצל למערכי אימון, אימות ובדיקה. הפיצול שמוגדר כברירת מחדל ב-Vertex AI תלוי בסוג המודל שאתם מאמנים. אפשר גם לציין את הפיצולים (פיצולים ידניים) אם יש צורך. מידע נוסף זמין במאמר מידע על פיצול נתונים במודלים של AutoML.
קבוצת נתונים לאימון
רוב הנתונים צריכים להיות בקבוצת נתונים לאימון. אלה הנתונים שהמודל 'רואה' במהלך האימון: הם משמשים ללימוד הפרמטרים של המודל, כלומר המשקלים של הקשרים בין הצמתים של הרשת הנוירונית.
קבוצת נתונים לתיקוף
קבוצת הנתונים לתיקוף, שנקראת לפעמים גם קבוצת הפיתוח, משמשת גם במהלך תהליך האימון.
אחרי שמסגרת הלמידה של המודל משלבת נתוני אימון במהלך כל איטרציה של תהליך האימון, היא משתמשת בביצועים של המודל בקבוצת נתונים לתיקוף כדי לכוונן את ההיפרפרמטרים של המודל, שהם משתנים שמציינים את המבנה של המודל. אם ניסיתם להשתמש בקבוצת הנתונים לאימון כדי לכוונן את ההיפר-פרמטרים, סביר מאוד שהמודל יתמקד יתר על המידה בנתוני האימון שלכם, ויתקשה להכליל דוגמאות שלא תואמות לו בדיוק.
שימוש במערך נתונים חדש יחסית כדי לשפר ולחדד את מבנה המודל, יאפשר למודל להכליל טוב יותר.
קבוצת נתונים לבדיקה
קבוצת הנתונים לבדיקה לא מעורבת בתהליך האימון בכלל. אחרי שמודל סיים את האימון שלו, מערכת Vertex AI משתמשת בקבוצת הנתונים לבדיקה כאתגר חדש לגמרי עבור המודל.
הביצועים של המודל שלכם בקבוצת נתונים לבדיקה אמורים לתת לכם מושג טוב לגבי הביצועים של המודל שלכם בנתונים מהעולם האמיתי.
הערכה, בדיקה ופריסה של המודל
הערכת המודל
תמונה
אחרי שהמודל יאומן, תקבלו סיכום של ביצועי המודל. כדי לראות ניתוח מפורט, לוחצים על הערכה או על הצגת ההערכה המלאה.
ניפוי באגים במודל מתמקד יותר בניפוי באגים בנתונים מאשר במודל עצמו. אם בשלב כלשהו המודל מתחיל לפעול באופן לא צפוי בזמן שאתם מעריכים את הביצועים שלו לפני ואחרי ההעברה לסביבת הייצור, כדאי לחזור ולבדוק את הנתונים כדי לראות איפה אפשר לשפר אותו.
אילו סוגי ניתוחים אפשר לבצע ב-Vertex AI?
בקטע evaluate (הערכה) ב-Vertex AI, אפשר להעריך את הביצועים של המודל המותאם אישית באמצעות הפלט של המודל בדוגמאות לבדיקה ומדדים נפוצים של למידת מכונה. בקטע הזה נסביר מה המשמעות של כל אחד מהמושגים האלה.
- הפלט של המודל
- סף הניקוד
- תוצאות חיוביות אמיתיות, תוצאות שליליות אמיתיות, תוצאות חיוביות כוזבות ותוצאות שליליות כוזבות
- דיוק וזיכרון
- עקומות של דיוק/החזרה
- דיוק ממוצע
איך מפרשים את הפלט של המודל?
Vertex AI שולף דוגמאות מנתוני הבדיקה כדי להציג אתגרים חדשים לגמרי למודל. לכל דוגמה, המודל מוציא סדרה של מספרים שמציינים את מידת השיוך של כל תווית לדוגמה הזו. אם המספר גבוה, רמת הביטחון של המודל גבוהה לגבי ההחלה של התווית על המסמך הזה.
מהו סף הציון?
אנחנו יכולים להמיר את ההסתברויות האלה לערכים בינאריים של 'מופעל'/'מושבת' על ידי הגדרת סף ניקוד.
סף הניקוד מתייחס לרמת המהימנות שצריכה להיות למודל כדי להקצות קטגוריה לפריט בדיקה. הסרגל להגדרת ערך הסף של הניקוד במסוף Google Cloud הוא כלי ויזואלי לבדיקת ההשפעה של ערכי סף שונים על כל הקטגוריות ועל קטגוריות ספציפיות במערך הנתונים.
אם סף הניקוד שלכם נמוך, המודל יסווג יותר תמונות, אבל קיים סיכון שהוא יסווג כמה תמונות בצורה שגויה. אם סף הניקוד גבוה, המודל מסווג פחות תמונות, אבל הסיכון לסיווג שגוי של תמונות נמוך יותר. אפשר לשנות את ערכי הסף לכל קטגוריה במסוף Google Cloud כדי לבצע ניסויים. עם זאת, כשמשתמשים במודל בסביבת ייצור, צריך לאכוף את ערכי הסף האופטימליים שמצאתם בצד שלכם.
מהן תוצאות חיוביות אמיתיות, תוצאות שליליות אמיתיות, תוצאות חיוביות שגויות ותוצאות שליליות שגויות?
אחרי שמחילים את ערך הסף, ההסקות שהמודל מפיק ישתייכו לאחת מארבע הקטגוריות הבאות:
ערכי הסף שמצאתם כאופטימליים בצד שלכם.
אנחנו יכולים להשתמש בקטגוריות האלה כדי לחשב את הדיוק וההחזרה – מדדים שעוזרים לנו לאמוד את היעילות של המודל שלנו.
מהם דיוק והחזרה?
המדדים 'דיוק' ו'החזרה' עוזרים לנו להבין עד כמה המודל שלנו מצליח ללכוד מידע, וכמה מידע הוא לא כולל. מדד הדיוק מציין, מתוך כל הדוגמאות לבדיקה שהוקצתה להן תווית, כמה דוגמאות באמת היו אמורות להיות מסווגות עם התווית הזו. המדד 'היזכרות' מציין, מתוך כל הדוגמאות לבדיקה שהיה צריך להקצות להן את התווית, כמה מהן קיבלו בפועל את התווית.
כדאי לבצע אופטימיזציה לדיוק או לזיכרון?
בהתאם לתרחיש השימוש, יכול להיות שתרצו לבצע אופטימיזציה לדיוק או לריקול. כדי להחליט איזו גישה הכי מתאימה לכם, כדאי לעיין בשני התרחישים הבאים לדוגמה.
תרחיש לדוגמה: פרטיות בתמונות
נניח שאתם רוצים ליצור מערכת שמזהה באופן אוטומטי מידע רגיש ומטשטשת אותו.

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

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

איך מפרשים את עקומות הדיוק וההחזרה?

הכלי 'סף הציון' מאפשר לכם לבדוק איך סף הציון שבחרתם משפיע על
הדיוק וההיזכרות. כשגוררים את פס הסף של הציון, אפשר לראות איפה הסף הזה מציב אתכם בעקומת האיזון בין דיוק לבין היזכרות, וגם איך הסף הזה משפיע על הדיוק וההיזכרות בנפרד (במודלים עם כמה סיווגים, בתרשימים האלה, דיוק והיזכרות מתייחסים רק לתווית שבה נעשה שימוש לחישוב מדדי הדיוק וההיזכרות, שהיא התווית עם הציון הכי גבוה מתוך קבוצת התוויות שאנחנו מחזירים). כך תוכלו למצוא איזון טוב בין תוצאות חיוביות כוזבות לבין תוצאות שליליות כוזבות.
אחרי שבוחרים סף שנראה מקובל למודל כולו, לוחצים על התוויות השונות כדי לראות איפה הסף הזה ממוקם בעקומת הדיוק וההחזרה של כל תווית. במקרים מסוימים, יכול להיות שתקבלו הרבה מסקנות שגויות לגבי כמה תוויות, מה שיעזור לכם להחליט לבחור סף לכל סיווג שמותאם לתוויות האלה. לדוגמה, נניח שאתם בוחנים את מערך הנתונים של בתים ומבחינים שסף של 0.5 מספק דיוק והחזרה סבירים לכל סוג תמונה, מלבד 'טיודור', אולי כי זו קטגוריה כללית מאוד. בקטגוריה הזו, אתם רואים הרבה תוצאות חיוביות שגויות. במקרה כזה, יכול להיות שתחליטו להשתמש בסף של 0.8 רק עבור 'Tudor' כשאתם קוראים למסווג כדי להסיק מסקנות.
מהו דיוק ממוצע?
מדד שימושי לדיוק המודל הוא השטח שמתחת לעקומת הדיוק וההחזרה. המדד הזה מאפשר לכם לבדוק את רמת הביצועים של המודל בכל ספי הערכים. ב-Vertex AI, המדד הזה נקרא Average Precision (דיוק ממוצע). ככל שהציון קרוב יותר ל-1.0, כך הביצועים של המודל טובים יותר בקבוצת נתונים לבדיקה. מודל שמנחש באופן אקראי לכל תווית יקבל דיוק ממוצע של כ-0.5.
טבלאי
אחרי אימון המודל, תקבלו סיכום של הביצועים שלו. מדדי הערכת המודל מבוססים על הביצועים של המודל בהשוואה לפלח של מערך הנתונים (מערך הנתונים של הבדיקה). יש כמה מדדים ומושגים חשובים שכדאי להביא בחשבון כשקובעים אם המודל מוכן לשימוש עם נתונים אמיתיים.
מדדי סיווג
סף הציון
נניח שיש מודל למידת מכונה שמנבא אם לקוח יקנה מעיל בשנה הבאה. מה רמת הוודאות שנדרשת מהמודל כדי לחזות שלקוח מסוים יקנה מעיל? במודלים של סיווג, לכל מסקנה מוקצה ציון מהימנות – הערכה מספרית של מידת הוודאות של המודל לגבי נכונות הסיווג שחזה. סף הניקוד הוא המספר שקובע מתי ניקוד מסוים מומר להחלטה חיובית או שלילית. כלומר, זהו הערך שבו המודל אומר "כן, רמת הביטחון הזו גבוהה מספיק כדי להסיק שהלקוח הזה ירכוש מעיל בשנה הקרובה".
אם ערך הסף של הציון נמוך, קיים סיכון שהמודל יבצע סיווג שגוי. לכן, ערך הסף של הניקוד צריך להתבסס על תרחיש שימוש נתון.
תוצאות של הסקה
אחרי שמחילים את ערך הסף של הניקוד, ההסקות שהמודל מבצע ישתייכו לאחת מארבע קטגוריות. כדי להבין את הקטגוריות האלה, נחזור לדוגמה של מודל סיווג בינארי של מעילים. בדוגמה הזו, הסיווג החיובי (מה שהמודל מנסה לחזות) הוא שהלקוח ירכוש מעיל בשנה הקרובה.
- חיובי אמיתי: המודל חוזה נכון את המחלקה החיובית. המודל חזה בצורה נכונה שלקוח רכש מעיל.
- תוצאה חיובית שגויה: המודל חוזה באופן שגוי את המחלקה החיובית. המודל חזה שלקוח רכש מעיל, אבל הוא לא רכש.
- שלילי אמיתי: המודל חוזה נכון את המחלקה השלילית. המודל חזה בצורה נכונה שלקוח לא רכש מעיל.
- שלילי שגוי: המודל חוזה באופן שגוי מחלקה שלילית. המודל חזה שלקוח לא רכש מעיל, אבל הוא כן רכש.
דיוק וזיכרון
מדדי הדיוק וההחזרה עוזרים להבין באיזו מידה המודל מצליח ללכוד מידע ומה הוא משמיט. מידע נוסף על דיוק ועל היקף החיפוש
- דיוק הוא החלק היחסי של ההסקות החיוביות שהיו נכונות. מתוך כל ההסקות לגבי רכישה של לקוח, איזה חלק היו רכישות בפועל?
- היזכרות היא החלק היחסי של השורות עם התווית הזו שהמודל חזה בצורה נכונה. מתוך כל הרכישות של הלקוחות שאפשר היה לזהות, כמה אחוזים זוהו?
בהתאם לתרחיש השימוש, יכול להיות שתצטרכו לבצע אופטימיזציה לדיוק או לריקול.
מדדים אחרים של סיווג
- AUC PR: השטח מתחת לעקומת הדיוק וההחזרה (PR). הערך הזה נע בין אפס לאחד, כאשר ערך גבוה יותר מציין מודל באיכות גבוהה יותר.
- AUC ROC: השטח מתחת לעקומת מאפייני ההפעלה של המקלט (ROC). הערך נע בין אפס לאחד, וככל שהערך גבוה יותר, המודל איכותי יותר.
- דיוק: החלק היחסי של מסקנות הסיווג שהופקו על ידי המודל שהיו נכונות.
- הפסד לוגריתמי: האנטרופיה הצולבת בין ההסקות של המודל לבין ערכי היעד. הטווח נע בין אפס לאינסוף, כאשר ערך נמוך יותר מציין מודל באיכות גבוהה יותר.
- ציון F1: הממוצע ההרמוני של הדיוק וההחזרה. המדד F1 שימושי אם אתם מחפשים איזון בין דיוק לבין היזכרות, ויש התפלגות לא אחידה של מחלקות.
מדדים של תחזיות ורגרסיות
אחרי בניית המודל, Vertex AI מספק מגוון של מדדים סטנדרטיים לבדיקה. אין תשובה מושלמת לשאלה איך להעריך את המודל. כדאי להשתמש במדדי הערכה בהקשר של סוג הבעיה ושל המטרה שלכם. ברשימה הבאה מפורטים כמה מדדים ש-Vertex AI יכול לספק.
שגיאה ממוצעת מוחלטת (MAE)
MAE הוא ההפרש המוחלט הממוצע בין ערכי היעד לבין הערכים החזויים. המדד הזה מודד את הגודל הממוצע של השגיאות – ההפרש בין ערך יעד לבין ערך חזוי – בקבוצה של מסקנות. בנוסף, מכיוון שהיא משתמשת בערכים מוחלטים, MAE לא מתייחסת לכיוון הקשר ולא מציינת ביצועים נמוכים או גבוהים מדי. כשמעריכים את MAE, ערך קטן יותר מצביע על מודל באיכות גבוהה יותר (0 מייצג מודל חיזוי מושלם).
שורש טעות ריבועית ממוצעת (RMSE)
ה-RMSE הוא השורש הריבועי של ההפרש הממוצע בריבוע בין ערכי היעד לבין הערכים החזויים. המדד RMSE רגיש יותר לערכים חריגים מהמדד MAE, ולכן אם אתם חוששים משגיאות גדולות, כדאי להשתמש במדד RMSE כדי להעריך את השגיאות. בדומה ל-MAE, ערך קטן יותר מציין מודל באיכות גבוהה יותר (0 מייצג מודל חיזוי מושלם).
שורש טעות ריבועית ממוצעת לוגריתמית (RMSLE)
RMSLE הוא RMSE בקנה מידה לוגריתמי. המדד RMSLE רגיש יותר לשגיאות יחסיות מאשר לשגיאות מוחלטות, וחשוב לו יותר שהביצועים לא יהיו נמוכים מדי מאשר שהם לא יהיו גבוהים מדי.
קוונטיל שנצפה (חיזוי בלבד)
עבור קוונטיל יעד נתון, הקוונטיל שנצפה מציג את השבר בפועל של הערכים שנצפו מתחת לערכי ההסקה של הקוונטיל שצוין. הערך observed quantile מראה עד כמה המודל קרוב או רחוק מהקוונטיל של היעד. הבדל קטן יותר בין שני הערכים מצביע על מודל באיכות גבוהה יותר.
הפסד פינבול משוקלל (לחיזוי בלבד)
מדד לאיכות המודל בקוונטיל יעד נתון. מספר נמוך יותר מציין מודל באיכות גבוהה יותר. אפשר להשוות את מדד הפסד הפינבול המותאם באחוזונים שונים כדי לקבוע את הדיוק היחסי של המודל בין האחוזונים השונים האלה.
בדיקת המודל
תמונה
מערכת Vertex AI משתמשת אוטומטית ב-10% מהנתונים שלכם (או באחוז שבחרתם אם הגדרתם בעצמכם את פיצול הנתונים) כדי לבדוק את המודל, ובדף Evaluate (הערכה) מפורטות התוצאות של המודל בנתוני הבדיקה האלה. אבל למקרה שתרצו לבדוק את רמת הביטחון של המודל, יש כמה דרכים לעשות זאת. הדרך הכי קלה היא להעלות כמה תמונות בדף 'פריסה ובדיקה' ולבדוק את התוויות שהמודל בוחר לדוגמאות שלכם. אנחנו מקווים שהמידע הזה עונה על הציפיות שלך. נסו כמה דוגמאות לכל סוג תמונה שאתם מצפים לקבל.
אם אתם רוצים להשתמש במודל בבדיקות אוטומטיות משלכם, בדף 'פריסה ובדיקה' מוסבר גם איך לבצע קריאות למודל באופן פרוגרמטי.
טבלאי
הדרך העיקרית לקבוע אם המודל מוכן לפריסה היא להעריך את מדדי המודל, אבל אפשר גם לבדוק אותו באמצעות נתונים חדשים. כדאי להעלות נתונים חדשים כדי לבדוק אם ההסקות של המודל תואמות לציפיות שלכם. על סמך מדדי ההערכה או הבדיקה עם נתונים חדשים, יכול להיות שתצטרכו להמשיך לשפר את הביצועים של המודל.
פריסת המודל
תמונה
כשמרוצים מהביצועים של המודל, אפשר להשתמש בו. יכול להיות שזה אומר שימוש בהיקף ייצור, או אולי בקשת הסקה חד-פעמית. בהתאם לתרחיש לדוגמה, אפשר להשתמש במודל בדרכים שונות.
הסקת מסקנות באצווה
הסקת מסקנות באצווה שימושית כשרוצים לשלוח הרבה בקשות להסקת מסקנות בבת אחת. הסקת מסקנות באצווה היא אסינכרונית, כלומר המודל ימתין עד שיעבד את כל בקשות הסקת המסקנות לפני שיחזיר קובץ JSON Lines עם ערכי הסקת המסקנות.
הסקת מסקנות אונליין
פורסים את המודל כדי שיהיה זמין לבקשות היקש באמצעות API בארכיטקטורת REST. הסקת מסקנות אונליין היא סינכרונית (בזמן אמת), כלומר היא תחזיר במהירות תוצאה של הסקת מסקנות, אבל היא מקבלת רק בקשה אחת להסקת מסקנות לכל קריאה ל-API. הסקת מסקנות אונליין שימושית אם המודל שלכם הוא חלק מאפליקציה וחלקים מהמערכת שלכם תלויים בהסקת מסקנות מהירה.
טבלאי
כשמרוצים מהביצועים של המודל, אפשר להשתמש בו. יכול להיות שהמשמעות היא שימוש בהיקף ייצור, או שאולי מדובר בבקשת הסקה חד-פעמית. בהתאם לתרחיש לדוגמה שלכם, תוכלו להשתמש במודל בדרכים שונות.
הסקת מסקנות באצווה
הסקת מסקנות באצווה שימושית כשרוצים לשלוח הרבה בקשות להסקת מסקנות בבת אחת. הסקת מסקנות באצווה היא אסינכרונית, כלומר המודל ימתין עד שיעבד את כל בקשות הסקת המסקנות לפני שיחזיר קובץ CSV או טבלת BigQuery עם ערכי הסקת המסקנות.
הסקת מסקנות אונליין
פורסים את המודל כדי שיהיה זמין לבקשות היקש באמצעות API בארכיטקטורת REST. הסקת מסקנות אונליין היא סינכרונית (בזמן אמת), כלומר היא תחזיר במהירות מסקנה, אבל היא מקבלת רק בקשת מסקנה אחת לכל קריאה ל-API. הסקת מסקנות אונליין שימושית אם המודל שלכם הוא חלק מאפליקציה וחלקים מהמערכת שלכם תלויים בהסקת מסקנות מהירה.
הסרת המשאבים
כדי להימנע מחיובים לא רצויים, מומלץ לבטל את הפריסה של המודל כשלא משתמשים בו.
אחרי שמסיימים להשתמש במודל, מומלץ למחוק את המשאבים שיצרתם כדי להימנע מחיובים לא רצויים בחשבון.