סקירה כללית של מעקב אחרי מודלים

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

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

‫BigQuery ML מספק פונקציות שיעזרו לכם לנתח את נתוני האימון וההצגה שלכם כדי לזהות הטיה בנתונים וסחף בנתונים:

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

אפשר להשתמש בפונקציות הבאות כדי לעקוב אחרי מודלים ב-BigQuery ML:

  • ML.DESCRIBE_DATA: חישוב סטטיסטיקות תיאוריות עבור קבוצה של נתוני אימון או נתוני הגשה.
  • ML.VALIDATE_DATA_SKEW: חישוב הנתונים הסטטיסטיים של קבוצת נתוני הצגה, והשוואה שלהם לנתונים הסטטיסטיים של נתוני האימון שחושבו כשאימנו מודל BigQuery ML, כדי לזהות הבדלים חריגים בין שתי קבוצות הנתונים. הנתונים הסטטיסטיים מחושבים רק עבור עמודות של תכונות בנתוני ההצגה שמתאימות לעמודות של תכונות בנתוני האימון, כדי לשפר את הביצועים ולהפחית את העלויות.
  • ML.VALIDATE_DATA_DRIFT: חישוב והשוואה של נתונים סטטיסטיים של שני מערכי נתונים של תנועת גולשים, כדי לזהות הבדלים חריגים בין שני מערכי הנתונים.
  • ML.TFDV_DESCRIBE: חישוב סטטיסטיקות תיאוריות מפורטות עבור קבוצה של נתוני אימון או נתוני הגשה. הפונקציה הזו מספקת את אותה התנהגות כמו TensorFlow tfdv.generate_statistics_from_csv API.
  • ML.TFDV_VALIDATE: השוואה בין הנתונים הסטטיסטיים של נתוני האימון והנתונים הסטטיסטיים של נתוני ההצגה, או בין שני מערכים של נתונים סטטיסטיים של נתוני ההצגה, כדי לזהות הבדלים חריגים בין שני מערכי הנתונים. הפונקציה הזו מספקת את אותה התנהגות כמו TensorFlow validate_statistics API.

תרחישים לדוגמה למעקב

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

מעקב בסיסי אחרי חלוקת נתונים לא מאוזנת

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

אלה השלבים האופייניים לתרחיש השימוש הזה:

  1. מריצים את הפונקציה ML.DESCRIBE_DATA על נתוני האימון וההצגה כדי לוודא ששתי קבוצות הנתונים ניתנות להשוואה בצורה מתאימה ושערכי הפרמטרים שלהן נמצאים בטווח הצפוי.
  2. יצירת מודל BigQuery ML ואימון שלו על נתוני האימון.
  3. מריצים את הפונקציה ML.VALIDATE_DATA_SKEW כדי להשוות בין נתוני ההצגה לבין נתוני ההדרכה שחושבו במהלך יצירת המודל, כדי לבדוק אם יש חלוקת נתונים לא מאוזנת.
  4. אם יש חלוקת נתונים לא מאוזנת (partition skew), צריך לחקור את שורש הבעיה, לשנות את נתוני האימון בהתאם ולאמן מחדש את המודל.

מעקב בסיסי אחרי סחף נתונים

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

אלה השלבים האופייניים לתרחיש השימוש הזה:

  1. מריצים את הפונקציה ML.DESCRIBE_DATA על נתוני האימון וההצגה כדי לוודא ששתי קבוצות הנתונים ניתנות להשוואה בצורה מתאימה ושערכי הפרמטרים שלהן נמצאים בטווח הצפוי.
  2. יצירת מודל BigQuery ML ואימון שלו על נתוני האימון.
  3. מריצים את הפונקציה ML.VALIDATE_DATA_DRIFT כדי להשוות בין נתונים סטטיסטיים של שני מערכי נתונים שונים של הצגת מודעות, כדי לבדוק אם יש סחף נתונים. לדוגמה, יכול להיות שתרצו להשוות בין נתוני ההצגה הנוכחיים לבין נתוני הצגה היסטוריים מתמונת מצב של טבלה, או בין התכונות שהוצגו בנקודת זמן מסוימת, שאפשר לקבל באמצעות הפונקציה ML.FEATURES_AT_TIME.
  4. אם יש סחף נתונים, צריך לחקור את שורש הבעיה, לשנות את נתוני האימון בהתאם ואז לאמן מחדש את המודל.

מעקב מתקדם אחרי חלוקת נתונים לא מאוזנת או סחף נתונים

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

אלה השלבים האופייניים לתרחיש השימוש הזה:

  1. מריצים את הפונקציה ML.TFDV_DESCRIBE על נתוני האימון וההצגה במרווחי זמן שמתאימים לפתרון המעקב, ושומרים את תוצאות השאילתה. בשלב הזה אפשר להשוות בין נתוני הצגה עתידיים לבין נתוני אימון והצגה מנקודות זמן קודמות.
  2. מריצים את הפונקציה ML.TFDV_VALIDATE על נתונים סטטיסטיים של נתוני האימון וההצגה, או על שני מערכים של נתונים סטטיסטיים של נתוני ההצגה, כדי להעריך את חלוקת הנתונים הלא מאוזנת או את סחף הנתונים, בהתאמה. נתוני האימון וההצגה צריכים להיות בפורמט JSON של DatasetFeatureStatisticsList מאגר אחסון לפרוטוקולים של TensorFlow. אפשר ליצור מאגר אחסון לפרוטוקולים בפורמט הנכון על ידי הפעלת הפונקציה ML.TFDV_DESCRIBE, או לטעון אותו מחוץ ל-BigQuery. בדוגמה הבאה אפשר לראות איך מעריכים את הטיית התכונות:

    DECLARE stats1 JSON;
    DECLARE stats2 JSON;
    
    SET stats1 = (
      SELECT * FROM ML.TFDV_DESCRIBE(TABLE `myproject.mydataset.training`)
    );
    SET stats2 = (
      SELECT * FROM ML.TFDV_DESCRIBE(TABLE `myproject.mydataset.serving`)
    );
    
    SELECT ML.TFDV_VALIDATE(stats1, stats2, 'SKEW');
    
    INSERT `myproject.mydataset.serve_stats`
      (t, dataset_feature_statistics_list)
    SELECT CURRENT_TIMESTAMP() AS t, stats1;
  3. אם יש חלוקת נתונים לא מאוזנת (partition skew) או סחף נתונים, צריך לחקור את שורש הבעיה, להתאים את נתוני האימון בהתאם ואז לאמן מחדש את המודל.

הצגה חזותית של מעקב

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

השימוש בהדמיות של Agent Platform מציע את היתרונות הבאים:

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

כדי להפעיל את ההדמיה של הפלט של הפונקציה ML.VALIDATE_DATA_DRIFT, צריך להשתמש בארגומנט MODEL של הפונקציה. אפשר להפעיל את ההדמיה של הפלט של הפונקציה ML.VALIDATE_DATA_SKEW באמצעות הארגומנט enable_visualization_link של הפונקציה הזו.

אפשר להשתמש בהדמיה של המעקב רק עם מודלים שנרשמו ב-Agent Platform. אפשר לרשום מודל קיים באמצעות ההצהרה ALTER MODEL.

אוטומציה של מעקב

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

דוגמה לאוטומציה של הפונקציה ML.VALIDATE_DATA_SKEW מופיעה במאמר אוטומציה של זיהוי הטיה.

המאמרים הבאים

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